summaryrefslogtreecommitdiff
path: root/test/Unit/test
diff options
context:
space:
mode:
Diffstat (limited to 'test/Unit/test')
-rwxr-xr-xtest/Unit/test36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/Unit/test b/test/Unit/test
new file mode 100755
index 000000000..f5b68b235
--- /dev/null
+++ b/test/Unit/test
@@ -0,0 +1,36 @@
+for ARCH in i386 x86_64 ppc; do
+ for FILE in $(ls *.c); do
+ # Use -nodefaultlibs to avoid using libgcc.a
+ # Use -lSystem to link with libSystem.dylb.
+ # Note -lSystem is *after* libcompiler_rt.Optimized.a so that linker will
+ # prefer our implementation over the ones in libSystem.dylib
+ EXTRA=
+ if test $FILE = gcc_personality_test.c
+ then
+ # the gcc_personality_test.c requires a helper C++ program
+ EXTRA="-fexceptions gcc_personality_test_helper.cxx -lstdc++ /usr/lib/libgcc_s.1.dylib"
+ # the libgcc_s.1.dylib use at the end is a hack until libSystem contains _Unwind_Resume
+ fi
+ if test $FILE = trampoline_setup_test.c
+ then
+ # this test requires an extra compiler option
+ EXTRA="-fnested-functions"
+ fi
+ if gcc -nodefaultlibs -arch $ARCH -Os $FILE ../../Release/libcompiler_rt.Optimized.a -lSystem $EXTRA
+ then
+ echo "Testing $FILE for $ARCH"
+ if ./a.out
+ then
+ rm ./a.out
+ else
+ echo "fail"
+ exit 1
+ fi
+ else
+ echo "$FILE failed to compile"
+ exit 1
+ fi
+ done
+done
+echo "pass"
+exit