diff options
Diffstat (limited to 'autoconf/scripts/run-test.sh')
-rwxr-xr-x | autoconf/scripts/run-test.sh | 48 |
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 |