Newer
Older
#!/bin/bash
# //===--------------------------- 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
if which xcrun >/dev/null
then
CC="xcrun clang++"
else
CC=clang++
fi
Howard Hinnant
committed
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
Howard Hinnant
committed
if $CC $OPTIONS $HEADER_INCLUDE $SOURCE_LIB $FILE $LIBS -o ./$TEST_EXE &> /dev/null
Howard Hinnant
committed
rm ./$TEST_EXE
echo "$FILE should not compile"
let "fail+=1"
else
let "pass+=1"
fi
done
fi
if (ls *.pass.cpp &> /dev/null)
then
for FILE in $(ls *.pass.cpp); do
Howard Hinnant
committed
if $CC $OPTIONS $HEADER_INCLUDE $SOURCE_LIB $FILE $LIBS -o ./$TEST_EXE
Howard Hinnant
committed
if ./$TEST_EXE
Howard Hinnant
committed
rm ./$TEST_EXE
let "pass+=1"
else
echo "$FILE failed at run time"
let "fail+=1"
Howard Hinnant
committed
rm ./$TEST_EXE
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
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