# Test-suite makefile for sst
-PYTHON=python
-
all:
- @echo "With Python 2:"
- @$(MAKE) -e PYTHON=python2 regress
- @echo "With Python 3:"
- @$(MAKE) -e PYTHON=python3 regress
- @echo "No diff output is good news."
+ @$(MAKE) regress | ./tapview
.SUFFIXES: .log .chk
.log.chk:
- ../sst.py -r $< >$@ 2>&1
+ ../sst -r $< >$@ 2>&1
TESTLOADS := $(shell ls *.log | sed '/.log/s///')
-buildregress:
+rebuild:
@for test in $(TESTLOADS); do \
if [ ! -f $${test}.tst ] ; \
- then \
+ then \
echo "Remaking $${test}.chk"; \
- rm -f $${test}.chk && ../sst.py -r $${test}.log >$${test}.chk 2>&1; \
+ rm -f $${test}.chk && ../sst -r $${test}.log >$${test}.chk 2>&1; \
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;\
- $(PYTHON) ../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 -r "$${test}.log" | ./tapdiffer "$${legend}" "$${test}.chk"; \
fi \
done
@rm -f /tmp/regress
+
+coverage:
+ @coverage erase
+ @for test in $(TESTLOADS); \
+ do \
+ if [ ! -f $${test}.tst ] ; \
+ then \
+ coverage run -a ../sst -r "$${test}.log" >/dev/null; \
+ fi \
+ done
+ @coverage html
+
+clean:
+ rm -f .coverage htmlcov/index.html