 4684ddb6aa
			
		
	
	
		4684ddb6aa
		
	
	
	
	
		
			
			- import libcxx - reduce targets to the one when compiled as a tools Change-Id: Iabb8427f80ff8e89463559a28bcb8b4f2bdbc496
		
			
				
	
	
		
			177 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			177 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| # //===--------------------------- testit ---------------------------------===//
 | |
| # //
 | |
| # //                     The LLVM Compiler Infrastructure
 | |
| # //
 | |
| # // This file is distributed under the University of Illinois Open Source
 | |
| # // License. See LICENSE.TXT for details.
 | |
| # //
 | |
| # //===--------------------------------------------------------------------===//
 | |
| 
 | |
| currentpath=`pwd`
 | |
| origpath=$currentpath
 | |
| currentdir=`basename $currentpath`
 | |
| while [ $currentdir != "test" ]; do
 | |
| 	if [ $currentdir = "/" ]
 | |
| 	then
 | |
| 		echo "current directory must be in or under \"test\"."
 | |
| 		exit 1
 | |
| 	fi
 | |
| 	cd ..
 | |
| 	currentpath=`pwd`
 | |
| 	currentdir=`basename $currentpath`
 | |
| done
 | |
| 
 | |
| cd ..
 | |
| LIBCXX_ROOT=`pwd`
 | |
| cd $origpath
 | |
| 
 | |
| if [ -z "$CC" ]
 | |
| then
 | |
| 	if which xcrun >/dev/null
 | |
| 	then
 | |
| 		CC="xcrun clang++"
 | |
| 	else
 | |
| 		CC=clang++
 | |
| 	fi
 | |
| fi
 | |
| 
 | |
| if [ -z "$OPTIONS" ]
 | |
| then
 | |
| 	OPTIONS="-std=c++11 -stdlib=libc++"
 | |
| fi
 | |
| OPTIONS="$OPTIONS -I$LIBCXX_ROOT/test/support"
 | |
| 
 | |
| if [ -z "$HEADER_INCLUDE" ]
 | |
| then
 | |
|        HEADER_INCLUDE="-I$LIBCXX_ROOT/include"
 | |
| fi
 | |
| 
 | |
| if [ -z "$SOURCE_LIB" ]
 | |
| then
 | |
|        SOURCE_LIB="-L$LIBCXX_ROOT/lib"
 | |
| fi
 | |
| 
 | |
| case $TRIPLE in
 | |
|   *-*-mingw* | *-*-cygwin* | *-*-win*)
 | |
| 	TEST_EXE=test.exe
 | |
|     ;;
 | |
|   *)
 | |
|     TEST_EXE=a.out
 | |
|     ;;
 | |
| esac
 | |
| 
 | |
| case $(uname -s) in
 | |
|    NetBSD)
 | |
|      THREAD_FLAGS=-lpthread
 | |
|      ;;
 | |
| esac
 | |
| 
 | |
| FAIL=0
 | |
| PASS=0
 | |
| UNIMPLEMENTED=0
 | |
| IMPLEMENTED_FAIL=0
 | |
| IMPLEMENTED_PASS=0
 | |
| 
 | |
| afunc() {
 | |
| 	fail=0
 | |
| 	pass=0
 | |
| 	if (ls *.fail.cpp > /dev/null 2>&1)
 | |
| 	then
 | |
| 		for FILE in $(ls *.fail.cpp); do
 | |
| 			if $CC $OPTIONS $HEADER_INCLUDE $SOURCE_LIB $FILE $LIBS -o ./$TEST_EXE > /dev/null 2>&1
 | |
| 			then
 | |
| 				rm ./$TEST_EXE
 | |
| 				echo "$FILE should not compile"
 | |
| 				fail=$(($fail+1))
 | |
| 			else
 | |
| 				pass=$(($pass+1))
 | |
| 			fi
 | |
| 		done
 | |
| 	fi
 | |
| 
 | |
| 	if (ls *.pass.cpp > /dev/null 2>&1)
 | |
| 	then
 | |
| 		for FILE in $(ls *.pass.cpp); do
 | |
|             if [ "$VERBOSE" ]
 | |
|             then
 | |
|              	echo "Running test: " $FILE
 | |
|             fi
 | |
| 			if $CC $OPTIONS $HEADER_INCLUDE $SOURCE_LIB $FILE $LIBS $(test $1 = no || echo $THREAD_FLAGS) -o ./$TEST_EXE
 | |
| 			then
 | |
| 				if ./$TEST_EXE
 | |
| 				then
 | |
| 					rm ./$TEST_EXE
 | |
| 					pass=$(($pass+1))
 | |
| 				else
 | |
| 					echo "`pwd`/$FILE failed at run time"
 | |
| 					echo "Compile line was:" $CC $OPTIONS $HEADER_INCLUDE $SOURCE_LIB $FILE $LIBS $(test $1 = no || echo $THREAD_FLAGS)
 | |
| 					fail=$(($fail+1))
 | |
| 					rm ./$TEST_EXE
 | |
| 				fi
 | |
| 			else
 | |
| 				echo "`pwd`/$FILE failed to compile"
 | |
| 				echo "Compile line was:" $CC $OPTIONS $HEADER_INCLUDE $SOURCE_LIB $FILE $LIBS $(test $1 = no || echo $THREAD_FLAGS)
 | |
| 				fail=$(($fail+1))
 | |
| 			fi
 | |
| 		done
 | |
| 	fi
 | |
| 
 | |
| 	if [ $fail -gt 0 ]
 | |
| 	then
 | |
| 		echo "failed $fail tests in `pwd`"
 | |
| 		IMPLEMENTED_FAIL=$(($IMPLEMENTED_FAIL+1))
 | |
| 	fi
 | |
| 	if [ $pass -gt 0 ]
 | |
| 	then
 | |
| 		echo "passed $pass tests in `pwd`"
 | |
| 		if [ $fail -eq 0 ]
 | |
| 		then
 | |
| 			IMPLEMENTED_PASS=$((IMPLEMENTED_PASS+1))
 | |
| 		fi
 | |
| 	fi
 | |
| 	if [ $fail -eq 0 -a $pass -eq 0 ]
 | |
| 	then
 | |
| 		echo "not implemented:  `pwd`"
 | |
| 		UNIMPLEMENTED=$(($UNIMPLEMENTED+1))
 | |
| 	fi
 | |
| 
 | |
| 	FAIL=$(($FAIL+$fail))
 | |
| 	PASS=$(($PASS+$pass))
 | |
| 
 | |
| 	for FILE in *
 | |
| 	do
 | |
| 		if [ -d "$FILE" ];
 | |
| 		then
 | |
| 			cd $FILE
 | |
| 			if [ $FILE = thread -o $1 = yes ]; then
 | |
| 				afunc yes
 | |
| 			else
 | |
| 				afunc no
 | |
| 			fi
 | |
| 			cd ..
 | |
| 		fi
 | |
| 	done
 | |
| }
 | |
| 
 | |
| afunc no
 | |
| 
 | |
| echo "****************************************************"
 | |
| echo "Results for `pwd`:"
 | |
| echo "using `$CC --version`"
 | |
| echo "with $OPTIONS $HEADER_INCLUDE $SOURCE_LIB"
 | |
| echo "----------------------------------------------------"
 | |
| echo "sections without tests   : $UNIMPLEMENTED"
 | |
| echo "sections with failures   : $IMPLEMENTED_FAIL"
 | |
| echo "sections without failures: $IMPLEMENTED_PASS"
 | |
| echo "                       +   ----"
 | |
| echo "total number of sections : $(($UNIMPLEMENTED+$IMPLEMENTED_FAIL+$IMPLEMENTED_PASS))"
 | |
| echo "----------------------------------------------------"
 | |
| echo "number of tests failed   : $FAIL"
 | |
| echo "number of tests passed   : $PASS"
 | |
| echo "                       +   ----"
 | |
| echo "total number of tests    : $(($FAIL+$PASS))"
 | |
| echo "****************************************************"
 | |
| 
 | |
| exit $FAIL
 |