summaryrefslogtreecommitdiff
path: root/test/testit
diff options
context:
space:
mode:
authorHoward Hinnant <hhinnant@apple.com>2012-01-31 20:10:33 +0000
committerHoward Hinnant <hhinnant@apple.com>2012-01-31 20:10:33 +0000
commit9fb5709499823d560501170735097ba77152aa5d (patch)
tree8a7cb71ef39e2eb58e940f5f384378fe8f69dde9 /test/testit
parent6953d901c3fd95e27241b305f35a0fc97bd881e6 (diff)
Drop the stress a notch on dynamic_cast_stress.cpp. Otherwise it occasionally causes clang to crash. Put a noexcept(false) on a throwing destructor in test_vector1.cpp. The test now passes for both C++03 and C++11 modes. Add testit script. All tests are now PASSING :-)
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149413 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/testit')
-rwxr-xr-xtest/testit129
1 files changed, 129 insertions, 0 deletions
diff --git a/test/testit b/test/testit
new file mode 100755
index 0000000..8e758bc
--- /dev/null
+++ b/test/testit
@@ -0,0 +1,129 @@
+#!/bin/bash
+# //===--------------------------- testit ---------------------------------===//
+# //
+# // The LLVM Compiler Infrastructure
+# //
+# // This file is distributed under the University of Illinois Open Source
+# // License. See LICENSE.TXT for details.
+# //
+# //===--------------------------------------------------------------------===//
+
+export DYLD_LIBRARY_PATH=/Users/hhinnant/Development/libcxxabi/lib:/Users/hhinnant/Development/temp_libcxx/lib
+
+if [ -z $CC ]
+then
+ CC=clang++
+fi
+
+if [ -z "$OPTIONS" ]
+then
+ OPTIONS="-std=c++0x -stdlib=libc++"
+fi
+
+case $TRIPLE in
+ *-*-mingw* | *-*-cygwin* | *-*-win*)
+ TEST_EXE=test.exe
+ ;;
+ *)
+ TEST_EXE=a.out
+ ;;
+esac
+
+FAIL=0
+PASS=0
+UNIMPLEMENTED=0
+IMPLEMENTED_FAIL=0
+IMPLEMENTED_PASS=0
+
+function afunc
+{
+ fail=0
+ pass=0
+ if (ls *.fail.cpp &> /dev/null)
+ then
+ for FILE in $(ls *.fail.cpp); do
+ if $CC $OPTIONS $HEADER_INCLUDE $SOURCE_LIB $FILE $LIBS -o ./$TEST_EXE &> /dev/null
+ then
+ rm ./$TEST_EXE
+ echo "$FILE should not compile"
+ let "fail+=1"
+ else
+ let "pass+=1"
+ fi
+ done
+ fi
+
+ if (ls *.cpp &> /dev/null)
+ then
+ for FILE in $(ls *.cpp); do
+ if $CC $OPTIONS $HEADER_INCLUDE $SOURCE_LIB $FILE $LIBS -o ./$TEST_EXE
+ then
+ if ./$TEST_EXE
+ then
+ rm ./$TEST_EXE
+ let "pass+=1"
+ else
+ echo "$FILE failed at run time"
+ let "fail+=1"
+ rm ./$TEST_EXE
+ fi
+ else
+ echo "$FILE failed to compile"
+ let "fail+=1"
+ fi
+ done
+ fi
+
+ if [ $fail -gt 0 ]
+ then
+ echo "failed $fail tests in `pwd`"
+ let "IMPLEMENTED_FAIL+=1"
+ fi
+ if [ $pass -gt 0 ]
+ then
+ echo "passed $pass tests in `pwd`"
+ if [ $fail -eq 0 ]
+ then
+ let "IMPLEMENTED_PASS+=1"
+ fi
+ fi
+ if [ $fail -eq 0 -a $pass -eq 0 ]
+ then
+ echo "not implemented: `pwd`"
+ let "UNIMPLEMENTED+=1"
+ fi
+
+ let "FAIL+=$fail"
+ let "PASS+=$pass"
+
+ for FILE in *
+ do
+ if [ -d "$FILE" ];
+ then
+ cd $FILE
+ afunc
+ cd ..
+ fi
+ done
+}
+
+afunc
+
+echo "****************************************************"
+echo "Results for `pwd`:"
+echo "using `$CC --version`"
+echo "with $OPTIONS $HEADER_INCLUDE $SOURCE_LIB"
+echo "----------------------------------------------------"
+echo "sections without tests : $UNIMPLEMENTED"
+echo "sections with failures : $IMPLEMENTED_FAIL"
+echo "sections without failures: $IMPLEMENTED_PASS"
+echo " + ----"
+echo "total number of sections : $(($UNIMPLEMENTED+$IMPLEMENTED_FAIL+$IMPLEMENTED_PASS))"
+echo "----------------------------------------------------"
+echo "number of tests failed : $FAIL"
+echo "number of tests passed : $PASS"
+echo " + ----"
+echo "total number of tests : $(($FAIL+$PASS))"
+echo "****************************************************"
+
+exit $FAIL