diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/Makefile | 3 | ||||
-rw-r--r-- | test/list_test.c | 64 |
2 files changed, 67 insertions, 0 deletions
diff --git a/test/Makefile b/test/Makefile index 1655f06..6bdec12 100644 --- a/test/Makefile +++ b/test/Makefile @@ -28,6 +28,9 @@ string_view_test: munit.o ../build/string_view.o string_view_test.o vector_test: munit.o ../build/vector.o vector_test.o $(CC) $? $(CFLAGS) -o $@ +list_test: munit.o ../build/list.o list_test.o + $(CC) $? $(CFLAGS) -o $@ + lexer_test: munit.o ../build/string_view.o ../build/lexer.o lexer_test.o $(CC) $? $(CFLAGS) -o $@ diff --git a/test/list_test.c b/test/list_test.c new file mode 100644 index 0000000..041ceec --- /dev/null +++ b/test/list_test.c @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2023 Johnny Richard + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ +#define MUNIT_ENABLE_ASSERT_ALIASES +#include "list.h" +#include "munit.h" + +static MunitResult +test_create_new(const MunitParameter params[], void *user_data_or_fixture) +{ + list_t *list = list_new(); + + assert_null(list); + + list_destroy(list); + + return MUNIT_OK; +} + +static MunitResult +test_list_prepend(const MunitParameter params[], void *user_data_or_fixture) +{ + list_t *list = list_new(); + + int number1 = 1; + int number2 = 2; + + list_prepend(&list, (void *)&number1); + list_prepend(&list, (void *)&number2); + + assert_int(list_get_size(list), ==, 2); + assert_int(*((int *)list->data), ==, number2); + assert_int(*((int *)list->next->data), ==, number1); + + list_destroy(list); + + return MUNIT_OK; +} + +static MunitTest tests[] = { { "/test_create_new", test_create_new, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, + { "/test_list_prepend", test_list_prepend, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, + { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; + +static const MunitSuite suite = { "/list", tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; + +int +main(int argc, char *argv[]) +{ + return munit_suite_main(&suite, NULL, argc, argv); + return EXIT_SUCCESS; +} |