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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
d01e83210ca2 misc: update years
David Demelier <markand@malikania.fr>
parents: 298
diff changeset
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 }