58 lines
1006 B
Bash
Executable File
58 lines
1006 B
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# test -- run a client self test.
|
|
#
|
|
P="test"
|
|
|
|
fix=`/bin/pwd`
|
|
fix=`dirname $fix`
|
|
fix=`dirname $fix`
|
|
|
|
me="../autotest"
|
|
|
|
# XXX: the exit status that indicates a rerun ...
|
|
rerun=5
|
|
|
|
function runtests {
|
|
for i in \
|
|
"$@"
|
|
do
|
|
case "$i" in
|
|
*-filter|*-out|*-tmp|*.state) continue ;;
|
|
esac
|
|
|
|
##echo "*** $i ...."
|
|
{
|
|
"$me" "$i"
|
|
rc="$?"
|
|
echo "--SELFTEST-- exit $rc"
|
|
while [ "$rc" = "$rerun" ]; do
|
|
"$me" --continue "$i"
|
|
rc="$?"
|
|
echo "--SELFTEST-- exit $rc"
|
|
done
|
|
} 2>&1 | `dirname "$i"`/NNN-filter "$i" | \
|
|
sed -e "s@$fix@SRC@" -e "s@, line [0-9]*@, line N@" \
|
|
>"$i-tmp" 2>&1
|
|
|
|
if [ ! -f "$i-out" ]; then
|
|
echo "$P: WARNING: $i: no results for test"
|
|
cat "$i-tmp"
|
|
|
|
elif ! cmp "$i-out" "$i-tmp"; then
|
|
echo "$P: ERROR: $i: test failed"
|
|
diff -u "$i-out" "$i-tmp"
|
|
|
|
else
|
|
echo "$P: PASS: $i: test passed"
|
|
fi
|
|
done
|
|
}
|
|
|
|
# Run all of the tests.
|
|
case "$1" in
|
|
clean) rm -rf tests/*-tmp tests/*.state ;;
|
|
test) runtests tests/* ;;
|
|
*) runtests "$@" ;;
|
|
esac
|