@@ -7,6 +7,7 @@ license that can be found in the LICENSE file or at
77*/
88
99#include "test-lib.h"
10+ #include "lib-reftable.h"
1011#include "reftable/blocksource.h"
1112#include "reftable/constants.h"
1213#include "reftable/merged.h"
@@ -15,91 +16,23 @@ license that can be found in the LICENSE file or at
1516#include "reftable/reftable-merged.h"
1617#include "reftable/reftable-writer.h"
1718
18- static ssize_t strbuf_add_void (void * b , const void * data , const size_t sz )
19- {
20- strbuf_add (b , data , sz );
21- return sz ;
22- }
23-
24- static int noop_flush (void * arg UNUSED )
25- {
26- return 0 ;
27- }
28-
29- static void write_test_table (struct strbuf * buf ,
30- struct reftable_ref_record refs [], const size_t n )
31- {
32- uint64_t min = 0xffffffff ;
33- uint64_t max = 0 ;
34- size_t i ;
35- int err ;
36-
37- struct reftable_write_options opts = {
38- .block_size = 256 ,
39- };
40- struct reftable_writer * w = NULL ;
41- for (i = 0 ; i < n ; i ++ ) {
42- uint64_t ui = refs [i ].update_index ;
43- if (ui > max )
44- max = ui ;
45- if (ui < min )
46- min = ui ;
47- }
48-
49- w = reftable_new_writer (& strbuf_add_void , & noop_flush , buf , & opts );
50- reftable_writer_set_limits (w , min , max );
51-
52- for (i = 0 ; i < n ; i ++ ) {
53- uint64_t before = refs [i ].update_index ;
54- int n = reftable_writer_add_ref (w , & refs [i ]);
55- check_int (n , = = , 0 );
56- check_int (before , = = , refs [i ].update_index );
57- }
58-
59- err = reftable_writer_close (w );
60- check (!err );
61-
62- reftable_writer_free (w );
63- }
64-
65- static void write_test_log_table (struct strbuf * buf , struct reftable_log_record logs [],
66- const size_t n , const uint64_t update_index )
67- {
68- int err ;
69-
70- struct reftable_write_options opts = {
71- .block_size = 256 ,
72- .exact_log_message = 1 ,
73- };
74- struct reftable_writer * w = NULL ;
75- w = reftable_new_writer (& strbuf_add_void , & noop_flush , buf , & opts );
76- reftable_writer_set_limits (w , update_index , update_index );
77-
78- for (size_t i = 0 ; i < n ; i ++ ) {
79- int err = reftable_writer_add_log (w , & logs [i ]);
80- check (!err );
81- }
82-
83- err = reftable_writer_close (w );
84- check (!err );
85-
86- reftable_writer_free (w );
87- }
88-
8919static struct reftable_merged_table *
9020merged_table_from_records (struct reftable_ref_record * * refs ,
9121 struct reftable_block_source * * source ,
9222 struct reftable_reader * * * readers , const size_t * sizes ,
9323 struct strbuf * buf , const size_t n )
9424{
9525 struct reftable_merged_table * mt = NULL ;
26+ struct reftable_write_options opts = {
27+ .block_size = 256 ,
28+ };
9629 int err ;
9730
9831 REFTABLE_CALLOC_ARRAY (* readers , n );
9932 REFTABLE_CALLOC_ARRAY (* source , n );
10033
10134 for (size_t i = 0 ; i < n ; i ++ ) {
102- write_test_table (& buf [i ], refs [i ], sizes [i ]);
35+ t_reftable_write_to_buf (& buf [i ], refs [i ], sizes [i ], NULL , 0 , & opts );
10336 block_source_from_strbuf (& (* source )[i ], & buf [i ]);
10437
10538 err = reftable_reader_new (& (* readers )[i ], & (* source )[i ],
@@ -268,13 +201,17 @@ merged_table_from_log_records(struct reftable_log_record **logs,
268201 struct strbuf * buf , const size_t n )
269202{
270203 struct reftable_merged_table * mt = NULL ;
204+ struct reftable_write_options opts = {
205+ .block_size = 256 ,
206+ .exact_log_message = 1 ,
207+ };
271208 int err ;
272209
273210 REFTABLE_CALLOC_ARRAY (* readers , n );
274211 REFTABLE_CALLOC_ARRAY (* source , n );
275212
276213 for (size_t i = 0 ; i < n ; i ++ ) {
277- write_test_log_table (& buf [i ], logs [i ], sizes [i ], i + 1 );
214+ t_reftable_write_to_buf (& buf [i ], NULL , 0 , logs [i ], sizes [i ], & opts );
278215 block_source_from_strbuf (& (* source )[i ], & buf [i ]);
279216
280217 err = reftable_reader_new (& (* readers )[i ], & (* source )[i ],
@@ -402,9 +339,7 @@ static void t_default_write_opts(void)
402339{
403340 struct reftable_write_options opts = { 0 };
404341 struct strbuf buf = STRBUF_INIT ;
405- struct reftable_writer * w =
406- reftable_new_writer (& strbuf_add_void , & noop_flush , & buf , & opts );
407-
342+ struct reftable_writer * w = t_reftable_strbuf_writer (& buf , & opts );
408343 struct reftable_ref_record rec = {
409344 .refname = (char * ) "master" ,
410345 .update_index = 1 ,
0 commit comments