You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.2 KiB
70 lines
1.2 KiB
#!/bin/sh
|
|
|
|
mkdir -p NEW
|
|
mkdir -p DIFF
|
|
passed=0
|
|
failed=0
|
|
cat /dev/null > failure-outputs.txt
|
|
|
|
runComplexTests()
|
|
{
|
|
for i in *.sh
|
|
do
|
|
case $i in TEST*.sh) continue;; esac
|
|
sh ./$i
|
|
done
|
|
}
|
|
|
|
runSimpleTests()
|
|
{
|
|
passed=`cat .passed`
|
|
failed=`cat .failed`
|
|
only=$1
|
|
cat TESTLIST | while read name input output options
|
|
do
|
|
case $name in
|
|
\#*) continue;;
|
|
'') continue;;
|
|
esac
|
|
rm -f core
|
|
[ "$only" != "" -a "$name" != "$only" ] && continue
|
|
if ./TESTonce $name $input $output "$options"
|
|
then
|
|
passed=`expr $passed + 1`
|
|
echo $passed >.passed
|
|
else
|
|
failed=`expr $failed + 1`
|
|
echo $failed >.failed
|
|
fi
|
|
[ "$only" != "" -a "$name" = "$only" ] && break
|
|
done
|
|
# I hate shells with their stupid, useless subshells.
|
|
passed=`cat .passed`
|
|
failed=`cat .failed`
|
|
}
|
|
|
|
echo $passed >.passed
|
|
echo $failed >.failed
|
|
if [ $# -eq 0 ]
|
|
then
|
|
runComplexTests
|
|
runSimpleTests
|
|
elif [ $# -eq 1 ]
|
|
then
|
|
runSimpleTests $1
|
|
else
|
|
echo "Usage: $0 [test_name]"
|
|
exit 30
|
|
fi
|
|
|
|
# exit with number of failing tests.
|
|
echo '------------------------------------------------'
|
|
printf "%4u tests failed\n" $failed
|
|
printf "%4u tests passed\n" $passed
|
|
echo
|
|
echo
|
|
cat failure-outputs.txt
|
|
echo
|
|
echo
|
|
exit $failed
|