first cut at very simple tester
This commit is contained in:
49
tester/run-tests.sh
Executable file
49
tester/run-tests.sh
Executable file
@@ -0,0 +1,49 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# run_test test_number
|
||||
run_test () {
|
||||
testfile=tests/$1.run
|
||||
# cat $testfile
|
||||
$(cat $testfile) > tests-out/$1.out 2> tests-out/$1.err
|
||||
return 0
|
||||
}
|
||||
|
||||
# check_test test_number out/err
|
||||
check_test () {
|
||||
outdiff=$(diff tests/$1.$2 tests-out/$1.$2)
|
||||
outerr=$?
|
||||
if (( $outerr != 0 )); then
|
||||
builtin echo -e "\e[31mtest $testnum: standard $2 incorrect\e[0m"
|
||||
echo "should be:"
|
||||
cat tests/$1.$2
|
||||
echo "is:"
|
||||
cat tests-out/$1.$2
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
(( testnum = 1 ))
|
||||
|
||||
while true; do
|
||||
if [[ ! -f tests/$testnum.run ]]; then
|
||||
exit 0
|
||||
fi
|
||||
run_test $testnum
|
||||
check_test $testnum out
|
||||
check_test $testnum err
|
||||
builtin echo -e "\e[32mtest $testnum: passed\e[0m"
|
||||
(( testnum = $testnum + 1 ))
|
||||
done
|
||||
|
||||
exit 0
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user