From f059e710562c855dfc3f41a346dc45f1e0d5bc61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Botond=20D=C3=A9nes?= Date: Mon, 20 Nov 2017 14:18:14 +0200 Subject: [PATCH] Add fast-forwarding with no data test to mutation_source_test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Botond Dénes Message-Id: <9cb630bf9441e178b2040709f92767d4a740a875.1511180262.git.bdenes@scylladb.com> --- tests/mutation_source_test.cc | 36 +++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/tests/mutation_source_test.cc b/tests/mutation_source_test.cc index 9cd331a8b4..72851bf78e 100644 --- a/tests/mutation_source_test.cc +++ b/tests/mutation_source_test.cc @@ -845,6 +845,41 @@ static void test_query_only_static_row(populate_fn populate) { } } +void test_streamed_mutation_forwarding_succeeds_with_no_data(populate_fn populate) { + simple_schema s; + auto cks = s.make_ckeys(6); + + auto pkey = s.make_pkey(0); + mutation m(pkey, s.schema()); + s.add_row(m, cks[0], "data"); + + auto source = populate(s.schema(), {m}); + assert_that(source.make_flat_mutation_reader(s.schema(), + query::full_partition_range, + s.schema()->full_slice(), + default_priority_class(), + nullptr, + streamed_mutation::forwarding::yes + )) + .produces_partition_start(pkey) + .produces_end_of_stream() + .fast_forward_to(position_range(position_in_partition::for_key(cks[0]), position_in_partition::before_key(cks[1]))) + .produces_row_with_key(cks[0]) + .produces_end_of_stream() + .fast_forward_to(position_range(position_in_partition::for_key(cks[1]), position_in_partition::before_key(cks[3]))) + .produces_end_of_stream() + .fast_forward_to(position_range(position_in_partition::for_key(cks[4]), position_in_partition::before_key(cks[5]))) + .produces_end_of_stream() + .next_partition() + .produces_end_of_stream() + .fast_forward_to(position_range(position_in_partition::for_key(cks[0]), position_in_partition::before_key(cks[1]))) + .produces_end_of_stream() + .fast_forward_to(position_range(position_in_partition::for_key(cks[1]), position_in_partition::before_key(cks[3]))) + .produces_end_of_stream() + .fast_forward_to(position_range(position_in_partition::for_key(cks[4]), position_in_partition::before_key(cks[5]))) + .produces_end_of_stream(); +} + void run_mutation_reader_tests(populate_fn populate) { test_fast_forwarding_across_partitions_to_empty_range(populate); test_clustering_slices(populate); @@ -911,6 +946,7 @@ void test_next_partition(populate_fn populate) { void run_flat_mutation_reader_tests(populate_fn populate) { run_conversion_to_mutation_reader_tests(populate); test_next_partition(populate); + test_streamed_mutation_forwarding_succeeds_with_no_data(populate); } void run_mutation_source_tests(populate_fn populate) {