Switch normal regression testing to TAP output.
[open-adventure.git] / tests / tapdiffer
diff --git a/tests/tapdiffer b/tests/tapdiffer
new file mode 100755 (executable)
index 0000000..b529a39
--- /dev/null
@@ -0,0 +1,31 @@
+#! /bin/sh
+#
+# tapdiffer - Render diff between input and checkfile as a TAP report
+#
+# Usage: tapdiffer LEGEND CHECKFILE
+#
+# Output is a TAP report, ok if the diff is empty and not ok otherwise.
+# A nonempty diff is shipped as a TAP YAML block following "not ok" 
+# unless QUIET=1 in the environment.
+#
+legend=$1
+checkfile=$2
+
+trap 'rm /tmp/tapdiff$$' EXIT HUP INT QUIT TERM
+
+if diff --text -u ${checkfile} - >/tmp/tapdiff$$
+then
+       echo "ok - ${legend}"
+       exit 0
+else
+       echo "not ok - ${checkfile}: ${legend}"
+       if [ ! "${QUIET}" = 1 ]
+       then
+               echo "  --- |"
+               sed </tmp/tapdiff$$ -e 's/^/  /'
+               echo "  ..."
+       fi
+       exit 1
+fi
+
+# end