From 15cdd6447ddb70e6c1e1ffda66d6130f5fcffdad Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Fri, 31 May 2024 15:52:54 -0300 Subject: tests/tree.c: Add first test for tree_contains() --- src/tree.c | 4 ++-- tests/tree.c | 27 ++++++++++++++++++++++++++- tests/vector.c | 1 + 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/tree.c b/src/tree.c index 5edda76..fccf209 100644 --- a/src/tree.c +++ b/src/tree.c @@ -16,9 +16,9 @@ struct Tree { const void *const value; + const size_t value_size; const struct Tree *left; const struct Tree *right; - const size_t value_size; size_t height; }; @@ -38,9 +38,9 @@ tree_new(const size_t value_size, const struct Tree **const out) { memcpy((void *)ret, &(struct Tree) { .value = NULL, + .value_size = value_size, .left = NULL, .right = NULL, - .value_size = value_size, .height = 0U, }, sizeof(*ret)); *out = ret; diff --git a/tests/tree.c b/tests/tree.c index b848f48..e2b2e0c 100644 --- a/tests/tree.c +++ b/tests/tree.c @@ -3,6 +3,7 @@ #include "../src/testing.h" + static int test_tree_new(void) { int rc = -1; @@ -28,6 +29,9 @@ test_tree_new(void) { rc = 0; out: + if (t != NULL) { + tree_free(&t); + } return rc; } @@ -39,7 +43,7 @@ test_tree_free(void) { test_start("tree_free()"); { - testing("simple free"); + testing("*t becomes NULL again after tree_free(&t)"); assert(t == NULL); @@ -50,6 +54,7 @@ test_tree_free(void) { assert(t != NULL); tree_free(&t); + assert(t == NULL); test_ok(); } @@ -62,6 +67,24 @@ out: return rc; } +static void +test_tree_contains(void) { + + const int y0 = 7; + const int n0 = 1; + + const struct Tree root = { + .value = &y0, + .value_size = sizeof(int), + .left = NULL, + .right = NULL, + .height = 3U, + }; + + assert(tree_contains(&root, &y0)); + + assert(!tree_contains(&root, &n0)); +} int main(void) { @@ -77,6 +100,8 @@ main(void) { goto out; } + test_tree_contains(); + rc = 0; out: return !!rc; diff --git a/tests/vector.c b/tests/vector.c index 72d796e..3a13cda 100644 --- a/tests/vector.c +++ b/tests/vector.c @@ -152,6 +152,7 @@ test_vector_free(void) { assert(v != NULL); vector_free(&v); + assert(v == NULL); test_ok(); } -- cgit v1.2.3