67 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			67 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\
 | |
| 	 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 " "
 | 
