70 lines
1,010 B
Text
70 lines
1,010 B
Text
|
#! /bin/sh
|
||
|
|
||
|
failed=0
|
||
|
all=0
|
||
|
|
||
|
if [ -z "$srcdir" ] ; then
|
||
|
srcdir=`pwd`
|
||
|
fi
|
||
|
|
||
|
export srcdir
|
||
|
|
||
|
find_program () {
|
||
|
if [ -x "$1" ] ; then
|
||
|
echo "./$1"
|
||
|
else
|
||
|
echo "$srcdir/$1"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
env_program () {
|
||
|
if [ -x "$1" ] ; then
|
||
|
if "$1"; then : ; else
|
||
|
echo FAIL: $1
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
test_program () {
|
||
|
testname=`basename "$1" -test`
|
||
|
"$1"
|
||
|
case "$?" in
|
||
|
0)
|
||
|
echo PASS: $testname
|
||
|
all=`expr $all + 1`
|
||
|
;;
|
||
|
77)
|
||
|
echo SKIP: $testname
|
||
|
;;
|
||
|
*)
|
||
|
echo FAIL: $testname
|
||
|
failed=`expr $failed + 1`
|
||
|
all=`expr $all + 1`
|
||
|
;;
|
||
|
esac
|
||
|
}
|
||
|
|
||
|
env_program `find_program setup-env`
|
||
|
|
||
|
if [ $# -eq 0 ] ; then
|
||
|
for f in *-test; do test_program "./$f"; done
|
||
|
else
|
||
|
for f in "$@" ; do test_program `find_program "$f"`; done
|
||
|
fi
|
||
|
|
||
|
if [ $failed -eq 0 ] ; then
|
||
|
banner="All $all tests passed"
|
||
|
else
|
||
|
banner="$failed of $all tests failed"
|
||
|
fi
|
||
|
dashes=`echo "$banner" | sed s/./=/g`
|
||
|
echo "$dashes"
|
||
|
echo "$banner"
|
||
|
echo "$dashes"
|
||
|
|
||
|
env_program `find_program teardown-env`
|
||
|
|
||
|
[ "$failed" -eq 0 ]
|
||
|
|