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