Mercurial > molko
annotate tests/test-action.c @ 349:99d9b6a7e3db
port: implement a mort temporary friendly fmemopen function
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 20 Oct 2021 13:55:41 +0200 |
parents | f5a5bbb77122 |
children | 1e06f871dc63 |
rev | line source |
---|---|
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * test-action.c -- test actions |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
314 | 4 * Copyright (c) 2020-2021 David Demelier <markand@malikania.fr> |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
19 #include <rexo.h> |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 #include <core/action.h> |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 #include <core/event.h> |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 struct invokes { |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
142
diff
changeset
|
25 int handle; |
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
142
diff
changeset
|
26 int update; |
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
142
diff
changeset
|
27 int draw; |
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
142
diff
changeset
|
28 int end; |
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
142
diff
changeset
|
29 int finish; |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 }; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 static union event dummy; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 #define INIT(dat, up) { \ |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 .data = (dat), \ |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 .handle = my_handle, \ |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 .update = (up), \ |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 .draw = my_draw, \ |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 .end = my_end, \ |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 .finish = my_finish \ |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 } |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 static void |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 my_handle(struct action *act, const union event *ev) |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 { |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 (void)ev; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
142
diff
changeset
|
48 ((struct invokes *)act->data)->handle = 1; |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 } |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
142
diff
changeset
|
51 static int |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 my_update_false(struct action *act, unsigned int ticks) |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 { |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 (void)ticks; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
142
diff
changeset
|
56 ((struct invokes *)act->data)->update = 1; |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
142
diff
changeset
|
58 return 0; |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 } |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
142
diff
changeset
|
61 static int |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 my_update_true(struct action *act, unsigned int ticks) |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 { |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 (void)ticks; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
142
diff
changeset
|
66 ((struct invokes *)act->data)->update = 1; |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
142
diff
changeset
|
68 return 1; |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 } |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 static void |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 my_draw(struct action *act) |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 { |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
142
diff
changeset
|
74 ((struct invokes *)act->data)->draw = 1; |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 } |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 static void |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 my_end(struct action *act) |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 { |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
142
diff
changeset
|
80 ((struct invokes *)act->data)->end = 1; |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 } |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 static void |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 my_finish(struct action *act) |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 { |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
142
diff
changeset
|
86 ((struct invokes *)act->data)->finish = 1; |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 } |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
89 RX_TEST_CASE(basics, handle) |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 { |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 struct invokes inv = {0}; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 struct action act = INIT(&inv, my_update_true); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 action_handle(&act, &dummy); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
96 RX_REQUIRE(inv.handle); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
97 RX_REQUIRE(!inv.update); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
98 RX_REQUIRE(!inv.draw); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
99 RX_REQUIRE(!inv.end); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
100 RX_REQUIRE(!inv.finish); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
101 } |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
103 RX_TEST_CASE(basics, update) |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 { |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 struct { |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
106 struct invokes inv; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
107 struct action act; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 } table[] = { |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
109 { .act = INIT(&table[0], my_update_true) }, |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
110 { .act = INIT(&table[1], my_update_false) } |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
111 }; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
112 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
113 /* True version. */ |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
114 RX_REQUIRE(action_update(&table[0].act, 0)); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
115 RX_REQUIRE(!table[0].inv.handle); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
116 RX_REQUIRE(table[0].inv.update); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
117 RX_REQUIRE(!table[0].inv.draw); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
118 RX_REQUIRE(!table[0].inv.end); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
119 RX_REQUIRE(!table[0].inv.finish); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
120 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
121 /* False version. */ |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
122 RX_REQUIRE(!action_update(&table[1].act, 0)); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
123 RX_REQUIRE(!table[1].inv.handle); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
124 RX_REQUIRE(table[1].inv.update); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
125 RX_REQUIRE(!table[1].inv.draw); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
126 RX_REQUIRE(!table[1].inv.end); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
127 RX_REQUIRE(!table[1].inv.finish); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
128 } |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
129 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
130 RX_TEST_CASE(basics, draw) |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
131 { |
142
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
132 struct invokes inv = {0}; |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
133 struct action act = INIT(&inv, my_update_true); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
134 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
135 action_draw(&act); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
136 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
137 RX_REQUIRE(!inv.handle); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
138 RX_REQUIRE(!inv.update); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
139 RX_REQUIRE(inv.draw); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
140 RX_REQUIRE(!inv.end); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
141 RX_REQUIRE(!inv.finish); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
142 } |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
143 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
144 RX_TEST_CASE(basics, end) |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
145 { |
142
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
146 struct invokes inv = {0}; |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
147 struct action act = INIT(&inv, my_update_true); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
148 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
149 action_end(&act); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
150 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
151 RX_REQUIRE(!inv.handle); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
152 RX_REQUIRE(!inv.update); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
153 RX_REQUIRE(!inv.draw); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
154 RX_REQUIRE(inv.end); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
155 RX_REQUIRE(!inv.finish); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
156 } |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
157 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
158 RX_TEST_CASE(basics, finish) |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
159 { |
142
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
160 struct invokes inv = {0}; |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
161 struct action act = INIT(&inv, my_update_true); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
162 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
163 action_finish(&act); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
164 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
165 RX_REQUIRE(!inv.handle); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
166 RX_REQUIRE(!inv.update); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
167 RX_REQUIRE(!inv.draw); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
168 RX_REQUIRE(!inv.end); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
169 RX_REQUIRE(inv.finish); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
170 } |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
171 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
172 RX_TEST_CASE(stack, add) |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
173 { |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
174 struct action_stack st = {0}; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
175 struct action act = {0}; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
176 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
177 RX_INT_REQUIRE_EQUAL(action_stack_add(&st, &act), 0); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
178 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
179 /* Now fill up. */ |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
180 for (int i = 0; i < ACTION_STACK_MAX - 1; ++i) |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
181 RX_INT_REQUIRE_EQUAL(action_stack_add(&st, &act), 0); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
182 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
183 /* This one should not fit in. */ |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
184 RX_INT_REQUIRE_EQUAL(action_stack_add(&st, &act), -1); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
185 } |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
186 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
187 RX_TEST_CASE(stack, handle) |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
188 { |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
189 struct { |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
142
diff
changeset
|
190 int called; |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
191 struct action act; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
192 } table[] = { |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
142
diff
changeset
|
193 { 0, { .data = &table[0].called, .handle = my_handle } }, |
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
142
diff
changeset
|
194 { 0, { .data = &table[1].called, .handle = my_handle } }, |
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
142
diff
changeset
|
195 { 0, { .data = &table[2].called, .handle = my_handle } }, |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
196 }; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
197 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
198 struct action_stack st = {0}; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
199 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
200 action_stack_add(&st, &table[0].act); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
201 action_stack_add(&st, &table[1].act); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
202 action_stack_add(&st, &table[2].act); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
203 action_stack_handle(&st, &dummy); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
204 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
205 RX_REQUIRE(table[0].called); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
206 RX_REQUIRE(table[1].called); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
207 RX_REQUIRE(table[2].called); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
208 } |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
209 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
210 RX_TEST_CASE(stack, update) |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
211 { |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
212 struct { |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
213 struct invokes inv; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
214 struct action act; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
215 } table[] = { |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
216 { .act = INIT(&table[0], my_update_false) }, |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
217 { .act = INIT(&table[1], my_update_true) }, |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
218 { .act = INIT(&table[2], my_update_false) }, |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
219 { .act = INIT(&table[3], my_update_false) }, |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
220 { .act = INIT(&table[4], my_update_true) }, |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
221 { .act = INIT(&table[5], my_update_true) }, |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
222 { .act = INIT(&table[6], my_update_false) }, |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
223 }; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
224 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
225 struct action_stack st = {0}; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
226 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
227 action_stack_add(&st, &table[0].act); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
228 action_stack_add(&st, &table[1].act); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
229 action_stack_add(&st, &table[2].act); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
230 action_stack_add(&st, &table[3].act); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
231 action_stack_add(&st, &table[4].act); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
232 action_stack_add(&st, &table[5].act); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
233 action_stack_add(&st, &table[6].act); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
234 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
235 RX_REQUIRE(!action_stack_update(&st, 0)); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
236 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
237 RX_REQUIRE(!table[0].inv.handle); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
238 RX_REQUIRE(!table[1].inv.handle); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
239 RX_REQUIRE(!table[2].inv.handle); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
240 RX_REQUIRE(!table[3].inv.handle); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
241 RX_REQUIRE(!table[4].inv.handle); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
242 RX_REQUIRE(!table[5].inv.handle); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
243 RX_REQUIRE(!table[6].inv.handle); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
244 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
245 RX_REQUIRE(table[0].inv.update); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
246 RX_REQUIRE(table[1].inv.update); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
247 RX_REQUIRE(table[2].inv.update); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
248 RX_REQUIRE(table[3].inv.update); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
249 RX_REQUIRE(table[4].inv.update); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
250 RX_REQUIRE(table[5].inv.update); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
251 RX_REQUIRE(table[6].inv.update); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
252 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
253 RX_REQUIRE(!table[0].inv.draw); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
254 RX_REQUIRE(!table[1].inv.draw); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
255 RX_REQUIRE(!table[2].inv.draw); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
256 RX_REQUIRE(!table[3].inv.draw); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
257 RX_REQUIRE(!table[4].inv.draw); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
258 RX_REQUIRE(!table[5].inv.draw); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
259 RX_REQUIRE(!table[6].inv.draw); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
260 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
261 RX_REQUIRE(!table[0].inv.end); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
262 RX_REQUIRE(table[1].inv.end); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
263 RX_REQUIRE(!table[2].inv.end); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
264 RX_REQUIRE(!table[3].inv.end); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
265 RX_REQUIRE(table[4].inv.end); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
266 RX_REQUIRE(table[5].inv.end); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
267 RX_REQUIRE(!table[6].inv.end); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
268 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
269 RX_REQUIRE(!table[0].inv.finish); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
270 RX_REQUIRE(table[1].inv.finish); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
271 RX_REQUIRE(!table[2].inv.finish); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
272 RX_REQUIRE(!table[3].inv.finish); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
273 RX_REQUIRE(table[4].inv.finish); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
274 RX_REQUIRE(table[5].inv.finish); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
275 RX_REQUIRE(!table[6].inv.finish); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
276 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
277 /* The following must still be there. */ |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
278 RX_PTR_REQUIRE_EQUAL(st.actions[0], &table[0].act); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
279 RX_PTR_REQUIRE_EQUAL(st.actions[2], &table[2].act); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
280 RX_PTR_REQUIRE_EQUAL(st.actions[3], &table[3].act); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
281 RX_PTR_REQUIRE_EQUAL(st.actions[6], &table[6].act); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
282 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
283 /* The following must have been NULL-ed. */ |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
284 RX_PTR_REQUIRE_EQUAL(st.actions[1], NULL); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
285 RX_PTR_REQUIRE_EQUAL(st.actions[4], NULL); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
286 RX_PTR_REQUIRE_EQUAL(st.actions[5], NULL); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
287 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
288 /* |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
142
diff
changeset
|
289 * Now make all actions to return 1 and check if it cleans the stack. |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
290 */ |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
291 table[0].act.update = |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
292 table[2].act.update = |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
293 table[3].act.update = |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
294 table[6].act.update = my_update_true; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
295 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
296 RX_REQUIRE(action_stack_update(&st, 0)); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
297 RX_PTR_REQUIRE_EQUAL(st.actions[0], NULL); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
298 RX_PTR_REQUIRE_EQUAL(st.actions[1], NULL); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
299 RX_PTR_REQUIRE_EQUAL(st.actions[2], NULL); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
300 RX_PTR_REQUIRE_EQUAL(st.actions[3], NULL); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
301 RX_PTR_REQUIRE_EQUAL(st.actions[4], NULL); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
302 RX_PTR_REQUIRE_EQUAL(st.actions[5], NULL); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
303 RX_PTR_REQUIRE_EQUAL(st.actions[6], NULL); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
304 } |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
305 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
306 RX_TEST_CASE(stack, finish) |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
307 { |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
308 struct { |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
309 struct invokes inv; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
310 struct action act; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
311 } table[] = { |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
312 { .act = INIT(&table[0], my_update_true) }, |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
313 { .act = INIT(&table[0], my_update_false) }, |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
314 }; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
315 struct action_stack st = {0}; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
316 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
317 action_stack_add(&st, &table[0].act); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
318 action_stack_add(&st, &table[1].act); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
319 action_stack_finish(&st); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
320 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
321 RX_REQUIRE(!table[0].inv.handle); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
322 RX_REQUIRE(!table[0].inv.update); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
323 RX_REQUIRE(!table[0].inv.draw); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
324 RX_REQUIRE(table[0].inv.end); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
325 RX_REQUIRE(table[0].inv.finish); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
326 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
327 RX_REQUIRE(!table[0].inv.handle); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
328 RX_REQUIRE(!table[0].inv.update); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
329 RX_REQUIRE(!table[0].inv.draw); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
330 RX_REQUIRE(table[0].inv.end); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
331 RX_REQUIRE(table[0].inv.finish); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
332 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
333 /* They should also be NULL'ed. */ |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
334 RX_PTR_REQUIRE_EQUAL(st.actions[0], NULL); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
335 RX_PTR_REQUIRE_EQUAL(st.actions[1], NULL); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
336 } |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
337 |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
338 int |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
339 main(int argc, char **argv) |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
340 { |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
341 return rx_main(0, NULL, argc, (const char **)argv) == RX_SUCCESS ? 0 : 1; |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
342 } |