+# Generate bogus savegames.
+savegames:
+ @$(ECHO) "cheat: Generate save file with -900 deaths"
+ @$(PARDIR)/cheat -d -900 -o cheat_numdie.adv > /tmp/cheat_numdie
+ @$(ECHO) "cheat: Generate save file with -1000 deaths"
+ @$(PARDIR)/cheat -d -1000 -o cheat_numdie1000.adv > /tmp/cheat_numdie1000
+ @$(ECHO) "cheat: Generate save file with version -1337"
+ @$(PARDIR)/cheat -v -1337 -o resume_badversion.adv > /tmp/cheat_badversion
+ @$(ECHO) "cheat: Generate save file 1000 saves"
+ @$(PARDIR)/cheat -s -1000 -o thousand_saves.adv > /tmp/cheat_1000saves
+ @$(ECHO) "cheat: Generate save file 1000 turns"
+ @$(PARDIR)/cheat -t -1000 -o thousand_saves.adv > /tmp/cheat_1000turns
+ @$(ECHO) "cheat: Generate save file 1000 turns"
+ @$(PARDIR)/cheat -l -1000 -o thousand_lamp.adv > /tmp/cheat_1000lamp
+ @rm -f /tmp/cheat*
+
+# Force coverage of cheat edgecases
+savecheck: savegames
+ @$(ECHO) "TEST cheat: Bogus option for save file generation"
+ @$(PARDIR)/cheat -QqQ 2> /tmp/coverage_cheat_batopt | true
+ @$(ECHO) "TEST cheat: No save file specified"
+ @$(PARDIR)/cheat 2>/dev/null | true
+ @$(ECHO) "TEST cheat: Fail to save because we omit -o"
+ @$(PARDIR)/cheat -d 1 2> /tmp/coverage_cheat_nooutput | true
+ @$(ECHO) "TEST cheat: Fail to save to invalid path"
+ @$(PARDIR)/cheat -o / 2> /tmp/coverage_cheat_badoutput | true
+ @$(ECHO) "TEST advent: Start with invalid file with -r"
+ @advent -r /badfilename < pitfall.log > /tmp/coverage_advent_readfail 2>&1 || exit 1
+ @$(ECHO) "TEST advent: Start with invalid file with -l"
+ @advent -l / < pitfall.log > /tmp/coverage_advent_logfail 2>&1 || exit 1
+ @$(ECHO) "TEST advent: Test -r with valid input"
+ @advent -r thousand_saves.adv < pitfall.log > /tmp/coverage_advent_readfail 2>&1 || exit 1
+ @rm -f /tmp/coverage*
+
+coverage: check
+ lcov -t "advent" -o $(PARDIR)/advent.info -c -d $(PARDIR) --gcov-tool=$(GCOV)
+ genhtml -o $(PARDIR)/coverage/ $(PARDIR)/advent.info
+ ./coverage_dungeon.py
+
+# Rebuild characterizing tests
+buildchecks: savegames
+ $(PARDIR)/cheat -s -1000 -o thousand_saves.adv > /tmp/regress1000saves