Skip to content

Commit 8919123

Browse files
pks-tgitster
authored andcommitted
t/helper: refactor to not use struct reftable_table
The `struct reftable_table` interface in our "reftable" test helper gets used such that we can easily print either a single table, or a merged stack. This generic interface is about to go away. Prepare the code for this change by using merged tables instead. When printing the stack we've already got one. When using a single table, we can create a merged table from it to adapt. This removes the last user of the generic interface. Signed-off-by: Patrick Steinhardt <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 1f39dd2 commit 8919123

File tree

1 file changed

+18
-15
lines changed

1 file changed

+18
-15
lines changed

t/helper/test-reftable.c

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
#include "hex.h"
44
#include "reftable/system.h"
55
#include "reftable/reftable-error.h"
6-
#include "reftable/reftable-generic.h"
76
#include "reftable/reftable-merged.h"
87
#include "reftable/reftable-reader.h"
98
#include "reftable/reftable-stack.h"
@@ -33,21 +32,20 @@ static void print_help(void)
3332
"\n");
3433
}
3534

36-
static int dump_table(struct reftable_table *tab)
35+
static int dump_table(struct reftable_merged_table *mt)
3736
{
3837
struct reftable_iterator it = { NULL };
3938
struct reftable_ref_record ref = { NULL };
4039
struct reftable_log_record log = { NULL };
4140
const struct git_hash_algo *algop;
4241
int err;
4342

44-
reftable_table_init_ref_iter(tab, &it);
45-
43+
reftable_merged_table_init_ref_iterator(mt, &it);
4644
err = reftable_iterator_seek_ref(&it, "");
4745
if (err < 0)
4846
return err;
4947

50-
algop = &hash_algos[hash_algo_by_id(reftable_table_hash_id(tab))];
48+
algop = &hash_algos[hash_algo_by_id(reftable_merged_table_hash_id(mt))];
5149

5250
while (1) {
5351
err = reftable_iterator_next_ref(&it, &ref);
@@ -77,8 +75,7 @@ static int dump_table(struct reftable_table *tab)
7775
reftable_iterator_destroy(&it);
7876
reftable_ref_record_release(&ref);
7977

80-
reftable_table_init_log_iter(tab, &it);
81-
78+
reftable_merged_table_init_log_iterator(mt, &it);
8279
err = reftable_iterator_seek_log(&it, "");
8380
if (err < 0)
8481
return err;
@@ -118,15 +115,13 @@ static int dump_stack(const char *stackdir, uint32_t hash_id)
118115
struct reftable_stack *stack = NULL;
119116
struct reftable_write_options opts = { .hash_id = hash_id };
120117
struct reftable_merged_table *merged = NULL;
121-
struct reftable_table table = { NULL };
122118

123119
int err = reftable_new_stack(&stack, stackdir, &opts);
124120
if (err < 0)
125121
goto done;
126122

127123
merged = reftable_stack_merged_table(stack);
128-
reftable_table_from_merged_table(&table, merged);
129-
err = dump_table(&table);
124+
err = dump_table(merged);
130125
done:
131126
if (stack)
132127
reftable_stack_destroy(stack);
@@ -135,20 +130,28 @@ static int dump_stack(const char *stackdir, uint32_t hash_id)
135130

136131
static int dump_reftable(const char *tablename)
137132
{
138-
struct reftable_block_source src = { NULL };
139-
int err = reftable_block_source_from_file(&src, tablename);
133+
struct reftable_block_source src = { 0 };
134+
struct reftable_merged_table *mt = NULL;
140135
struct reftable_reader *r = NULL;
141-
struct reftable_table tab = { NULL };
136+
int err;
137+
138+
err = reftable_block_source_from_file(&src, tablename);
142139
if (err < 0)
143140
goto done;
144141

145142
err = reftable_new_reader(&r, &src, tablename);
146143
if (err < 0)
147144
goto done;
148145

149-
reftable_table_from_reader(&tab, r);
150-
err = dump_table(&tab);
146+
err = reftable_merged_table_new(&mt, &r, 1,
147+
reftable_reader_hash_id(r));
148+
if (err < 0)
149+
goto done;
150+
151+
err = dump_table(mt);
152+
151153
done:
154+
reftable_merged_table_free(mt);
152155
reftable_reader_free(r);
153156
return err;
154157
}

0 commit comments

Comments
 (0)