test: mutation_reader_test: combined_mutation_reader_test: define a local sst_factory function

For generating shared_sstables with increasing generations
(using the test_env make_sstable generations) and a given level.

Signed-off-by: Benny Halevy <bhalevy@scylladb.com>
This commit is contained in:
Benny Halevy
2023-03-16 15:37:49 +02:00
parent 506dc1260f
commit 11595b3024

View File

@@ -669,27 +669,6 @@ SEASTAR_THREAD_TEST_CASE(test_sm_fast_forwarding_combining_reader_with_galloping
assertions.produces_end_of_stream();
}
struct sst_factory {
sstables::test_env& env;
schema_ptr s;
unsigned gen;
uint32_t level;
sst_factory(sstables::test_env& env, schema_ptr s, unsigned gen, int level)
: env(env)
, s(s)
, gen(gen)
, level(level)
{}
sstables::shared_sstable operator()() {
auto sst = env.make_sstable(s, gen);
sst->set_sstable_level(level);
return sst;
}
};
SEASTAR_TEST_CASE(combined_mutation_reader_test) {
return sstables::test_env::do_with_async([] (sstables::test_env& env) {
simple_schema s;
@@ -730,13 +709,18 @@ SEASTAR_TEST_CASE(combined_mutation_reader_test) {
const mutation expexted_mutation_4 = sstable_level_0_0_mutations[2] + sstable_level_2_0_mutations[1];
const mutation expexted_mutation_5 = sstable_level_2_1_mutations[0];
unsigned gen{0};
auto sst_factory = [&, s = s.schema()] (uint32_t level) {
auto sst = env.make_sstable(s);
sst->set_sstable_level(level);
return sst;
};
std::vector<sstables::shared_sstable> sstable_list = {
make_sstable_containing(sst_factory(env, s.schema(), ++gen, 0), std::move(sstable_level_0_0_mutations)),
make_sstable_containing(sst_factory(env, s.schema(), ++gen, 1), std::move(sstable_level_1_0_mutations)),
make_sstable_containing(sst_factory(env, s.schema(), ++gen, 1), std::move(sstable_level_1_1_mutations)),
make_sstable_containing(sst_factory(env, s.schema(), ++gen, 2), std::move(sstable_level_2_0_mutations)),
make_sstable_containing(sst_factory(env, s.schema(), ++gen, 2), std::move(sstable_level_2_1_mutations)),
make_sstable_containing(sst_factory(0), std::move(sstable_level_0_0_mutations)),
make_sstable_containing(sst_factory(1), std::move(sstable_level_1_0_mutations)),
make_sstable_containing(sst_factory(1), std::move(sstable_level_1_1_mutations)),
make_sstable_containing(sst_factory(2), std::move(sstable_level_2_0_mutations)),
make_sstable_containing(sst_factory(2), std::move(sstable_level_2_1_mutations)),
};
auto cs = sstables::make_compaction_strategy(sstables::compaction_strategy_type::leveled, {});