]> git.cworth.org Git - empires-server/commitdiff
test: Extend Scribe testing to encompass a complete game
authorCarl Worth <cworth@cworth.org>
Tue, 7 Jul 2020 12:40:03 +0000 (05:40 -0700)
committerCarl Worth <cworth@cworth.org>
Tue, 7 Jul 2020 12:40:03 +0000 (05:40 -0700)
Including the formation of several large-ish glyph shapes.

There's not actually a _lot_ of functional testing here. It would be
much more useful if the server reported whether a move generated a
glyph or not, (and then the test suite could verify that result on
every single move).

For that, we'll also want to aloow sub-tests that don't generate an
entire line of output, but instead just a single letter.

test

diff --git a/test b/test
index bcf3e3f86a0c526e022368adc54a9e81e98ababb..83f4cfb145e46561291579f7814233511c5708e3 100755 (executable)
--- a/test
+++ b/test
@@ -617,6 +617,178 @@ result=$(scribe_move '[1,1]')
 test "$result" = '{"legal":true}'
 TEST_END
 
+TEST "Player o forms Cross glyph"
+scribe_set_player_team o
+scribe_move '[1,4]' >/dev/null
+scribe_set_player_team +
+scribe_move '[1,2]' >/dev/null
+scribe_set_player_team o
+scribe_move '[4,4]' >/dev/null
+scribe_set_player_team +
+scribe_move '[2,1]' >/dev/null
+scribe_set_player_team o
+scribe_move '[4,7]' >/dev/null
+scribe_set_player_team +
+scribe_move '[1,5]' >/dev/null
+scribe_set_player_team o
+scribe_move '[7,4]' >/dev/null
+scribe_set_player_team +
+scribe_move '[5,1]' >/dev/null
+scribe_set_player_team o
+scribe_move '[4,3]' >/dev/null
+scribe_set_player_team +
+scribe_move '[1,8]' >/dev/null
+scribe_set_player_team o
+scribe_move '[3,4]' >/dev/null
+scribe_set_player_team +
+scribe_move '[8,1]' >/dev/null
+scribe_set_player_team o
+result=$(scribe_move '[4,5]')
+test "$result" = '{"legal":true}'
+TEST_END
+
+TEST "Player + forms J glyph"
+scribe_set_player_team +
+result=$(scribe_move '[1,7]')
+test "$result" = '{"legal":true}'
+TEST_END
+
+TEST "Player + forms Earring glyph"
+scribe_set_player_team o
+scribe_move '[5,4]' >/dev/null
+scribe_set_player_team +
+scribe_move '[7,1]' >/dev/null
+scribe_set_player_team o
+scribe_move '[4,6]' >/dev/null
+scribe_set_player_team +
+result=$(scribe_move '[1,3]')
+test "$result" = '{"legal":true}'
+TEST_END
+
+TEST "Player o forms House glyph"
+scribe_set_player_team o
+scribe_move '[6,4]' >/dev/null
+scribe_set_player_team +
+scribe_move '[3,1]' >/dev/null
+scribe_set_player_team o
+result=$(scribe_move '[4,8]')
+test "$result" = '{"legal":true}'
+TEST_END
+
+TEST "Player + forms O glyph"
+scribe_set_player_team +
+result=$(scribe_move '[1,6]')
+test "$result" = '{"legal":true}'
+TEST_END
+
+TEST "Player o forms T glyph"
+scribe_set_player_team o
+scribe_move '[8,6]' >/dev/null
+scribe_set_player_team +
+scribe_move '[6,7]' >/dev/null
+scribe_set_player_team o
+scribe_move '[6,3]' >/dev/null
+scribe_set_player_team +
+scribe_move '[7,8]' >/dev/null
+scribe_set_player_team o
+scribe_move '[3,6]' >/dev/null
+scribe_set_player_team +
+scribe_move '[8,2]' >/dev/null
+scribe_set_player_team o
+scribe_move '[6,6]' >/dev/null
+scribe_set_player_team +
+scribe_move '[2,8]' >/dev/null
+scribe_set_player_team o
+result=$(scribe_move '[6,5]')
+test "$result" = '{"legal":true}'
+TEST_END
+
+TEST "Player o forms Chair glyph"
+scribe_set_player_team +
+scribe_move '[8,5]' >/dev/null
+scribe_set_player_team o
+scribe_move '[5,6]' >/dev/null
+scribe_set_player_team +
+scribe_move '[5,8]' >/dev/null
+scribe_set_player_team o
+result=$(scribe_move '[6,2]')
+test "$result" = '{"legal":true}'
+TEST_END
+
+TEST "Player + forms Bomber glyph"
+scribe_set_player_team +
+scribe_move '[8,8]' >/dev/null
+scribe_set_player_team o
+scribe_move '[2,6]' >/dev/null
+scribe_set_player_team +
+result=$(scribe_move '[8,4]')
+test "$result" = '{"legal":true}'
+TEST_END
+
+TEST "Player o forms H glyph"
+scribe_set_player_team o
+result=$(scribe_move '[6,8]')
+test "$result" = '{"legal":true}'
+TEST_END
+
+TEST "Player + forms 6-Block glyph"
+scribe_set_player_team +
+scribe_move '[4,2]' >/dev/null
+scribe_set_player_team o
+scribe_move '[8,3]' >/dev/null
+scribe_set_player_team +
+scribe_move '[2,4]' >/dev/null
+scribe_set_player_team o
+scribe_move '[3,3]' >/dev/null
+scribe_set_player_team +
+scribe_move '[2,2]' >/dev/null
+scribe_set_player_team o
+scribe_move '[3,7]' >/dev/null
+scribe_set_player_team +
+scribe_move '[2,5]' >/dev/null
+scribe_set_player_team o
+scribe_move '[7,3]' >/dev/null
+scribe_set_player_team +
+scribe_move '[5,2]' >/dev/null
+scribe_set_player_team o
+scribe_move '[3,2]' >/dev/null
+scribe_set_player_team +
+result=$(scribe_move '[2,7]')
+test "$result" = '{"legal":true}'
+TEST_END
+
+TEST "Player o forms Ottoman glyph"
+scribe_set_player_team o
+scribe_move '[2,3]' >/dev/null
+scribe_set_player_team +
+scribe_move '[7,7]' >/dev/null
+scribe_set_player_team o
+scribe_move '[3,5]' >/dev/null
+scribe_set_player_team +
+scribe_move '[7,2]' >/dev/null
+scribe_set_player_team o
+scribe_move '[5,3]' >/dev/null
+scribe_set_player_team +
+scribe_move '[7,6]' >/dev/null
+scribe_set_player_team o
+result=$(scribe_move '[3,8]')
+test "$result"='{"legal":true}'
+TEST_END
+
+TEST "Player + forms J glyph"
+scribe_set_player_team +
+scribe_move '[6,1]' >/dev/null
+scribe_set_player_team o
+scribe_move '[8,7]' >/dev/null
+scribe_set_player_team +
+scribe_move '[5,5]' >/dev/null
+scribe_set_player_team o
+scribe_move '[7,5]' >/dev/null
+scribe_set_player_team +
+result=$(scribe_move '[5,7]')
+test "$result"='{"legal":true}'
+TEST_END
+
 TEST_SECTION "Empathy game"
 
 TEST_SUBSECTION "Create a game and register 3 players"