|
|
|
#!/bin/sh
|
|
|
|
#
|
|
|
|
# Run with the name of a test list file.
|
|
|
|
#
|
|
|
|
# This expects to find the tests in the tools dir or scripts dir and the
|
|
|
|
# expected results in the tests dir.
|
|
|
|
|
|
|
|
# boilerplate so we can support whaky cmake dirs
|
|
|
|
[ -z "$TOPDIR" ] && TOPDIR="."
|
|
|
|
[ -z "$BINDIR" ] && BINDIR="."
|
|
|
|
export TOPDIR
|
|
|
|
export BINDIR
|
|
|
|
|
|
|
|
if [ -z "$1" ]; then
|
|
|
|
echo need test list filename
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
TESTLIST="$1"
|
|
|
|
LISTDIR=$(dirname "$TESTLIST")
|
|
|
|
|
|
|
|
TESTS=$(sed -e "s/#.*//" "$TESTLIST")
|
|
|
|
|
|
|
|
# Actually run the tests
|
|
|
|
for i in $TESTS; do
|
|
|
|
# Look in several places for the test program
|
|
|
|
if [ -e "$BINDIR/$i" ]; then
|
|
|
|
TEST="$BINDIR/$i"
|
|
|
|
elif [ -e "$BINDIR/tools/$i" ]; then
|
|
|
|
TEST="$BINDIR/tools/$i"
|
|
|
|
elif [ -e "$LISTDIR/../scripts/$i" ]; then
|
|
|
|
TEST="$LISTDIR/../scripts/$i"
|
|
|
|
else
|
|
|
|
echo "Could not find test $i"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ ! -e "$LISTDIR/$i.expected" ]; then
|
|
|
|
echo "Could not find testdata $LISTDIR/$i.expected"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$TEST >$LISTDIR/$i.out"
|
|
|
|
set -e
|
|
|
|
"$TEST" >"$LISTDIR/$i.out"
|
|
|
|
cmp "$LISTDIR/$i.expected" "$LISTDIR/$i.out"
|
|
|
|
set +e
|
|
|
|
done
|