summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorCraig Barnes <cr@igbarn.es>2014-01-23 03:30:46 +0000
committerCraig Barnes <cr@igbarn.es>2014-01-23 03:30:46 +0000
commit6621d8ef36a977c46a74c6c3de8ff2fca3be2dfc (patch)
tree3cbbeaa38dc2f6f41aeced2c98f80c9e2b0b1fa8 /test
parente3d177ae6767398606b0ba24ddd2980a6381829a (diff)
downloadrust-hoedown-6621d8ef36a977c46a74c6c3de8ff2fca3be2dfc.tar.gz
Add Bash test runner
Diffstat (limited to 'test')
-rwxr-xr-xtest/runner.bash34
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"