First version of regression tests.
Only one test so far but the framework for more is in place.
This commit is contained in:
parent
7763e1aa22
commit
894724d1c8
4 changed files with 118 additions and 0 deletions
3
Makefile
3
Makefile
|
@ -25,6 +25,9 @@ misc.o: misc.h main.h
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o advent advent.html advent.6 adventure.data
|
rm -f *.o advent advent.html advent.6 adventure.data
|
||||||
|
|
||||||
|
check:
|
||||||
|
cd tests; $(MAKE) --quiet
|
||||||
|
|
||||||
# Requires asciidoc and xsltproc/docbook stylesheets.
|
# Requires asciidoc and xsltproc/docbook stylesheets.
|
||||||
.asc.6:
|
.asc.6:
|
||||||
a2x --doctype manpage --format manpage $<
|
a2x --doctype manpage --format manpage $<
|
||||||
|
|
51
tests/Makefile
Normal file
51
tests/Makefile
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
# Test-suite makefile for reposurgeon
|
||||||
|
|
||||||
|
# By setting the REPOSURGEON environment variable and using -e
|
||||||
|
# a different implementation can be plugged in to the tests.
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
default:
|
||||||
|
make -e --quiet all
|
||||||
|
|
||||||
|
all: listcheck regress
|
||||||
|
@echo "=== No diff output is good news."
|
||||||
|
|
||||||
|
.SUFFIXES: .chk
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -fr *~
|
||||||
|
|
||||||
|
# Show summary lines for all tests.
|
||||||
|
testlist:
|
||||||
|
@grep --text '^##' *.log
|
||||||
|
listcheck:
|
||||||
|
@for f in *.log; do \
|
||||||
|
if ( head -3 $$f | grep --text -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"; \
|
||||||
|
$(REPOSURGEON) advent <$${file}.log >$${file}.chk \
|
||||||
|
2>&1 || exit 1; \
|
||||||
|
done
|
||||||
|
regress:
|
||||||
|
@for file in $(TESTLOADS); do \
|
||||||
|
$(ECHO) -n " $${file} "; grep --text '##' $${file}.log || echo ' ## (no description)'; \
|
||||||
|
if advent $${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
|
2
tests/dwarf.chk
Normal file
2
tests/dwarf.chk
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Couldn't find adventure.data, using adventure.text...
|
||||||
|
Can't read adventure.text!
|
62
tests/dwarf.log
Normal file
62
tests/dwarf.log
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
## Dwarf appears in soutth side chamber, where the coins are.
|
||||||
|
n
|
||||||
|
seed 1495763690
|
||||||
|
seed 1495752222
|
||||||
|
in
|
||||||
|
take keys
|
||||||
|
take lamp
|
||||||
|
out
|
||||||
|
down
|
||||||
|
s
|
||||||
|
s
|
||||||
|
open grate
|
||||||
|
down
|
||||||
|
west
|
||||||
|
take cage
|
||||||
|
west
|
||||||
|
light lamp
|
||||||
|
take rod
|
||||||
|
xyzzy
|
||||||
|
xyzzy
|
||||||
|
west
|
||||||
|
drop rod
|
||||||
|
west
|
||||||
|
take bird
|
||||||
|
east
|
||||||
|
take rod
|
||||||
|
west
|
||||||
|
west
|
||||||
|
down
|
||||||
|
south
|
||||||
|
take gold
|
||||||
|
n
|
||||||
|
n
|
||||||
|
drop bird
|
||||||
|
west
|
||||||
|
take coins
|
||||||
|
e
|
||||||
|
s
|
||||||
|
take jewelry
|
||||||
|
n
|
||||||
|
n
|
||||||
|
take silver
|
||||||
|
drop cage
|
||||||
|
take silver
|
||||||
|
n
|
||||||
|
plugh
|
||||||
|
inven
|
||||||
|
drop jewelry
|
||||||
|
drop gold
|
||||||
|
drop silver
|
||||||
|
inven
|
||||||
|
drop keys
|
||||||
|
plugh
|
||||||
|
take knife
|
||||||
|
throw axe
|
||||||
|
s
|
||||||
|
s
|
||||||
|
up
|
||||||
|
w
|
||||||
|
wave rod
|
||||||
|
w
|
||||||
|
take diamonds
|
Loading…
Add table
Add a link
Reference in a new issue