#include #include "util.h" LILY_FILE_BEGIN(util_suite) LILY_TEST("expand NULL array") { size_t count = 0; int *array = NULL; int *first = kai_expand_array((void**) &array, &count, sizeof(int)); CHECK_NEQ(first, NULL, "%p"); CHECK_NEQ(array, NULL, "%p"); CHECK_EQ(first, array, "%p"); CHECK_EQ(count, 1, "%d"); int *second = kai_expand_array((void**) &array, &count, sizeof(int)); CHECK_NEQ(second, NULL, "%p"); CHECK_EQ(second, array+1, "%p"); CHECK_EQ(count, 2, "%d"); free(array); } #include LILY_PUSH_TEST() struct test100 { int value; const char *str; }; LILY_TEST("expand array 100 times") { size_t count = 0; struct test100 *array = NULL; const char *str = "hello, world!"; for (int i=0; i<100; i++) { struct test100 *element = kai_expand_array((void**) &array, &count, sizeof(struct test100)); element->value = i; element->str = str; } CHECK_EQ(count, 100, "%ul"); for (int i=0; i<100; i++) { CHECK_EQ(array[i].value, i, "%d"); CHECK_EQ(array[i].str, str, "%p"); } free(array); } #include LILY_PUSH_TEST() #define LILY_FILE_END #include LILY_REGISTER_TESTS()