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
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