Mercurial > molko
diff tests/test-action.c @ 407:e6f972e04519
tests: don't use automatic feature
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 06 Apr 2022 12:09:25 +0200 |
parents | e6d7ebad33cc |
children | 0ea90751a62d |
line wrap: on
line diff
--- a/tests/test-action.c Sun Apr 03 08:05:30 2022 +0200 +++ b/tests/test-action.c Wed Apr 06 12:09:25 2022 +0200 @@ -16,12 +16,12 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#include <rexo.h> - #include <core/action.h> #include <core/action-stack.h> #include <core/event.h> +#include "test.h" + struct invokes { int handle; int update; @@ -87,7 +87,7 @@ ((struct invokes *)act->data)->finish = 1; } -RX_TEST_CASE(basics, handle) +TEST_DECL(basics_handle) { struct invokes inv = {0}; struct action act = INIT(&inv, my_update_true); @@ -101,7 +101,7 @@ RX_REQUIRE(!inv.finish); } -RX_TEST_CASE(basics, update) +TEST_DECL(basics_update) { struct { struct invokes inv; @@ -128,7 +128,7 @@ RX_REQUIRE(!table[1].inv.finish); } -RX_TEST_CASE(basics, draw) +TEST_DECL(basics_draw) { struct invokes inv = {0}; struct action act = INIT(&inv, my_update_true); @@ -142,7 +142,7 @@ RX_REQUIRE(!inv.finish); } -RX_TEST_CASE(basics, end) +TEST_DECL(basics_end) { struct invokes inv = {0}; struct action act = INIT(&inv, my_update_true); @@ -156,7 +156,7 @@ RX_REQUIRE(!inv.finish); } -RX_TEST_CASE(basics, finish) +TEST_DECL(basics_finish) { struct invokes inv = {0}; struct action act = INIT(&inv, my_update_true); @@ -170,7 +170,7 @@ RX_REQUIRE(inv.finish); } -RX_TEST_CASE(stack, add) +TEST_DECL(stack_add) { struct action *actions[10]; struct action_stack st = {0}; @@ -188,7 +188,7 @@ RX_INT_REQUIRE_EQUAL(action_stack_add(&st, &act), -1); } -RX_TEST_CASE(stack, handle) +TEST_DECL(stack_handle) { struct { int called; @@ -213,7 +213,7 @@ RX_REQUIRE(table[2].called); } -RX_TEST_CASE(stack, update) +TEST_DECL(stack_update) { struct { struct invokes inv; @@ -292,7 +292,7 @@ RX_PTR_REQUIRE_EQUAL(st.actions[1], NULL); RX_PTR_REQUIRE_EQUAL(st.actions[4], NULL); RX_PTR_REQUIRE_EQUAL(st.actions[5], NULL); - + /* * Now make all actions to return 1 and check if it cleans the stack. */ @@ -311,7 +311,76 @@ RX_PTR_REQUIRE_EQUAL(st.actions[6], NULL); } -RX_TEST_CASE(stack, finish) +TEST_DECL(stack_draw) +{ + struct { + struct invokes inv; + struct action act; + } table[] = { + { .act = INIT(&table[0], my_update_false) }, + { .act = INIT(&table[1], my_update_true) }, + { .act = INIT(&table[2], my_update_false) }, + { .act = INIT(&table[3], my_update_false) }, + { .act = INIT(&table[4], my_update_true) }, + { .act = INIT(&table[5], my_update_true) }, + { .act = INIT(&table[6], my_update_false) }, + }; + + struct action *actions[10]; + struct action_stack st = {0}; + + action_stack_init(&st, actions, 10); + action_stack_add(&st, &table[0].act); + action_stack_add(&st, &table[1].act); + action_stack_add(&st, &table[2].act); + action_stack_add(&st, &table[3].act); + action_stack_add(&st, &table[4].act); + action_stack_add(&st, &table[5].act); + action_stack_add(&st, &table[6].act); + action_stack_draw(&st); + + RX_REQUIRE(!table[0].inv.handle); + RX_REQUIRE(!table[1].inv.handle); + RX_REQUIRE(!table[2].inv.handle); + RX_REQUIRE(!table[3].inv.handle); + RX_REQUIRE(!table[4].inv.handle); + RX_REQUIRE(!table[5].inv.handle); + RX_REQUIRE(!table[6].inv.handle); + + RX_REQUIRE(!table[0].inv.update); + RX_REQUIRE(!table[1].inv.update); + RX_REQUIRE(!table[2].inv.update); + RX_REQUIRE(!table[3].inv.update); + RX_REQUIRE(!table[4].inv.update); + RX_REQUIRE(!table[5].inv.update); + RX_REQUIRE(!table[6].inv.update); + + RX_REQUIRE(table[0].inv.draw); + RX_REQUIRE(table[1].inv.draw); + RX_REQUIRE(table[2].inv.draw); + RX_REQUIRE(table[3].inv.draw); + RX_REQUIRE(table[4].inv.draw); + RX_REQUIRE(table[5].inv.draw); + RX_REQUIRE(table[6].inv.draw); + + RX_REQUIRE(!table[0].inv.end); + RX_REQUIRE(!table[1].inv.end); + RX_REQUIRE(!table[2].inv.end); + RX_REQUIRE(!table[3].inv.end); + RX_REQUIRE(!table[4].inv.end); + RX_REQUIRE(!table[5].inv.end); + RX_REQUIRE(!table[6].inv.end); + + RX_REQUIRE(!table[0].inv.finish); + RX_REQUIRE(!table[1].inv.finish); + RX_REQUIRE(!table[2].inv.finish); + RX_REQUIRE(!table[3].inv.finish); + RX_REQUIRE(!table[4].inv.finish); + RX_REQUIRE(!table[5].inv.finish); + RX_REQUIRE(!table[6].inv.finish); +} + +TEST_DECL(stack_finish) { struct { struct invokes inv; @@ -342,8 +411,21 @@ RX_REQUIRE(table[0].inv.finish); } +static const struct rx_test_case tests[] = { + TEST_DEF("basics", "handle", basics_handle), + TEST_DEF("basics", "update", basics_update), + TEST_DEF("basics", "draw", basics_draw), + TEST_DEF("basics", "end", basics_end), + TEST_DEF("basics", "finish", basics_finish), + TEST_DEF("stack", "add", stack_add), + TEST_DEF("stack", "handle", stack_handle), + TEST_DEF("stack", "update", stack_update), + TEST_DEF("stack", "draw", stack_draw), + TEST_DEF("stack", "finish", stack_finish) +}; + int main(int argc, char **argv) { - return rx_main(0, NULL, argc, (const char **)argv) == RX_SUCCESS ? 0 : 1; + return TEST_RUN(tests, argc, argv); }