summaryrefslogtreecommitdiff
path: root/tests/TESTrun.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/TESTrun.sh')
-rwxr-xr-xtests/TESTrun.sh63
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/TESTrun.sh b/tests/TESTrun.sh
new file mode 100755
index 0000000..dfcc330
--- /dev/null
+++ b/tests/TESTrun.sh
@@ -0,0 +1,63 @@
+#!/bin/sh
+
+mkdir -p NEW
+mkdir -p DIFF
+passed=0
+failed=0
+
+# first run any specific tests.
+for i in *.sh
+do
+ case $i in TEST*.sh) continue;; esac
+
+ if sh ./$i >DIFF/$i.result
+ then
+ echo $i: passed.
+ rm -f DIFF/$i.result
+ passed=`expr $passed + 1`
+ else
+ echo $i: failed.
+ failed=`expr $failed + 1`
+ fi
+done
+
+echo $passed >.passed
+echo $failed >.failed
+
+# now run typical tests
+cat TESTLIST | while read name input output options
+do
+ case $name in
+ \#*) continue;;
+ '') continue;;
+ esac
+
+ if ./TESTonce $name $input $output "$options"
+ then
+ echo $name: passed.
+ rm -f DIFF/$output.diff
+ passed=`expr $passed + 1`
+ echo $passed >.passed
+ else
+ echo $name: failed.
+ failed=`expr $failed + 1`
+ echo $failed >.failed
+ fi
+done
+
+# I hate shells with their stupid, useless subshells.
+passed=`cat .passed`
+failed=`cat .failed`
+
+# exit with number of failing tests.
+echo
+echo
+printf "%4u tests failed\n" $failed
+printf "%4u tests passed\n" $passed
+echo
+echo
+exit $failed
+
+
+
+