Mercurial > molko
diff tests/test-state.c @ 410:1bf7d6669f0a
tests: switch to libdt
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 09 Sep 2022 13:30:34 +0200 |
parents | 0ea90751a62d |
children | 3edda1ce314c |
line wrap: on
line diff
--- a/tests/test-state.c Fri Sep 09 09:27:17 2022 +0200 +++ b/tests/test-state.c Fri Sep 09 13:30:34 2022 +0200 @@ -23,7 +23,7 @@ #include <core/state.h> #include <core/util.h> -#include "test.h" +#include <dt.h> struct invokes { unsigned int start; @@ -36,19 +36,7 @@ unsigned int finish; }; -static struct state *states[16]; - -RX_SET_UP(basics_set_up) -{ - game_init(states, UTIL_SIZE(states)); - - return RX_SUCCESS; -} - -RX_TEAR_DOWN(basics_tear_down) -{ - game_quit(); -} +static struct state *mainstates[16]; static void my_start(struct state *state) @@ -114,91 +102,98 @@ .finish = my_finish \ } -RX_TEST_CASE(basics, start) +static void +test_basics_start(void) { struct invokes inv = {0}; struct state state = INIT(&inv); state_start(&state); - RX_UINT_REQUIRE_EQUAL(inv.start, 1U); - RX_UINT_REQUIRE_EQUAL(inv.handle, 0U); - RX_UINT_REQUIRE_EQUAL(inv.update, 0U); - RX_UINT_REQUIRE_EQUAL(inv.draw, 0U); - RX_UINT_REQUIRE_EQUAL(inv.end, 0U); - RX_UINT_REQUIRE_EQUAL(inv.finish, 0U); + DT_EQ_UINT(inv.start, 1U); + DT_EQ_UINT(inv.handle, 0U); + DT_EQ_UINT(inv.update, 0U); + DT_EQ_UINT(inv.draw, 0U); + DT_EQ_UINT(inv.end, 0U); + DT_EQ_UINT(inv.finish, 0U); } -RX_TEST_CASE(basics, handle) +static void +test_basics_handle(void) { struct invokes inv = {0}; struct state state = INIT(&inv); state_handle(&state, &(const union event){0}); - RX_UINT_REQUIRE_EQUAL(inv.start, 0U); - RX_UINT_REQUIRE_EQUAL(inv.handle, 1U); - RX_UINT_REQUIRE_EQUAL(inv.update, 0U); - RX_UINT_REQUIRE_EQUAL(inv.draw, 0U); - RX_UINT_REQUIRE_EQUAL(inv.end, 0U); - RX_UINT_REQUIRE_EQUAL(inv.finish, 0U); + DT_EQ_UINT(inv.start, 0U); + DT_EQ_UINT(inv.handle, 1U); + DT_EQ_UINT(inv.update, 0U); + DT_EQ_UINT(inv.draw, 0U); + DT_EQ_UINT(inv.end, 0U); + DT_EQ_UINT(inv.finish, 0U); } -RX_TEST_CASE(basics, update) +static void +test_basics_update(void) { struct invokes inv = {0}; struct state state = INIT(&inv); state_update(&state, 0); - RX_UINT_REQUIRE_EQUAL(inv.start, 0U); - RX_UINT_REQUIRE_EQUAL(inv.handle, 0U); - RX_UINT_REQUIRE_EQUAL(inv.update, 1U); - RX_UINT_REQUIRE_EQUAL(inv.draw, 0U); - RX_UINT_REQUIRE_EQUAL(inv.end, 0U); - RX_UINT_REQUIRE_EQUAL(inv.finish, 0U); + DT_EQ_UINT(inv.start, 0U); + DT_EQ_UINT(inv.handle, 0U); + DT_EQ_UINT(inv.update, 1U); + DT_EQ_UINT(inv.draw, 0U); + DT_EQ_UINT(inv.end, 0U); + DT_EQ_UINT(inv.finish, 0U); } -RX_TEST_CASE(basics, draw) +static void +test_basics_draw(void) { struct invokes inv = {0}; struct state state = INIT(&inv); state_draw(&state); - RX_UINT_REQUIRE_EQUAL(inv.start, 0U); - RX_UINT_REQUIRE_EQUAL(inv.handle, 0U); - RX_UINT_REQUIRE_EQUAL(inv.update, 0U); - RX_UINT_REQUIRE_EQUAL(inv.draw, 1U); - RX_UINT_REQUIRE_EQUAL(inv.end, 0U); - RX_UINT_REQUIRE_EQUAL(inv.finish, 0U); + DT_EQ_UINT(inv.start, 0U); + DT_EQ_UINT(inv.handle, 0U); + DT_EQ_UINT(inv.update, 0U); + DT_EQ_UINT(inv.draw, 1U); + DT_EQ_UINT(inv.end, 0U); + DT_EQ_UINT(inv.finish, 0U); } -RX_TEST_CASE(basics, end) +static void +test_basics_end(void) { struct invokes inv = {0}; struct state state = INIT(&inv); state_end(&state); - RX_UINT_REQUIRE_EQUAL(inv.start, 0U); - RX_UINT_REQUIRE_EQUAL(inv.handle, 0U); - RX_UINT_REQUIRE_EQUAL(inv.update, 0U); - RX_UINT_REQUIRE_EQUAL(inv.draw, 0U); - RX_UINT_REQUIRE_EQUAL(inv.end, 1U); - RX_UINT_REQUIRE_EQUAL(inv.finish, 0U); + DT_EQ_UINT(inv.start, 0U); + DT_EQ_UINT(inv.handle, 0U); + DT_EQ_UINT(inv.update, 0U); + DT_EQ_UINT(inv.draw, 0U); + DT_EQ_UINT(inv.end, 1U); + DT_EQ_UINT(inv.finish, 0U); } -RX_TEST_CASE(basics, finish) +static void +test_basics_finish(void) { struct invokes inv = {0}; struct state state = INIT(&inv); state_finish(&state); - RX_UINT_REQUIRE_EQUAL(inv.start, 0U); - RX_UINT_REQUIRE_EQUAL(inv.handle, 0U); - RX_UINT_REQUIRE_EQUAL(inv.update, 0U); - RX_UINT_REQUIRE_EQUAL(inv.draw, 0U); - RX_UINT_REQUIRE_EQUAL(inv.end, 0U); - RX_UINT_REQUIRE_EQUAL(inv.finish, 1U); + DT_EQ_UINT(inv.start, 0U); + DT_EQ_UINT(inv.handle, 0U); + DT_EQ_UINT(inv.update, 0U); + DT_EQ_UINT(inv.draw, 0U); + DT_EQ_UINT(inv.end, 0U); + DT_EQ_UINT(inv.finish, 1U); } -RX_TEST_CASE(basics, game) +static void +test_basics_game(void) { static struct { struct invokes inv; @@ -209,15 +204,17 @@ }; /* 0 becomes active and should start. */ + game_init(mainstates, UTIL_SIZE(mainstates)); game_push(&states[0].state); - RX_UINT_REQUIRE_EQUAL(states[0].inv.start, 1U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.handle, 0U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.update, 0U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.draw, 0U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.suspend, 0U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.resume, 0U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.end, 0U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.finish, 0U); + + DT_EQ_UINT(states[0].inv.start, 1U); + DT_EQ_UINT(states[0].inv.handle, 0U); + DT_EQ_UINT(states[0].inv.update, 0U); + DT_EQ_UINT(states[0].inv.draw, 0U); + DT_EQ_UINT(states[0].inv.suspend, 0U); + DT_EQ_UINT(states[0].inv.resume, 0U); + DT_EQ_UINT(states[0].inv.end, 0U); + DT_EQ_UINT(states[0].inv.finish, 0U); /* Put some event, update and drawing. */ game_handle(&(union event) { .type = EVENT_QUIT }); @@ -226,113 +223,112 @@ game_draw(); game_draw(); game_draw(); - RX_UINT_REQUIRE_EQUAL(states[0].inv.start, 1U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.handle, 1U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.update, 2U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.draw, 3U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.suspend, 0U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.resume, 0U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.end, 0U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.finish, 0U); + DT_EQ_UINT(states[0].inv.start, 1U); + DT_EQ_UINT(states[0].inv.handle, 1U); + DT_EQ_UINT(states[0].inv.update, 2U); + DT_EQ_UINT(states[0].inv.draw, 3U); + DT_EQ_UINT(states[0].inv.suspend, 0U); + DT_EQ_UINT(states[0].inv.resume, 0U); + DT_EQ_UINT(states[0].inv.end, 0U); + DT_EQ_UINT(states[0].inv.finish, 0U); /* Switch to state 1, 0 must be suspended. */ game_push(&states[1].state); - RX_UINT_REQUIRE_EQUAL(states[0].inv.start, 1U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.handle, 1U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.update, 2U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.draw, 3U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.suspend, 1U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.resume, 0U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.end, 0U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.finish, 0U); + DT_EQ_UINT(states[0].inv.start, 1U); + DT_EQ_UINT(states[0].inv.handle, 1U); + DT_EQ_UINT(states[0].inv.update, 2U); + DT_EQ_UINT(states[0].inv.draw, 3U); + DT_EQ_UINT(states[0].inv.suspend, 1U); + DT_EQ_UINT(states[0].inv.resume, 0U); + DT_EQ_UINT(states[0].inv.end, 0U); + DT_EQ_UINT(states[0].inv.finish, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.start, 1U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.handle, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.update, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.draw, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.suspend, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.resume, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.end, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.finish, 0U); + DT_EQ_UINT(states[1].inv.start, 1U); + DT_EQ_UINT(states[1].inv.handle, 0U); + DT_EQ_UINT(states[1].inv.update, 0U); + DT_EQ_UINT(states[1].inv.draw, 0U); + DT_EQ_UINT(states[1].inv.suspend, 0U); + DT_EQ_UINT(states[1].inv.resume, 0U); + DT_EQ_UINT(states[1].inv.end, 0U); + DT_EQ_UINT(states[1].inv.finish, 0U); /* Update a little this state. */ game_update(10); game_update(10); game_update(10); game_update(10); - RX_UINT_REQUIRE_EQUAL(states[0].inv.start, 1U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.handle, 1U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.update, 2U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.draw, 3U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.suspend, 1U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.resume, 0U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.end, 0U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.finish, 0U); + DT_EQ_UINT(states[0].inv.start, 1U); + DT_EQ_UINT(states[0].inv.handle, 1U); + DT_EQ_UINT(states[0].inv.update, 2U); + DT_EQ_UINT(states[0].inv.draw, 3U); + DT_EQ_UINT(states[0].inv.suspend, 1U); + DT_EQ_UINT(states[0].inv.resume, 0U); + DT_EQ_UINT(states[0].inv.end, 0U); + DT_EQ_UINT(states[0].inv.finish, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.start, 1U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.handle, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.update, 4U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.draw, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.suspend, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.resume, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.end, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.finish, 0U); + DT_EQ_UINT(states[1].inv.start, 1U); + DT_EQ_UINT(states[1].inv.handle, 0U); + DT_EQ_UINT(states[1].inv.update, 4U); + DT_EQ_UINT(states[1].inv.draw, 0U); + DT_EQ_UINT(states[1].inv.suspend, 0U); + DT_EQ_UINT(states[1].inv.resume, 0U); + DT_EQ_UINT(states[1].inv.end, 0U); + DT_EQ_UINT(states[1].inv.finish, 0U); /* Pop it, it should be finalized through end and finish. */ game_pop(); - RX_UINT_REQUIRE_EQUAL(states[0].inv.start, 1U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.handle, 1U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.update, 2U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.draw, 3U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.suspend, 1U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.resume, 1U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.end, 0U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.finish, 0U); + DT_EQ_UINT(states[0].inv.start, 1U); + DT_EQ_UINT(states[0].inv.handle, 1U); + DT_EQ_UINT(states[0].inv.update, 2U); + DT_EQ_UINT(states[0].inv.draw, 3U); + DT_EQ_UINT(states[0].inv.suspend, 1U); + DT_EQ_UINT(states[0].inv.resume, 1U); + DT_EQ_UINT(states[0].inv.end, 0U); + DT_EQ_UINT(states[0].inv.finish, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.start, 1U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.handle, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.update, 4U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.draw, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.suspend, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.resume, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.end, 1U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.finish, 1U); + DT_EQ_UINT(states[1].inv.start, 1U); + DT_EQ_UINT(states[1].inv.handle, 0U); + DT_EQ_UINT(states[1].inv.update, 4U); + DT_EQ_UINT(states[1].inv.draw, 0U); + DT_EQ_UINT(states[1].inv.suspend, 0U); + DT_EQ_UINT(states[1].inv.resume, 0U); + DT_EQ_UINT(states[1].inv.end, 1U); + DT_EQ_UINT(states[1].inv.finish, 1U); /* Pop this state as well. */ game_pop(); - RX_UINT_REQUIRE_EQUAL(states[0].inv.start, 1U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.handle, 1U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.update, 2U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.draw, 3U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.suspend, 1U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.resume, 1U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.end, 1U); - RX_UINT_REQUIRE_EQUAL(states[0].inv.finish, 1U); + DT_EQ_UINT(states[0].inv.start, 1U); + DT_EQ_UINT(states[0].inv.handle, 1U); + DT_EQ_UINT(states[0].inv.update, 2U); + DT_EQ_UINT(states[0].inv.draw, 3U); + DT_EQ_UINT(states[0].inv.suspend, 1U); + DT_EQ_UINT(states[0].inv.resume, 1U); + DT_EQ_UINT(states[0].inv.end, 1U); + DT_EQ_UINT(states[0].inv.finish, 1U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.start, 1U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.handle, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.update, 4U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.draw, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.suspend, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.resume, 0U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.end, 1U); - RX_UINT_REQUIRE_EQUAL(states[1].inv.finish, 1U); -} + DT_EQ_UINT(states[1].inv.start, 1U); + DT_EQ_UINT(states[1].inv.handle, 0U); + DT_EQ_UINT(states[1].inv.update, 4U); + DT_EQ_UINT(states[1].inv.draw, 0U); + DT_EQ_UINT(states[1].inv.suspend, 0U); + DT_EQ_UINT(states[1].inv.resume, 0U); + DT_EQ_UINT(states[1].inv.end, 1U); + DT_EQ_UINT(states[1].inv.finish, 1U); -static const struct rx_test_case tests[] = { - TEST(basics, start), - TEST(basics, handle), - TEST(basics, update), - TEST(basics, draw), - TEST(basics, end), - TEST(basics, finish), - TEST_FIXTURE(basics, game, void *) -}; + game_quit(); +} int main(int argc, char **argv) { - return TEST_RUN_ALL(tests, argc, argv); + DT_RUN(test_basics_start); + DT_RUN(test_basics_handle); + DT_RUN(test_basics_update); + DT_RUN(test_basics_draw); + DT_RUN(test_basics_end); + DT_RUN(test_basics_finish); + DT_RUN(test_basics_game); + DT_SUMMARY(); }