Skip to content

Commit 4aaea00

Browse files
committed
feat: add basic testing infrastructure
1 parent 4969b83 commit 4aaea00

File tree

17 files changed

+525792
-10
lines changed

17 files changed

+525792
-10
lines changed

.gitignore

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,3 +75,31 @@ zorbash.exe.dSYM
7575
zorbash.pdb
7676
zorbash.sh
7777
Zorbash-*-windows-x64-installer.exe
78+
tests/apecastle/expected_output/console
79+
tests/apecastle/output/
80+
tests/badmonkey/expected_output/console
81+
tests/badmonkey/output/
82+
tests/deathpool/expected_output/console
83+
tests/deathpool/output/
84+
tests/discobob/expected_output/console
85+
tests/discobob/output/
86+
tests/drakestone/expected_output/console
87+
tests/drakestone/output/
88+
tests/goblinhack/expected_output/console
89+
tests/goblinhack/output/
90+
tests/hearthstone/expected_output/console
91+
tests/hearthstone/output/
92+
tests/hellfire/expected_output/console
93+
tests/hellfire/output/
94+
tests/pondscum/expected_output/console
95+
tests/pondscum/output/
96+
tests/seadragon/expected_output/console
97+
tests/seadragon/output/
98+
tests/snowdrop/expected_output/console
99+
tests/snowdrop/output/
100+
tests/terrorlake/expected_output/console
101+
tests/terrorlake/output/
102+
tests/umbermonk/expected_output/console
103+
tests/umbermonk/output/
104+
tests/victimlake/expected_output/console
105+
tests/victimlake/output/

TESTME

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,17 @@ if [ ! -x zorbash ]; then
2828
fi
2929

3030
for seed in \
31+
charliebats \
32+
dogmanlives \
33+
grayalien \
34+
cavemire \
35+
castlespire \
36+
donkeyking \
37+
alphabase \
3138
seadragon \
3239
terrorlake \
3340
badmonkey \
3441
snowdrop \
35-
firebelow \
3642
umbermonk \
3743
discobob \
3844
drakestone \
@@ -45,27 +51,32 @@ for seed in \
4551
victimlake
4652
do
4753
mkdir -p tests/$seed/output/
48-
mkdir -p tests/$seed/expected_output
54+
mkdir -p tests/$seed/expected_output/
4955

5056
printf "%-60s ... " "Running seed ($seed)"
51-
./zorbash --debug --seed $seed --test-dungeon-gen --ascii --monochrome > tests/$seed/output/console
52-
cp appdata/zorbash/stdout* tests/$seed/output/
57+
./zorbash --seed $seed --test-dungeon-gen --ascii --monochrome > tests/$seed/output/console
58+
cp appdata/zorbash/stdout.txt tests/$seed/output/
5359

5460
grep -q ERROR appdata/zorbash/*
5561
if [ $? -eq 0 ]; then
5662
printf "$RED[%s]$RESET\n" "ERROR"
5763
continue
5864
fi
5965

66+
# ls -lahsi tests/$seed/output/stdout.txt
6067
if [ ! -f tests/$seed/expected_output/stdout.txt ]; then
61-
cp -r tests/$seed/output/* tests/$seed/expected_output
62-
printf "$GREEN[%s]$RESET\n" "CREATED"
68+
cp -r tests/$seed/output/stdout.txt tests/$seed/expected_output/
69+
moves=$(grep "End of test, move count:" tests/$seed/output/stdout.txt | sed 's/.*://g')
70+
printf "$GREEN[%s]$RESET (%s moves)\n" "CREATED" $moves
6371
else
6472
diff -q tests/$seed/output/stdout.txt tests/$seed/expected_output/stdout.txt
6573
if [ $? -ne 0 ]; then
66-
printf "$RED[%s]$RESET\n" "CHANGED"
74+
moves=$(grep "End of test, move count:" tests/$seed/output/stdout.txt | sed 's/.*://g')
75+
expected_moves=$(grep "End of test, move count:" tests/$seed/expected_output/stdout.txt | sed 's/.*://g')
76+
printf "$RED[%s]$RESET (%s moves expected, found %s)\n" "CHANGED" $expected_moves $moves
6777
else
68-
printf "$GREEN[%s]$RESET\n" "OK"
78+
moves=$(grep "End of test, move count:" tests/$seed/output/stdout.txt | sed 's/.*://g')
79+
printf "$GREEN[%s]$RESET %s moves\n" "OK" $moves
6980
fi
7081
fi
7182
done

src/dungeon_test.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,8 @@ void dungeon_test(void)
8383
pcg_random_allowed--;
8484
}
8585

86-
while (! game->level->player->is_dead) {
86+
auto player = game->level->player;
87+
while (! player->is_dead) {
8788
TRACE_NO_INDENT();
8889
SDL_Delay(5);
8990

@@ -97,12 +98,13 @@ void dungeon_test(void)
9798
wid_display_all();
9899
}
99100

101+
CON("End of test, move count: %u", player->move_count());
102+
100103
TRACE_NO_INDENT();
101104
delete new_level;
102105

103106
TRACE_NO_INDENT();
104107
game->fini();
105108

106-
CON("end of test");
107109
exit(0);
108110
}

tests/apecastle/expected_output/stdout.txt

Lines changed: 14590 additions & 0 deletions
Large diffs are not rendered by default.

tests/badmonkey/expected_output/stdout.txt

Lines changed: 18608 additions & 0 deletions
Large diffs are not rendered by default.

tests/deathpool/expected_output/stdout.txt

Lines changed: 8896 additions & 0 deletions
Large diffs are not rendered by default.

tests/discobob/expected_output/stdout.txt

Lines changed: 24077 additions & 0 deletions
Large diffs are not rendered by default.

tests/drakestone/expected_output/stdout.txt

Lines changed: 73000 additions & 0 deletions
Large diffs are not rendered by default.

tests/goblinhack/expected_output/stdout.txt

Lines changed: 15002 additions & 0 deletions
Large diffs are not rendered by default.

tests/hearthstone/expected_output/stdout.txt

Lines changed: 44392 additions & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)