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