Mercurial > molko
diff tests/test-action-script.c @ 480:c1f64d451230
core: mlk_action has a start callback
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 27 Feb 2023 17:26:00 +0100 |
parents | 39dd7c66ebfd |
children | d3ea59fce7dc |
line wrap: on
line diff
--- a/tests/test-action-script.c Mon Feb 27 16:33:33 2023 +0100 +++ b/tests/test-action-script.c Mon Feb 27 17:26:00 2023 +0100 @@ -24,6 +24,7 @@ #include <dt.h> struct invokes { + int start; int handle; int update; int draw; @@ -33,6 +34,7 @@ #define INIT(dat, up) { \ .data = (dat), \ + .start = my_start, \ .handle = my_handle, \ .update = (up), \ .draw = my_draw, \ @@ -41,6 +43,12 @@ } static void +my_start(struct mlk_action *act) +{ + ((struct invokes *)act->data)->start++; +} + +static void my_handle(struct mlk_action *act, const union mlk_event *ev) { (void)ev; @@ -238,18 +246,23 @@ DT_ASSERT(mlk_action_script_append(&sc, &table[1].act) == 0); DT_ASSERT(mlk_action_script_append(&sc, &table[2].act) == 0); + mlk_action_script_start(&sc); + /* 0 -> 1 */ DT_ASSERT(!mlk_action_script_update(&sc, 0)); + DT_EQ_INT(table[0].inv.start, 1); DT_EQ_INT(table[0].inv.handle, 0); DT_EQ_INT(table[0].inv.update, 1); DT_EQ_INT(table[0].inv.draw, 0); DT_EQ_INT(table[0].inv.end, 1); DT_EQ_INT(table[0].inv.finish, 0); + DT_EQ_INT(table[1].inv.start, 1); DT_EQ_INT(table[1].inv.handle, 0); DT_EQ_INT(table[1].inv.update, 0); DT_EQ_INT(table[1].inv.draw, 0); DT_EQ_INT(table[1].inv.end, 0); DT_EQ_INT(table[1].inv.finish, 0); + DT_EQ_INT(table[2].inv.start, 0); DT_EQ_INT(table[2].inv.handle, 0); DT_EQ_INT(table[2].inv.update, 0); DT_EQ_INT(table[2].inv.draw, 0); @@ -258,16 +271,19 @@ /* 1 -> 2 */ DT_ASSERT(!mlk_action_script_update(&sc, 0)); + DT_EQ_INT(table[0].inv.start, 1); DT_EQ_INT(table[0].inv.handle, 0); DT_EQ_INT(table[0].inv.update, 1); DT_EQ_INT(table[0].inv.draw, 0); DT_EQ_INT(table[0].inv.end, 1); DT_EQ_INT(table[0].inv.finish, 0); + DT_EQ_INT(table[1].inv.start, 1); DT_EQ_INT(table[1].inv.handle, 0); DT_EQ_INT(table[1].inv.update, 1); DT_EQ_INT(table[1].inv.draw, 0); DT_EQ_INT(table[1].inv.end, 1); DT_EQ_INT(table[1].inv.finish, 0); + DT_EQ_INT(table[2].inv.start, 1); DT_EQ_INT(table[2].inv.handle, 0); DT_EQ_INT(table[2].inv.update, 0); DT_EQ_INT(table[2].inv.draw, 0); @@ -278,16 +294,19 @@ DT_ASSERT(!mlk_action_script_update(&sc, 0)); DT_ASSERT(!mlk_action_script_update(&sc, 0)); DT_ASSERT(!mlk_action_script_update(&sc, 0)); + DT_EQ_INT(table[0].inv.start, 1); DT_EQ_INT(table[0].inv.handle, 0); DT_EQ_INT(table[0].inv.update, 1); DT_EQ_INT(table[0].inv.draw, 0); DT_EQ_INT(table[0].inv.end, 1); DT_EQ_INT(table[0].inv.finish, 0); + DT_EQ_INT(table[1].inv.start, 1); DT_EQ_INT(table[1].inv.handle, 0); DT_EQ_INT(table[1].inv.update, 1); DT_EQ_INT(table[1].inv.draw, 0); DT_EQ_INT(table[1].inv.end, 1); DT_EQ_INT(table[1].inv.finish, 0); + DT_EQ_INT(table[2].inv.start, 1); DT_EQ_INT(table[2].inv.handle, 0); DT_EQ_INT(table[2].inv.update, 3); DT_EQ_INT(table[2].inv.draw, 0); @@ -297,16 +316,19 @@ /* Now, change its update function to complete the script. */ table[2].act.update = my_update_true; DT_ASSERT(mlk_action_script_update(&sc, 0)); + DT_EQ_INT(table[0].inv.start, 1); DT_EQ_INT(table[0].inv.handle, 0); DT_EQ_INT(table[0].inv.update, 1); DT_EQ_INT(table[0].inv.draw, 0); DT_EQ_INT(table[0].inv.end, 1); DT_EQ_INT(table[0].inv.finish, 0); + DT_EQ_INT(table[1].inv.start, 1); DT_EQ_INT(table[1].inv.handle, 0); DT_EQ_INT(table[1].inv.update, 1); DT_EQ_INT(table[1].inv.draw, 0); DT_EQ_INT(table[1].inv.end, 1); DT_EQ_INT(table[1].inv.finish, 0); + DT_EQ_INT(table[2].inv.start, 1); DT_EQ_INT(table[2].inv.handle, 0); DT_EQ_INT(table[2].inv.update, 4); DT_EQ_INT(table[2].inv.draw, 0);