annotate tests/test-action-script.c @ 144:28d9bb62fcb1

core: add font_box function, closes #2495 While here, add an example of usage.
author David Demelier <markand@malikania.fr>
date Wed, 14 Oct 2020 16:40:34 +0200
parents 30b68089ae70
children 196264679079
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * test-script.c -- test script action
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2020 David Demelier <markand@malikania.fr>
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
19 #define GREATEST_USE_ABBREVS 0
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #include <greatest.h>
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
22 #include <core/action.h>
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
23 #include <core/event.h>
121
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents: 65
diff changeset
24 #include <core/script.h>
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
25
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
26 struct invokes {
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
27 int handle;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
28 int update;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
29 int draw;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
30 int end;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
31 int finish;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
32 };
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
33
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
34 #define INIT(dat, up) { \
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
35 .data = (dat), \
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
36 .handle = my_handle, \
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
37 .update = (up), \
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
38 .draw = my_draw, \
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
39 .end = my_end, \
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
40 .finish = my_finish \
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
41 }
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
42
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
43 static void
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
44 my_handle(struct action *act, const union event *ev)
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 {
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
46 (void)ev;
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
47
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
48 ((struct invokes *)act->data)->handle++;
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 }
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
50
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 static bool
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
52 my_update_false(struct action *act, unsigned int ticks)
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 {
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 (void)ticks;
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
55
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
56 ((struct invokes *)act->data)->update++;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
57
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 return false;
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 }
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
60
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
61 static bool
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
62 my_update_true(struct action *act, unsigned int ticks)
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 {
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
64 (void)ticks;
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
65
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
66 ((struct invokes *)act->data)->update++;
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
67
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
68 return true;
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 }
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
70
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
71 static void
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
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: 121
diff changeset
73 {
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
74 ((struct invokes *)act->data)->draw++;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
75 }
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
76
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
77 static void
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
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: 121
diff changeset
79 {
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
80 ((struct invokes *)act->data)->end++;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
81 }
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
82
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
83 static void
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
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: 121
diff changeset
85 {
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
86 ((struct invokes *)act->data)->finish++;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
87 }
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
88
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
89 GREATEST_TEST
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
90 basics_init(void)
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 {
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 struct script sc;
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
93
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 script_init(&sc);
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
95
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
96 GREATEST_ASSERT_EQ(sc.actionsz, 0U);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
97 GREATEST_ASSERT_EQ(sc.cur, 0U);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
98
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
99 GREATEST_PASS();
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 }
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
101
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
102 GREATEST_TEST
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
103 basics_append(void)
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 {
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
105 struct action act[3] = {0};
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
106 struct script sc = {0};
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
107
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
108 GREATEST_ASSERT(script_append(&sc, &act[0]));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
109 GREATEST_ASSERT_EQ(sc.cur, 0U);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
110 GREATEST_ASSERT_EQ(sc.actionsz, 1U);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
111 GREATEST_ASSERT_EQ(sc.actions[0], &act[0]);
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
112
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
113 GREATEST_ASSERT(script_append(&sc, &act[1]));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
114 GREATEST_ASSERT_EQ(sc.cur, 0U);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
115 GREATEST_ASSERT_EQ(sc.actionsz, 2U);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
116 GREATEST_ASSERT_EQ(sc.actions[0], &act[0]);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
117 GREATEST_ASSERT_EQ(sc.actions[1], &act[1]);
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
118
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
119 GREATEST_ASSERT(script_append(&sc, &act[2]));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
120 GREATEST_ASSERT_EQ(sc.cur, 0U);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
121 GREATEST_ASSERT_EQ(sc.actionsz, 3U);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
122 GREATEST_ASSERT_EQ(sc.actions[0], &act[0]);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
123 GREATEST_ASSERT_EQ(sc.actions[1], &act[1]);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
124 GREATEST_ASSERT_EQ(sc.actions[2], &act[2]);
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
125
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
126 script_finish(&sc);
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
127
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
128 GREATEST_PASS();
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
129 }
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
130
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
131 GREATEST_TEST
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
132 basics_handle(void)
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
133 {
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
134 struct {
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
135 struct invokes inv;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
136 struct action act;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
137 } table[] = {
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
138 { .act = INIT(&table[0].inv, my_update_true) },
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
139 { .act = INIT(&table[1].inv, my_update_true) },
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
140 { .act = INIT(&table[2].inv, my_update_false) }
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
141 };
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
142
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
143 struct script sc = {0};
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
144
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
145 GREATEST_ASSERT(script_append(&sc, &table[0].act));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
146 GREATEST_ASSERT(script_append(&sc, &table[1].act));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
147 GREATEST_ASSERT(script_append(&sc, &table[2].act));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
148
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
149 /* [0] */
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
150 script_handle(&sc, &(union event){0});
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
151 GREATEST_ASSERT_EQ(table[0].inv.handle, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
152 GREATEST_ASSERT_EQ(table[0].inv.update, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
153 GREATEST_ASSERT_EQ(table[0].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
154 GREATEST_ASSERT_EQ(table[0].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
155 GREATEST_ASSERT_EQ(table[0].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
156 GREATEST_ASSERT_EQ(table[1].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
157 GREATEST_ASSERT_EQ(table[1].inv.update, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
158 GREATEST_ASSERT_EQ(table[1].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
159 GREATEST_ASSERT_EQ(table[1].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
160 GREATEST_ASSERT_EQ(table[1].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
161 GREATEST_ASSERT_EQ(table[2].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
162 GREATEST_ASSERT_EQ(table[2].inv.update, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
163 GREATEST_ASSERT_EQ(table[2].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
164 GREATEST_ASSERT_EQ(table[2].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
165 GREATEST_ASSERT_EQ(table[2].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
166
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
167 /* [0] -> [1] */
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
168 GREATEST_ASSERT(!script_update(&sc, 0));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
169 script_handle(&sc, &(union event){0});
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
170
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
171 GREATEST_ASSERT_EQ(table[0].inv.handle, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
172 GREATEST_ASSERT_EQ(table[0].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
173 GREATEST_ASSERT_EQ(table[0].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
174 GREATEST_ASSERT_EQ(table[0].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
175 GREATEST_ASSERT_EQ(table[0].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
176 GREATEST_ASSERT_EQ(table[1].inv.handle, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
177 GREATEST_ASSERT_EQ(table[1].inv.update, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
178 GREATEST_ASSERT_EQ(table[1].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
179 GREATEST_ASSERT_EQ(table[1].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
180 GREATEST_ASSERT_EQ(table[1].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
181 GREATEST_ASSERT_EQ(table[2].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
182 GREATEST_ASSERT_EQ(table[2].inv.update, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
183 GREATEST_ASSERT_EQ(table[2].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
184 GREATEST_ASSERT_EQ(table[2].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
185 GREATEST_ASSERT_EQ(table[2].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
186
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
187 /* [2] */
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
188 GREATEST_ASSERT(!script_update(&sc, 0));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
189 script_handle(&sc, &(union event){0});
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
190
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
191 GREATEST_ASSERT_EQ(table[0].inv.handle, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
192 GREATEST_ASSERT_EQ(table[0].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
193 GREATEST_ASSERT_EQ(table[0].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
194 GREATEST_ASSERT_EQ(table[0].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
195 GREATEST_ASSERT_EQ(table[0].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
196 GREATEST_ASSERT_EQ(table[1].inv.handle, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
197 GREATEST_ASSERT_EQ(table[1].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
198 GREATEST_ASSERT_EQ(table[1].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
199 GREATEST_ASSERT_EQ(table[1].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
200 GREATEST_ASSERT_EQ(table[1].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
201 GREATEST_ASSERT_EQ(table[2].inv.handle, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
202 GREATEST_ASSERT_EQ(table[2].inv.update, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
203 GREATEST_ASSERT_EQ(table[2].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
204 GREATEST_ASSERT_EQ(table[2].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
205 GREATEST_ASSERT_EQ(table[2].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
206
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
207 GREATEST_PASS();
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
208 }
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
209
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
210 GREATEST_TEST
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
211 basics_update(void)
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
212 {
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
213 struct {
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
214 struct invokes inv;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
215 struct action act;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
216 } table[] = {
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
217 { .act = INIT(&table[0].inv, my_update_true) },
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
218 { .act = INIT(&table[1].inv, my_update_true) },
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
219 { .act = INIT(&table[2].inv, my_update_false) }
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
220 };
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
221
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
222 struct script sc = {0};
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
223
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
224 GREATEST_ASSERT(script_append(&sc, &table[0].act));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
225 GREATEST_ASSERT(script_append(&sc, &table[1].act));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
226 GREATEST_ASSERT(script_append(&sc, &table[2].act));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
227
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
228 /* 0 -> 1 */
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
229 GREATEST_ASSERT(!script_update(&sc, 0));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
230 GREATEST_ASSERT_EQ(table[0].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
231 GREATEST_ASSERT_EQ(table[0].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
232 GREATEST_ASSERT_EQ(table[0].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
233 GREATEST_ASSERT_EQ(table[0].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
234 GREATEST_ASSERT_EQ(table[0].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
235 GREATEST_ASSERT_EQ(table[1].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
236 GREATEST_ASSERT_EQ(table[1].inv.update, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
237 GREATEST_ASSERT_EQ(table[1].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
238 GREATEST_ASSERT_EQ(table[1].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
239 GREATEST_ASSERT_EQ(table[1].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
240 GREATEST_ASSERT_EQ(table[2].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
241 GREATEST_ASSERT_EQ(table[2].inv.update, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
242 GREATEST_ASSERT_EQ(table[2].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
243 GREATEST_ASSERT_EQ(table[2].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
244 GREATEST_ASSERT_EQ(table[2].inv.finish, 0);
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
245
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
246 /* 1 -> 2 */
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
247 GREATEST_ASSERT(!script_update(&sc, 0));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
248 GREATEST_ASSERT_EQ(table[0].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
249 GREATEST_ASSERT_EQ(table[0].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
250 GREATEST_ASSERT_EQ(table[0].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
251 GREATEST_ASSERT_EQ(table[0].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
252 GREATEST_ASSERT_EQ(table[0].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
253 GREATEST_ASSERT_EQ(table[1].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
254 GREATEST_ASSERT_EQ(table[1].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
255 GREATEST_ASSERT_EQ(table[1].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
256 GREATEST_ASSERT_EQ(table[1].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
257 GREATEST_ASSERT_EQ(table[1].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
258 GREATEST_ASSERT_EQ(table[2].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
259 GREATEST_ASSERT_EQ(table[2].inv.update, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
260 GREATEST_ASSERT_EQ(table[2].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
261 GREATEST_ASSERT_EQ(table[2].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
262 GREATEST_ASSERT_EQ(table[2].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
263
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
264 /* 2 stays, it never ends. */
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
265 GREATEST_ASSERT(!script_update(&sc, 0));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
266 GREATEST_ASSERT(!script_update(&sc, 0));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
267 GREATEST_ASSERT(!script_update(&sc, 0));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
268 GREATEST_ASSERT_EQ(table[0].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
269 GREATEST_ASSERT_EQ(table[0].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
270 GREATEST_ASSERT_EQ(table[0].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
271 GREATEST_ASSERT_EQ(table[0].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
272 GREATEST_ASSERT_EQ(table[0].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
273 GREATEST_ASSERT_EQ(table[1].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
274 GREATEST_ASSERT_EQ(table[1].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
275 GREATEST_ASSERT_EQ(table[1].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
276 GREATEST_ASSERT_EQ(table[1].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
277 GREATEST_ASSERT_EQ(table[1].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
278 GREATEST_ASSERT_EQ(table[2].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
279 GREATEST_ASSERT_EQ(table[2].inv.update, 3);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
280 GREATEST_ASSERT_EQ(table[2].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
281 GREATEST_ASSERT_EQ(table[2].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
282 GREATEST_ASSERT_EQ(table[2].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
283
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
284 /* Now, change its update function to complete the script. */
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
285 table[2].act.update = my_update_true;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
286 GREATEST_ASSERT(script_update(&sc, 0));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
287 GREATEST_ASSERT_EQ(table[0].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
288 GREATEST_ASSERT_EQ(table[0].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
289 GREATEST_ASSERT_EQ(table[0].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
290 GREATEST_ASSERT_EQ(table[0].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
291 GREATEST_ASSERT_EQ(table[0].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
292 GREATEST_ASSERT_EQ(table[1].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
293 GREATEST_ASSERT_EQ(table[1].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
294 GREATEST_ASSERT_EQ(table[1].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
295 GREATEST_ASSERT_EQ(table[1].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
296 GREATEST_ASSERT_EQ(table[1].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
297 GREATEST_ASSERT_EQ(table[2].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
298 GREATEST_ASSERT_EQ(table[2].inv.update, 4);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
299 GREATEST_ASSERT_EQ(table[2].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
300 GREATEST_ASSERT_EQ(table[2].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
301 GREATEST_ASSERT_EQ(table[2].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
302
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
303 GREATEST_PASS();
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
304 }
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
305
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
306 GREATEST_TEST
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
307 basics_draw(void)
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
308 {
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
309 struct {
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
310 struct invokes inv;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
311 struct action act;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
312 } table[] = {
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
313 { .act = INIT(&table[0].inv, my_update_true) },
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
314 { .act = INIT(&table[1].inv, my_update_true) },
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
315 { .act = INIT(&table[2].inv, my_update_false) }
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
316 };
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
317
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
318 struct script sc = {0};
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
319
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
320 GREATEST_ASSERT(script_append(&sc, &table[0].act));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
321 GREATEST_ASSERT(script_append(&sc, &table[1].act));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
322 GREATEST_ASSERT(script_append(&sc, &table[2].act));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
323
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
324 /* [0] */
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
325 script_draw(&sc);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
326 GREATEST_ASSERT_EQ(table[0].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
327 GREATEST_ASSERT_EQ(table[0].inv.update, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
328 GREATEST_ASSERT_EQ(table[0].inv.draw, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
329 GREATEST_ASSERT_EQ(table[0].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
330 GREATEST_ASSERT_EQ(table[0].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
331 GREATEST_ASSERT_EQ(table[1].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
332 GREATEST_ASSERT_EQ(table[1].inv.update, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
333 GREATEST_ASSERT_EQ(table[1].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
334 GREATEST_ASSERT_EQ(table[1].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
335 GREATEST_ASSERT_EQ(table[1].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
336 GREATEST_ASSERT_EQ(table[2].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
337 GREATEST_ASSERT_EQ(table[2].inv.update, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
338 GREATEST_ASSERT_EQ(table[2].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
339 GREATEST_ASSERT_EQ(table[2].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
340 GREATEST_ASSERT_EQ(table[2].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
341
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
342 /* [0] -> [1] */
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
343 GREATEST_ASSERT(!script_update(&sc, 0));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
344 script_draw(&sc);
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
345
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
346 GREATEST_ASSERT_EQ(table[0].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
347 GREATEST_ASSERT_EQ(table[0].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
348 GREATEST_ASSERT_EQ(table[0].inv.draw, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
349 GREATEST_ASSERT_EQ(table[0].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
350 GREATEST_ASSERT_EQ(table[0].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
351 GREATEST_ASSERT_EQ(table[1].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
352 GREATEST_ASSERT_EQ(table[1].inv.update, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
353 GREATEST_ASSERT_EQ(table[1].inv.draw, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
354 GREATEST_ASSERT_EQ(table[1].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
355 GREATEST_ASSERT_EQ(table[1].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
356 GREATEST_ASSERT_EQ(table[2].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
357 GREATEST_ASSERT_EQ(table[2].inv.update, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
358 GREATEST_ASSERT_EQ(table[2].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
359 GREATEST_ASSERT_EQ(table[2].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
360 GREATEST_ASSERT_EQ(table[2].inv.finish, 0);
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
361
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
362 /* [2] */
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
363 GREATEST_ASSERT(!script_update(&sc, 0));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
364 script_draw(&sc);
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
365
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
366 GREATEST_ASSERT_EQ(table[0].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
367 GREATEST_ASSERT_EQ(table[0].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
368 GREATEST_ASSERT_EQ(table[0].inv.draw, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
369 GREATEST_ASSERT_EQ(table[0].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
370 GREATEST_ASSERT_EQ(table[0].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
371 GREATEST_ASSERT_EQ(table[1].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
372 GREATEST_ASSERT_EQ(table[1].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
373 GREATEST_ASSERT_EQ(table[1].inv.draw, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
374 GREATEST_ASSERT_EQ(table[1].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
375 GREATEST_ASSERT_EQ(table[1].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
376 GREATEST_ASSERT_EQ(table[2].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
377 GREATEST_ASSERT_EQ(table[2].inv.update, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
378 GREATEST_ASSERT_EQ(table[2].inv.draw, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
379 GREATEST_ASSERT_EQ(table[2].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
380 GREATEST_ASSERT_EQ(table[2].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
381
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
382 GREATEST_PASS();
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
383 }
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
384
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
385 GREATEST_TEST
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
386 basics_finish(void)
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
387 {
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
388 struct {
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
389 struct invokes inv;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
390 struct action act;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
391 } table[] = {
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
392 { .act = INIT(&table[0].inv, my_update_true) },
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
393 { .act = INIT(&table[1].inv, my_update_true) },
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
394 { .act = INIT(&table[2].inv, my_update_false) }
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
395 };
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
396
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
397 struct script sc = {0};
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
398
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
399 GREATEST_ASSERT(script_append(&sc, &table[0].act));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
400 GREATEST_ASSERT(script_append(&sc, &table[1].act));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
401 GREATEST_ASSERT(script_append(&sc, &table[2].act));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
402
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
403 /* Update once so that the current action goes to 1. */
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
404 GREATEST_ASSERT(!script_update(&sc, 0));
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
405
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
406 script_finish(&sc);
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
407
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
408 GREATEST_ASSERT_EQ(table[0].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
409 GREATEST_ASSERT_EQ(table[0].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
410 GREATEST_ASSERT_EQ(table[0].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
411 GREATEST_ASSERT_EQ(table[0].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
412 GREATEST_ASSERT_EQ(table[0].inv.finish, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
413 GREATEST_ASSERT_EQ(table[1].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
414 GREATEST_ASSERT_EQ(table[1].inv.update, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
415 GREATEST_ASSERT_EQ(table[1].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
416 GREATEST_ASSERT_EQ(table[1].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
417 GREATEST_ASSERT_EQ(table[1].inv.finish, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
418 GREATEST_ASSERT_EQ(table[2].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
419 GREATEST_ASSERT_EQ(table[2].inv.update, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
420 GREATEST_ASSERT_EQ(table[2].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
421 GREATEST_ASSERT_EQ(table[2].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
422 GREATEST_ASSERT_EQ(table[2].inv.finish, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
423
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
424 GREATEST_PASS();
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
425 }
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
426
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
427 GREATEST_SUITE(suite_basics)
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
428 {
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
429 GREATEST_RUN_TEST(basics_init);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
430 GREATEST_RUN_TEST(basics_append);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
431 GREATEST_RUN_TEST(basics_handle);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
432 GREATEST_RUN_TEST(basics_update);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
433 GREATEST_RUN_TEST(basics_draw);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
434 GREATEST_RUN_TEST(basics_finish);
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
435 }
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
436
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
437 GREATEST_TEST
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
438 action_simple(void)
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
439 {
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
440 struct {
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
441 struct invokes inv;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
442 struct action act;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
443 } table[] = {
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
444 { .act = INIT(&table[0].inv, my_update_true) },
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
445 { .act = INIT(&table[1].inv, my_update_true) },
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
446 { .act = INIT(&table[2].inv, my_update_false) }
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
447 };
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
448
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
449 struct script sc = {0};
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
450 struct action act;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
451
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
452 GREATEST_ASSERT(script_append(&sc, &table[0].act));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
453 GREATEST_ASSERT(script_append(&sc, &table[1].act));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
454 GREATEST_ASSERT(script_append(&sc, &table[2].act));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
455
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
456 /* Now convert this script into an action itself. */
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
457 script_action(&sc, &act);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
458
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
459 /* Draw and input before updating. */
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
460 action_handle(&act, &(union event){0});
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
461 action_draw(&act);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
462
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
463 /* [0] -> [1] */
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
464 GREATEST_ASSERT(!action_update(&act, 0));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
465 GREATEST_ASSERT_EQ(table[0].inv.handle, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
466 GREATEST_ASSERT_EQ(table[0].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
467 GREATEST_ASSERT_EQ(table[0].inv.draw, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
468 GREATEST_ASSERT_EQ(table[0].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
469 GREATEST_ASSERT_EQ(table[0].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
470 GREATEST_ASSERT_EQ(table[1].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
471 GREATEST_ASSERT_EQ(table[1].inv.update, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
472 GREATEST_ASSERT_EQ(table[1].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
473 GREATEST_ASSERT_EQ(table[1].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
474 GREATEST_ASSERT_EQ(table[1].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
475 GREATEST_ASSERT_EQ(table[2].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
476 GREATEST_ASSERT_EQ(table[2].inv.update, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
477 GREATEST_ASSERT_EQ(table[2].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
478 GREATEST_ASSERT_EQ(table[2].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
479 GREATEST_ASSERT_EQ(table[2].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
480
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
481 action_handle(&act, &(union event){0});
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
482 action_draw(&act);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
483
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
484 /* [1] -> [2] */
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
485 GREATEST_ASSERT(!action_update(&act, 0));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
486 GREATEST_ASSERT_EQ(table[0].inv.handle, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
487 GREATEST_ASSERT_EQ(table[0].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
488 GREATEST_ASSERT_EQ(table[0].inv.draw, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
489 GREATEST_ASSERT_EQ(table[0].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
490 GREATEST_ASSERT_EQ(table[0].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
491 GREATEST_ASSERT_EQ(table[1].inv.handle, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
492 GREATEST_ASSERT_EQ(table[1].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
493 GREATEST_ASSERT_EQ(table[1].inv.draw, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
494 GREATEST_ASSERT_EQ(table[1].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
495 GREATEST_ASSERT_EQ(table[1].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
496 GREATEST_ASSERT_EQ(table[2].inv.handle, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
497 GREATEST_ASSERT_EQ(table[2].inv.update, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
498 GREATEST_ASSERT_EQ(table[2].inv.draw, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
499 GREATEST_ASSERT_EQ(table[2].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
500 GREATEST_ASSERT_EQ(table[2].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
501
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
502 action_handle(&act, &(union event){0});
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
503 action_draw(&act);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
504
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
505 /* 2 stays, it never ends. */
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
506 GREATEST_ASSERT(!action_update(&act, 0));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
507 GREATEST_ASSERT(!action_update(&act, 0));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
508 GREATEST_ASSERT(!action_update(&act, 0));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
509 GREATEST_ASSERT_EQ(table[0].inv.handle, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
510 GREATEST_ASSERT_EQ(table[0].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
511 GREATEST_ASSERT_EQ(table[0].inv.draw, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
512 GREATEST_ASSERT_EQ(table[0].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
513 GREATEST_ASSERT_EQ(table[0].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
514 GREATEST_ASSERT_EQ(table[1].inv.handle, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
515 GREATEST_ASSERT_EQ(table[1].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
516 GREATEST_ASSERT_EQ(table[1].inv.draw, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
517 GREATEST_ASSERT_EQ(table[1].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
518 GREATEST_ASSERT_EQ(table[1].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
519 GREATEST_ASSERT_EQ(table[2].inv.handle, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
520 GREATEST_ASSERT_EQ(table[2].inv.update, 3);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
521 GREATEST_ASSERT_EQ(table[2].inv.draw, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
522 GREATEST_ASSERT_EQ(table[2].inv.end, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
523 GREATEST_ASSERT_EQ(table[2].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
524
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
525 table[2].act.update = my_update_true;
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
526 GREATEST_ASSERT(action_update(&act, 0));
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
527 GREATEST_ASSERT_EQ(table[0].inv.handle, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
528 GREATEST_ASSERT_EQ(table[0].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
529 GREATEST_ASSERT_EQ(table[0].inv.draw, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
530 GREATEST_ASSERT_EQ(table[0].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
531 GREATEST_ASSERT_EQ(table[0].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
532 GREATEST_ASSERT_EQ(table[1].inv.handle, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
533 GREATEST_ASSERT_EQ(table[1].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
534 GREATEST_ASSERT_EQ(table[1].inv.draw, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
535 GREATEST_ASSERT_EQ(table[1].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
536 GREATEST_ASSERT_EQ(table[1].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
537 GREATEST_ASSERT_EQ(table[2].inv.handle, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
538 GREATEST_ASSERT_EQ(table[2].inv.update, 4);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
539 GREATEST_ASSERT_EQ(table[2].inv.draw, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
540 GREATEST_ASSERT_EQ(table[2].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
541 GREATEST_ASSERT_EQ(table[2].inv.finish, 0);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
542
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
543 /* Also dispose resources. */
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
544 action_finish(&act);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
545 GREATEST_ASSERT_EQ(table[0].inv.handle, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
546 GREATEST_ASSERT_EQ(table[0].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
547 GREATEST_ASSERT_EQ(table[0].inv.draw, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
548 GREATEST_ASSERT_EQ(table[0].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
549 GREATEST_ASSERT_EQ(table[0].inv.finish, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
550 GREATEST_ASSERT_EQ(table[1].inv.handle, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
551 GREATEST_ASSERT_EQ(table[1].inv.update, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
552 GREATEST_ASSERT_EQ(table[1].inv.draw, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
553 GREATEST_ASSERT_EQ(table[1].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
554 GREATEST_ASSERT_EQ(table[1].inv.finish, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
555 GREATEST_ASSERT_EQ(table[2].inv.handle, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
556 GREATEST_ASSERT_EQ(table[2].inv.update, 4);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
557 GREATEST_ASSERT_EQ(table[2].inv.draw, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
558 GREATEST_ASSERT_EQ(table[2].inv.end, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
559 GREATEST_ASSERT_EQ(table[2].inv.finish, 1);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
560
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
561 GREATEST_PASS();
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
562 }
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
563
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
564 GREATEST_SUITE(suite_action)
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
565 {
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
566 GREATEST_RUN_TEST(action_simple);
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
567 }
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
568
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
569 GREATEST_MAIN_DEFS();
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
570
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
571 int
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
572 main(int argc, char **argv)
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
573 {
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
574 GREATEST_MAIN_BEGIN();
136
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
575 GREATEST_RUN_SUITE(suite_basics);
30b68089ae70 core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
576 GREATEST_RUN_SUITE(suite_action);
65
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
577 GREATEST_MAIN_END();
80a913d25aa9 core: implement script, closes #2465 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
578 }