From e6d59a7b506f610b82340b62457f9dd9ad0cb53d Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Thu, 19 Feb 2026 13:30:45 +0100 Subject: feat: integrate basic CMocka tests --- tests/snake.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 tests/snake.c (limited to 'tests/snake.c') diff --git a/tests/snake.c b/tests/snake.c new file mode 100644 index 0000000..f4acc7e --- /dev/null +++ b/tests/snake.c @@ -0,0 +1,65 @@ +#include "suites.h" + +#include "snake.S" + +#include + + + +extern void snake_init(snake_t *self, int x, int y, int length); + +static void test_snake_init_sets_x([[maybe_unused]] void **state) { + // Arrange: + snake_t snake; + + // Act: + snake_init(&snake, 1, 2, 3); + + // Assert: + assert_int_equal(snake.x, 1); +} + +static void test_snake_init_sets_y([[maybe_unused]] void **state) { + // Arrange: + snake_t snake; + + // Act: + snake_init(&snake, 1, 2, 3); + + // Assert: + assert_int_equal(snake.y, 2); +} + +static void test_snake_init_sets_length([[maybe_unused]] void **state) { + // Arrange: + snake_t snake; + + // Act: + snake_init(&snake, 1, 2, 3); + + // Assert: + assert_int_equal(snake.length, 3); +} + +static void +test_snake_init_sets_direction_to_zero([[maybe_unused]] void **state) { + // Arrange: + snake_t snake; + + // Act: + snake_init(&snake, 1, 2, 3); + + // Assert: + assert_int_equal(snake.direction, 0); +} + +int run_snake_tests(void) { + struct CMUnitTest const tests[] = { + cmocka_unit_test(test_snake_init_sets_x), + cmocka_unit_test(test_snake_init_sets_y), + cmocka_unit_test(test_snake_init_sets_length), + cmocka_unit_test(test_snake_init_sets_direction_to_zero), + }; + + return cmocka_run_group_tests(tests, NULL, NULL); +} -- cgit v1.2.3