summaryrefslogtreecommitdiff
path: root/autoconf/scripts/run-test.sh
blob: a384a21554804554fcc4851a19a811c28947f577 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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