summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorCraig Barnes <cr@igbarn.es>2014-01-23 06:36:48 +0000
committerCraig Barnes <cr@igbarn.es>2014-01-23 06:36:48 +0000
commitd3e36c51d6e7ba949d8dddca864d8cd1dc9ba202 (patch)
tree23cbacbc5b73a215f24a9cc9c5605d4d7f3b4195 /test
parent6621d8ef36a977c46a74c6c3de8ff2fca3be2dfc (diff)
downloadrust-hoedown-d3e36c51d6e7ba949d8dddca864d8cd1dc9ba202.tar.gz
Fix portability issues in test runner script
Diffstat (limited to 'test')
-rwxr-xr-xtest/runner.bash34
-rwxr-xr-xtest/runner.sh40
2 files changed, 40 insertions, 34 deletions
diff --git a/test/runner.bash b/test/runner.bash
deleted file mode 100755
index dd86a5a..0000000
--- a/test/runner.bash
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/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"
diff --git a/test/runner.sh b/test/runner.sh
new file mode 100755
index 0000000..9286860
--- /dev/null
+++ b/test/runner.sh
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+POSIXLY_CORRECT=1
+export POSIXLY_CORRECT
+
+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"
+echo "" | "$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=$(echo "$TEXT" | sed 's/\.text$/.html/')
+ mkfifo .pipe
+ $SCRIPT "$TEXT" | $TIDY > .pipe &
+ DIFF=$($TIDY "$HTML" | diff .pipe -)
+ if test "$?" = 0; then
+ PASSED=$(expr $PASSED + 1)
+ echo OK
+ else
+ FAILED=$(expr $FAILED + 1)
+ echo FAILED
+ printf "\n$DIFF\n\n"
+ fi
+ rm .pipe
+done
+
+printf "\n\n$PASSED passed; $FAILED failed.\n"