TAPify the test suite.
[super-star-trek.git] / test / Makefile
index d894a02f2ddd7726021311a75a8ac9f4bb582c19..557cbd50658da21b91653fc8c0e7f658d074ef23 100644 (file)
@@ -1,6 +1,21 @@
 # Test-suite makefile for sst
 
-all: regress
+PYTHON=python
+
+TAPFILTER=cat
+ifeq (,$(command -v tapview))
+       TAPFILTER=tapview
+else
+       ifeq (,$(command -v tappy))
+               TAPFILTER=tappy
+       endif
+endif
+
+all:
+       @echo "With Python 2:"
+       @$(MAKE) -e PYTHON=python2 regress | $(TAPFILTER)
+       @echo "With Python 3:"
+       @$(MAKE) -e PYTHON=python3 regress | $(TAPFILTER)
        @echo "No diff output is good news."
 
 .SUFFIXES: .log .chk
@@ -18,14 +33,13 @@ buildregress:
            fi \
        done
 regress:
+       echo "1..$$(ls *.log | wc -l)"
        @for test in $(TESTLOADS); \
        do \
            if [ ! -f $${test}.tst ] ; \
            then \
-               (if echo -n "$${test}: " >&2; grep 'Test' $${test}.log >&2;\
-               ../sst.py -r $${test}.log >/tmp/regress 2>&1; \
-               then diff -u $${test}.chk /tmp/regress; \
-               else echo "*** Nonzero return status on $${test}!"; exit 1; fi;) \
+               legend=$$(sed -n -e '/# Test/s//Test/p' <$${test}.log); \
+               ../sst.py -r "$${test}.log" | ./tapdiffer "$${legend}" "$${test}.chk"; \
            fi \
        done
        @rm -f /tmp/regress