diff options
author | Anthony Green <green@gmachine.(none)> | 2009-12-25 01:22:11 -0500 |
---|---|---|
committer | Anthony Green <green@gmachine.(none)> | 2009-12-25 01:22:11 -0500 |
commit | f7c0bc613a88f7dbc2d18b345c10fa438833c170 (patch) | |
tree | d7ea952ebbd04d77e4ffc9a5e6df065976304cdb /testsuite | |
parent | c7fa2da8260258c11ab1dc7ac06fb611a2c1b50f (diff) | |
download | libffi-f7c0bc613a88f7dbc2d18b345c10fa438833c170.tar.gz |
3.0.9rc6
Diffstat (limited to 'testsuite')
-rw-r--r-- | testsuite/Makefile.am | 64 | ||||
-rw-r--r-- | testsuite/Makefile.in | 64 | ||||
-rw-r--r-- | testsuite/libffi.call/huge_struct.c | 40 |
3 files changed, 149 insertions, 19 deletions
diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am index f94ca00..eae3d74 100644 --- a/testsuite/Makefile.am +++ b/testsuite/Makefile.am @@ -14,3 +14,67 @@ RUNTEST = `if [ -f $(top_srcdir)/../dejagnu/runtest ] ; then \ AM_RUNTESTFLAGS = CLEANFILES = *.exe core* *.log *.sum + +EXTRA_DIST = libffi.special/special.exp \ +libffi.special/unwindtest_ffi_call.cc libffi.special/unwindtest.cc \ +libffi.special/ffitestcxx.h config/default.exp lib/target-libpath.exp \ +lib/libffi-dg.exp lib/wrapper.exp libffi.call/float.c \ +libffi.call/cls_multi_schar.c libffi.call/float3.c \ +libffi.call/cls_3_1byte.c libffi.call/stret_large2.c \ +libffi.call/cls_5_1_byte.c libffi.call/stret_medium.c \ +libffi.call/promotion.c libffi.call/cls_dbls_struct.c \ +libffi.call/nested_struct.c libffi.call/closure_fn1.c \ +libffi.call/cls_4_1byte.c libffi.call/cls_float.c \ +libffi.call/cls_2byte.c libffi.call/closure_fn4.c \ +libffi.call/return_fl2.c libffi.call/nested_struct7.c \ +libffi.call/cls_uint.c libffi.call/cls_align_sint64.c \ +libffi.call/float1.c libffi.call/cls_19byte.c \ +libffi.call/nested_struct1.c libffi.call/cls_4byte.c \ +libffi.call/return_fl1.c libffi.call/cls_align_pointer.c \ +libffi.call/nested_struct4.c libffi.call/nested_struct3.c \ +libffi.call/struct7.c libffi.call/nested_struct9.c \ +libffi.call/cls_sshort.c libffi.call/cls_ulonglong.c \ +libffi.call/cls_pointer_stack.c libffi.call/cls_multi_uchar.c \ +libffi.call/testclosure.c libffi.call/cls_3byte1.c \ +libffi.call/struct6.c libffi.call/return_uc.c libffi.call/return_ll1.c \ +libffi.call/cls_ushort.c libffi.call/stret_medium2.c \ +libffi.call/cls_multi_ushortchar.c libffi.call/return_dbl2.c \ +libffi.call/closure_loc_fn0.c libffi.call/return_sc.c \ +libffi.call/nested_struct8.c libffi.call/cls_7_1_byte.c \ +libffi.call/return_ll.c libffi.call/cls_pointer.c \ +libffi.call/err_bad_abi.c libffi.call/return_dbl1.c \ +libffi.call/call.exp libffi.call/ffitest.h libffi.call/strlen.c \ +libffi.call/return_sl.c libffi.call/cls_1_1byte.c \ +libffi.call/struct1.c libffi.call/cls_64byte.c libffi.call/return_ul.c \ +libffi.call/cls_double.c libffi.call/many_win32.c \ +libffi.call/cls_16byte.c libffi.call/cls_align_double.c \ +libffi.call/cls_align_uint16.c libffi.call/cls_9byte1.c \ +libffi.call/cls_multi_sshortchar.c libffi.call/cls_multi_ushort.c \ +libffi.call/closure_stdcall.c libffi.call/return_fl.c \ +libffi.call/strlen_win32.c libffi.call/return_ldl.c \ +libffi.call/cls_align_float.c libffi.call/struct3.c \ +libffi.call/cls_uchar.c libffi.call/cls_sint.c libffi.call/float2.c \ +libffi.call/cls_align_longdouble_split.c \ +libffi.call/cls_longdouble_va.c libffi.call/cls_multi_sshort.c \ +libffi.call/stret_large.c libffi.call/cls_align_sint16.c \ +libffi.call/nested_struct6.c libffi.call/cls_5byte.c \ +libffi.call/return_dbl.c libffi.call/cls_20byte.c \ +libffi.call/cls_8byte.c libffi.call/pyobjc-tc.c \ +libffi.call/cls_24byte.c libffi.call/cls_align_longdouble_split2.c \ +libffi.call/cls_6_1_byte.c libffi.call/cls_schar.c \ +libffi.call/cls_18byte.c libffi.call/closure_fn3.c \ +libffi.call/err_bad_typedef.c libffi.call/closure_fn2.c \ +libffi.call/struct2.c libffi.call/cls_3byte2.c \ +libffi.call/cls_align_longdouble.c libffi.call/cls_20byte1.c \ +libffi.call/return_fl3.c libffi.call/cls_align_uint32.c \ +libffi.call/problem1.c libffi.call/float4.c \ +libffi.call/cls_align_uint64.c libffi.call/struct9.c \ +libffi.call/closure_fn5.c libffi.call/cls_align_sint32.c \ +libffi.call/closure_fn0.c libffi.call/closure_fn6.c \ +libffi.call/struct4.c libffi.call/nested_struct2.c \ +libffi.call/cls_6byte.c libffi.call/cls_7byte.c libffi.call/many.c \ +libffi.call/struct8.c libffi.call/negint.c libffi.call/struct5.c \ +libffi.call/cls_12byte.c libffi.call/cls_double_va.c \ +libffi.call/cls_longdouble.c libffi.call/cls_9byte2.c \ +libffi.call/nested_struct10.c libffi.call/nested_struct5.c \ +libffi.call/huge_struct.c diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in index 5b8f782..698c461 100644 --- a/testsuite/Makefile.in +++ b/testsuite/Makefile.in @@ -187,6 +187,70 @@ RUNTEST = `if [ -f $(top_srcdir)/../dejagnu/runtest ] ; then \ else echo runtest; fi` CLEANFILES = *.exe core* *.log *.sum +EXTRA_DIST = libffi.special/special.exp \ +libffi.special/unwindtest_ffi_call.cc libffi.special/unwindtest.cc \ +libffi.special/ffitestcxx.h config/default.exp lib/target-libpath.exp \ +lib/libffi-dg.exp lib/wrapper.exp libffi.call/float.c \ +libffi.call/cls_multi_schar.c libffi.call/float3.c \ +libffi.call/cls_3_1byte.c libffi.call/stret_large2.c \ +libffi.call/cls_5_1_byte.c libffi.call/stret_medium.c \ +libffi.call/promotion.c libffi.call/cls_dbls_struct.c \ +libffi.call/nested_struct.c libffi.call/closure_fn1.c \ +libffi.call/cls_4_1byte.c libffi.call/cls_float.c \ +libffi.call/cls_2byte.c libffi.call/closure_fn4.c \ +libffi.call/return_fl2.c libffi.call/nested_struct7.c \ +libffi.call/cls_uint.c libffi.call/cls_align_sint64.c \ +libffi.call/float1.c libffi.call/cls_19byte.c \ +libffi.call/nested_struct1.c libffi.call/cls_4byte.c \ +libffi.call/return_fl1.c libffi.call/cls_align_pointer.c \ +libffi.call/nested_struct4.c libffi.call/nested_struct3.c \ +libffi.call/struct7.c libffi.call/nested_struct9.c \ +libffi.call/cls_sshort.c libffi.call/cls_ulonglong.c \ +libffi.call/cls_pointer_stack.c libffi.call/cls_multi_uchar.c \ +libffi.call/testclosure.c libffi.call/cls_3byte1.c \ +libffi.call/struct6.c libffi.call/return_uc.c libffi.call/return_ll1.c \ +libffi.call/cls_ushort.c libffi.call/stret_medium2.c \ +libffi.call/cls_multi_ushortchar.c libffi.call/return_dbl2.c \ +libffi.call/closure_loc_fn0.c libffi.call/return_sc.c \ +libffi.call/nested_struct8.c libffi.call/cls_7_1_byte.c \ +libffi.call/return_ll.c libffi.call/cls_pointer.c \ +libffi.call/err_bad_abi.c libffi.call/return_dbl1.c \ +libffi.call/call.exp libffi.call/ffitest.h libffi.call/strlen.c \ +libffi.call/return_sl.c libffi.call/cls_1_1byte.c \ +libffi.call/struct1.c libffi.call/cls_64byte.c libffi.call/return_ul.c \ +libffi.call/cls_double.c libffi.call/many_win32.c \ +libffi.call/cls_16byte.c libffi.call/cls_align_double.c \ +libffi.call/cls_align_uint16.c libffi.call/cls_9byte1.c \ +libffi.call/cls_multi_sshortchar.c libffi.call/cls_multi_ushort.c \ +libffi.call/closure_stdcall.c libffi.call/return_fl.c \ +libffi.call/strlen_win32.c libffi.call/return_ldl.c \ +libffi.call/cls_align_float.c libffi.call/struct3.c \ +libffi.call/cls_uchar.c libffi.call/cls_sint.c libffi.call/float2.c \ +libffi.call/cls_align_longdouble_split.c \ +libffi.call/cls_longdouble_va.c libffi.call/cls_multi_sshort.c \ +libffi.call/stret_large.c libffi.call/cls_align_sint16.c \ +libffi.call/nested_struct6.c libffi.call/cls_5byte.c \ +libffi.call/return_dbl.c libffi.call/cls_20byte.c \ +libffi.call/cls_8byte.c libffi.call/pyobjc-tc.c \ +libffi.call/cls_24byte.c libffi.call/cls_align_longdouble_split2.c \ +libffi.call/cls_6_1_byte.c libffi.call/cls_schar.c \ +libffi.call/cls_18byte.c libffi.call/closure_fn3.c \ +libffi.call/err_bad_typedef.c libffi.call/closure_fn2.c \ +libffi.call/struct2.c libffi.call/cls_3byte2.c \ +libffi.call/cls_align_longdouble.c libffi.call/cls_20byte1.c \ +libffi.call/return_fl3.c libffi.call/cls_align_uint32.c \ +libffi.call/problem1.c libffi.call/float4.c \ +libffi.call/cls_align_uint64.c libffi.call/struct9.c \ +libffi.call/closure_fn5.c libffi.call/cls_align_sint32.c \ +libffi.call/closure_fn0.c libffi.call/closure_fn6.c \ +libffi.call/struct4.c libffi.call/nested_struct2.c \ +libffi.call/cls_6byte.c libffi.call/cls_7byte.c libffi.call/many.c \ +libffi.call/struct8.c libffi.call/negint.c libffi.call/struct5.c \ +libffi.call/cls_12byte.c libffi.call/cls_double_va.c \ +libffi.call/cls_longdouble.c libffi.call/cls_9byte2.c \ +libffi.call/nested_struct10.c libffi.call/nested_struct5.c \ +libffi.call/huge_struct.c + all: all-am .SUFFIXES: diff --git a/testsuite/libffi.call/huge_struct.c b/testsuite/libffi.call/huge_struct.c index d43242d..910620f 100644 --- a/testsuite/libffi.call/huge_struct.c +++ b/testsuite/libffi.call/huge_struct.c @@ -5,10 +5,10 @@ Originator: Blake Chaffin 6/18/2007 */ -/* { dg-excess-errors "" { target avr32-*-* x86_64-*-mingw* x86_64-*-cygwin* i*86-*-linux-* x86_64-*-linux-* } } */ +/* { dg-excess-errors "" { target avr32-*-* x86_64-*-mingw* x86_64-*-cygwin* } } */ /* { dg-do run { xfail mips*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */ /* { dg-options -mlong-double-128 { target powerpc64*-*-* } } */ -/* { dg-output "" { xfail avr32-*-* x86_64-*-mingw* x86_64-*-cygwin* i*86-*-linux-* x86_64-*-linux-* } } */ +/* { dg-output "" { xfail avr32-*-* x86_64-*-mingw* x86_64-*-cygwin* } } */ #include <stdint.h> @@ -131,14 +131,14 @@ test_large_fn( ui64_4 + 4, si64_4 + 4, f_4 + 4, d_4 + 4, ld_4 + 4, (char*)((intptr_t)p_4 + 4), ui8_5 + 5, si8_5 + 5}; - printf("%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %L.0f %p " - "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %L.0f %p " - "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %L.0f %p " - "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %L.0f %p %hhu %hhd: " - "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %L.0f %p " - "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %L.0f %p " - "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %L.0f %p " - "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %L.0f %p %hhu %hhd\n", + printf("%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p " + "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p " + "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p " + "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p %hhu %hhd: " + "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p " + "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p " + "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p " + "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p %hhu %hhd\n", ui8_1, si8_1, ui16_1, si16_1, ui32_1, si32_1, ui64_1, si64_1, f_1, d_1, ld_1, p_1, ui8_2, si8_2, ui16_2, si16_2, ui32_2, si32_2, ui64_2, si64_2, f_2, d_2, ld_2, p_2, ui8_3, si8_3, ui16_3, si16_3, ui32_3, si32_3, ui64_3, si64_3, f_3, d_3, ld_3, p_3, @@ -229,7 +229,9 @@ main(int argc __UNUSED__, const char** argv __UNUSED__) ffi_type ret_struct_type; ffi_type* st_fields[51]; - BigStruct retVal = {0}; + BigStruct retVal; + + memset (&retVal, 0, sizeof(retVal)); ret_struct_type.size = 0; ret_struct_type.alignment = 0; @@ -296,10 +298,10 @@ main(int argc __UNUSED__, const char** argv __UNUSED__) ffi_call(&cif, FFI_FN(test_large_fn), &retVal, argValues); // { dg-output "1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2: 2 3 4 5 6 7 8 9 10 11 12 0x12345679 3 4 5 6 7 8 9 10 11 12 13 0x1234567a 4 5 6 7 8 9 10 11 12 13 14 0x1234567b 5 6 7 8 9 10 11 12 13 14 15 0x1234567c 6 7" } - printf("res: %hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %L.0f %p " - "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %L.0f %p " - "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %L.0f %p " - "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %L.0f %p %hhu %hhd\n", + printf("res: %hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p " + "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p " + "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p " + "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p %hhu %hhd\n", retVal.a, retVal.b, retVal.c, retVal.d, retVal.e, retVal.f, retVal.g, retVal.h, retVal.i, retVal.j, retVal.k, retVal.l, retVal.m, retVal.n, retVal.o, retVal.p, retVal.q, retVal.r, @@ -324,10 +326,10 @@ main(int argc __UNUSED__, const char** argv __UNUSED__) ui8, si8, ui16, si16, ui32, si32, ui64, si64, f, d, ld, p, ui8, si8); // { dg-output "\n1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2: 2 3 4 5 6 7 8 9 10 11 12 0x12345679 3 4 5 6 7 8 9 10 11 12 13 0x1234567a 4 5 6 7 8 9 10 11 12 13 14 0x1234567b 5 6 7 8 9 10 11 12 13 14 15 0x1234567c 6 7" } - printf("res: %hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %L.0f %p " - "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %L.0f %p " - "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %L.0f %p " - "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %L.0f %p %hhu %hhd\n", + printf("res: %hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p " + "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p " + "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p " + "%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p %hhu %hhd\n", retVal.a, retVal.b, retVal.c, retVal.d, retVal.e, retVal.f, retVal.g, retVal.h, retVal.i, retVal.j, retVal.k, retVal.l, retVal.m, retVal.n, retVal.o, retVal.p, retVal.q, retVal.r, |