annotate tests/test-state.c @ 297:6151152d009c

examples: remove Javascript
author David Demelier <markand@malikania.fr>
date Wed, 10 Mar 2021 18:49:00 +0100
parents eb3148c1e54d
children 196264679079
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 *
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2020 David Demelier <markand@malikania.fr>
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;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 unsigned int end;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 unsigned int finish;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 };
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
36
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 static void
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 zero(struct invokes *inv)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 memset(inv, 0, sizeof (*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
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 static void
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 my_start(struct state *state)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 ((struct invokes *)state->data)->start++;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
48
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 static void
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 my_handle(struct state *state, const union event *ev)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 (void)ev;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
53
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 ((struct invokes *)state->data)->handle++;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
56
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 static void
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 my_update(struct state *state, unsigned int ticks)
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 (void)ticks;
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 ((struct invokes *)state->data)->update++;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
64
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 static void
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 my_draw(struct state *state)
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)->draw++;
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_end(struct state *state)
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 ((struct invokes *)state->data)->end++;
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
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 static void
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 my_finish(struct state *state)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 ((struct invokes *)state->data)->finish++;
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
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 #define INIT(pdata) { \
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 .data = pdata, \
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 .start = my_start, \
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 .handle = my_handle, \
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 .update = my_update, \
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 .draw = my_draw, \
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 .end = my_end, \
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 .finish = my_finish \
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
92
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 GREATEST_TEST
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 basics_start(void)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 struct invokes inv = {0};
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 struct state state = INIT(&inv);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
98
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 state_start(&state);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 GREATEST_ASSERT_EQ(inv.start, 1);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 GREATEST_ASSERT_EQ(inv.handle, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 GREATEST_ASSERT_EQ(inv.update, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 GREATEST_ASSERT_EQ(inv.draw, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 GREATEST_ASSERT_EQ(inv.end, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 GREATEST_ASSERT_EQ(inv.finish, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
106
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 GREATEST_PASS();
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
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 GREATEST_TEST
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 basics_handle(void)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 struct invokes inv = {0};
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 struct state state = INIT(&inv);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
115
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 state_handle(&state, &(union event){0});
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 GREATEST_ASSERT_EQ(inv.start, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 GREATEST_ASSERT_EQ(inv.handle, 1);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 GREATEST_ASSERT_EQ(inv.update, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 GREATEST_ASSERT_EQ(inv.draw, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 GREATEST_ASSERT_EQ(inv.end, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 GREATEST_ASSERT_EQ(inv.finish, 0);
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 GREATEST_PASS();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
125 }
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 GREATEST_TEST
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 basics_update(void)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
129 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
130 struct invokes inv = {0};
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 struct state state = INIT(&inv);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
132
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
133 state_update(&state, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
134 GREATEST_ASSERT_EQ(inv.start, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 GREATEST_ASSERT_EQ(inv.handle, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
136 GREATEST_ASSERT_EQ(inv.update, 1);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
137 GREATEST_ASSERT_EQ(inv.draw, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 GREATEST_ASSERT_EQ(inv.end, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 GREATEST_ASSERT_EQ(inv.finish, 0);
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 GREATEST_PASS();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 }
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 GREATEST_TEST
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
145 basics_draw(void)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
146 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
147 struct invokes inv = {0};
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
148 struct state state = INIT(&inv);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
149
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
150 state_draw(&state);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
151 GREATEST_ASSERT_EQ(inv.start, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
152 GREATEST_ASSERT_EQ(inv.handle, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
153 GREATEST_ASSERT_EQ(inv.update, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
154 GREATEST_ASSERT_EQ(inv.draw, 1);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
155 GREATEST_ASSERT_EQ(inv.end, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
156 GREATEST_ASSERT_EQ(inv.finish, 0);
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 GREATEST_PASS();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
159 }
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 GREATEST_TEST
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 basics_end(void)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
163 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 struct invokes inv = {0};
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
165 struct state state = INIT(&inv);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
166
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 state_end(&state);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
168 GREATEST_ASSERT_EQ(inv.start, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
169 GREATEST_ASSERT_EQ(inv.handle, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
170 GREATEST_ASSERT_EQ(inv.update, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
171 GREATEST_ASSERT_EQ(inv.draw, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
172 GREATEST_ASSERT_EQ(inv.end, 1);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
173 GREATEST_ASSERT_EQ(inv.finish, 0);
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 GREATEST_PASS();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
176 }
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 GREATEST_TEST
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
179 basics_finish(void)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
180 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
181 struct invokes inv = {0};
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
182 struct state state = INIT(&inv);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
183
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
184 state_finish(&state);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
185 GREATEST_ASSERT_EQ(inv.start, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
186 GREATEST_ASSERT_EQ(inv.handle, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
187 GREATEST_ASSERT_EQ(inv.update, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
188 GREATEST_ASSERT_EQ(inv.draw, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
189 GREATEST_ASSERT_EQ(inv.end, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
190 GREATEST_ASSERT_EQ(inv.finish, 1);
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 GREATEST_PASS();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
193 }
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 GREATEST_SUITE(suite_basics)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
196 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
197 GREATEST_RUN_TEST(basics_start);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
198 GREATEST_RUN_TEST(basics_handle);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
199 GREATEST_RUN_TEST(basics_update);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
200 GREATEST_RUN_TEST(basics_draw);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
201 GREATEST_RUN_TEST(basics_end);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
202 GREATEST_RUN_TEST(basics_finish);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
203 }
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 static void
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
206 switch_startup(void *data)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
207 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
208 memset(data, 0, sizeof (game));
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
209 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
210
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
211 GREATEST_TEST
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
212 switch_quick_true(void)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
213 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
214 struct {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
215 struct invokes inv;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
216 struct state state;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
217 } table[2] = {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
218 { .state = INIT(&table[0]) },
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
219 { .state = INIT(&table[1]) }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
220 };
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 * When set to true, switching quickly state will immediately set the
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
224 * current state to the specified one and call start on it. However,
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
225 * if there was already a planned state, it is finished immediately.
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
226 */
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
227 game_switch(&table[0].state, true);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
228
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
229 GREATEST_ASSERT_EQ(table[0].inv.start, 1);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
230 GREATEST_ASSERT_EQ(table[0].inv.handle, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
231 GREATEST_ASSERT_EQ(table[0].inv.update, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
232 GREATEST_ASSERT_EQ(table[0].inv.draw, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
233 GREATEST_ASSERT_EQ(table[0].inv.end, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
234 GREATEST_ASSERT_EQ(table[0].inv.finish, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
235
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
236 GREATEST_ASSERT_EQ(table[1].inv.start, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
237 GREATEST_ASSERT_EQ(table[1].inv.handle, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
238 GREATEST_ASSERT_EQ(table[1].inv.update, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
239 GREATEST_ASSERT_EQ(table[1].inv.draw, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
240 GREATEST_ASSERT_EQ(table[1].inv.end, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
241 GREATEST_ASSERT_EQ(table[1].inv.finish, 0);
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 /* Switch from [0] to [1] quickly, [0] should be closed immediately. */
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
244 zero(&table[0].inv);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
245 game_switch(&table[1].state, true);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
246
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
247 GREATEST_ASSERT_EQ(table[0].inv.start, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
248 GREATEST_ASSERT_EQ(table[0].inv.handle, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
249 GREATEST_ASSERT_EQ(table[0].inv.update, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
250 GREATEST_ASSERT_EQ(table[0].inv.draw, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
251 GREATEST_ASSERT_EQ(table[0].inv.end, 1);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
252 GREATEST_ASSERT_EQ(table[0].inv.finish, 1);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
253
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
254 GREATEST_ASSERT_EQ(table[1].inv.start, 1);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
255 GREATEST_ASSERT_EQ(table[1].inv.handle, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
256 GREATEST_ASSERT_EQ(table[1].inv.update, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
257 GREATEST_ASSERT_EQ(table[1].inv.draw, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
258 GREATEST_ASSERT_EQ(table[1].inv.end, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
259 GREATEST_ASSERT_EQ(table[1].inv.finish, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
260
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
261 GREATEST_PASS();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
262 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
263
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
264 GREATEST_TEST
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
265 switch_quick_false(void)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
266 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
267 struct {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
268 struct invokes inv;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
269 struct state state;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
270 } table[2] = {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
271 { .state = INIT(&table[0]) },
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
272 { .state = INIT(&table[1]) }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
273 };
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
274
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
275 game_switch(&table[0].state, true);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
276
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
277 GREATEST_ASSERT_EQ(table[0].inv.start, 1);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
278 GREATEST_ASSERT_EQ(table[0].inv.handle, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
279 GREATEST_ASSERT_EQ(table[0].inv.update, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
280 GREATEST_ASSERT_EQ(table[0].inv.draw, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
281 GREATEST_ASSERT_EQ(table[0].inv.end, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
282 GREATEST_ASSERT_EQ(table[0].inv.finish, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
283
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
284 GREATEST_ASSERT_EQ(table[1].inv.start, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
285 GREATEST_ASSERT_EQ(table[1].inv.handle, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
286 GREATEST_ASSERT_EQ(table[1].inv.update, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
287 GREATEST_ASSERT_EQ(table[1].inv.draw, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
288 GREATEST_ASSERT_EQ(table[1].inv.end, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
289 GREATEST_ASSERT_EQ(table[1].inv.finish, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
290
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
291 /*
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
292 * Switch from [0] to [1] quickly, this should do nothing as it should
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
293 * be done on the next game_update call instead.
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
294 */
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
295 zero(&table[0].inv);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
296 game_switch(&table[1].state, false);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
297
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
298 GREATEST_ASSERT_EQ(table[0].inv.start, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
299 GREATEST_ASSERT_EQ(table[0].inv.handle, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
300 GREATEST_ASSERT_EQ(table[0].inv.update, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
301 GREATEST_ASSERT_EQ(table[0].inv.draw, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
302 GREATEST_ASSERT_EQ(table[0].inv.end, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
303 GREATEST_ASSERT_EQ(table[0].inv.finish, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
304
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
305 GREATEST_ASSERT_EQ(table[1].inv.start, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
306 GREATEST_ASSERT_EQ(table[1].inv.handle, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
307 GREATEST_ASSERT_EQ(table[1].inv.update, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
308 GREATEST_ASSERT_EQ(table[1].inv.draw, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
309 GREATEST_ASSERT_EQ(table[1].inv.end, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
310 GREATEST_ASSERT_EQ(table[1].inv.finish, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
311
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
312 GREATEST_PASS();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
313 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
314
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
315 GREATEST_TEST
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
316 switch_invoke(void)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
317 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
318 struct {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
319 struct invokes inv;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
320 struct state state;
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
321 } table[2] = {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
322 { .state = INIT(&table[0]) },
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
323 { .state = INIT(&table[1]) }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
324 };
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
325
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
326 /* Start with 0. */
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
327 game_switch(&table[0].state, true);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
328
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
329 /* Ask to switch to 1. */
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
330 zero(&table[0].inv);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
331 game_switch(&table[1].state, true);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
332 game_update(0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
333
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
334 GREATEST_ASSERT_EQ(table[0].inv.start, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
335 GREATEST_ASSERT_EQ(table[0].inv.handle, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
336 GREATEST_ASSERT_EQ(table[0].inv.update, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
337 GREATEST_ASSERT_EQ(table[0].inv.draw, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
338 GREATEST_ASSERT_EQ(table[0].inv.end, 1);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
339 GREATEST_ASSERT_EQ(table[0].inv.finish, 1);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
340
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
341 GREATEST_ASSERT_EQ(table[1].inv.start, 1);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
342 GREATEST_ASSERT_EQ(table[1].inv.handle, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
343 GREATEST_ASSERT_EQ(table[1].inv.update, 1);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
344 GREATEST_ASSERT_EQ(table[1].inv.draw, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
345 GREATEST_ASSERT_EQ(table[1].inv.end, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
346 GREATEST_ASSERT_EQ(table[1].inv.finish, 0);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
347
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
348 GREATEST_PASS();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
349 }
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
350
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
351 GREATEST_SUITE(suite_switch)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
352 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
353 GREATEST_SET_SETUP_CB(switch_startup, &game);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
354 GREATEST_RUN_TEST(switch_quick_true);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
355 GREATEST_RUN_TEST(switch_quick_false);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
356 GREATEST_RUN_TEST(switch_invoke);
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
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
359 GREATEST_MAIN_DEFS();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
360
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
361 int
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
362 main(int argc, char **argv)
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
363 {
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
364 GREATEST_MAIN_BEGIN();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
365 GREATEST_RUN_SUITE(suite_basics);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
366 GREATEST_RUN_SUITE(suite_switch);
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
367 GREATEST_MAIN_END();
eb3148c1e54d core: add state functions
David Demelier <markand@malikania.fr>
parents:
diff changeset
368 }