aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChandra Pratap <chandrapratap3519@gmail.com>2024-08-04 19:36:47 +0530
committerJunio C Hamano <gitster@pobox.com>2024-08-04 09:50:26 -0700
commitabf1a96773bfaee5e354909d3a6dc172bfbdee96 (patch)
tree5a443314165bf4bb5eadd8e3fe0e08d0ce846a06
parentec9c0704fc6ad646f5482d3e31e3a5b3be1677ef (diff)
downloadgit-abf1a96773bfaee5e354909d3a6dc172bfbdee96.tar.gz
t-reftable-tree: split test_tree() into two sub-test functions
In the current testing setup, tests for both tree_search() and infix_walk() defined by reftable/tree.{c, h} are performed by a single test function, test_tree(). Split tree_test() into test_tree_search() and test_infix_walk() responsible for independently testing tree_search() and infix_walk() respectively. This improves the overall readability of the test file as well as simplifies debugging. Note that the last parameter in the tree_search() functiom is 'int insert' which when set, inserts the key if it is not found in the tree. Otherwise, the function returns NULL for such cases. While at it, use 'func' to pass function pointers and not '&func'. Mentored-by: Patrick Steinhardt <ps@pks.im> Mentored-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Chandra Pratap <chandrapratap3519@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--t/unit-tests/t-reftable-tree.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/t/unit-tests/t-reftable-tree.c b/t/unit-tests/t-reftable-tree.c
index 8b1f9a66a0..7cc52a1925 100644
--- a/t/unit-tests/t-reftable-tree.c
+++ b/t/unit-tests/t-reftable-tree.c
@@ -26,13 +26,12 @@ static void check_increasing(void *arg, void *key)
c->last = key;
}
-static void t_tree(void)
+static void t_tree_search(void)
{
struct tree_node *root = NULL;
void *values[11] = { 0 };
struct tree_node *nodes[11] = { 0 };
size_t i = 1;
- struct curry c = { 0 };
/*
* Pseudo-randomly insert the pointers for elements between
@@ -48,13 +47,29 @@ static void t_tree(void)
check_pointer_eq(nodes[i], tree_search(&values[i], &root, &t_compare, 0));
}
- infix_walk(root, check_increasing, &c);
+ tree_free(root);
+}
+
+static void t_infix_walk(void)
+{
+ struct tree_node *root = NULL;
+ void *values[11] = { 0 };
+ struct curry c = { 0 };
+ size_t i = 1;
+
+ do {
+ tree_search(&values[i], &root, t_compare, 1);
+ i = (i * 7) % 11;
+ } while (i != 1);
+
+ infix_walk(root, &check_increasing, &c);
tree_free(root);
}
int cmd_main(int argc, const char *argv[])
{
- TEST(t_tree(), "tree_search and infix_walk work");
+ TEST(t_tree_search(), "tree_search works");
+ TEST(t_infix_walk(), "infix_walk works");
return test_done();
}