#!/bin/sh # //===--------------------------- testit ---------------------------------===// # // # // The LLVM Compiler Infrastructure # // # // This file is distributed under the University of Illinois Open Source # // License. See LICENSE.TXT for details. # // # //===--------------------------------------------------------------------===// 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 afunc() { fail=0 pass=0 if (ls *.fail.cpp > /dev/null 2>&1) then for FILE in $(ls *.fail.cpp); do if $CC $OPTIONS $HEADER_INCLUDE $SOURCE_LIB $FILE $LIBS -o ./$TEST_EXE > /dev/null 2>&1 then rm ./$TEST_EXE echo "$FILE should not compile" fail=$(($fail + 1)) else pass=$(($pass + 1)) fi done fi if (ls *.cpp > /dev/null 2>&1) then for FILE in $(ls *.pass.cpp); do if $CC $OPTIONS $HEADER_INCLUDE $SOURCE_LIB $FILE $LIBS -o ./$TEST_EXE then if ./$TEST_EXE then rm ./$TEST_EXE pass=$(($pass + 1)) else echo "$FILE failed at run time" fail=$(($fail + 1)) rm ./$TEST_EXE fi else echo "$FILE failed to compile" fail=$(($fail + 1)) fi done fi if [ $fail -gt 0 ] then echo "failed $fail tests in `pwd`" IMPLEMENTED_FAIL=$(($IMPLEMENTED_FAIL + 1)) fi if [ $pass -gt 0 ] then echo "passed $pass tests in `pwd`" if [ $fail -eq 0 ] then IMPLEMENTED_PASS=$(($IMPLEMENTED_PASS + 1)) fi fi if [ $fail -eq 0 -a $pass -eq 0 ] then echo "not implemented: `pwd`" UNIMPLEMENTED=$(($UNIMPLEMENTED + 1)) fi FAIL=$(($FAIL + $fail)) PASS=$(($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