From 8ef81d10866eb1587116e6c32b0b3f3467ece3dc Mon Sep 17 00:00:00 2001 From: florian Date: Fri, 1 Dec 2006 21:49:07 +0000 Subject: [PATCH] - removed log at the end git-svn-id: trunk@5524 - --- tests/test/cg/obj/ctest.c | 795 ++++++++++++++++++-------------------- 1 file changed, 384 insertions(+), 411 deletions(-) diff --git a/tests/test/cg/obj/ctest.c b/tests/test/cg/obj/ctest.c index 507117097d..88d1a1c934 100644 --- a/tests/test/cg/obj/ctest.c +++ b/tests/test/cg/obj/ctest.c @@ -1,411 +1,384 @@ -/* - Program to test linking between C and pascal units. - Copyright (c) 2002, Carl Eric Codere -*/ - -/* - Note : Arrays seem to always be passed by reference - in the C language. Therefore, no testing is required - to use them. -*/ - -unsigned char global_u8bit; -unsigned short global_u16bit; -unsigned int global_u32bit; -short global_s16bit; -int global_s32bit; -long long global_s64bit; -unsigned long long global_u64bit; -float global_float; -double global_double; -long double global_long_double; - -#define RESULT_U8BIT 0x55 -#define RESULT_U16BIT 0x500F -#define RESULT_U32BIT 0x500F0000 -#define RESULT_S16BIT -12 -#define RESULT_S32BIT -120 -#define RESULT_S64BIT -12000 -#define RESULT_U64BIT 0x1BCDABCD -#define RESULT_PCHAR "Hello world" -#define RESULT_FLOAT 14.54 -#define RESULT_DOUBLE 15.54 -#define RESULT_LONGDOUBLE 16.54 - - -struct _1BYTE_ -{ - unsigned char u8; -}; - -struct _3BYTE_ -{ - unsigned char u8; - unsigned short u16; -}; - -struct _3BYTE_S -{ - unsigned short u16; - unsigned char w8; -}; - -struct _5BYTE_ -{ - unsigned char u8; - unsigned int u32; -}; - -struct _7BYTE_ -{ - unsigned char u8; - long long s64; - unsigned short u16; -}; - - -struct _7BYTE_ test_struct; - - -/* simple parameter testing */ -void test_param_u8(unsigned char v) -{ - global_u8bit = v; -} - - -void test_param_u16(unsigned short v) -{ - global_u16bit = v; -} - -void test_param_u32(unsigned int v) -{ - global_u32bit = v; -} - - -void test_param_s16(short v) -{ - global_s16bit = v; -} - -void test_param_s32(int v) -{ - global_s32bit = v; -} - - -void test_param_s64(long long v) -{ - global_s64bit = v; -} - -void test_param_u64(unsigned long long v) -{ - global_u64bit = v; -} - -void test_param_float(float v) -{ - global_float = v; -} - -void test_param_double(double v) -{ - global_double = v; -} - - -void test_param_longdouble(long double v) -{ - global_long_double = v; -} - -/* simple array parameter testing */ -void test_array_param_u8(unsigned char v[2]) -{ - global_u8bit = v[1]; -} - - -void test_array_param_u16(unsigned short v[2]) -{ - global_u16bit = v[1]; -} - -void test_array_param_u32(unsigned int v[2]) -{ - global_u32bit = v[1]; -} - - -void test_array_param_s16(short v[2]) -{ - global_s16bit = v[1]; -} - -void test_array_param_s32(int v[2]) -{ - global_s32bit = v[1]; -} - - -void test_array_param_s64(long long v[2]) -{ - global_s64bit = v[1]; -} - -void test_array_param_u64(unsigned long long v[2]) -{ - global_u64bit = v[1]; -} - -void test_array_param_float(float v[2]) -{ - global_float = v[1]; -} - -void test_array_param_double(double v[2]) -{ - global_double = v[1]; -} - - -void test_array_param_longdouble(long double v[2]) -{ - global_long_double = v[1]; -} - -/* if this one works, others should also automatically */ -void test_param_var_u8(unsigned char *x) -{ - *x = RESULT_U8BIT; -} - -/* mixed parameter testing */ -void test_param_mixed_u16(unsigned char z, unsigned short x, unsigned char y) -{ - global_u16bit = x; - global_u8bit = y; -} - -void test_param_mixed_u32(unsigned char z, unsigned int x, unsigned char y) -{ - global_u32bit = x; - global_u8bit = y; -} - -void test_param_mixed_s64(unsigned char z, long long x, unsigned char y) -{ - global_s64bit = x; - global_u8bit = y; -} - -void test_param_mixed_var_u8(unsigned char *x, unsigned char y) -{ - global_u8bit = y; - *x = RESULT_U8BIT; -} - -/* mixed parameter testing with floating point args */ -void test_param_mixed_float(float x, unsigned char y) -{ - global_float = x; - global_u8bit = y; -} - -void test_param_mixed_double(double x, unsigned char y) -{ - global_double = x; - global_u8bit = y; -} - -void test_param_mixed_long_double(long double x, unsigned char y) -{ - global_long_double = x; - global_u8bit = y; -} - -/* simple record testing */ -void test_param_struct_tiny(struct _1BYTE_ buffer) -{ - global_u8bit = buffer.u8; -} - -void test_param_struct_small(struct _3BYTE_ buffer) -{ - global_u8bit = buffer.u8; - global_u16bit = buffer.u16; -} -void test_param_struct_small_s(struct _3BYTE_S buffer) -{ - global_u8bit = buffer.w8; - global_u16bit = buffer.u16; -} - -void test_param_struct_medium(struct _5BYTE_ buffer) -{ - global_u8bit = buffer.u8; - global_u32bit = buffer.u32; -} - -void test_param_struct_large(struct _7BYTE_ buffer) -{ - global_u8bit = buffer.u8; - global_u16bit = buffer.u16; - global_s64bit = buffer.s64; -} - - -/* record+char testing */ -void test_param_mixed_struct_tiny(struct _1BYTE_ buffer, unsigned char y) -{ - global_u8bit = y; -} - -void test_param_mixed_struct_small(struct _3BYTE_ buffer, unsigned char y) -{ - global_u8bit = y; - global_u16bit = buffer.u16; -} -void test_param_mixed_struct_small_s(struct _3BYTE_S buffer, unsigned char y) -{ - global_u8bit = y; - global_u16bit = buffer.u16; -} - -void test_param_mixed_struct_medium(struct _5BYTE_ buffer, unsigned char y) -{ - global_u8bit = y; - global_u32bit = buffer.u32; -} - -void test_param_mixed_struct_large(struct _7BYTE_ buffer, unsigned char y) -{ - global_u8bit = y; - global_u16bit = buffer.u16; - global_s64bit = buffer.s64; -} - - -/* function result testing */ -unsigned char test_function_u8() -{ - return RESULT_U8BIT; -} - -unsigned short test_function_u16() -{ - return RESULT_U16BIT; -} - -unsigned int test_function_u32() -{ - return RESULT_U32BIT; -} - -unsigned long long test_function_u64() -{ - return RESULT_U64BIT; -} - -unsigned short test_function_s16() -{ - return RESULT_S16BIT; -} - -unsigned int test_function_s32() -{ - return RESULT_S32BIT; -} - -unsigned long long test_function_s64() -{ - return RESULT_S64BIT; -} - -char* test_function_pchar() -{ - return RESULT_PCHAR; -} - -float test_function_float() -{ - return RESULT_FLOAT; -} - -double test_function_double() -{ - return RESULT_DOUBLE; -} - -long double test_function_longdouble() -{ - return RESULT_LONGDOUBLE; -} - -struct _1BYTE_ test_function_tiny_struct() -{ - struct _1BYTE_ test_struct; - test_struct.u8 = RESULT_U8BIT; - return test_struct; -} - -struct _3BYTE_ test_function_small_struct() -{ - struct _3BYTE_ test_struct; - test_struct.u8 = RESULT_U8BIT; - test_struct.u16 = RESULT_U16BIT; - return test_struct; -} -struct _3BYTE_S test_function_small_struct_s() -{ - struct _3BYTE_S test_struct; - test_struct.u16 = RESULT_U16BIT; - test_struct.w8 = RESULT_U8BIT; - return test_struct; -} - -struct _5BYTE_ test_function_medium_struct() -{ - struct _5BYTE_ test_struct; - test_struct.u8 = RESULT_U8BIT; - test_struct.u32 = RESULT_U32BIT; - return test_struct; -} - -struct _7BYTE_ test_function_struct() -{ - test_struct.u8 = RESULT_U8BIT; - test_struct.s64 = RESULT_S64BIT; - test_struct.u16 = RESULT_U16BIT; - return test_struct; -} - -/* - - Revision 1.7 2005/02/06 20:00:41 peter - * use int for 32bit types - - Revision 1.6 2002/11/18 00:42:16 pierre - + records with really 3 byte size tests added - - Revision 1.5 2002/11/04 15:17:45 pierre - * compatibility with C checks improved - - Revision 1.4 2002/09/07 15:40:56 peter - * old logs removed and tabs fixed - - Revision 1.3 2002/05/04 16:57:23 carl - + var parameter testing - + function result testing - + floating point testing - - Revision 1.2 2002/04/22 19:09:12 carl - + added structure testing - - Revision 1.1 2002/04/13 21:06:39 carl - + c module testing - -*/ +/* + Program to test linking between C and pascal units. + Copyright (c) 2002, Carl Eric Codere +*/ + +/* + Note : Arrays seem to always be passed by reference + in the C language. Therefore, no testing is required + to use them. +*/ + +unsigned char global_u8bit; +unsigned short global_u16bit; +unsigned int global_u32bit; +short global_s16bit; +int global_s32bit; +long long global_s64bit; +unsigned long long global_u64bit; +float global_float; +double global_double; +long double global_long_double; + +#define RESULT_U8BIT 0x55 +#define RESULT_U16BIT 0x500F +#define RESULT_U32BIT 0x500F0000 +#define RESULT_S16BIT -12 +#define RESULT_S32BIT -120 +#define RESULT_S64BIT -12000 +#define RESULT_U64BIT 0x1BCDABCD +#define RESULT_PCHAR "Hello world" +#define RESULT_FLOAT 14.54 +#define RESULT_DOUBLE 15.54 +#define RESULT_LONGDOUBLE 16.54 + + +struct _1BYTE_ +{ + unsigned char u8; +}; + +struct _3BYTE_ +{ + unsigned char u8; + unsigned short u16; +}; + +struct _3BYTE_S +{ + unsigned short u16; + unsigned char w8; +}; + +struct _5BYTE_ +{ + unsigned char u8; + unsigned int u32; +}; + +struct _7BYTE_ +{ + unsigned char u8; + long long s64; + unsigned short u16; +}; + + +struct _7BYTE_ test_struct; + + +/* simple parameter testing */ +void test_param_u8(unsigned char v) +{ + global_u8bit = v; +} + + +void test_param_u16(unsigned short v) +{ + global_u16bit = v; +} + +void test_param_u32(unsigned int v) +{ + global_u32bit = v; +} + + +void test_param_s16(short v) +{ + global_s16bit = v; +} + +void test_param_s32(int v) +{ + global_s32bit = v; +} + + +void test_param_s64(long long v) +{ + global_s64bit = v; +} + +void test_param_u64(unsigned long long v) +{ + global_u64bit = v; +} + +void test_param_float(float v) +{ + global_float = v; +} + +void test_param_double(double v) +{ + global_double = v; +} + + +void test_param_longdouble(long double v) +{ + global_long_double = v; +} + +/* simple array parameter testing */ +void test_array_param_u8(unsigned char v[2]) +{ + global_u8bit = v[1]; +} + + +void test_array_param_u16(unsigned short v[2]) +{ + global_u16bit = v[1]; +} + +void test_array_param_u32(unsigned int v[2]) +{ + global_u32bit = v[1]; +} + + +void test_array_param_s16(short v[2]) +{ + global_s16bit = v[1]; +} + +void test_array_param_s32(int v[2]) +{ + global_s32bit = v[1]; +} + + +void test_array_param_s64(long long v[2]) +{ + global_s64bit = v[1]; +} + +void test_array_param_u64(unsigned long long v[2]) +{ + global_u64bit = v[1]; +} + +void test_array_param_float(float v[2]) +{ + global_float = v[1]; +} + +void test_array_param_double(double v[2]) +{ + global_double = v[1]; +} + + +void test_array_param_longdouble(long double v[2]) +{ + global_long_double = v[1]; +} + +/* if this one works, others should also automatically */ +void test_param_var_u8(unsigned char *x) +{ + *x = RESULT_U8BIT; +} + +/* mixed parameter testing */ +void test_param_mixed_u16(unsigned char z, unsigned short x, unsigned char y) +{ + global_u16bit = x; + global_u8bit = y; +} + +void test_param_mixed_u32(unsigned char z, unsigned int x, unsigned char y) +{ + global_u32bit = x; + global_u8bit = y; +} + +void test_param_mixed_s64(unsigned char z, long long x, unsigned char y) +{ + global_s64bit = x; + global_u8bit = y; +} + +void test_param_mixed_var_u8(unsigned char *x, unsigned char y) +{ + global_u8bit = y; + *x = RESULT_U8BIT; +} + +/* mixed parameter testing with floating point args */ +void test_param_mixed_float(float x, unsigned char y) +{ + global_float = x; + global_u8bit = y; +} + +void test_param_mixed_double(double x, unsigned char y) +{ + global_double = x; + global_u8bit = y; +} + +void test_param_mixed_long_double(long double x, unsigned char y) +{ + global_long_double = x; + global_u8bit = y; +} + +/* simple record testing */ +void test_param_struct_tiny(struct _1BYTE_ buffer) +{ + global_u8bit = buffer.u8; +} + +void test_param_struct_small(struct _3BYTE_ buffer) +{ + global_u8bit = buffer.u8; + global_u16bit = buffer.u16; +} +void test_param_struct_small_s(struct _3BYTE_S buffer) +{ + global_u8bit = buffer.w8; + global_u16bit = buffer.u16; +} + +void test_param_struct_medium(struct _5BYTE_ buffer) +{ + global_u8bit = buffer.u8; + global_u32bit = buffer.u32; +} + +void test_param_struct_large(struct _7BYTE_ buffer) +{ + global_u8bit = buffer.u8; + global_u16bit = buffer.u16; + global_s64bit = buffer.s64; +} + + +/* record+char testing */ +void test_param_mixed_struct_tiny(struct _1BYTE_ buffer, unsigned char y) +{ + global_u8bit = y; +} + +void test_param_mixed_struct_small(struct _3BYTE_ buffer, unsigned char y) +{ + global_u8bit = y; + global_u16bit = buffer.u16; +} +void test_param_mixed_struct_small_s(struct _3BYTE_S buffer, unsigned char y) +{ + global_u8bit = y; + global_u16bit = buffer.u16; +} + +void test_param_mixed_struct_medium(struct _5BYTE_ buffer, unsigned char y) +{ + global_u8bit = y; + global_u32bit = buffer.u32; +} + +void test_param_mixed_struct_large(struct _7BYTE_ buffer, unsigned char y) +{ + global_u8bit = y; + global_u16bit = buffer.u16; + global_s64bit = buffer.s64; +} + + +/* function result testing */ +unsigned char test_function_u8() +{ + return RESULT_U8BIT; +} + +unsigned short test_function_u16() +{ + return RESULT_U16BIT; +} + +unsigned int test_function_u32() +{ + return RESULT_U32BIT; +} + +unsigned long long test_function_u64() +{ + return RESULT_U64BIT; +} + +unsigned short test_function_s16() +{ + return RESULT_S16BIT; +} + +unsigned int test_function_s32() +{ + return RESULT_S32BIT; +} + +unsigned long long test_function_s64() +{ + return RESULT_S64BIT; +} + +char* test_function_pchar() +{ + return RESULT_PCHAR; +} + +float test_function_float() +{ + return RESULT_FLOAT; +} + +double test_function_double() +{ + return RESULT_DOUBLE; +} + +long double test_function_longdouble() +{ + return RESULT_LONGDOUBLE; +} + +struct _1BYTE_ test_function_tiny_struct() +{ + struct _1BYTE_ test_struct; + test_struct.u8 = RESULT_U8BIT; + return test_struct; +} + +struct _3BYTE_ test_function_small_struct() +{ + struct _3BYTE_ test_struct; + test_struct.u8 = RESULT_U8BIT; + test_struct.u16 = RESULT_U16BIT; + return test_struct; +} +struct _3BYTE_S test_function_small_struct_s() +{ + struct _3BYTE_S test_struct; + test_struct.u16 = RESULT_U16BIT; + test_struct.w8 = RESULT_U8BIT; + return test_struct; +} + +struct _5BYTE_ test_function_medium_struct() +{ + struct _5BYTE_ test_struct; + test_struct.u8 = RESULT_U8BIT; + test_struct.u32 = RESULT_U32BIT; + return test_struct; +} + +struct _7BYTE_ test_function_struct() +{ + test_struct.u8 = RESULT_U8BIT; + test_struct.s64 = RESULT_S64BIT; + test_struct.u16 = RESULT_U16BIT; + return test_struct; +}