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