fostr/bin/run_tests

40 lines
831 B
Bash
Executable File

#!/bin/bash
command=$1
ext=$2
total=0
failed=0
diffed=0
for dir in tests/extracted/*; do
for file in $dir/*.$ext; do
((total++))
if [[ -f ${file%.*}.in ]]; then
cat ${file%.*}.in | $command $file > $file.out
result=$?
else
$command $file > $file.out
result=$?
fi
if [[ $result -ne 0 ]]; then
echo ERROR: $command $file failed.
((failed++))
else
if [[ -f ${file%.*}.expect ]]; then
echo ---- diff ${file%.*}.expect $file.out ----
diff ${file%.*}.expect $file.out
if [[ $? -ne 0 ]]; then
((diffed++))
fi
echo -------------------------------
fi
fi
done
done
echo "Ran $total tests: $failed failures, $diffed runs differed."
if [[ $failed -gt 0 ]] || [[ $diffed -gt 0 ]]; then
exit 1
fi
exit 0