]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t/unit-tests: finalize migration of reftable-related tests
authorSeyi Kuforiji <kuforiji98@gmail.com>
Thu, 5 Jun 2025 14:06:44 +0000 (15:06 +0100)
committerJunio C Hamano <gitster@pobox.com>
Thu, 5 Jun 2025 16:57:15 +0000 (09:57 -0700)
The old `lib-reftable.{c,h}` implemented helper functions for our
homegrown unit-testing framework. As part of migrating reftable-related
tests to the Clar framework, Clar-specific versions of these functions
in `lib-reftable-clar.{c,h}` were introduced.

Now that all test files using these helpers have been converted to Clar,
we can safely remove the original `lib-reftable.{c,h}` and rename the
Clar- specific versions back to `lib-reftable.{c,h}`. This restores a
clean and consistent naming scheme for shared test utilities.

Finally, update our build system to reflect the changes made and remove
redundant code related to the reftable tests and our old homegrown
unit-testing setup. `test-lib.{c,h}` remains unchanged in our build
system as some files particularly `t/helper/test-example-tap.c` depends
on it in order to run, and removing that would be beyond the scope of
this patch.

Signed-off-by: Seyi Kuforiji <kuforiji98@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 files changed:
Makefile
t/Makefile
t/meson.build
t/unit-tests/lib-reftable-clar.c [deleted file]
t/unit-tests/lib-reftable-clar.h [deleted file]
t/unit-tests/lib-reftable.c
t/unit-tests/lib-reftable.h
t/unit-tests/u-reftable-basics.c
t/unit-tests/u-reftable-block.c
t/unit-tests/u-reftable-merged.c
t/unit-tests/u-reftable-pq.c
t/unit-tests/u-reftable-readwrite.c
t/unit-tests/u-reftable-record.c
t/unit-tests/u-reftable-stack.c
t/unit-tests/u-reftable-table.c

index 8ed8f234f465a8c74bc55d1598d10779200d40d6..25e6558b7b368466ebac57fbbde2652702ef8055 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1380,13 +1380,11 @@ CLAR_TEST_SUITES += u-urlmatch-normalization
 CLAR_TEST_PROG = $(UNIT_TEST_BIN)/unit-tests$(X)
 CLAR_TEST_OBJS = $(patsubst %,$(UNIT_TEST_DIR)/%.o,$(CLAR_TEST_SUITES))
 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
-CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-reftable-clar.o
+CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/lib-reftable.o
+CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/unit-test.o
 
-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
 
 # xdiff and reftable libs may in turn depend on what is in libgit.a
 GITLIBS = common-main.o $(LIB_FILE) $(XDIFF_LIB) $(REFTABLE_LIB) $(LIB_FILE)
@@ -3971,4 +3969,4 @@ $(LIBGIT_HIDDEN_EXPORT): $(LIBGIT_PARTIAL_EXPORT)
        $(OBJCOPY) --localize-hidden $^ $@
 
 contrib/libgit-sys/libgitpub.a: $(LIBGIT_HIDDEN_EXPORT)
-       $(AR) $(ARFLAGS) $@ $^
\ No newline at end of file
+       $(AR) $(ARFLAGS) $@ $^
index 791e0a097893e9e94f72afefc1a0ecda6614e4cb..757674e727348c0d18c7217c0f543b2c48e061d7 100644 (file)
@@ -125,7 +125,6 @@ check-meson:
        @mkdir -p mesontmp && \
        printf "%s\n" \
                "integration_tests t[0-9][0-9][0-9][0-9]-*.sh" \
-               "unit_test_programs unit-tests/t-*.c" \
                "clar_test_suites unit-tests/u-*.c" | \
        while read -r variable pattern; do \
                awk "/^$$variable = \[\$$/ {flag=1 ; next } /^]$$/ { flag=0 } flag { gsub(/^  \047/, \"\"); gsub(/\047,\$$/, \"\"); print }" meson.build >mesontmp/meson.txt && \
index fcbb6592637e1ea75d1fdf4b0f332fbd8714347c..be96a9639fc64d8c7fba4ed086bca18f9754c06d 100644 (file)
@@ -28,7 +28,7 @@ clar_sources = [
   'unit-tests/clar/clar.c',
   'unit-tests/unit-test.c',
   'unit-tests/lib-oid.c',
-  'unit-tests/lib-reftable-clar.c'
+  'unit-tests/lib-reftable.c'
 ]
 
 clar_decls_h = custom_target(
@@ -62,25 +62,6 @@ clar_unit_tests = executable('unit-tests',
 )
 test('unit-tests', clar_unit_tests)
 
-unit_test_programs = [
-]
-
-foreach unit_test_program : unit_test_programs
-  unit_test_name = fs.stem(unit_test_program)
-  unit_test = executable(unit_test_name,
-    sources: [
-      'unit-tests/test-lib.c',
-      'unit-tests/lib-reftable.c',
-      unit_test_program,
-    ],
-    dependencies: [libgit_commonmain],
-  )
-  test(unit_test_name, unit_test,
-    workdir: meson.current_source_dir(),
-    timeout: 0,
-  )
-endforeach
-
 subdir('helper')
 
 integration_tests = [
diff --git a/t/unit-tests/lib-reftable-clar.c b/t/unit-tests/lib-reftable-clar.c
deleted file mode 100644 (file)
index 64e40a1..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-#include "unit-test.h"
-#include "lib-reftable-clar.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);
-       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);
-       ret = reftable_writer_set_limits(writer, min, max);
-       cl_assert_equal_i(ret, 0);
-
-       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);
-}
diff --git a/t/unit-tests/lib-reftable-clar.h b/t/unit-tests/lib-reftable-clar.h
deleted file mode 100644 (file)
index b562648..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#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);
index 8a6961226657f3ec86d4cfb5d881eebfbeb42615..fdb5b11a2034f2057f1e8f15ade6b0ff64d5f1d6 100644 (file)
@@ -1,12 +1,14 @@
-#define DISABLE_SIGN_COMPARE_WARNINGS
-
+#include "unit-test.h"
 #include "lib-reftable.h"
-#include "test-lib.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 t_reftable_set_hash(uint8_t *p, int i, enum reftable_hash id)
+void cl_reftable_set_hash(uint8_t *p, int i, enum reftable_hash id)
 {
        memset(p, (uint8_t)i, hash_size(id));
 }
@@ -22,17 +24,17 @@ static int strbuf_writer_flush(void *arg UNUSED)
        return 0;
 }
 
-struct reftable_writer *t_reftable_strbuf_writer(struct reftable_buf *buf,
+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);
-       check(!ret);
+       cl_assert(!ret);
        return writer;
 }
 
-void t_reftable_write_to_buf(struct reftable_buf *buf,
+void cl_reftable_write_to_buf(struct reftable_buf *buf,
                             struct reftable_ref_record *refs,
                             size_t nrefs,
                             struct reftable_log_record *logs,
@@ -64,35 +66,36 @@ void t_reftable_write_to_buf(struct reftable_buf *buf,
                        min = ui;
        }
 
-       writer = t_reftable_strbuf_writer(buf, &opts);
-       reftable_writer_set_limits(writer, min, max);
+       writer = cl_reftable_strbuf_writer(buf, &opts);
+       ret = reftable_writer_set_limits(writer, min, max);
+       cl_assert(!ret);
 
        if (nrefs) {
                ret = reftable_writer_add_refs(writer, refs, nrefs);
-               check_int(ret, ==, 0);
+               cl_assert_equal_i(ret, 0);
        }
 
        if (nlogs) {
                ret = reftable_writer_add_logs(writer, logs, nlogs);
-               check_int(ret, ==, 0);
+               cl_assert_equal_i(ret, 0);
        }
 
        ret = reftable_writer_close(writer);
-       check_int(ret, ==, 0);
+       cl_assert_equal_i(ret, 0);
 
        stats = reftable_writer_stats(writer);
-       for (size_t i = 0; i < stats->ref_stats.blocks; i++) {
+       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);
-               check_char(buf->buf[off], ==, 'r');
+               cl_assert(buf->buf[off] == 'r');
        }
 
        if (nrefs)
-               check_int(stats->ref_stats.blocks, >, 0);
+               cl_assert(stats->ref_stats.blocks > 0);
        if (nlogs)
-               check_int(stats->log_stats.blocks, >, 0);
+               cl_assert(stats->log_stats.blocks > 0);
 
        reftable_writer_free(writer);
 }
index e4c360fa7eede977706991c230cc40d1ffecfbca..d7e6d3136f5d2f5385f1d1db7283bc53e6ef107b 100644 (file)
@@ -1,21 +1,20 @@
-#ifndef LIB_REFTABLE_H
-#define LIB_REFTABLE_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 t_reftable_set_hash(uint8_t *p, int i, enum reftable_hash id);
+void cl_reftable_set_hash(uint8_t *p, int i, enum reftable_hash id);
 
-struct reftable_writer *t_reftable_strbuf_writer(struct reftable_buf *buf,
+struct reftable_writer *cl_reftable_strbuf_writer(struct reftable_buf *buf,
                                                 struct reftable_write_options *opts);
 
-void t_reftable_write_to_buf(struct reftable_buf *buf,
+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);
-
-#endif
index f105c22d150706586960b6eafe427c0f1a9e4839..a0471083e7336afabf2831ae46bd850c6323b776 100644 (file)
@@ -7,7 +7,7 @@ https://developers.google.com/open-source/licenses/bsd
 */
 
 #include "unit-test.h"
-#include "lib-reftable-clar.h"
+#include "lib-reftable.h"
 #include "reftable/basics.h"
 
 struct integer_needle_lesseq_args {
index 97a13485639a3032cf643e3a97ca4eb354a8bbd5..f4bded7d265ded40d9e927c45fff40c467bf7c26 100644 (file)
@@ -7,7 +7,7 @@ https://developers.google.com/open-source/licenses/bsd
 */
 
 #include "unit-test.h"
-#include "lib-reftable-clar.h"
+#include "lib-reftable.h"
 #include "reftable/block.h"
 #include "reftable/blocksource.h"
 #include "reftable/constants.h"
index 62b02baa1466f9ff79419a2a3aed95323c701786..54cb7fc2a7146539c4888eb5c43d378c8aa8c3a1 100644 (file)
@@ -7,7 +7,7 @@ https://developers.google.com/open-source/licenses/bsd
 */
 
 #include "unit-test.h"
-#include "lib-reftable-clar.h"
+#include "lib-reftable.h"
 #include "reftable/blocksource.h"
 #include "reftable/constants.h"
 #include "reftable/merged.h"
index d55792ca6fb4c85f759cf1e870ee44e99787c53e..f8a28f6e07c9416dc7a83ae4397aa7174432a556 100644 (file)
@@ -7,7 +7,7 @@ https://developers.google.com/open-source/licenses/bsd
 */
 
 #include "unit-test.h"
-#include "lib-reftable-clar.h"
+#include "lib-reftable.h"
 #include "reftable/constants.h"
 #include "reftable/pq.h"
 #include "strbuf.h"
index 9aac74a011dc8f03454651bb0af27890ca3fbc01..4d8c4be5f140107a9c1d0468227e21fb28b1fc90 100644 (file)
@@ -9,7 +9,7 @@ https://developers.google.com/open-source/licenses/bsd
 #define DISABLE_SIGN_COMPARE_WARNINGS
 
 #include "unit-test.h"
-#include "lib-reftable-clar.h"
+#include "lib-reftable.h"
 #include "reftable/basics.h"
 #include "reftable/blocksource.h"
 #include "reftable/reftable-error.h"
index 650b0aa0d3a7d96b4b81495af928576bd367159b..6c8c0d5374a6a248c287cc83c294a3a635bcee0b 100644 (file)
@@ -7,7 +7,7 @@
 */
 
 #include "unit-test.h"
-#include "lib-reftable-clar.h"
+#include "lib-reftable.h"
 #include "reftable/basics.h"
 #include "reftable/constants.h"
 #include "reftable/record.h"
index 0e3e3f4f4aa6d0ecafa62f1631332cae7adfe02d..e4ea57138ef73fabdd47061c2bd1d5e27d4ee240 100644 (file)
@@ -10,7 +10,7 @@ https://developers.google.com/open-source/licenses/bsd
 
 #include "unit-test.h"
 #include "dir.h"
-#include "lib-reftable-clar.h"
+#include "lib-reftable.h"
 #include "reftable/merged.h"
 #include "reftable/reftable-error.h"
 #include "reftable/stack.h"
@@ -497,7 +497,7 @@ void test_reftable_stack__add(void)
        struct reftable_buf path = REFTABLE_BUF_INIT;
        struct stat stat_result;
        size_t i, N = ARRAY_SIZE(refs);
-       int err;
+       int err = 0;
 
        err = reftable_new_stack(&st, dir, &opts);
        cl_assert(!err);
index 839107d8a4af456201176ee348e564fbdcf3a531..14fae8b199c13c1b7b016ec651c70336102f450a 100644 (file)
@@ -1,5 +1,5 @@
 #include "unit-test.h"
-#include "lib-reftable-clar.h"
+#include "lib-reftable.h"
 #include "reftable/blocksource.h"
 #include "reftable/constants.h"
 #include "reftable/iter.h"