Upstream version 8.36.169.0
[platform/framework/web/crosswalk.git] / src / third_party / libc++ / trunk / test / testit
1 #!/bin/sh
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
11 currentpath=`pwd`
12 origpath=$currentpath
13 currentdir=`basename $currentpath`
14 while [ $currentdir != "test" ]; do
15         if [ $currentdir = "/" ]
16         then
17                 echo "current directory must be in or under \"test\"."
18                 exit 1
19         fi
20         cd ..
21         currentpath=`pwd`
22         currentdir=`basename $currentpath`
23 done
24
25 cd ..
26 LIBCXX_ROOT=`pwd`
27 cd $origpath
28
29 if [ -z "$CC" ]
30 then
31         if which xcrun >/dev/null
32         then
33                 CC="xcrun clang++"
34         else
35                 CC=clang++
36         fi
37 fi
38
39 if [ -z "$CXX_LANG" ]
40 then
41     CXX_LANG=c++11
42 fi
43 if [ -z "$OPTIONS" ]
44 then
45         OPTIONS="-std=${CXX_LANG} -stdlib=libc++"
46 fi
47 OPTIONS="$OPTIONS -I$LIBCXX_ROOT/test/support"
48
49 if [ -z "$HEADER_INCLUDE" ]
50 then
51        HEADER_INCLUDE="-I$LIBCXX_ROOT/include"
52 fi
53
54 if [ -z "$SOURCE_LIB" ]
55 then
56        SOURCE_LIB="-L$LIBCXX_ROOT/lib"
57 fi
58
59 case $TRIPLE in
60   *-*-mingw* | *-*-cygwin* | *-*-win*)
61         TEST_EXE=test.exe
62     ;;
63   *)
64     TEST_EXE=a.out
65     ;;
66 esac
67
68 case $(uname -s) in
69    NetBSD)
70      THREAD_FLAGS=-lpthread
71      ;;
72 esac
73
74 FAIL=0
75 PASS=0
76 UNIMPLEMENTED=0
77 IMPLEMENTED_FAIL=0
78 IMPLEMENTED_PASS=0
79
80 afunc() {
81         fail=0
82         pass=0
83         if (ls ${TEST_PREFIX}*fail.cpp > /dev/null 2>&1)
84         then
85                 for FILE in $(ls ${TEST_PREFIX}*fail.cpp); do
86                         if $CC $OPTIONS $HEADER_INCLUDE $SOURCE_LIB $FILE $LIBS -o ./$TEST_EXE > /dev/null 2>&1
87                         then
88                                 rm ./$TEST_EXE
89                                 echo "$FILE should not compile"
90                                 fail=$(($fail+1))
91                         else
92                                 pass=$(($pass+1))
93                         fi
94                 done
95         fi
96
97         if (ls ${TEST_PREFIX}*pass.cpp > /dev/null 2>&1)
98         then
99                 for FILE in $(ls ${TEST_PREFIX}*pass.cpp); do
100             if [ "$VERBOSE" ]
101             then
102                 echo "Running test: " $FILE
103             fi
104                         if $CC $OPTIONS $HEADER_INCLUDE $SOURCE_LIB $FILE $LIBS $(test $1 = no || echo $THREAD_FLAGS) -o ./$TEST_EXE
105                         then
106                                 if ./$TEST_EXE
107                                 then
108                                         rm ./$TEST_EXE
109                                         pass=$(($pass+1))
110                                 else
111                                         echo "`pwd`/$FILE failed at run time"
112                                         echo "Compile line was:" $CC $OPTIONS $HEADER_INCLUDE $SOURCE_LIB $FILE $LIBS $(test $1 = no || echo $THREAD_FLAGS)
113                                         fail=$(($fail+1))
114                                         rm ./$TEST_EXE
115                                 fi
116                         else
117                                 echo "`pwd`/$FILE failed to compile"
118                                 echo "Compile line was:" $CC $OPTIONS $HEADER_INCLUDE $SOURCE_LIB $FILE $LIBS $(test $1 = no || echo $THREAD_FLAGS)
119                                 fail=$(($fail+1))
120                         fi
121                 done
122         fi
123
124         if [ $fail -gt 0 ]
125         then
126                 echo "failed $fail tests in `pwd`"
127                 IMPLEMENTED_FAIL=$(($IMPLEMENTED_FAIL+1))
128         fi
129         if [ $pass -gt 0 ]
130         then
131                 echo "passed $pass tests in `pwd`"
132                 if [ $fail -eq 0 ]
133                 then
134                         IMPLEMENTED_PASS=$((IMPLEMENTED_PASS+1))
135                 fi
136         fi
137         if [ $fail -eq 0 -a $pass -eq 0 ]
138         then
139                 echo "not implemented:  `pwd`"
140                 UNIMPLEMENTED=$(($UNIMPLEMENTED+1))
141         fi
142
143         FAIL=$(($FAIL+$fail))
144         PASS=$(($PASS+$pass))
145
146         for FILE in *
147         do
148                 if [ -d "$FILE" ];
149                 then
150                         cd $FILE
151                         if [ $FILE = thread -o $1 = yes ]; then
152                                 afunc yes
153                         else
154                                 afunc no
155                         fi
156                         cd ..
157                 fi
158         done
159 }
160
161 afunc no
162
163 echo "****************************************************"
164 echo "Results for `pwd`:"
165 echo "using `$CC --version`"
166 echo "with $OPTIONS $HEADER_INCLUDE $SOURCE_LIB"
167 echo "----------------------------------------------------"
168 echo "sections without tests   : $UNIMPLEMENTED"
169 echo "sections with failures   : $IMPLEMENTED_FAIL"
170 echo "sections without failures: $IMPLEMENTED_PASS"
171 echo "                       +   ----"
172 echo "total number of sections : $(($UNIMPLEMENTED+$IMPLEMENTED_FAIL+$IMPLEMENTED_PASS))"
173 echo "----------------------------------------------------"
174 echo "number of tests failed   : $FAIL"
175 echo "number of tests passed   : $PASS"
176 echo "                       +   ----"
177 echo "total number of tests    : $(($FAIL+$PASS))"
178 echo "****************************************************"
179
180 exit $FAIL