Mercurial > molko
comparison tests/test-action.c @ 442:9c3b3935f0aa
core: rework allocations
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 03 Nov 2022 21:09:25 +0100 |
parents | 31c1bbc33813 |
children | 773a082f0b91 |
comparison
equal
deleted
inserted
replaced
441:31c1bbc33813 | 442:9c3b3935f0aa |
---|---|
178 | 178 |
179 static void | 179 static void |
180 test_stack_add(void) | 180 test_stack_add(void) |
181 { | 181 { |
182 struct mlk_action *actions[10]; | 182 struct mlk_action *actions[10]; |
183 struct action_stack st = {0}; | 183 struct mlk_action_stack st = {0}; |
184 struct mlk_action act = {0}; | 184 struct mlk_action act = {0}; |
185 | 185 |
186 action_stack_init(&st, actions, 10); | 186 mlk_action_stack_init(&st, actions, 10); |
187 | 187 |
188 DT_EQ_INT(action_stack_add(&st, &act), 0); | 188 DT_EQ_INT(mlk_action_stack_add(&st, &act), 0); |
189 | 189 |
190 /* Now fill up. */ | 190 /* Now fill up. */ |
191 for (int i = 0; i < 9; ++i) | 191 for (int i = 0; i < 9; ++i) |
192 DT_EQ_INT(action_stack_add(&st, &act), 0); | 192 DT_EQ_INT(mlk_action_stack_add(&st, &act), 0); |
193 | 193 |
194 /* This one should not fit in. */ | 194 /* This one should not fit in. */ |
195 DT_EQ_INT(action_stack_add(&st, &act), MLK_ERR_NO_MEM); | 195 DT_EQ_INT(mlk_action_stack_add(&st, &act), MLK_ERR_NO_MEM); |
196 } | 196 } |
197 | 197 |
198 static void | 198 static void |
199 test_stack_handle(void) | 199 test_stack_handle(void) |
200 { | 200 { |
206 { 0, { .data = &table[1].called, .handle = my_handle } }, | 206 { 0, { .data = &table[1].called, .handle = my_handle } }, |
207 { 0, { .data = &table[2].called, .handle = my_handle } }, | 207 { 0, { .data = &table[2].called, .handle = my_handle } }, |
208 }; | 208 }; |
209 | 209 |
210 struct mlk_action *actions[10]; | 210 struct mlk_action *actions[10]; |
211 struct action_stack st = {0}; | 211 struct mlk_action_stack st = {0}; |
212 | 212 |
213 action_stack_init(&st, actions, 10); | 213 mlk_action_stack_init(&st, actions, 10); |
214 action_stack_add(&st, &table[0].act); | 214 mlk_action_stack_add(&st, &table[0].act); |
215 action_stack_add(&st, &table[1].act); | 215 mlk_action_stack_add(&st, &table[1].act); |
216 action_stack_add(&st, &table[2].act); | 216 mlk_action_stack_add(&st, &table[2].act); |
217 action_stack_handle(&st, &dummy); | 217 mlk_action_stack_handle(&st, &dummy); |
218 | 218 |
219 DT_ASSERT(table[0].called); | 219 DT_ASSERT(table[0].called); |
220 DT_ASSERT(table[1].called); | 220 DT_ASSERT(table[1].called); |
221 DT_ASSERT(table[2].called); | 221 DT_ASSERT(table[2].called); |
222 } | 222 } |
236 { .act = INIT(&table[5], my_update_true) }, | 236 { .act = INIT(&table[5], my_update_true) }, |
237 { .act = INIT(&table[6], my_update_false) }, | 237 { .act = INIT(&table[6], my_update_false) }, |
238 }; | 238 }; |
239 | 239 |
240 struct mlk_action *actions[10]; | 240 struct mlk_action *actions[10]; |
241 struct action_stack st = {0}; | 241 struct mlk_action_stack st = {0}; |
242 | 242 |
243 action_stack_init(&st, actions, 10); | 243 mlk_action_stack_init(&st, actions, 10); |
244 action_stack_add(&st, &table[0].act); | 244 mlk_action_stack_add(&st, &table[0].act); |
245 action_stack_add(&st, &table[1].act); | 245 mlk_action_stack_add(&st, &table[1].act); |
246 action_stack_add(&st, &table[2].act); | 246 mlk_action_stack_add(&st, &table[2].act); |
247 action_stack_add(&st, &table[3].act); | 247 mlk_action_stack_add(&st, &table[3].act); |
248 action_stack_add(&st, &table[4].act); | 248 mlk_action_stack_add(&st, &table[4].act); |
249 action_stack_add(&st, &table[5].act); | 249 mlk_action_stack_add(&st, &table[5].act); |
250 action_stack_add(&st, &table[6].act); | 250 mlk_action_stack_add(&st, &table[6].act); |
251 | 251 |
252 DT_ASSERT(!action_stack_update(&st, 0)); | 252 DT_ASSERT(!mlk_action_stack_update(&st, 0)); |
253 | 253 |
254 DT_ASSERT(!table[0].inv.handle); | 254 DT_ASSERT(!table[0].inv.handle); |
255 DT_ASSERT(!table[1].inv.handle); | 255 DT_ASSERT(!table[1].inv.handle); |
256 DT_ASSERT(!table[2].inv.handle); | 256 DT_ASSERT(!table[2].inv.handle); |
257 DT_ASSERT(!table[3].inv.handle); | 257 DT_ASSERT(!table[3].inv.handle); |
308 table[0].act.update = | 308 table[0].act.update = |
309 table[2].act.update = | 309 table[2].act.update = |
310 table[3].act.update = | 310 table[3].act.update = |
311 table[6].act.update = my_update_true; | 311 table[6].act.update = my_update_true; |
312 | 312 |
313 DT_ASSERT(action_stack_update(&st, 0)); | 313 DT_ASSERT(mlk_action_stack_update(&st, 0)); |
314 DT_EQ_PTR(st.actions[0], NULL); | 314 DT_EQ_PTR(st.actions[0], NULL); |
315 DT_EQ_PTR(st.actions[1], NULL); | 315 DT_EQ_PTR(st.actions[1], NULL); |
316 DT_EQ_PTR(st.actions[2], NULL); | 316 DT_EQ_PTR(st.actions[2], NULL); |
317 DT_EQ_PTR(st.actions[3], NULL); | 317 DT_EQ_PTR(st.actions[3], NULL); |
318 DT_EQ_PTR(st.actions[4], NULL); | 318 DT_EQ_PTR(st.actions[4], NULL); |
335 { .act = INIT(&table[5], my_update_true) }, | 335 { .act = INIT(&table[5], my_update_true) }, |
336 { .act = INIT(&table[6], my_update_false) }, | 336 { .act = INIT(&table[6], my_update_false) }, |
337 }; | 337 }; |
338 | 338 |
339 struct mlk_action *actions[10]; | 339 struct mlk_action *actions[10]; |
340 struct action_stack st = {0}; | 340 struct mlk_action_stack st = {0}; |
341 | 341 |
342 action_stack_init(&st, actions, 10); | 342 mlk_action_stack_init(&st, actions, 10); |
343 action_stack_add(&st, &table[0].act); | 343 mlk_action_stack_add(&st, &table[0].act); |
344 action_stack_add(&st, &table[1].act); | 344 mlk_action_stack_add(&st, &table[1].act); |
345 action_stack_add(&st, &table[2].act); | 345 mlk_action_stack_add(&st, &table[2].act); |
346 action_stack_add(&st, &table[3].act); | 346 mlk_action_stack_add(&st, &table[3].act); |
347 action_stack_add(&st, &table[4].act); | 347 mlk_action_stack_add(&st, &table[4].act); |
348 action_stack_add(&st, &table[5].act); | 348 mlk_action_stack_add(&st, &table[5].act); |
349 action_stack_add(&st, &table[6].act); | 349 mlk_action_stack_add(&st, &table[6].act); |
350 action_stack_draw(&st); | 350 mlk_action_stack_draw(&st); |
351 | 351 |
352 DT_ASSERT(!table[0].inv.handle); | 352 DT_ASSERT(!table[0].inv.handle); |
353 DT_ASSERT(!table[1].inv.handle); | 353 DT_ASSERT(!table[1].inv.handle); |
354 DT_ASSERT(!table[2].inv.handle); | 354 DT_ASSERT(!table[2].inv.handle); |
355 DT_ASSERT(!table[3].inv.handle); | 355 DT_ASSERT(!table[3].inv.handle); |
400 { .act = INIT(&table[0], my_update_true) }, | 400 { .act = INIT(&table[0], my_update_true) }, |
401 { .act = INIT(&table[0], my_update_false) }, | 401 { .act = INIT(&table[0], my_update_false) }, |
402 }; | 402 }; |
403 | 403 |
404 struct mlk_action *actions[10]; | 404 struct mlk_action *actions[10]; |
405 struct action_stack st = {0}; | 405 struct mlk_action_stack st = {0}; |
406 | 406 |
407 action_stack_init(&st, actions, 10); | 407 mlk_action_stack_init(&st, actions, 10); |
408 action_stack_add(&st, &table[0].act); | 408 mlk_action_stack_add(&st, &table[0].act); |
409 action_stack_add(&st, &table[1].act); | 409 mlk_action_stack_add(&st, &table[1].act); |
410 action_stack_finish(&st); | 410 mlk_action_stack_finish(&st); |
411 | 411 |
412 DT_ASSERT(!table[0].inv.handle); | 412 DT_ASSERT(!table[0].inv.handle); |
413 DT_ASSERT(!table[0].inv.update); | 413 DT_ASSERT(!table[0].inv.update); |
414 DT_ASSERT(!table[0].inv.draw); | 414 DT_ASSERT(!table[0].inv.draw); |
415 DT_ASSERT(table[0].inv.end); | 415 DT_ASSERT(table[0].inv.end); |