annotate tests/test-state.c @ 329:ea4a3af71c18

rpg: change save_stmt_next API
author David Demelier <markand@malikania.fr>
date Mon, 04 Oct 2021 13:30:09 +0200
parents d01e83210ca2
children f5a5bbb77122
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * test-rbuf.c -- test error routines
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
314
d01e83210ca2 misc: update years
David Demelier <markand@malikania.fr>
parents: 311
diff changeset
4 * Copyright (c) 2020-2021 David Demelier <markand@malikania.fr>
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #include <string.h>
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
20
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 #define GREATEST_USE_ABBREVS 0
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 #include <greatest.h>
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
23
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 #include <core/event.h>
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 #include <core/game.h>
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 #include <core/state.h>
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
27
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 struct invokes {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 unsigned int start;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 unsigned int handle;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 unsigned int update;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 unsigned int draw;
311
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
33 unsigned int suspend;
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
34 unsigned int resume;
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 unsigned int end;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 unsigned int finish;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 };
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
38
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 static void
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 zero(struct invokes *inv)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 memset(inv, 0, sizeof (*inv));
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
44
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 static void
311
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
46 setup(void *data)
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
47 {
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
48 game_init();
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
49 }
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
50
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
51 static void
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
52 cleanup(void *data)
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
53 {
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
54 game_quit();
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
55 }
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
56
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
57 static void
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 my_start(struct state *state)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 ((struct invokes *)state->data)->start++;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
62
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 static void
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 my_handle(struct state *state, const union event *ev)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 (void)ev;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
67
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 ((struct invokes *)state->data)->handle++;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
70
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 static void
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 my_update(struct state *state, unsigned int ticks)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 (void)ticks;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
75
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 ((struct invokes *)state->data)->update++;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
78
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 static void
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 my_draw(struct state *state)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 ((struct invokes *)state->data)->draw++;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
84
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 static void
311
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
86 my_suspend(struct state *state)
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
87 {
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
88 ((struct invokes *)state->data)->suspend++;
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
89 }
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
90
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
91 static void
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
92 my_resume(struct state *state)
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
93 {
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
94 ((struct invokes *)state->data)->resume++;
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
95 }
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
96
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
97 static void
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 my_end(struct state *state)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 ((struct invokes *)state->data)->end++;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
102
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 static void
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 my_finish(struct state *state)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 ((struct invokes *)state->data)->finish++;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
108
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 #define INIT(pdata) { \
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 .data = pdata, \
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 .start = my_start, \
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 .handle = my_handle, \
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 .update = my_update, \
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 .draw = my_draw, \
311
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
115 .suspend = my_suspend, \
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
116 .resume = my_resume, \
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 .end = my_end, \
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 .finish = my_finish \
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
120
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 GREATEST_TEST
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 basics_start(void)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 struct invokes inv = {0};
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
125 struct state state = INIT(&inv);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
126
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
127 state_start(&state);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 GREATEST_ASSERT_EQ(inv.start, 1);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
129 GREATEST_ASSERT_EQ(inv.handle, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
130 GREATEST_ASSERT_EQ(inv.update, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 GREATEST_ASSERT_EQ(inv.draw, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
132 GREATEST_ASSERT_EQ(inv.end, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
133 GREATEST_ASSERT_EQ(inv.finish, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
134
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 GREATEST_PASS();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
136 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
137
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 GREATEST_TEST
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 basics_handle(void)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
140 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
141 struct invokes inv = {0};
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 struct state state = INIT(&inv);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
143
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
144 state_handle(&state, &(union event){0});
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
145 GREATEST_ASSERT_EQ(inv.start, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
146 GREATEST_ASSERT_EQ(inv.handle, 1);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
147 GREATEST_ASSERT_EQ(inv.update, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
148 GREATEST_ASSERT_EQ(inv.draw, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
149 GREATEST_ASSERT_EQ(inv.end, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
150 GREATEST_ASSERT_EQ(inv.finish, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
151
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
152 GREATEST_PASS();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
153 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
154
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
155 GREATEST_TEST
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
156 basics_update(void)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
157 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 struct invokes inv = {0};
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
159 struct state state = INIT(&inv);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
160
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
161 state_update(&state, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 GREATEST_ASSERT_EQ(inv.start, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
163 GREATEST_ASSERT_EQ(inv.handle, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 GREATEST_ASSERT_EQ(inv.update, 1);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
165 GREATEST_ASSERT_EQ(inv.draw, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 GREATEST_ASSERT_EQ(inv.end, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 GREATEST_ASSERT_EQ(inv.finish, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
168
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
169 GREATEST_PASS();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
170 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
171
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
172 GREATEST_TEST
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
173 basics_draw(void)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
174 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
175 struct invokes inv = {0};
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
176 struct state state = INIT(&inv);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
177
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
178 state_draw(&state);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
179 GREATEST_ASSERT_EQ(inv.start, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
180 GREATEST_ASSERT_EQ(inv.handle, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
181 GREATEST_ASSERT_EQ(inv.update, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
182 GREATEST_ASSERT_EQ(inv.draw, 1);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
183 GREATEST_ASSERT_EQ(inv.end, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
184 GREATEST_ASSERT_EQ(inv.finish, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
185
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
186 GREATEST_PASS();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
187 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
188
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
189 GREATEST_TEST
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
190 basics_end(void)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
191 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
192 struct invokes inv = {0};
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
193 struct state state = INIT(&inv);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
194
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
195 state_end(&state);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
196 GREATEST_ASSERT_EQ(inv.start, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
197 GREATEST_ASSERT_EQ(inv.handle, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
198 GREATEST_ASSERT_EQ(inv.update, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
199 GREATEST_ASSERT_EQ(inv.draw, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
200 GREATEST_ASSERT_EQ(inv.end, 1);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
201 GREATEST_ASSERT_EQ(inv.finish, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
202
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
203 GREATEST_PASS();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
204 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
205
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
206 GREATEST_TEST
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
207 basics_finish(void)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
208 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
209 struct invokes inv = {0};
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
210 struct state state = INIT(&inv);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
211
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
212 state_finish(&state);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
213 GREATEST_ASSERT_EQ(inv.start, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
214 GREATEST_ASSERT_EQ(inv.handle, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
215 GREATEST_ASSERT_EQ(inv.update, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
216 GREATEST_ASSERT_EQ(inv.draw, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
217 GREATEST_ASSERT_EQ(inv.end, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
218 GREATEST_ASSERT_EQ(inv.finish, 1);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
219
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
220 GREATEST_PASS();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
221 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
222
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
223 GREATEST_SUITE(suite_basics)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
224 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
225 GREATEST_RUN_TEST(basics_start);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
226 GREATEST_RUN_TEST(basics_handle);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
227 GREATEST_RUN_TEST(basics_update);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
228 GREATEST_RUN_TEST(basics_draw);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
229 GREATEST_RUN_TEST(basics_end);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
230 GREATEST_RUN_TEST(basics_finish);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
231 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
232
311
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
233 GREATEST_TEST
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
234 test_game_push(void)
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
235 {
311
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
236 static struct {
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
237 struct invokes inv;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
238 struct state state;
311
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
239 } states[] = {
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
240 { .state = INIT(&states[0].inv) },
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
241 { .state = INIT(&states[1].inv) }
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
242 };
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
243
311
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
244 /* 0 becomes active and should start. */
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
245 game_push(&states[0].state);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
246 GREATEST_ASSERT_EQ(states[0].inv.start, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
247 GREATEST_ASSERT_EQ(states[0].inv.handle, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
248 GREATEST_ASSERT_EQ(states[0].inv.update, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
249 GREATEST_ASSERT_EQ(states[0].inv.draw, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
250 GREATEST_ASSERT_EQ(states[0].inv.suspend, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
251 GREATEST_ASSERT_EQ(states[0].inv.resume, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
252 GREATEST_ASSERT_EQ(states[0].inv.end, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
253 GREATEST_ASSERT_EQ(states[0].inv.finish, 0U);
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
254
311
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
255 /* Put some event, update and drawing. */
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
256 game_handle(&(union event) { .type = EVENT_QUIT });
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
257 game_update(100);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
258 game_update(100);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
259 game_draw();
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
260 game_draw();
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
261 game_draw();
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
262 GREATEST_ASSERT_EQ(states[0].inv.start, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
263 GREATEST_ASSERT_EQ(states[0].inv.handle, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
264 GREATEST_ASSERT_EQ(states[0].inv.update, 2U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
265 GREATEST_ASSERT_EQ(states[0].inv.draw, 3U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
266 GREATEST_ASSERT_EQ(states[0].inv.suspend, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
267 GREATEST_ASSERT_EQ(states[0].inv.resume, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
268 GREATEST_ASSERT_EQ(states[0].inv.end, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
269 GREATEST_ASSERT_EQ(states[0].inv.finish, 0U);
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
270
311
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
271 /* Switch to state 1, 0 must be suspended. */
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
272 game_push(&states[1].state);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
273 GREATEST_ASSERT_EQ(states[0].inv.start, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
274 GREATEST_ASSERT_EQ(states[0].inv.handle, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
275 GREATEST_ASSERT_EQ(states[0].inv.update, 2U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
276 GREATEST_ASSERT_EQ(states[0].inv.draw, 3U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
277 GREATEST_ASSERT_EQ(states[0].inv.suspend, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
278 GREATEST_ASSERT_EQ(states[0].inv.resume, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
279 GREATEST_ASSERT_EQ(states[0].inv.end, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
280 GREATEST_ASSERT_EQ(states[0].inv.finish, 0U);
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
281
311
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
282 GREATEST_ASSERT_EQ(states[1].inv.start, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
283 GREATEST_ASSERT_EQ(states[1].inv.handle, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
284 GREATEST_ASSERT_EQ(states[1].inv.update, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
285 GREATEST_ASSERT_EQ(states[1].inv.draw, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
286 GREATEST_ASSERT_EQ(states[1].inv.suspend, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
287 GREATEST_ASSERT_EQ(states[1].inv.resume, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
288 GREATEST_ASSERT_EQ(states[1].inv.end, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
289 GREATEST_ASSERT_EQ(states[1].inv.finish, 0U);
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
290
311
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
291 /* Update a little this state. */
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
292 game_update(10);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
293 game_update(10);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
294 game_update(10);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
295 game_update(10);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
296 GREATEST_ASSERT_EQ(states[0].inv.start, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
297 GREATEST_ASSERT_EQ(states[0].inv.handle, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
298 GREATEST_ASSERT_EQ(states[0].inv.update, 2U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
299 GREATEST_ASSERT_EQ(states[0].inv.draw, 3U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
300 GREATEST_ASSERT_EQ(states[0].inv.suspend, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
301 GREATEST_ASSERT_EQ(states[0].inv.resume, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
302 GREATEST_ASSERT_EQ(states[0].inv.end, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
303 GREATEST_ASSERT_EQ(states[0].inv.finish, 0U);
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
304
311
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
305 GREATEST_ASSERT_EQ(states[1].inv.start, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
306 GREATEST_ASSERT_EQ(states[1].inv.handle, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
307 GREATEST_ASSERT_EQ(states[1].inv.update, 4U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
308 GREATEST_ASSERT_EQ(states[1].inv.draw, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
309 GREATEST_ASSERT_EQ(states[1].inv.suspend, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
310 GREATEST_ASSERT_EQ(states[1].inv.resume, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
311 GREATEST_ASSERT_EQ(states[1].inv.end, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
312 GREATEST_ASSERT_EQ(states[1].inv.finish, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
313
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
314 /* Pop it, it should be finalized through end and finish. */
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
315 game_pop();
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
316
311
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
317 GREATEST_ASSERT_EQ(states[0].inv.start, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
318 GREATEST_ASSERT_EQ(states[0].inv.handle, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
319 GREATEST_ASSERT_EQ(states[0].inv.update, 2U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
320 GREATEST_ASSERT_EQ(states[0].inv.draw, 3U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
321 GREATEST_ASSERT_EQ(states[0].inv.suspend, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
322 GREATEST_ASSERT_EQ(states[0].inv.resume, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
323 GREATEST_ASSERT_EQ(states[0].inv.end, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
324 GREATEST_ASSERT_EQ(states[0].inv.finish, 0U);
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
325
311
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
326 GREATEST_ASSERT_EQ(states[1].inv.start, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
327 GREATEST_ASSERT_EQ(states[1].inv.handle, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
328 GREATEST_ASSERT_EQ(states[1].inv.update, 4U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
329 GREATEST_ASSERT_EQ(states[1].inv.draw, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
330 GREATEST_ASSERT_EQ(states[1].inv.suspend, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
331 GREATEST_ASSERT_EQ(states[1].inv.resume, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
332 GREATEST_ASSERT_EQ(states[1].inv.end, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
333 GREATEST_ASSERT_EQ(states[1].inv.finish, 1U);
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
334
311
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
335 /* Pop this state as well. */
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
336 game_pop();
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
337
311
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
338 GREATEST_ASSERT_EQ(states[0].inv.start, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
339 GREATEST_ASSERT_EQ(states[0].inv.handle, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
340 GREATEST_ASSERT_EQ(states[0].inv.update, 2U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
341 GREATEST_ASSERT_EQ(states[0].inv.draw, 3U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
342 GREATEST_ASSERT_EQ(states[0].inv.suspend, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
343 GREATEST_ASSERT_EQ(states[0].inv.resume, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
344 GREATEST_ASSERT_EQ(states[0].inv.end, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
345 GREATEST_ASSERT_EQ(states[0].inv.finish, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
346
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
347 GREATEST_ASSERT_EQ(states[1].inv.start, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
348 GREATEST_ASSERT_EQ(states[1].inv.handle, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
349 GREATEST_ASSERT_EQ(states[1].inv.update, 4U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
350 GREATEST_ASSERT_EQ(states[1].inv.draw, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
351 GREATEST_ASSERT_EQ(states[1].inv.suspend, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
352 GREATEST_ASSERT_EQ(states[1].inv.resume, 0U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
353 GREATEST_ASSERT_EQ(states[1].inv.end, 1U);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
354 GREATEST_ASSERT_EQ(states[1].inv.finish, 1U);
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
355
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
356 GREATEST_PASS();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
357 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
358
311
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
359 GREATEST_SUITE(suite_game)
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
360 {
311
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
361 GREATEST_SET_SETUP_CB(setup, NULL);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
362 GREATEST_SET_TEARDOWN_CB(cleanup, NULL);
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
363 GREATEST_RUN_TEST(test_game_push);
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
364 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
365
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
366 GREATEST_MAIN_DEFS();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
367
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
368 int
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
369 main(int argc, char **argv)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
370 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
371 GREATEST_MAIN_BEGIN();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
372 GREATEST_RUN_SUITE(suite_basics);
311
f10fd1293a7e core: fix states + tests
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
373 GREATEST_RUN_SUITE(suite_game);
165
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
374 GREATEST_MAIN_END();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
375 }