summaryrefslogtreecommitdiff
path: root/autoconf/scripts/run-test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'autoconf/scripts/run-test.sh')
-rwxr-xr-xautoconf/scripts/run-test.sh48
1 files changed, 48 insertions, 0 deletions
diff --git a/autoconf/scripts/run-test.sh b/autoconf/scripts/run-test.sh
new file mode 100755
index 0000000..a384a21
--- /dev/null
+++ b/autoconf/scripts/run-test.sh
@@ -0,0 +1,48 @@
+#!/bin/sh
+#
+# Run a test. Parameters are program name and source directory; if
+# additional parameters are given, they are the tests to run, otherwise all
+# tests are run.
+#
+
+PROG="$1"
+SRCDIR="$2"
+shift
+shift
+TESTS="$*"
+
+# Temporary working files
+#
+TMP1=.tmp1
+TMP2=.tmp2
+
+if which mktemp >/dev/null 2>&1; then
+ TMP1=`mktemp`
+ TMP2=`mktemp`
+fi
+
+export PROG TMP1 TMP2 # variables used by test scripts
+
+FAIL=0
+
+test -n "$TESTS" || TESTS=`ls "$SRCDIR/tests" | sort -n`
+
+for SCRIPT in $TESTS; do
+ test -f "$SCRIPT" || SCRIPT="$SRCDIR/tests/$SCRIPT"
+ test -f "$SCRIPT" || SCRIPT=`ls "$SRCDIR/tests/$SCRIPT"*`
+ test -f "$SCRIPT" || continue
+
+ echo `basename "$SCRIPT"`: " " | cut -b1-20 | sed 's/-/ - /' | tr "\n" ' '
+
+ STATUS=0
+ sh -e "$SCRIPT" || STATUS=1
+ test $STATUS -eq 1 && FAIL=1
+
+ test $STATUS -eq 1 && echo "FAILED" || echo "OK"
+done
+
+rm -f $TMP1 $TMP2
+
+exit $FAIL
+
+# EOF