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