Hello, This small patch series marks the final batch of our existing unit test files transitioned to the Clar testing framework. It covers all the reftable-related test files, and is part of our ongoing effort to standardize our testing framework to enhance its maintainability. Changes in v2: - some code refactoring based on review, which includes temporary relocation of reftable helper functions to t/unit-tests/unit-test.{c,h} files in the initial commit Thanks Seyi Signed-off-by: Seyi Kuforiji <kuforiji98@xxxxxxxxx> Seyi Kuforiji (10): t/unit-tests: implement reftable test helper functions in unit-test.{c,h} t/unit-tests: convert reftable basics test to use clar test framework t/unit-tests: convert reftable block test to use clar t/unit-tests: convert reftable merged test to use clar t/unit-tests: convert reftable pq test to use clar t/unit-tests: convert reftable reader test to use clar t/unit-tests: convert reftable readwrite test to use clar t/unit-tests: convert reftable record test to use clar t/unit-tests: convert reftable stack test to use clar t/unit-tests: adapt lib-reftable{c,h} helper functions to clar Makefile | 20 +- t/meson.build | 21 +- t/unit-tests/lib-reftable.c | 26 +- t/unit-tests/lib-reftable.h | 6 +- t/unit-tests/t-reftable-basics.c | 219 ---- t/unit-tests/t-reftable-block.c | 383 ------- t/unit-tests/t-reftable-merged.c | 546 ---------- t/unit-tests/t-reftable-pq.c | 161 --- t/unit-tests/t-reftable-reader.c | 96 -- t/unit-tests/t-reftable-readwrite.c | 985 ------------------ t/unit-tests/t-reftable-record.c | 585 ----------- t/unit-tests/t-reftable-stack.c | 1451 --------------------------- t/unit-tests/u-reftable-basics.c | 195 ++++ t/unit-tests/u-reftable-block.c | 373 +++++++ t/unit-tests/u-reftable-merged.c | 515 ++++++++++ t/unit-tests/u-reftable-pq.c | 152 +++ t/unit-tests/u-reftable-reader.c | 78 ++ t/unit-tests/u-reftable-readwrite.c | 870 ++++++++++++++++ t/unit-tests/u-reftable-record.c | 565 +++++++++++ t/unit-tests/u-reftable-stack.c | 1247 +++++++++++++++++++++++ 20 files changed, 4031 insertions(+), 4463 deletions(-) delete mode 100644 t/unit-tests/t-reftable-basics.c delete mode 100644 t/unit-tests/t-reftable-block.c delete mode 100644 t/unit-tests/t-reftable-merged.c delete mode 100644 t/unit-tests/t-reftable-pq.c delete mode 100644 t/unit-tests/t-reftable-reader.c delete mode 100644 t/unit-tests/t-reftable-readwrite.c delete mode 100644 t/unit-tests/t-reftable-record.c delete mode 100644 t/unit-tests/t-reftable-stack.c create mode 100644 t/unit-tests/u-reftable-basics.c create mode 100644 t/unit-tests/u-reftable-block.c create mode 100644 t/unit-tests/u-reftable-merged.c create mode 100644 t/unit-tests/u-reftable-pq.c create mode 100644 t/unit-tests/u-reftable-reader.c create mode 100644 t/unit-tests/u-reftable-readwrite.c create mode 100644 t/unit-tests/u-reftable-record.c create mode 100644 t/unit-tests/u-reftable-stack.c Range-diff against v1: -: ---------- > 1: d85c5694ca t/unit-tests: implement reftable test helper functions in unit-test.{c,h} 2: 4c5fc06603 ! 2: d24faa0176 t/unit-tests: convert reftable basics test to use clar test framework @@ Makefile: CLAR_TEST_SUITES += u-oid-array CLAR_TEST_SUITES += u-reftable-tree CLAR_TEST_SUITES += u-strbuf CLAR_TEST_SUITES += u-strcmp-offset -@@ Makefile: CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-oid.o - CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-reftable.o +@@ Makefile: CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/clar/clar.o CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/unit-test.o + CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-oid.o -UNIT_TEST_PROGRAMS += t-reftable-basics UNIT_TEST_PROGRAMS += t-reftable-block 3: c9bdff8290 ! 3: d9eb47645b t/unit-tests: convert reftable block test to use clar @@ Makefile: CLAR_TEST_SUITES += u-oidmap CLAR_TEST_SUITES += u-reftable-tree CLAR_TEST_SUITES += u-strbuf CLAR_TEST_SUITES += u-strcmp-offset -@@ Makefile: CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-oid.o - CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-reftable.o +@@ Makefile: CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/clar/clar.o CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/unit-test.o + CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-oid.o -UNIT_TEST_PROGRAMS += t-reftable-block UNIT_TEST_PROGRAMS += t-reftable-merged 4: 60e2ff8bca ! 4: 6ffc7cdfc6 t/unit-tests: convert reftable merged test to use clar @@ Makefile: CLAR_TEST_SUITES += u-oidtree CLAR_TEST_SUITES += u-reftable-tree CLAR_TEST_SUITES += u-strbuf CLAR_TEST_SUITES += u-strcmp-offset -@@ Makefile: CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-oid.o - CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-reftable.o +@@ Makefile: CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/clar/clar.o CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/unit-test.o + CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-oid.o -UNIT_TEST_PROGRAMS += t-reftable-merged UNIT_TEST_PROGRAMS += t-reftable-pq 5: b06520b033 ! 5: 19b08968a0 t/unit-tests: convert reftable pq test to use clar @@ Makefile: CLAR_TEST_SUITES += u-prio-queue CLAR_TEST_SUITES += u-reftable-tree CLAR_TEST_SUITES += u-strbuf CLAR_TEST_SUITES += u-strcmp-offset -@@ Makefile: CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-oid.o - CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-reftable.o +@@ Makefile: CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/clar/clar.o CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/unit-test.o + CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-oid.o -UNIT_TEST_PROGRAMS += t-reftable-pq UNIT_TEST_PROGRAMS += t-reftable-reader 6: 8b8ad57ff5 ! 6: b34d6714ed t/unit-tests: convert reftable reader test to use clar @@ Makefile: CLAR_TEST_SUITES += u-reftable-basics CLAR_TEST_SUITES += u-reftable-tree CLAR_TEST_SUITES += u-strbuf CLAR_TEST_SUITES += u-strcmp-offset -@@ Makefile: CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-oid.o - CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-reftable.o +@@ Makefile: CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/clar/clar.o CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/unit-test.o + CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-oid.o -UNIT_TEST_PROGRAMS += t-reftable-reader UNIT_TEST_PROGRAMS += t-reftable-readwrite 7: da73e8c85b ! 7: 05c909ea94 t/unit-tests: convert reftable readwrite test to use clar @@ Makefile: CLAR_TEST_SUITES += u-reftable-block CLAR_TEST_SUITES += u-reftable-tree CLAR_TEST_SUITES += u-strbuf CLAR_TEST_SUITES += u-strcmp-offset -@@ Makefile: CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-oid.o - CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-reftable.o +@@ Makefile: CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/clar/clar.o CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/unit-test.o + CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-oid.o -UNIT_TEST_PROGRAMS += t-reftable-readwrite UNIT_TEST_PROGRAMS += t-reftable-record 8: ac6fd74321 ! 8: 1515cf15b7 t/unit-tests: convert reftable record test to use clar @@ Makefile: CLAR_TEST_SUITES += u-reftable-merged CLAR_TEST_SUITES += u-reftable-tree CLAR_TEST_SUITES += u-strbuf CLAR_TEST_SUITES += u-strcmp-offset -@@ Makefile: CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-oid.o - CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-reftable.o +@@ Makefile: CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/clar/clar.o CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/unit-test.o + CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-oid.o -UNIT_TEST_PROGRAMS += t-reftable-record UNIT_TEST_PROGRAMS += t-reftable-stack 9: 5bc6a599c6 ! 9: dcbb2b6e56 t/unit-tests: convert reftable stack test to use clar @@ Makefile: CLAR_TEST_SUITES += u-reftable-pq CLAR_TEST_SUITES += u-reftable-tree CLAR_TEST_SUITES += u-strbuf CLAR_TEST_SUITES += u-strcmp-offset -@@ Makefile: CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-oid.o - CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-reftable.o +@@ Makefile: CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/clar/clar.o CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/unit-test.o + CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-oid.o -UNIT_TEST_PROGRAMS += t-reftable-stack UNIT_TEST_PROGS = $(patsubst %,$(UNIT_TEST_BIN)/%$X,$(UNIT_TEST_PROGRAMS)) UNIT_TEST_OBJS += $(UNIT_TEST_DIR)/test-lib.o - + UNIT_TEST_OBJS += $(UNIT_TEST_DIR)/lib-reftable.o ## t/meson.build ## @@ t/meson.build: clar_test_suites = [ 1: 304d17fef8 ! 10: 79aa0145aa t/unit-tests: adapt lib-reftable{c,h} helper functions to clar @@ Commit message Adapt functions in lib-reftable.{c,h} to use clar. These functions conform with the clar testing framework and become available for all reftable-related test files implemented using the clar testing - framework, which requires them. This will be used by subsequent commits. + framework, which requires them. This change migrates the helper + functions back into `lib-reftable.{c,h}`. Signed-off-by: Seyi Kuforiji <kuforiji98@xxxxxxxxx> @@ Makefile: CLAR_TEST_SUITES += u-urlmatch-normalization +CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-reftable.o +CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/unit-test.o - UNIT_TEST_PROGRAMS += t-reftable-basics - UNIT_TEST_PROGRAMS += t-reftable-block -@@ Makefile: UNIT_TEST_PROGRAMS += t-reftable-record - UNIT_TEST_PROGRAMS += t-reftable-stack UNIT_TEST_PROGS = $(patsubst %,$(UNIT_TEST_BIN)/%$X,$(UNIT_TEST_PROGRAMS)) UNIT_TEST_OBJS += $(UNIT_TEST_DIR)/test-lib.o -UNIT_TEST_OBJS += $(UNIT_TEST_DIR)/lib-reftable.o @@ t/unit-tests/lib-reftable.h struct reftable_ref_record *refs, size_t nrecords, struct reftable_log_record *logs, + + ## t/unit-tests/unit-test.c ## +@@ + #include "unit-test.h" + #include "hex.h" + #include "parse-options.h" +-#include "reftable/constants.h" +-#include "reftable/writer.h" + #include "strbuf.h" + #include "string-list.h" + #include "strvec.h" + +-void cl_reftable_set_hash(uint8_t *p, int i, enum reftable_hash id) +-{ +- memset(p, (uint8_t)i, hash_size(id)); +-} +- +-static ssize_t strbuf_writer_write(void *b, const void *data, size_t sz) +-{ +- strbuf_add(b, data, sz); +- return sz; +-} +- +-static int strbuf_writer_flush(void *arg UNUSED) +-{ +- return 0; +-} +- +-struct reftable_writer *cl_reftable_strbuf_writer(struct reftable_buf *buf, +- struct reftable_write_options *opts) +-{ +- struct reftable_writer *writer; +- int ret = reftable_writer_new(&writer, &strbuf_writer_write, &strbuf_writer_flush, +- buf, opts); +- cl_assert(ret == 0); +- return writer; +-} +- +-void cl_reftable_write_to_buf(struct reftable_buf *buf, +- struct reftable_ref_record *refs, +- size_t nrefs, +- struct reftable_log_record *logs, +- size_t nlogs, +- struct reftable_write_options *_opts) +-{ +- struct reftable_write_options opts = { 0 }; +- const struct reftable_stats *stats; +- struct reftable_writer *writer; +- uint64_t min = 0xffffffff; +- uint64_t max = 0; +- int ret; +- +- if (_opts) +- opts = *_opts; +- +- for (size_t i = 0; i < nrefs; i++) { +- uint64_t ui = refs[i].update_index; +- if (ui > max) +- max = ui; +- if (ui < min) +- min = ui; +- } +- for (size_t i = 0; i < nlogs; i++) { +- uint64_t ui = logs[i].update_index; +- if (ui > max) +- max = ui; +- if (ui < min) +- min = ui; +- } +- +- writer = cl_reftable_strbuf_writer(buf, &opts); +- reftable_writer_set_limits(writer, min, max); +- +- if (nrefs) { +- ret = reftable_writer_add_refs(writer, refs, nrefs); +- cl_assert_equal_i(ret, 0); +- } +- +- if (nlogs) { +- ret = reftable_writer_add_logs(writer, logs, nlogs); +- cl_assert_equal_i(ret, 0); +- } +- +- ret = reftable_writer_close(writer); +- cl_assert_equal_i(ret, 0); +- +- stats = reftable_writer_stats(writer); +- for (size_t i = 0; i < (size_t)stats->ref_stats.blocks; i++) { +- size_t off = i * (opts.block_size ? opts.block_size +- : DEFAULT_BLOCK_SIZE); +- if (!off) +- off = header_size(opts.hash_id == REFTABLE_HASH_SHA256 ? 2 : 1); +- cl_assert(buf->buf[off] == 'r'); +- } +- +- if (nrefs) +- cl_assert(stats->ref_stats.blocks > 0); +- if (nlogs) +- cl_assert(stats->log_stats.blocks > 0); +- +- reftable_writer_free(writer); +-} +- + static const char * const unit_test_usage[] = { + N_("unit-test [<options>]"), + NULL, + + ## t/unit-tests/unit-test.h ## +@@ + #include "git-compat-util.h" + #include "clar/clar.h" + #include "clar-decls.h" +-#include "git-compat-util.h" +-#include "reftable/reftable-writer.h" + #include "strbuf.h" + +-struct reftable_buf; +- +-void cl_reftable_set_hash(uint8_t *p, int i, enum reftable_hash id); +- +-struct reftable_writer *cl_reftable_strbuf_writer(struct reftable_buf *buf, +- struct reftable_write_options *opts); +- +-void cl_reftable_write_to_buf(struct reftable_buf *buf, +- struct reftable_ref_record *refs, +- size_t nrecords, +- struct reftable_log_record *logs, +- size_t nlogs, +- struct reftable_write_options *opts); +- + #define cl_failf(fmt, ...) do { \ + char desc[4096]; \ + snprintf(desc, sizeof(desc), fmt, __VA_ARGS__); \ -- 2.43.0