Re: [PATCH v2 06/10] t/unit-tests: convert reftable reader test to use clar
From: Patrick Steinhardt <hidden>
Date: 2025-05-02 09:57:57
On Tue, Apr 29, 2025 at 06:52:58PM +0100, Seyi Kuforiji wrote:
quoted hunk ↗ jump to hunk
diff --git a/t/unit-tests/u-reftable-reader.c b/t/unit-tests/u-reftable-reader.c new file mode 100644 index 0000000000..6c35063105 --- /dev/null +++ b/t/unit-tests/u-reftable-reader.c@@ -0,0 +1,78 @@ +#include "unit-test.h" +#include "lib-reftable.h" +#include "reftable/blocksource.h" +#include "reftable/reader.h" + +void test_reftable_reader__seek_once(void) +{ + struct reftable_ref_record records[] = { + { + .refname = (char *) "refs/heads/main", + .value_type = REFTABLE_REF_VAL1, + .value.val1 = { 42 }, + }, + }; + struct reftable_block_source source = { 0 }; + struct reftable_ref_record ref = { 0 }; + struct reftable_iterator it = { 0 }; + struct reftable_reader *reader; + struct reftable_buf buf = REFTABLE_BUF_INIT; + + cl_reftable_write_to_buf(&buf, records, ARRAY_SIZE(records), NULL, 0, NULL); + block_source_from_buf(&source, &buf); + + cl_assert(reftable_reader_new(&reader, &source, "name") == 0); + +
Nit: empty newline.
+ reftable_reader_init_ref_iterator(reader, &it); + cl_assert(reftable_iterator_seek_ref(&it, "") == 0); + cl_assert(reftable_iterator_next_ref(&it, &ref) == 0); + + cl_assert_equal_i(reftable_ref_record_equal(&ref, &records[0], + REFTABLE_HASH_SIZE_SHA1), 1); +
Indentation is wrong again.
+ cl_assert_equal_i(reftable_iterator_next_ref(&it, &ref), 1);
+
+ reftable_ref_record_release(&ref);
+ reftable_iterator_destroy(&it);
+ reftable_reader_decref(reader);
+ reftable_buf_release(&buf);
+}
+
+void test_reftable_reader__reseek(void)
+{
+ struct reftable_ref_record records[] = {
+ {
+ .refname = (char *) "refs/heads/main",
+ .value_type = REFTABLE_REF_VAL1,
+ .value.val1 = { 42 },
+ },
+ };
+ struct reftable_block_source source = { 0 };
+ struct reftable_ref_record ref = { 0 };
+ struct reftable_iterator it = { 0 };
+ struct reftable_reader *reader;
+ struct reftable_buf buf = REFTABLE_BUF_INIT;
+
+ cl_reftable_write_to_buf(&buf, records, ARRAY_SIZE(records), NULL, 0, NULL);
+ block_source_from_buf(&source, &buf);
+
+ cl_assert(reftable_reader_new(&reader, &source, "name") == 0);
+
+ reftable_reader_init_ref_iterator(reader, &it);
+
+ for (size_t i = 0; i < 5; i++) {
+ cl_assert(reftable_iterator_seek_ref(&it, "") == 0);
+ cl_assert(reftable_iterator_next_ref(&it, &ref) == 0);
+
+ cl_assert_equal_i(reftable_ref_record_equal(&ref, &records[0],
+ REFTABLE_HASH_SIZE_SHA1), 1);Here, as well. Patrick