1#!/bin/sh 2 3mkdir -p NEW 4mkdir -p DIFF 5passed=0 6failed=0 7 8# first run any specific tests. 9for i in *.sh 10do 11 case $i in TEST*.sh) continue;; esac 12 13 if sh ./$i >DIFF/$i.result 14 then 15 echo $i: passed. 16 rm -f DIFF/$i.result 17 passed=$(($passed + 1)) 18 else 19 echo $i: failed. 20 failed=$(($failed + 1)) 21 fi 22done 23 24echo $passed >.passed 25echo $failed >.failed 26 27# now run typical tests 28cat TESTLIST | while read name input output options 29do 30 case $name in 31 \#*) continue;; 32 '') continue;; 33 esac 34 35 if ./TESTonce $name $input $output "$options" 36 then 37 echo $name: passed. 38 rm -f DIFF/$output.diff 39 passed=$(($passed + 1)) 40 echo $passed >.passed 41 else 42 echo $name: failed. 43 failed=$(($failed + 1)) 44 echo $failed >.failed 45 fi 46done 47 48# I hate shells with their stupid, useless subshells. 49passed=`cat .passed` 50failed=`cat .failed` 51 52# exit with number of failing tests. 53echo 54echo 55printf "%4u tests failed\n" $failed 56printf "%4u tests passed\n" $passed 57echo 58echo 59exit $failed 60 61 62 63 64