diff options
Diffstat (limited to 'debian/tests/run-testsuite')
-rwxr-xr-x | debian/tests/run-testsuite | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/debian/tests/run-testsuite b/debian/tests/run-testsuite new file mode 100755 index 0000000..91082ee --- /dev/null +++ b/debian/tests/run-testsuite @@ -0,0 +1,57 @@ +#!/bin/sh + +set -eu + +export TZ=UTC + +cd tests + +failing=0 + +for i in *.testfile; do + t=${i%%.testfile} + printf "Running test: %s ... " "$t" + + m= + for j in $(eval echo "${t}"*.magic); do + if [ -f "$j" ]; then + if [ -z "$m" ]; then + m="$j" + else + m="$m:$j" + fi + fi + done + if [ "$m" ]; then + export MAGIC="$m" + else + unset MAGIC + fi + + if [ -f "${t}.flags" ]; then + f="-$(cat "${t}.flags")" + else + f= + fi + + expect="$(cat "${i%%.testfile}.result")" + # shellcheck disable=SC2086 + got="$(file -b $f "$i" 2>/dev/null)" + if [ "$got" = "$expect" ]; then + echo 'pass' + else + cat <<__EOS__ +FAIL: + expect: $expect + got: $got +__EOS__ + failing=$((failing+1)) + fi +done + +if [ "$failing" -gt 0 ]; then + echo "Fail count: $failing" + exit 1 +fi + +exit 0 |