annotate tests/test-drawable.c @ 367:74f9cb70fc5d

core: no longer care about in-source data
author David Demelier <markand@malikania.fr>
date Sun, 24 Oct 2021 16:32:34 +0200
parents f5a5bbb77122
children 15bdac29ba4b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * test-action.c -- test actions
4f4795cba52f tests: forgot to add file
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>
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
4f4795cba52f tests: forgot to add file
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>
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
20
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 #include <core/drawable.h>
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 #include <core/event.h>
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
23
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 struct invokes {
298
196264679079 misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents: 143
diff changeset
25 int update;
196264679079 misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents: 143
diff changeset
26 int draw;
196264679079 misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents: 143
diff changeset
27 int end;
196264679079 misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents: 143
diff changeset
28 int finish;
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 };
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
30
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 #define INIT(dat, up) { \
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 .data = (dat), \
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 .update = (up), \
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 .draw = my_draw, \
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 .end = my_end, \
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 .finish = my_finish \
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 }
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
38
298
196264679079 misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents: 143
diff changeset
39 static int
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 my_update_false(struct drawable *dw, unsigned int ticks)
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 {
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 (void)ticks;
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
43
298
196264679079 misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents: 143
diff changeset
44 ((struct invokes *)dw->data)->update = 1;
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
45
298
196264679079 misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents: 143
diff changeset
46 return 0;
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 }
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
48
298
196264679079 misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents: 143
diff changeset
49 static int
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 my_update_true(struct drawable *dw, unsigned int ticks)
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 {
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 (void)ticks;
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
53
298
196264679079 misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents: 143
diff changeset
54 ((struct invokes *)dw->data)->update = 1;
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
55
298
196264679079 misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents: 143
diff changeset
56 return 1;
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 }
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
58
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 static void
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 my_draw(struct drawable *dw)
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 {
298
196264679079 misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents: 143
diff changeset
62 ((struct invokes *)dw->data)->draw = 1;
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 }
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
64
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 static void
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 my_end(struct drawable *dw)
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 {
298
196264679079 misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents: 143
diff changeset
68 ((struct invokes *)dw->data)->end = 1;
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 }
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
70
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 static void
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 my_finish(struct drawable *dw)
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 {
298
196264679079 misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents: 143
diff changeset
74 ((struct invokes *)dw->data)->finish = 1;
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 }
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
76
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
77 RX_TEST_CASE(basics, update)
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 {
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 struct {
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 struct invokes inv;
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 struct drawable dw;
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 } table[] = {
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 { .dw = INIT(&table[0], my_update_true) },
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 { .dw = INIT(&table[1], my_update_false) }
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 };
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
86
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 /* True version. */
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
88 RX_REQUIRE(drawable_update(&table[0].dw, 0));
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
89 RX_REQUIRE(table[0].inv.update);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
90 RX_REQUIRE(!table[0].inv.draw);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
91 RX_REQUIRE(!table[0].inv.end);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
92 RX_REQUIRE(!table[0].inv.finish);
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
93
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 /* False version. */
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
95 RX_REQUIRE(!drawable_update(&table[1].dw, 0));
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
96 RX_REQUIRE(table[1].inv.update);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
97 RX_REQUIRE(!table[1].inv.draw);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
98 RX_REQUIRE(!table[1].inv.end);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
99 RX_REQUIRE(!table[1].inv.finish);
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 }
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
101
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
102 RX_TEST_CASE(basics, draw)
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 {
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 struct invokes inv = {0};
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 struct drawable dw = INIT(&inv, my_update_true);
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
106
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 drawable_draw(&dw);
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
108
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
109 RX_REQUIRE(!inv.update);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
110 RX_REQUIRE(inv.draw);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
111 RX_REQUIRE(!inv.end);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
112 RX_REQUIRE(!inv.finish);
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 }
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
114
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
115 RX_TEST_CASE(basics, end)
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 {
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 struct invokes inv = {0};
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 struct drawable dw = INIT(&inv, my_update_true);
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
119
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 drawable_end(&dw);
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
121
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
122 RX_REQUIRE(!inv.update);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
123 RX_REQUIRE(!inv.draw);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
124 RX_REQUIRE(inv.end);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
125 RX_REQUIRE(!inv.finish);
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
126 }
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
127
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
128 RX_TEST_CASE(basics, finish)
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
129 {
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
130 struct invokes inv = {0};
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 struct drawable dw = INIT(&inv, my_update_true);
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
132
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
133 drawable_finish(&dw);
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
134
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
135 RX_REQUIRE(!inv.update);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
136 RX_REQUIRE(!inv.draw);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
137 RX_REQUIRE(!inv.end);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
138 RX_REQUIRE(inv.finish);
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 }
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
140
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
141 RX_TEST_CASE(stack, add)
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 {
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
143 struct drawable_stack st = {0};
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
144 struct drawable dw = {0};
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
145
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
146 RX_INT_REQUIRE_EQUAL(drawable_stack_add(&st, &dw), 0);
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
147
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
148 /* Now fill up. */
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
149 for (int i = 0; i < DRAWABLE_STACK_MAX - 1; ++i)
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
150 RX_INT_REQUIRE_EQUAL(drawable_stack_add(&st, &dw), 0);
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
151
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
152 /* This one should not fit in. */
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
153 RX_INT_REQUIRE_EQUAL(drawable_stack_add(&st, &dw), -1);
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
154 }
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
155
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
156 RX_TEST_CASE(stack, update)
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
157 {
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 struct {
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
159 struct invokes inv;
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
160 struct drawable dw;
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
161 } table[] = {
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 { .dw = INIT(&table[0], my_update_false) },
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
163 { .dw = INIT(&table[1], my_update_true) },
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 { .dw = INIT(&table[2], my_update_false) },
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
165 { .dw = INIT(&table[3], my_update_false) },
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 { .dw = INIT(&table[4], my_update_true) },
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 { .dw = INIT(&table[5], my_update_true) },
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
168 { .dw = INIT(&table[6], my_update_false) },
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
169 };
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
170
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
171 struct drawable_stack st = {0};
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
172
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
173 drawable_stack_add(&st, &table[0].dw);
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
174 drawable_stack_add(&st, &table[1].dw);
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
175 drawable_stack_add(&st, &table[2].dw);
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
176 drawable_stack_add(&st, &table[3].dw);
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
177 drawable_stack_add(&st, &table[4].dw);
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
178 drawable_stack_add(&st, &table[5].dw);
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
179 drawable_stack_add(&st, &table[6].dw);
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
180
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
181 RX_REQUIRE(!drawable_stack_update(&st, 0));
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
182
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
183 RX_REQUIRE(table[0].inv.update);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
184 RX_REQUIRE(table[1].inv.update);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
185 RX_REQUIRE(table[2].inv.update);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
186 RX_REQUIRE(table[3].inv.update);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
187 RX_REQUIRE(table[4].inv.update);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
188 RX_REQUIRE(table[5].inv.update);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
189 RX_REQUIRE(table[6].inv.update);
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
190
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
191 RX_REQUIRE(!table[0].inv.draw);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
192 RX_REQUIRE(!table[1].inv.draw);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
193 RX_REQUIRE(!table[2].inv.draw);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
194 RX_REQUIRE(!table[3].inv.draw);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
195 RX_REQUIRE(!table[4].inv.draw);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
196 RX_REQUIRE(!table[5].inv.draw);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
197 RX_REQUIRE(!table[6].inv.draw);
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
198
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
199 RX_REQUIRE(!table[0].inv.end);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
200 RX_REQUIRE(table[1].inv.end);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
201 RX_REQUIRE(!table[2].inv.end);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
202 RX_REQUIRE(!table[3].inv.end);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
203 RX_REQUIRE(table[4].inv.end);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
204 RX_REQUIRE(table[5].inv.end);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
205 RX_REQUIRE(!table[6].inv.end);
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
206
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
207 RX_REQUIRE(!table[0].inv.finish);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
208 RX_REQUIRE(table[1].inv.finish);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
209 RX_REQUIRE(!table[2].inv.finish);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
210 RX_REQUIRE(!table[3].inv.finish);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
211 RX_REQUIRE(table[4].inv.finish);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
212 RX_REQUIRE(table[5].inv.finish);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
213 RX_REQUIRE(!table[6].inv.finish);
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
214
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
215 /* The following must still be there. */
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
216 RX_PTR_REQUIRE_EQUAL(st.objects[0], &table[0].dw);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
217 RX_PTR_REQUIRE_EQUAL(st.objects[2], &table[2].dw);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
218 RX_PTR_REQUIRE_EQUAL(st.objects[3], &table[3].dw);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
219 RX_PTR_REQUIRE_EQUAL(st.objects[6], &table[6].dw);
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
220
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
221 /* The following must have been NULL-ed. */
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
222 RX_PTR_REQUIRE_EQUAL(st.objects[1], NULL);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
223 RX_PTR_REQUIRE_EQUAL(st.objects[4], NULL);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
224 RX_PTR_REQUIRE_EQUAL(st.objects[5], NULL);
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
225
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
226 /*
298
196264679079 misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents: 143
diff changeset
227 * Now make all actions to return 1 and check if it cleans the stack.
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
228 */
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
229 table[0].dw.update =
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
230 table[2].dw.update =
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
231 table[3].dw.update =
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
232 table[6].dw.update = my_update_true;
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
233
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
234 RX_REQUIRE(drawable_stack_update(&st, 0));
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
235 RX_PTR_REQUIRE_EQUAL(st.objects[0], NULL);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
236 RX_PTR_REQUIRE_EQUAL(st.objects[1], NULL);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
237 RX_PTR_REQUIRE_EQUAL(st.objects[2], NULL);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
238 RX_PTR_REQUIRE_EQUAL(st.objects[3], NULL);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
239 RX_PTR_REQUIRE_EQUAL(st.objects[4], NULL);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
240 RX_PTR_REQUIRE_EQUAL(st.objects[5], NULL);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
241 RX_PTR_REQUIRE_EQUAL(st.objects[6], NULL);
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
242 }
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
243
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
244 RX_TEST_CASE(stack, finish)
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
245 {
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
246 struct {
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
247 struct invokes inv;
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
248 struct drawable dw;
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
249 } table[] = {
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
250 { .dw = INIT(&table[0], my_update_true) },
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
251 { .dw = INIT(&table[0], my_update_false) },
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
252 };
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
253 struct drawable_stack st = {0};
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
254
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
255 drawable_stack_add(&st, &table[0].dw);
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
256 drawable_stack_add(&st, &table[1].dw);
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
257 drawable_stack_finish(&st);
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
258
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
259 RX_REQUIRE(!table[0].inv.update);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
260 RX_REQUIRE(!table[0].inv.draw);
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[0].inv.finish);
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
263
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
264 RX_REQUIRE(!table[0].inv.update);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
265 RX_REQUIRE(!table[0].inv.draw);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
266 RX_REQUIRE(table[0].inv.end);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
267 RX_REQUIRE(table[0].inv.finish);
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
268
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
269 /* They should also be NULL'ed. */
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
270 RX_PTR_REQUIRE_EQUAL(st.objects[0], NULL);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
271 RX_PTR_REQUIRE_EQUAL(st.objects[1], NULL);
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
272 }
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
273
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
274 int
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
275 main(int argc, char **argv)
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
276 {
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
277 return rx_main(0, NULL, argc, (const char **)argv) == RX_SUCCESS ? 0 : 1;
143
4f4795cba52f tests: forgot to add file
David Demelier <markand@malikania.fr>
parents:
diff changeset
278 }