summaryrefslogtreecommitdiff
path: root/tests/run_tests.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run_tests.sh')
-rwxr-xr-xtests/run_tests.sh42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/run_tests.sh b/tests/run_tests.sh
new file mode 100755
index 0000000..4e46977
--- /dev/null
+++ b/tests/run_tests.sh
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+set -e
+
+run() {
+ ( # So we don't have to cd ..
+ cd "$1" || return 1
+
+ php ../test.php > have
+
+ printf '\e[1m%s\e[0m: ' "$1"
+ if sed 's/\s*//' < have | grep -v '^$' | cmp -s want; then
+ echo "OK"
+ rm ./*.transc.php
+ else
+ echo "FAILED"
+ for tpl in *.tpl; do
+ php ../dump_ast.php < "$tpl" > "$tpl.ast"
+ done
+ return 1
+ fi
+ )
+}
+
+run_many() {
+ retval=0
+ while [ $# -gt 0 ]; do
+ if ! run "$1"; then
+ retval=1
+ fi
+
+ shift
+ done
+
+ return $retval
+}
+
+if [ $# -eq 0 ]; then
+ run_many test_*
+else
+ run_many "$@"
+fi