From: Myoungwon Oh Date: Thu, 31 Aug 2023 05:13:07 +0000 (+0900) Subject: test/crimson/seastore/rbm: add sub-tests regarding RBM to the existing tests X-Git-Tag: v18.2.1~155^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=65b8ec134e5b20b2c32bd10a0ab70dd00d547092;p=ceph.git test/crimson/seastore/rbm: add sub-tests regarding RBM to the existing tests Signed-off-by: Myoungwon Oh (cherry picked from commit 670a19f27761c937ad8d07abf9bb7c94ed4a3b00) --- diff --git a/src/test/crimson/seastore/onode_tree/test_fltree_onode_manager.cc b/src/test/crimson/seastore/onode_tree/test_fltree_onode_manager.cc index 64afe1247caac..79be50dc0db8f 100644 --- a/src/test/crimson/seastore/onode_tree/test_fltree_onode_manager.cc +++ b/src/test/crimson/seastore/onode_tree/test_fltree_onode_manager.cc @@ -235,7 +235,7 @@ struct fltree_onode_manager_test_t fltree_onode_manager_test_t() {} }; -TEST_F(fltree_onode_manager_test_t, 1_single) +TEST_P(fltree_onode_manager_test_t, 1_single) { run_async([this] { uint64_t block_size = tm->get_block_size(); @@ -263,7 +263,7 @@ TEST_F(fltree_onode_manager_test_t, 1_single) }); } -TEST_F(fltree_onode_manager_test_t, 2_synthetic) +TEST_P(fltree_onode_manager_test_t, 2_synthetic) { run_async([this] { uint64_t block_size = tm->get_block_size(); @@ -315,3 +315,12 @@ TEST_F(fltree_onode_manager_test_t, 2_synthetic) validate_list_onodes(pool); }); } + +INSTANTIATE_TEST_SUITE_P( + fltree_onode__manager_test, + fltree_onode_manager_test_t, + ::testing::Values ( + "segmented", + "circularbounded" + ) +); diff --git a/src/test/crimson/seastore/onode_tree/test_staged_fltree.cc b/src/test/crimson/seastore/onode_tree/test_staged_fltree.cc index 26461b87f0400..7357b5ced1ed1 100644 --- a/src/test/crimson/seastore/onode_tree/test_staged_fltree.cc +++ b/src/test/crimson/seastore/onode_tree/test_staged_fltree.cc @@ -1572,7 +1572,7 @@ struct d_seastore_tm_test_t : } }; -TEST_F(d_seastore_tm_test_t, 6_random_tree_insert_erase) +TEST_P(d_seastore_tm_test_t, 6_random_tree_insert_erase) { run_async([this] { constexpr bool TEST_SEASTORE = true; @@ -1662,7 +1662,7 @@ TEST_F(d_seastore_tm_test_t, 6_random_tree_insert_erase) }); } -TEST_F(d_seastore_tm_test_t, 7_tree_insert_erase_eagain) +TEST_P(d_seastore_tm_test_t, 7_tree_insert_erase_eagain) { run_async([this] { constexpr double EAGAIN_PROBABILITY = 0.1; @@ -1781,3 +1781,12 @@ TEST_F(d_seastore_tm_test_t, 7_tree_insert_erase_eagain) tree.reset(); }); } + +INSTANTIATE_TEST_SUITE_P( + d_seastore_tm_test, + d_seastore_tm_test_t, + ::testing::Values ( + "segmented", + "circularbounded" + ) +); diff --git a/src/test/crimson/seastore/test_collection_manager.cc b/src/test/crimson/seastore/test_collection_manager.cc index 00c5a6b87cfa2..cedcc5e8f4418 100644 --- a/src/test/crimson/seastore/test_collection_manager.cc +++ b/src/test/crimson/seastore/test_collection_manager.cc @@ -100,7 +100,7 @@ struct collection_manager_test_t : } }; -TEST_F(collection_manager_test_t, basic) +TEST_P(collection_manager_test_t, basic) { run_async([this] { coll_root_t coll_root = get_root(); @@ -137,7 +137,7 @@ TEST_F(collection_manager_test_t, basic) }); } -TEST_F(collection_manager_test_t, overflow) +TEST_P(collection_manager_test_t, overflow) { run_async([this] { coll_root_t coll_root = get_root(); @@ -158,7 +158,7 @@ TEST_F(collection_manager_test_t, overflow) }); } -TEST_F(collection_manager_test_t, update) +TEST_P(collection_manager_test_t, update) { run_async([this] { coll_root_t coll_root = get_root(); @@ -184,3 +184,12 @@ TEST_F(collection_manager_test_t, update) checking_mappings(coll_root); }); } + +INSTANTIATE_TEST_SUITE_P( + collection_manager_test, + collection_manager_test_t, + ::testing::Values ( + "segmented", + "circularbounded" + ) +); diff --git a/src/test/crimson/seastore/test_object_data_handler.cc b/src/test/crimson/seastore/test_object_data_handler.cc index 11b9ed0e6cca7..43f93b07fb7b9 100644 --- a/src/test/crimson/seastore/test_object_data_handler.cc +++ b/src/test/crimson/seastore/test_object_data_handler.cc @@ -160,7 +160,7 @@ struct object_data_handler_test_t: } }; -TEST_F(object_data_handler_test_t, single_write) +TEST_P(object_data_handler_test_t, single_write) { run_async([this] { write(1<<20, 8<<10, 'c'); @@ -170,7 +170,7 @@ TEST_F(object_data_handler_test_t, single_write) }); } -TEST_F(object_data_handler_test_t, multi_write) +TEST_P(object_data_handler_test_t, multi_write) { run_async([this] { write((1<<20) - (4<<10), 4<<10, 'a'); @@ -185,7 +185,7 @@ TEST_F(object_data_handler_test_t, multi_write) }); } -TEST_F(object_data_handler_test_t, write_hole) +TEST_P(object_data_handler_test_t, write_hole) { run_async([this] { write((1<<20) - (4<<10), 4<<10, 'a'); @@ -200,7 +200,7 @@ TEST_F(object_data_handler_test_t, write_hole) }); } -TEST_F(object_data_handler_test_t, overwrite_single) +TEST_P(object_data_handler_test_t, overwrite_single) { run_async([this] { write((1<<20), 4<<10, 'a'); @@ -211,7 +211,7 @@ TEST_F(object_data_handler_test_t, overwrite_single) }); } -TEST_F(object_data_handler_test_t, overwrite_double) +TEST_P(object_data_handler_test_t, overwrite_double) { run_async([this] { write((1<<20), 4<<10, 'a'); @@ -229,7 +229,7 @@ TEST_F(object_data_handler_test_t, overwrite_double) }); } -TEST_F(object_data_handler_test_t, overwrite_partial) +TEST_P(object_data_handler_test_t, overwrite_partial) { run_async([this] { write((1<<20), 12<<10, 'a'); @@ -254,7 +254,7 @@ TEST_F(object_data_handler_test_t, overwrite_partial) }); } -TEST_F(object_data_handler_test_t, unaligned_write) +TEST_P(object_data_handler_test_t, unaligned_write) { run_async([this] { objaddr_t base = 1<<20; @@ -271,7 +271,7 @@ TEST_F(object_data_handler_test_t, unaligned_write) }); } -TEST_F(object_data_handler_test_t, unaligned_overwrite) +TEST_P(object_data_handler_test_t, unaligned_overwrite) { run_async([this] { objaddr_t base = 1<<20; @@ -292,7 +292,7 @@ TEST_F(object_data_handler_test_t, unaligned_overwrite) }); } -TEST_F(object_data_handler_test_t, truncate) +TEST_P(object_data_handler_test_t, truncate) { run_async([this] { objaddr_t base = 1<<20; @@ -314,7 +314,7 @@ TEST_F(object_data_handler_test_t, truncate) }); } -TEST_F(object_data_handler_test_t, no_split) { +TEST_P(object_data_handler_test_t, no_split) { run_async([this] { write(0, 8<<10, 'x'); write(0, 8<<10, 'a'); @@ -326,7 +326,7 @@ TEST_F(object_data_handler_test_t, no_split) { }); } -TEST_F(object_data_handler_test_t, split_left) { +TEST_P(object_data_handler_test_t, split_left) { run_async([this] { write(0, 128<<10, 'x'); @@ -346,7 +346,7 @@ TEST_F(object_data_handler_test_t, split_left) { }); } -TEST_F(object_data_handler_test_t, split_right) { +TEST_P(object_data_handler_test_t, split_right) { run_async([this] { write(0, 128<<10, 'x'); write(4<<10, 60<<10, 'a'); @@ -364,7 +364,7 @@ TEST_F(object_data_handler_test_t, split_right) { read(0, 128<<10); }); } -TEST_F(object_data_handler_test_t, split_left_right) { +TEST_P(object_data_handler_test_t, split_left_right) { run_async([this] { write(0, 128<<10, 'x'); write(48<<10, 32<<10, 'a'); @@ -381,7 +381,7 @@ TEST_F(object_data_handler_test_t, split_left_right) { } }); } -TEST_F(object_data_handler_test_t, multiple_split) { +TEST_P(object_data_handler_test_t, multiple_split) { run_async([this] { write(0, 128<<10, 'x'); @@ -415,3 +415,14 @@ TEST_F(object_data_handler_test_t, multiple_split) { read(0, 128<<10); }); } + +INSTANTIATE_TEST_SUITE_P( + object_data_handler_test, + object_data_handler_test_t, + ::testing::Values ( + "segmented", + "circularbounded" + ) +); + + diff --git a/src/test/crimson/seastore/test_omap_manager.cc b/src/test/crimson/seastore/test_omap_manager.cc index 9973add40e9c1..ab2218565f8ac 100644 --- a/src/test/crimson/seastore/test_omap_manager.cc +++ b/src/test/crimson/seastore/test_omap_manager.cc @@ -280,7 +280,7 @@ struct omap_manager_test_t : } }; -TEST_F(omap_manager_test_t, basic) +TEST_P(omap_manager_test_t, basic) { run_async([this] { omap_root_t omap_root = initialize(); @@ -312,7 +312,7 @@ TEST_F(omap_manager_test_t, basic) }); } -TEST_F(omap_manager_test_t, force_leafnode_split) +TEST_P(omap_manager_test_t, force_leafnode_split) { run_async([this] { omap_root_t omap_root = initialize(); @@ -333,7 +333,7 @@ TEST_F(omap_manager_test_t, force_leafnode_split) }); } -TEST_F(omap_manager_test_t, force_leafnode_split_merge) +TEST_P(omap_manager_test_t, force_leafnode_split_merge) { run_async([this] { omap_root_t omap_root = initialize(); @@ -376,7 +376,7 @@ TEST_F(omap_manager_test_t, force_leafnode_split_merge) }); } -TEST_F(omap_manager_test_t, force_leafnode_split_merge_fullandbalanced) +TEST_P(omap_manager_test_t, force_leafnode_split_merge_fullandbalanced) { run_async([this] { omap_root_t omap_root = initialize(); @@ -423,7 +423,7 @@ TEST_F(omap_manager_test_t, force_leafnode_split_merge_fullandbalanced) }); } -TEST_F(omap_manager_test_t, force_split_listkeys_list_rmkey_range_clear) +TEST_P(omap_manager_test_t, force_split_listkeys_list_rmkey_range_clear) { run_async([this] { omap_root_t omap_root = initialize(); @@ -511,7 +511,7 @@ TEST_F(omap_manager_test_t, force_split_listkeys_list_rmkey_range_clear) }); } -TEST_F(omap_manager_test_t, force_inner_node_split_list_rmkey_range) +TEST_P(omap_manager_test_t, force_inner_node_split_list_rmkey_range) { run_async([this] { omap_root_t omap_root = initialize(); @@ -584,7 +584,7 @@ TEST_F(omap_manager_test_t, force_inner_node_split_list_rmkey_range) } -TEST_F(omap_manager_test_t, internal_force_split) +TEST_P(omap_manager_test_t, internal_force_split) { run_async([this] { omap_root_t omap_root = initialize(); @@ -606,7 +606,7 @@ TEST_F(omap_manager_test_t, internal_force_split) }); } -TEST_F(omap_manager_test_t, internal_force_merge_fullandbalanced) +TEST_P(omap_manager_test_t, internal_force_merge_fullandbalanced) { run_async([this] { omap_root_t omap_root = initialize(); @@ -646,7 +646,7 @@ TEST_F(omap_manager_test_t, internal_force_merge_fullandbalanced) }); } -TEST_F(omap_manager_test_t, replay) +TEST_P(omap_manager_test_t, replay) { run_async([this] { omap_root_t omap_root = initialize(); @@ -692,7 +692,7 @@ TEST_F(omap_manager_test_t, replay) } -TEST_F(omap_manager_test_t, internal_force_split_to_root) +TEST_P(omap_manager_test_t, internal_force_split_to_root) { run_async([this] { omap_root_t omap_root = initialize(); @@ -719,3 +719,12 @@ TEST_F(omap_manager_test_t, internal_force_split_to_root) check_mappings(omap_root); }); } + +INSTANTIATE_TEST_SUITE_P( + omap_manager_test, + omap_manager_test_t, + ::testing::Values ( + "segmented", + "circularbounded" + ) +); diff --git a/src/test/crimson/seastore/test_seastore.cc b/src/test/crimson/seastore/test_seastore.cc index e5d23132dd5ed..827402bbcb47e 100644 --- a/src/test/crimson/seastore/test_seastore.cc +++ b/src/test/crimson/seastore/test_seastore.cc @@ -56,8 +56,7 @@ ghobject_t make_temp_oid(int i) { struct seastore_test_t : public seastar_test_suite_t, - SeaStoreTestState, - ::testing::WithParamInterface { + SeaStoreTestState { coll_t coll_name{spg_t{pg_t{0, 0}}}; CollectionRef coll; @@ -65,16 +64,7 @@ struct seastore_test_t : seastore_test_t() {} seastar::future<> set_up_fut() final { - std::string j_type = GetParam(); - journal_type_t journal; - if (j_type == "segmented") { - journal = journal_type_t::SEGMENTED; - } else if (j_type == "circularbounded") { - journal = journal_type_t::RANDOM_BLOCK; - } else { - ceph_assert(0 == "no support"); - } - return tm_setup(journal + return tm_setup( ).then([this] { return sharded_seastore->create_new_collection(coll_name); }).then([this](auto coll_ref) { diff --git a/src/test/crimson/seastore/test_transaction_manager.cc b/src/test/crimson/seastore/test_transaction_manager.cc index d0bc2bd3f8f19..cebe2baa646d3 100644 --- a/src/test/crimson/seastore/test_transaction_manager.cc +++ b/src/test/crimson/seastore/test_transaction_manager.cc @@ -56,8 +56,7 @@ struct fmt::formatter : fmt::formatter { struct transaction_manager_test_t : public seastar_test_suite_t, - TMTestState, - ::testing::WithParamInterface { + TMTestState { std::random_device rd; std::mt19937 gen; @@ -76,14 +75,7 @@ struct transaction_manager_test_t : } seastar::future<> set_up_fut() final { - std::string j_type = GetParam(); - if (j_type == "segmented") { - return tm_setup(journal_type_t::SEGMENTED); - } else if (j_type == "circularbounded") { - return tm_setup(journal_type_t::RANDOM_BLOCK); - } else { - ceph_assert(0 == "no support"); - } + return tm_setup(); } seastar::future<> tear_down_fut() final { diff --git a/src/test/crimson/seastore/transaction_manager_test_state.h b/src/test/crimson/seastore/transaction_manager_test_state.h index fadf17019c13f..c7c035928bca7 100644 --- a/src/test/crimson/seastore/transaction_manager_test_state.h +++ b/src/test/crimson/seastore/transaction_manager_test_state.h @@ -167,7 +167,7 @@ public: void set_primary_device_ref(DeviceRef) final; }; -class EphemeralTestState { +class EphemeralTestState : public ::testing::WithParamInterface { protected: journal_type_t journal_type; size_t num_main_device_managers = 0; @@ -209,16 +209,15 @@ protected: restart_fut().get0(); } - seastar::future<> tm_setup( - journal_type_t type = journal_type_t::SEGMENTED) { + seastar::future<> tm_setup() { LOG_PREFIX(EphemeralTestState::tm_setup); - journal_type = type; - if (journal_type == journal_type_t::SEGMENTED) { + std::string j_type = GetParam(); + if (j_type == "segmented") { devices.reset(new EphemeralSegmentedDevices( num_main_device_managers, num_cold_device_managers)); } else { - assert(journal_type == journal_type_t::RANDOM_BLOCK); + assert(j_type == "circularbounded"); //TODO: multiple devices ceph_assert(num_main_device_managers == 1); ceph_assert(num_cold_device_managers == 0);