Mercurial > molko
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 |
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 | 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 } |