xref: /aosp_15_r20/external/libcxxabi/test/testit (revision c05d8e5dc3e10f6ce4317e8bc22cc4a25f55fa94)
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