68 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
# Initialization
 | 
						|
PATH=:/bin:/usr/bin
 | 
						|
export PATH
 | 
						|
 | 
						|
rm -rf DIR*			# remove any old junk lying around
 | 
						|
passed=`expr 0`			# count number of tests run correctly
 | 
						|
failed=`expr 0`			# count number of tests that failed
 | 
						|
skipped=`expr 0`		# count number of tests that were skipped
 | 
						|
total=`expr 0`			# total number of tests tried
 | 
						|
badones=			# list of tests that failed
 | 
						|
 | 
						|
tests="   1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 \
 | 
						|
         21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 \
 | 
						|
         41 42 43 44 45 45-gcc 46 47 48 49 49-gcc 50 \
 | 
						|
         51 51-gcc 52 52-gcc 53 54 55 56 57 58 59\
 | 
						|
         60 61 \
 | 
						|
	 sh1.sh sh2.sh"
 | 
						|
tests_no=`expr 0`
 | 
						|
 | 
						|
# Directory must be owned by bin
 | 
						|
[ "$USER" != root ] || chown bin .
 | 
						|
 | 
						|
# Count tests
 | 
						|
for i in `echo $tests`; do
 | 
						|
   if [ -x ./test$i ]; then
 | 
						|
      tests_no=`expr $tests_no + 1`
 | 
						|
   fi
 | 
						|
done
 | 
						|
 | 
						|
# Print test welcome message
 | 
						|
clr
 | 
						|
echo "Running POSIX compliance test suite. There are $tests_no tests in total."
 | 
						|
echo " "
 | 
						|
 | 
						|
# Run all the tests, keeping track of who failed.
 | 
						|
for i in `echo $tests`
 | 
						|
do
 | 
						|
   if [ -x ./test$i ] 
 | 
						|
   then
 | 
						|
      total=`expr $total + 1`
 | 
						|
      FAIL=0
 | 
						|
      if [ "$USER" = root ]
 | 
						|
         then su - bin -c "cd `pwd`; ./test$i" || FAIL=1
 | 
						|
         else ./test$i || FAIL=1
 | 
						|
      fi
 | 
						|
      if [ $FAIL -eq 0 ]
 | 
						|
         then passed=`expr $passed + 1`
 | 
						|
         else failed=`expr $failed + 1`
 | 
						|
              badones=`echo $badones " " $i`
 | 
						|
      fi
 | 
						|
   else
 | 
						|
      skipped=`expr $skipped + 1` 
 | 
						|
   fi
 | 
						|
done
 | 
						|
 | 
						|
# Print results of the tests.
 | 
						|
echo " "
 | 
						|
if test $total = $passed
 | 
						|
   then echo All $passed tests completed without error \($skipped skipped\).
 | 
						|
   else echo Testing completed. Score: $passed passed, $failed failed, \
 | 
						|
             skipped $skipped
 | 
						|
        echo The following tests failed: $badones
 | 
						|
fi
 | 
						|
 | 
						|
# echo " "
 |