From 220cf2c58ba33f95836ff95df10e570c87297368 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Sun, 4 Jun 2017 16:06:21 -0400 Subject: [PATCH] Make it possible to pass options to advent from within regression-test loads. --- tests/Makefile | 46 ++++++++++++++++++++++++++++++++++++++++++++++ tests/oldstyle.log | 5 +++++ 2 files changed, 51 insertions(+) create mode 100644 tests/Makefile create mode 100644 tests/oldstyle.log diff --git a/tests/Makefile b/tests/Makefile new file mode 100644 index 0000000..16a1d54 --- /dev/null +++ b/tests/Makefile @@ -0,0 +1,46 @@ +# Test-suite makefile for reposurgeon + +# Use absolute path so tests that change working directory still use +# scripts from parent directory. Note that using $PWD seems to fail +# here under Gitlab's CI environment. +PATH := $(realpath ..):$(realpath .):${PATH} + +# Defeat annoying behavior under Mac OS X - builtin echo doesn't do -n +ECHO := /bin/echo + +all: regress + @echo "=== No diff output is good news." + +.SUFFIXES: .chk + +clean: + rm -fr *~ adventure.text + +# Show summary lines for all tests. +testlist: + @grep '^##' *.log +listcheck: + @for f in *.log; do \ + if ( head -3 $$f | grep -q '^ *##' ); then :; else echo "$$f needs a description"; fi; \ + done + +# General regression testing of commands and output; look at the *.log and +# corresponding *.chk files to see which tests this runs. +TESTLOADS := $(shell ls -1 *.log | sed '/.log/s///') +buildregress: + @for file in $(TESTLOADS); do \ + echo "Remaking $${file}.chk"; \ + OPTS=`sed -n /#options:/s///p <$${file}.log`; \ + advent $$OPTS <$${file}.log >$${file}.chk 2>&1 || exit 1; \ + done +regress: + @for file in $(TESTLOADS); do \ + $(ECHO) -n " $${file} "; grep '##' $${file}.log || echo ' ## (no description)'; \ + OPTS=`sed -n /#options:/s///p <$${file}.log`; \ + if advent $$OPTS < $${file}.log >/tmp/regress$$$$ 2>&1; \ + then diff --text -u $${file}.chk /tmp/regress$$$$ || exit 1; \ + else echo "*** Nonzero return status on $${file}!"; exit 1; fi \ + done + @rm -f /tmp/regress$$$$ + +# end diff --git a/tests/oldstyle.log b/tests/oldstyle.log new file mode 100644 index 0000000..ae6f7fe --- /dev/null +++ b/tests/oldstyle.log @@ -0,0 +1,5 @@ +## Simple quit +#options: -o +n +quit +yes -- 2.31.1