1#!/bin/sh 2#===------------------------------ testit ----------------------------------===# 3# 4# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5# See https://llvm.org/LICENSE.txt for license information. 6# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7# 8#===------------------------------------------------------------------------===# 9 10if [ -z "$CC" ] 11then 12 CC=clang++ 13fi 14 15if [ -z "$OPTIONS" ] 16then 17 OPTIONS="-std=c++0x -stdlib=libc++" 18fi 19 20case $TRIPLE in 21 *-*-mingw* | *-*-cygwin* | *-*-win*) 22 TEST_EXE=test.exe 23 ;; 24 *) 25 TEST_EXE=a.out 26 ;; 27esac 28 29FAIL=0 30PASS=0 31UNIMPLEMENTED=0 32IMPLEMENTED_FAIL=0 33IMPLEMENTED_PASS=0 34 35afunc() 36{ 37 fail=0 38 pass=0 39 if (ls *.fail.cpp > /dev/null 2>&1) 40 then 41 for FILE in $(ls *.fail.cpp); do 42 if $CC $OPTIONS $HEADER_INCLUDE $SOURCE_LIB $FILE $LIBS -o ./$TEST_EXE > /dev/null 2>&1 43 then 44 rm ./$TEST_EXE 45 echo "$FILE should not compile" 46 fail=$(($fail + 1)) 47 else 48 pass=$(($pass + 1)) 49 fi 50 done 51 fi 52 53 if (ls *.cpp > /dev/null 2>&1) 54 then 55 for FILE in $(ls *.pass.cpp); do 56 if $CC $OPTIONS $HEADER_INCLUDE $SOURCE_LIB $FILE $LIBS -o ./$TEST_EXE 57 then 58 if ./$TEST_EXE 59 then 60 rm ./$TEST_EXE 61 pass=$(($pass + 1)) 62 else 63 echo "$FILE failed at run time" 64 fail=$(($fail + 1)) 65 rm ./$TEST_EXE 66 fi 67 else 68 echo "$FILE failed to compile" 69 fail=$(($fail + 1)) 70 fi 71 done 72 fi 73 74 if [ $fail -gt 0 ] 75 then 76 echo "failed $fail tests in `pwd`" 77 IMPLEMENTED_FAIL=$(($IMPLEMENTED_FAIL + 1)) 78 fi 79 if [ $pass -gt 0 ] 80 then 81 echo "passed $pass tests in `pwd`" 82 if [ $fail -eq 0 ] 83 then 84 IMPLEMENTED_PASS=$(($IMPLEMENTED_PASS + 1)) 85 fi 86 fi 87 if [ $fail -eq 0 -a $pass -eq 0 ] 88 then 89 echo "not implemented: `pwd`" 90 UNIMPLEMENTED=$(($UNIMPLEMENTED + 1)) 91 fi 92 93 FAIL=$(($FAIL + $fail)) 94 PASS=$(($PASS + $pass)) 95 96 for FILE in * 97 do 98 if [ -d "$FILE" ]; 99 then 100 cd $FILE 101 afunc 102 cd .. 103 fi 104 done 105} 106 107afunc 108 109echo "****************************************************" 110echo "Results for `pwd`:" 111echo "using `$CC --version`" 112echo "with $OPTIONS $HEADER_INCLUDE $SOURCE_LIB" 113echo "----------------------------------------------------" 114echo "sections without tests : $UNIMPLEMENTED" 115echo "sections with failures : $IMPLEMENTED_FAIL" 116echo "sections without failures: $IMPLEMENTED_PASS" 117echo " + ----" 118echo "total number of sections : $(($UNIMPLEMENTED+$IMPLEMENTED_FAIL+$IMPLEMENTED_PASS))" 119echo "----------------------------------------------------" 120echo "number of tests failed : $FAIL" 121echo "number of tests passed : $PASS" 122echo " + ----" 123echo "total number of tests : $(($FAIL+$PASS))" 124echo "****************************************************" 125 126exit $FAIL 127