diff options
author | Craig Barnes <cr@igbarn.es> | 2014-01-23 03:30:46 +0000 |
---|---|---|
committer | Craig Barnes <cr@igbarn.es> | 2014-01-23 03:30:46 +0000 |
commit | 6621d8ef36a977c46a74c6c3de8ff2fca3be2dfc (patch) | |
tree | 3cbbeaa38dc2f6f41aeced2c98f80c9e2b0b1fa8 /test | |
parent | e3d177ae6767398606b0ba24ddd2980a6381829a (diff) | |
download | rust-hoedown-6621d8ef36a977c46a74c6c3de8ff2fca3be2dfc.tar.gz |
Add Bash test runner
Diffstat (limited to 'test')
-rwxr-xr-x | test/runner.bash | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test/runner.bash b/test/runner.bash new file mode 100755 index 0000000..dd86a5a --- /dev/null +++ b/test/runner.bash @@ -0,0 +1,34 @@ +#!/bin/bash + +TIDY='tidy --show-body-only 1 --quiet 1 --show-warnings 0' +SCRIPT="$1" +TESTDIR="$2" +PASSED=0 +FAILED=0 + +abort() { + echo "Error: $*" + exit 1 +} + +test -f "$SCRIPT" || abort "argument #1 invalid; not a file" +test -x "$SCRIPT" || abort "argument #1 invalid; not executable" +"$SCRIPT" <<< "" || abort "argument #1 invalid; script failed to run" +test -d "$TESTDIR" || abort "argument #2 invalid; not a directory" + +for TEXT in "$TESTDIR"/*.text; do + test -f "$TEXT" || abort "empty or invalid test directory" + printf "$(basename "$TEXT" .text) ... " + HTML="${TEXT/%.text/.html}" + DIFF=`diff <($SCRIPT "$TEXT" | $TIDY) <($TIDY "$HTML")` + if test $? == 0; then + ((PASSED++)) + echo OK + else + ((FAILED++)) + echo FAILED + printf "\n$DIFF\n\n" + fi +done + +printf "\n\n$PASSED passed; $FAILED failed.\n" |