aboutsummaryrefslogtreecommitdiff
path: root/tests/runtest.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/runtest.sh')
-rw-r--r--tests/runtest.sh36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/runtest.sh b/tests/runtest.sh
new file mode 100644
index 0000000..8998b21
--- /dev/null
+++ b/tests/runtest.sh
@@ -0,0 +1,36 @@
+if [ -z "$1" ]; then
+ # no argument - run all tests found in current dir
+ set -e
+ for i in *.ref; do sh $0 "${i/.ref/}"; done
+ exit 0
+fi
+KEEP_OUTPUT=0
+if [ "x$1" = "x-k" ]; then
+ KEEP_OUTPUT=1
+ shift
+fi
+if [ ! -f "$1.pd" ]; then
+ echo -e "error: $1.pd does not exist" 1>&2
+ exit 1
+fi
+if [ ! -f "$1.ref" ]; then
+ echo -e "error: $1.ref does not exist" 1>&2
+ exit 1
+fi
+sed -e "s|%TESTCASE%|$1|" -e "s|%OUTPUT%|$1.out|" runtest.pd.in > "runtest-$1.pd" || exit 1
+echo -n "Running test '$1'... ";
+"$PD_PATH/bin/pd" -noprefs -nogui -path .. -lib tclpd "runtest-$1.pd"
+diff --strip-trailing-cr "$1.ref" "$1.out" 1>/dev/null 2>&1
+RESULT=$?
+if [ $RESULT -eq 0 ]; then
+ echo "OK"
+else
+ echo "FAIL"
+ # show differences:
+ diff -u --strip-trailing-cr "$1.ref" "$1.out"
+fi
+rm -f "runtest-$1.pd"
+if [ $KEEP_OUTPUT -eq 0 ]; then
+ rm -f "$1.out"
+fi
+exit $RESULT