From 0f5b5d0043cb15b909b1c8fdaec7948c9d2195c1 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Mon, 19 Oct 2020 14:11:31 -0700 Subject: [PATCH] test/crimson/seastore/test_transaction_manager: add test for large single-transaction split/merge Signed-off-by: Samuel Just --- .../seastore/test_transaction_manager.cc | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/test/crimson/seastore/test_transaction_manager.cc b/src/test/crimson/seastore/test_transaction_manager.cc index a1548cfa9de..f561cacff18 100644 --- a/src/test/crimson/seastore/test_transaction_manager.cc +++ b/src/test/crimson/seastore/test_transaction_manager.cc @@ -359,6 +359,37 @@ TEST_F(transaction_manager_test_t, create_remove_same_transaction) }); } +TEST_F(transaction_manager_test_t, split_merge_read_same_transaction) +{ + constexpr laddr_t SIZE = 4096; + run_async([this] { + { + auto t = create_transaction(); + for (unsigned i = 0; i < 300; ++i) { + auto extent = alloc_extent( + t, + laddr_t(i * SIZE), + SIZE); + } + check_mappings(t); + submit_transaction(std::move(t)); + check(); + } + { + auto t = create_transaction(); + for (unsigned i = 0; i < 240; ++i) { + dec_ref( + t, + laddr_t(i * SIZE)); + } + check_mappings(t); + submit_transaction(std::move(t)); + check(); + } + }); +} + + TEST_F(transaction_manager_test_t, inc_dec_ref) { constexpr laddr_t SIZE = 4096; -- 2.47.3