From d3e36c51d6e7ba949d8dddca864d8cd1dc9ba202 Mon Sep 17 00:00:00 2001 From: Craig Barnes Date: Thu, 23 Jan 2014 06:36:48 +0000 Subject: Fix portability issues in test runner script --- test/runner.bash | 34 ---------------------------------- test/runner.sh | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 34 deletions(-) delete mode 100755 test/runner.bash create mode 100755 test/runner.sh (limited to 'test') 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" -- cgit v1.2.1