Add munit for unit testing.

Main method extracted to separate file to make it easier to test the _rest_ of the code.
munit is added as a submodule by running `cd src; git submodule add https://github.com/nemequ/munit.git` .

Unit testing has so far only been tested on ubuntu.
This commit is contained in:
welcor 2024-05-18 21:21:17 +02:00
parent 455e3a06ea
commit eb8e200a31
11 changed files with 280 additions and 1 deletions

40
src/test/test_handler.c Normal file
View file

@ -0,0 +1,40 @@
#include "test_handler.h"
static void run_single_get_number_test(const char* input_param, const char *name_result, int number_result);
UNIT_TEST(test_get_number)
{
run_single_get_number_test("1.feather", "feather", 1);
run_single_get_number_test("2.feather", "feather", 2);
run_single_get_number_test("1.feat", "feat", 1);
run_single_get_number_test("feather", "feather", 1);
run_single_get_number_test("10.feather", "feather", 10);
return MUNIT_OK;
}
static void run_single_get_number_test(const char* input_param, const char *name_result, int number_result)
{
char *to_free;
char *input = to_free = strdup(input_param);
int number = get_number(&input);
munit_assert_int32(number, ==, number_result);
munit_assert_string_equal(input, name_result);
free(to_free);
}
/* Creating a test suite is pretty simple. First, you'll need an
* array of tests: */
MunitTest handler_c_tests[] = {
{
(char*) "/get_number",
test_get_number,
NULL, // setup callback
NULL, // cleanup callback
MUNIT_TEST_OPTION_NONE,
NULL
},
{ NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }
};