summaryrefslogtreecommitdiff
path: root/tests/tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/tree.c')
-rw-r--r--tests/tree.c83
1 files changed, 83 insertions, 0 deletions
diff --git a/tests/tree.c b/tests/tree.c
new file mode 100644
index 0000000..b848f48
--- /dev/null
+++ b/tests/tree.c
@@ -0,0 +1,83 @@
+#include "../src/tree.c"
+
+#include "../src/testing.h"
+
+
+static int
+test_tree_new(void) {
+ int rc = -1;
+
+ const struct Tree *t = NULL;
+
+ test_start("tree_new()");
+ {
+ testing("simple allocation");
+
+ const size_t size = sizeof(long long);
+ if (tree_new(size, &t)) {
+ logerr("tree_new()");
+ goto out;
+ }
+
+ assert(t->value_size == size);
+
+ tree_free(&t);
+
+ test_ok();
+ }
+
+ rc = 0;
+out:
+ return rc;
+}
+
+static int
+test_tree_free(void) {
+ int rc = -1;
+
+ const struct Tree *t = NULL;
+
+ test_start("tree_free()");
+ {
+ testing("simple free");
+
+
+ assert(t == NULL);
+ if (tree_new(1U, &t)) {
+ logerr("tree_new()");
+ goto out;
+ }
+
+ assert(t != NULL);
+ tree_free(&t);
+
+ test_ok();
+ }
+
+ rc = 0;
+out:
+ if (t != NULL) {
+ tree_free(&t);
+ }
+ return rc;
+}
+
+
+int
+main(void) {
+ int rc = -1;
+
+ if (test_tree_new()) {
+ logerr("test_tree_new()");
+ goto out;
+ }
+
+ if (test_tree_free()) {
+ logerr("test_tree_free()");
+ goto out;
+ }
+
+ rc = 0;
+out:
+ return !!rc;
+}