blob: 8b0790601e612ed227a92d3de135f5429c07763c [file] [log] [blame]
#!/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