testit revision e45805f0d3f8dafef1297cc7dc49e610713f023b
18600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock#!/bin/sh 28600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock# //===--------------------------- testit ---------------------------------===// 38600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock# // 48600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock# // The LLVM Compiler Infrastructure 58600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock# // 68600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock# // This file is distributed under the University of Illinois Open Source 78600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock# // License. See LICENSE.TXT for details. 88600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock# // 98600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock# //===--------------------------------------------------------------------===// 108600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock 118600534df66c2ff5846ed230b50c56229322d48aJohn Spurlockif [ -z "$CC" ] 128600534df66c2ff5846ed230b50c56229322d48aJohn Spurlockthen 138600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock CC=clang++ 148600534df66c2ff5846ed230b50c56229322d48aJohn Spurlockfi 158600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock 168600534df66c2ff5846ed230b50c56229322d48aJohn Spurlockif [ -z "$OPTIONS" ] 178600534df66c2ff5846ed230b50c56229322d48aJohn Spurlockthen 188600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock OPTIONS="-std=c++0x -stdlib=libc++" 193e0770163686c1be83959d681976dafaf25272e1John Spurlockfi 20530052a2fe3b6a6a4246ce28ab0ced647fe7f470John Spurlock 219c4a707912da2c954b2d3d1311b8a691ded8aa16Selim Cinekcase $TRIPLE in 22530052a2fe3b6a6a4246ce28ab0ced647fe7f470John Spurlock *-*-mingw* | *-*-cygwin* | *-*-win*) 238600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock TEST_EXE=test.exe 248600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock ;; 25856edebad73560e9b1cce021a7de9a0470d07176John Spurlock *) 26856edebad73560e9b1cce021a7de9a0470d07176John Spurlock TEST_EXE=a.out 27b71e68f9aa44b220cabaace70493751538d94dc0John Spurlock ;; 288600534df66c2ff5846ed230b50c56229322d48aJohn Spurlockesac 29530052a2fe3b6a6a4246ce28ab0ced647fe7f470John Spurlock 308600534df66c2ff5846ed230b50c56229322d48aJohn SpurlockFAIL=0 318600534df66c2ff5846ed230b50c56229322d48aJohn SpurlockPASS=0 328600534df66c2ff5846ed230b50c56229322d48aJohn SpurlockUNIMPLEMENTED=0 338600534df66c2ff5846ed230b50c56229322d48aJohn SpurlockIMPLEMENTED_FAIL=0 34ae641c9ccd3f81214cee54a5f13804f1765187adJohn SpurlockIMPLEMENTED_PASS=0 358600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock 36856edebad73560e9b1cce021a7de9a0470d07176John Spurlockafunc() 37c90e6fe863bb5ac84612bd777d3b352f69265950John Spurlock{ 38530052a2fe3b6a6a4246ce28ab0ced647fe7f470John Spurlock fail=0 398600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock pass=0 40856edebad73560e9b1cce021a7de9a0470d07176John Spurlock if (ls *.fail.cpp > /dev/null 2>&1) 418f8ecd620c796834a1048ec98f0e8072f5ad926cJohn Spurlock then 428600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock for FILE in $(ls *.fail.cpp); do 438600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock if $CC $OPTIONS $HEADER_INCLUDE $SOURCE_LIB $FILE $LIBS -o ./$TEST_EXE > /dev/null 2>&1 443e0770163686c1be83959d681976dafaf25272e1John Spurlock then 453e0770163686c1be83959d681976dafaf25272e1John Spurlock rm ./$TEST_EXE 463e0770163686c1be83959d681976dafaf25272e1John Spurlock echo "$FILE should not compile" 478600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock fail=$(($fail + 1)) 488600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock else 498600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock pass=$(($pass + 1)) 508600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock fi 518600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock done 528600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock fi 538600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock 548600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock if (ls *.cpp > /dev/null 2>&1) 558600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock then 568600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock for FILE in $(ls *.cpp); do 57530052a2fe3b6a6a4246ce28ab0ced647fe7f470John Spurlock if $CC $OPTIONS $HEADER_INCLUDE $SOURCE_LIB $FILE $LIBS -o ./$TEST_EXE 58530052a2fe3b6a6a4246ce28ab0ced647fe7f470John Spurlock then 598600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock if ./$TEST_EXE 60856edebad73560e9b1cce021a7de9a0470d07176John Spurlock then 618600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock rm ./$TEST_EXE 628600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock pass=$(($pass + 1)) 63ae641c9ccd3f81214cee54a5f13804f1765187adJohn Spurlock else 64ae641c9ccd3f81214cee54a5f13804f1765187adJohn Spurlock echo "$FILE failed at run time" 65856edebad73560e9b1cce021a7de9a0470d07176John Spurlock fail=$(($fail + 1)) 6650806fc4ceff4bb093a18bdecb506163e68b9cbbJohn Spurlock rm ./$TEST_EXE 6750806fc4ceff4bb093a18bdecb506163e68b9cbbJohn Spurlock fi 6850806fc4ceff4bb093a18bdecb506163e68b9cbbJohn Spurlock else 69ae641c9ccd3f81214cee54a5f13804f1765187adJohn Spurlock echo "$FILE failed to compile" 7050806fc4ceff4bb093a18bdecb506163e68b9cbbJohn Spurlock fail=$(($fail + 1)) 714dd81467e33a694138da6916fc68ca79501a9429Jason Monk fi 72856edebad73560e9b1cce021a7de9a0470d07176John Spurlock done 73856edebad73560e9b1cce021a7de9a0470d07176John Spurlock fi 74856edebad73560e9b1cce021a7de9a0470d07176John Spurlock 75ae641c9ccd3f81214cee54a5f13804f1765187adJohn Spurlock if [ $fail -gt 0 ] 76530052a2fe3b6a6a4246ce28ab0ced647fe7f470John Spurlock then 77856edebad73560e9b1cce021a7de9a0470d07176John Spurlock echo "failed $fail tests in `pwd`" 788600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock IMPLEMENTED_FAIL=$(($IMPLEMENTED_FAIL + 1)) 798600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock fi 807f1df5e98578f8532a5e009009e7c1f82ed5885cJohn Spurlock if [ $pass -gt 0 ] 818600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock then 828600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock echo "passed $pass tests in `pwd`" 838f8ecd620c796834a1048ec98f0e8072f5ad926cJohn Spurlock if [ $fail -eq 0 ] 84661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock then 858f8ecd620c796834a1048ec98f0e8072f5ad926cJohn Spurlock IMPLEMENTED_PASS=$(($IMPLEMENTED_PASS + 1)) 868f8ecd620c796834a1048ec98f0e8072f5ad926cJohn Spurlock fi 873e0770163686c1be83959d681976dafaf25272e1John Spurlock fi 883e0770163686c1be83959d681976dafaf25272e1John Spurlock if [ $fail -eq 0 -a $pass -eq 0 ] 89530052a2fe3b6a6a4246ce28ab0ced647fe7f470John Spurlock then 90530052a2fe3b6a6a4246ce28ab0ced647fe7f470John Spurlock echo "not implemented: `pwd`" 91530052a2fe3b6a6a4246ce28ab0ced647fe7f470John Spurlock UNIMPLEMENTED=$(($UNIMPLEMENTED + 1)) 92530052a2fe3b6a6a4246ce28ab0ced647fe7f470John Spurlock fi 930b688503754737a20165f0cff1833e714a5c4164John Spurlock 94856edebad73560e9b1cce021a7de9a0470d07176John Spurlock FAIL=$(($FAIL + $fail)) 95eb2727bb2f0f32016ca7c4bdd2c0a79eec8cb80aJohn Spurlock PASS=$(($PASS + $pass)) 96ae641c9ccd3f81214cee54a5f13804f1765187adJohn Spurlock 97ae641c9ccd3f81214cee54a5f13804f1765187adJohn Spurlock for FILE in * 98ae641c9ccd3f81214cee54a5f13804f1765187adJohn Spurlock do 99ae641c9ccd3f81214cee54a5f13804f1765187adJohn Spurlock if [ -d "$FILE" ]; 100ae641c9ccd3f81214cee54a5f13804f1765187adJohn Spurlock then 1017f8f22a53005f776c8ee4d299e748e74b077ffd9John Spurlock cd $FILE 102ae641c9ccd3f81214cee54a5f13804f1765187adJohn Spurlock afunc 103ae641c9ccd3f81214cee54a5f13804f1765187adJohn Spurlock cd .. 1048600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock fi 1058600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock done 1068600534df66c2ff5846ed230b50c56229322d48aJohn Spurlock} 1074db0d98b42a723f2e16c6595e85e866fd26c6d98John Spurlock 1084db0d98b42a723f2e16c6595e85e866fd26c6d98John Spurlockafunc 109856edebad73560e9b1cce021a7de9a0470d07176John Spurlock 110ae641c9ccd3f81214cee54a5f13804f1765187adJohn Spurlockecho "****************************************************" 111530052a2fe3b6a6a4246ce28ab0ced647fe7f470John Spurlockecho "Results for `pwd`:" 112fbb3d6ff392e9cd13fea49f85f12efd0a304d448John Spurlockecho "using `$CC --version`" 1138f8ecd620c796834a1048ec98f0e8072f5ad926cJohn Spurlockecho "with $OPTIONS $HEADER_INCLUDE $SOURCE_LIB" 1143e0770163686c1be83959d681976dafaf25272e1John Spurlockecho "----------------------------------------------------" 1154db0d98b42a723f2e16c6595e85e866fd26c6d98John Spurlockecho "sections without tests : $UNIMPLEMENTED" 1164db0d98b42a723f2e16c6595e85e866fd26c6d98John Spurlockecho "sections with failures : $IMPLEMENTED_FAIL" 1174db0d98b42a723f2e16c6595e85e866fd26c6d98John Spurlockecho "sections without failures: $IMPLEMENTED_PASS" 1188600534df66c2ff5846ed230b50c56229322d48aJohn Spurlockecho " + ----" 1198600534df66c2ff5846ed230b50c56229322d48aJohn Spurlockecho "total number of sections : $(($UNIMPLEMENTED+$IMPLEMENTED_FAIL+$IMPLEMENTED_PASS))" 1208600534df66c2ff5846ed230b50c56229322d48aJohn Spurlockecho "----------------------------------------------------" 1217f1df5e98578f8532a5e009009e7c1f82ed5885cJohn Spurlockecho "number of tests failed : $FAIL" 1228f8ecd620c796834a1048ec98f0e8072f5ad926cJohn Spurlockecho "number of tests passed : $PASS" 123f7d22132c2c9b83134b05aaed63a89f61c639fd9John Spurlockecho " + ----" 124661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlockecho "total number of tests : $(($FAIL+$PASS))" 125b71e68f9aa44b220cabaace70493751538d94dc0John Spurlockecho "****************************************************" 1268f8ecd620c796834a1048ec98f0e8072f5ad926cJohn Spurlock 1278f8ecd620c796834a1048ec98f0e8072f5ad926cJohn Spurlockexit $FAIL 1283e0770163686c1be83959d681976dafaf25272e1John Spurlock