diff options
author | Howard Hinnant <hhinnant@apple.com> | 2012-01-31 20:10:33 +0000 |
---|---|---|
committer | Howard Hinnant <hhinnant@apple.com> | 2012-01-31 20:10:33 +0000 |
commit | 9fb5709499823d560501170735097ba77152aa5d (patch) | |
tree | 8a7cb71ef39e2eb58e940f5f384378fe8f69dde9 /test/testit | |
parent | 6953d901c3fd95e27241b305f35a0fc97bd881e6 (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-x | test/testit | 129 |
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 |