From 0630af44bacc0c3bd863bc70c1ec8568d75dcfd6 Mon Sep 17 00:00:00 2001 From: Jianxin Li Date: Wed, 19 Jun 2024 13:06:49 +0800 Subject: [PATCH] test/crimson/seastore: add test case for partial reads Signed-off-by: Jianxin Li --- .../seastore/test_object_data_handler.cc | 25 +++++++++++++++++++ .../seastore/test_transaction_manager.cc | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/test/crimson/seastore/test_object_data_handler.cc b/src/test/crimson/seastore/test_object_data_handler.cc index e7374d1d9b8bb..a6233ad2c63fa 100644 --- a/src/test/crimson/seastore/test_object_data_handler.cc +++ b/src/test/crimson/seastore/test_object_data_handler.cc @@ -871,6 +871,31 @@ TEST_P(object_data_handler_test_t, overwrite_then_read_within_transaction) { }); } +TEST_P(object_data_handler_test_t, parallel_partial_read) { + run_async([this] { + disable_max_extent_size(); + enable_delta_based_overwrite(); + auto t = create_mutate_transaction(); + auto base = 0; + auto len = 4096 * 10; + write(*t, base, len, 'a'); + submit_transaction(std::move(t)); + + restart(); + epm->check_usage(); + seastar::parallel_for_each( + boost::make_counting_iterator(0lu), + boost::make_counting_iterator(8lu), + [&](auto i) { + return seastar::async([&] { + read(i * 4096, 8192); + }); + }).get(); + disable_delta_based_overwrite(); + enable_max_extent_size(); + }); +} + INSTANTIATE_TEST_SUITE_P( object_data_handler_test, object_data_handler_test_t, diff --git a/src/test/crimson/seastore/test_transaction_manager.cc b/src/test/crimson/seastore/test_transaction_manager.cc index 7ee05f111e7b6..012d1819d85a8 100644 --- a/src/test/crimson/seastore/test_transaction_manager.cc +++ b/src/test/crimson/seastore/test_transaction_manager.cc @@ -2188,7 +2188,7 @@ TEST_P(tm_single_device_test_t, invalid_lba_mapping_detect) using namespace crimson::os::seastore::lba_manager::btree; { auto t = create_transaction(); - for (int i = 0; i < LEAF_NODE_CAPACITY; i++) { + for (unsigned i = 0; i < LEAF_NODE_CAPACITY; i++) { auto extent = alloc_extent( t, get_laddr_hint(i * 4096), -- 2.39.5