diff --git a/run_tests.sh b/run_tests.sh index 24c1b42..55660ad 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -1 +1 @@ -ctest --rerun-failed --output-on-failure --test-dir build/tests +ctest --output-on-failure --test-dir build/tests diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 7f11eac..57008d3 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -5,5 +5,13 @@ target_link_libraries(AABBTest PRIVATE lib_scenes ) +add_executable(MemPoolTest test_mempool.c) +target_compile_features(MemPoolTest PRIVATE c_std_99) +target_link_libraries(MemPoolTest PRIVATE + cmocka + lib_scenes +) + enable_testing() add_test(NAME AABBTest COMMAND AABBTest) +add_test(NAME MemPoolTest COMMAND MemPoolTest) diff --git a/tests/test_mempool.c b/tests/test_mempool.c new file mode 100644 index 0000000..1d4d965 --- /dev/null +++ b/tests/test_mempool.c @@ -0,0 +1,41 @@ +#include "mempool.h" +#include + +#include +#include +#include +#include +#include + +static int setup_mempool(void** state) +{ + init_memory_pools(); + return 0; +} + +static int teardown_mempool(void** state) +{ + free_memory_pools(); + return 0; +} + +static void test_simple_get_and_free(void **state) +{ + unsigned long idx; + Entity_t* ent = new_entity_from_mempool(&idx); + + Entity_t* q_ent = get_entity_wtih_id(idx); + + assert_memory_equal(ent, q_ent, sizeof(Entity_t)); + + free_entity_to_mempool(idx); +} + +int main(void) +{ + const struct CMUnitTest tests[] = { + cmocka_unit_test_setup_teardown(test_simple_get_and_free, setup_mempool, teardown_mempool), + }; + + return cmocka_run_group_tests(tests, NULL, NULL); +}