summaryrefslogtreecommitdiff
path: root/src/util/util.test.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/util.test.c')
-rw-r--r--src/util/util.test.c61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/util/util.test.c b/src/util/util.test.c
new file mode 100644
index 0000000..9f64085
--- /dev/null
+++ b/src/util/util.test.c
@@ -0,0 +1,61 @@
+#include <test/test.h>
+#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()