Chandra Pratap <chandrapratap3519@xxxxxxxxx> writes: > reftable/tree_test.c exercises the functions defined in > reftable/tree.{c, h}. Migrate reftable/tree_test.c to the unit > testing framework. Migration involves refactoring the tests to use > the unit testing framework instead of reftable's test framework and > renaming the tests to align with unit-tests' standards. > Nit: it would be nice to mention that this commit copies it over as-is (mostly) and the upcoming commits do refactoring. This would really help reviewers. > Mentored-by: Patrick Steinhardt <ps@xxxxxx> > Mentored-by: Christian Couder <chriscool@xxxxxxxxxxxxx> > Signed-off-by: Chandra Pratap <chandrapratap3519@xxxxxxxxx> > --- > Makefile | 2 +- > reftable/reftable-tests.h | 1 - > reftable/tree_test.c | 60 ---------------------------------- > t/helper/test-reftable.c | 1 - > t/unit-tests/t-reftable-tree.c | 56 +++++++++++++++++++++++++++++++ > 5 files changed, 57 insertions(+), 63 deletions(-) > delete mode 100644 reftable/tree_test.c > create mode 100644 t/unit-tests/t-reftable-tree.c > > diff --git a/Makefile b/Makefile > index 3eab701b10..79e86ddf53 100644 > --- a/Makefile > +++ b/Makefile > @@ -1340,6 +1340,7 @@ UNIT_TEST_PROGRAMS += t-mem-pool > UNIT_TEST_PROGRAMS += t-oidtree > UNIT_TEST_PROGRAMS += t-prio-queue > UNIT_TEST_PROGRAMS += t-reftable-basics > +UNIT_TEST_PROGRAMS += t-reftable-tree > UNIT_TEST_PROGRAMS += t-strbuf > UNIT_TEST_PROGRAMS += t-strcmp-offset > UNIT_TEST_PROGRAMS += t-strvec > @@ -2685,7 +2686,6 @@ REFTABLE_TEST_OBJS += reftable/record_test.o > REFTABLE_TEST_OBJS += reftable/readwrite_test.o > REFTABLE_TEST_OBJS += reftable/stack_test.o > REFTABLE_TEST_OBJS += reftable/test_framework.o > -REFTABLE_TEST_OBJS += reftable/tree_test.o > > TEST_OBJS := $(patsubst %$X,%.o,$(TEST_PROGRAMS)) $(patsubst %,t/helper/%,$(TEST_BUILTINS_OBJS)) > > diff --git a/reftable/reftable-tests.h b/reftable/reftable-tests.h > index 114cc3d053..d0abcc51e2 100644 > --- a/reftable/reftable-tests.h > +++ b/reftable/reftable-tests.h > @@ -16,7 +16,6 @@ int pq_test_main(int argc, const char **argv); > int record_test_main(int argc, const char **argv); > int readwrite_test_main(int argc, const char **argv); > int stack_test_main(int argc, const char **argv); > -int tree_test_main(int argc, const char **argv); > int reftable_dump_main(int argc, char *const *argv); > > #endif > diff --git a/reftable/tree_test.c b/reftable/tree_test.c > deleted file mode 100644 > index 6961a657ad..0000000000 > --- a/reftable/tree_test.c > +++ /dev/null > @@ -1,60 +0,0 @@ > -/* > -Copyright 2020 Google LLC > - > -Use of this source code is governed by a BSD-style > -license that can be found in the LICENSE file or at > -https://developers.google.com/open-source/licenses/bsd > -*/ > - > -#include "system.h" > -#include "tree.h" > - > -#include "test_framework.h" > -#include "reftable-tests.h" > - > -static int test_compare(const void *a, const void *b) > -{ > - return (char *)a - (char *)b; > -} > - > -struct curry { > - void *last; > -}; > - > -static void check_increasing(void *arg, void *key) > -{ > - struct curry *c = arg; > - if (c->last) { > - EXPECT(test_compare(c->last, key) < 0); > - } > - c->last = key; > -} > - > -static void test_tree(void) > -{ > - struct tree_node *root = NULL; > - > - void *values[11] = { NULL }; > - struct tree_node *nodes[11] = { NULL }; > - int i = 1; > - struct curry c = { NULL }; > - do { > - nodes[i] = tree_search(values + i, &root, &test_compare, 1); > - i = (i * 7) % 11; > - } while (i != 1); > - > - for (i = 1; i < ARRAY_SIZE(nodes); i++) { > - EXPECT(values + i == nodes[i]->key); > - EXPECT(nodes[i] == > - tree_search(values + i, &root, &test_compare, 0)); > - } > - > - infix_walk(root, check_increasing, &c); > - tree_free(root); > -} > - > -int tree_test_main(int argc, const char *argv[]) > -{ > - RUN_TEST(test_tree); > - return 0; > -} > diff --git a/t/helper/test-reftable.c b/t/helper/test-reftable.c > index 9160bc5da6..245b674a3c 100644 > --- a/t/helper/test-reftable.c > +++ b/t/helper/test-reftable.c > @@ -7,7 +7,6 @@ int cmd__reftable(int argc, const char **argv) > /* test from simple to complex. */ > record_test_main(argc, argv); > block_test_main(argc, argv); > - tree_test_main(argc, argv); > pq_test_main(argc, argv); > readwrite_test_main(argc, argv); > merged_test_main(argc, argv); > diff --git a/t/unit-tests/t-reftable-tree.c b/t/unit-tests/t-reftable-tree.c > new file mode 100644 > index 0000000000..5df814d983 > --- /dev/null > +++ b/t/unit-tests/t-reftable-tree.c > @@ -0,0 +1,56 @@ > +/* > +Copyright 2020 Google LLC > + > +Use of this source code is governed by a BSD-style > +license that can be found in the LICENSE file or at > +https://developers.google.com/open-source/licenses/bsd > +*/ > + > +#include "test-lib.h" > +#include "reftable/tree.h" > + > +static int t_compare(const void *a, const void *b) > +{ > + return (char *)a - (char *)b; > +} > + > +struct curry { > + void *last; > +}; > + > +static void check_increasing(void *arg, void *key) > +{ > + struct curry *c = arg; > + if (c->last) > + check_int(t_compare(c->last, key), <, 0); > + c->last = key; > +} > + > +static void t_tree(void) > +{ > + struct tree_node *root = NULL; > + void *values[11] = { 0 }; > + struct tree_node *nodes[11] = { 0 }; > + size_t i = 1; > + struct curry c = { 0 }; > + > + do { > + nodes[i] = tree_search(values + i, &root, &t_compare, 1); > + i = (i * 7) % 11; > + } while (i != 1); > + > + for (i = 1; i < ARRAY_SIZE(nodes); i++) { > + check_pointer_eq(values + i, nodes[i]->key); > + check_pointer_eq(nodes[i], tree_search(values + i, &root, &t_compare, 0)); > + } > + > + 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"); > + > + return test_done(); > +} > -- > 2.45.GIT
Attachment:
signature.asc
Description: PGP signature