]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
test/crimson/seastore/rbm: add sub-tests regarding RBM to the existing tests
authorMyoungwon Oh <myoungwon.oh@samsung.com>
Thu, 31 Aug 2023 05:13:07 +0000 (14:13 +0900)
committerMyoungwon Oh <myoungwon.oh@samsung.com>
Mon, 11 Sep 2023 02:30:07 +0000 (11:30 +0900)
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
src/test/crimson/seastore/onode_tree/test_fltree_onode_manager.cc
src/test/crimson/seastore/onode_tree/test_staged_fltree.cc
src/test/crimson/seastore/test_collection_manager.cc
src/test/crimson/seastore/test_object_data_handler.cc
src/test/crimson/seastore/test_omap_manager.cc
src/test/crimson/seastore/test_seastore.cc
src/test/crimson/seastore/test_transaction_manager.cc
src/test/crimson/seastore/transaction_manager_test_state.h

index 83701701600f6085caf6b66c8e76bab1e1144432..1f661cdca596c1c34153815dc40524f309770014 100644 (file)
@@ -239,7 +239,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();
@@ -267,7 +267,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();
@@ -319,3 +319,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"
+  )
+);
index 26461b87f0400dd5612dcc94cd13bc56285a3db5..7357b5ced1ed1a7b8be8e2ca42ba521fdefe83f3 100644 (file)
@@ -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"
+  )
+);
index 00c5a6b87cfa25297782a5f3d9e346b122df873b..cedcc5e8f4418fddc83d472082e500a0132a334e 100644 (file)
@@ -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"
+  )
+);
index abbe74457381704e8c0205311cc8224951badfbc..6510cb5d93fecb09386d26398cfa9a471b9843e0 100644 (file)
@@ -163,7 +163,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');
@@ -173,7 +173,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');
@@ -188,7 +188,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');
@@ -203,7 +203,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');
@@ -214,7 +214,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');
@@ -232,7 +232,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');
@@ -257,7 +257,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;
@@ -274,7 +274,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;
@@ -295,7 +295,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;
@@ -317,7 +317,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');
@@ -329,7 +329,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');
 
@@ -349,7 +349,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');
@@ -367,7 +367,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');
@@ -384,7 +384,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');
 
@@ -418,3 +418,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"
+  )
+);
+
+
index 9973add40e9c1bb835c42f938f95d74afefc1549..ab2218565f8ac4d44da1d8eb5cbe5d6f7c7e7c6b 100644 (file)
@@ -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"
+  )
+);
index d2f57a385f13a5a96bfdd28c2485ccda1df51a38..63bf4c51f2a276676d2d4cd4270e1b9b0d9c2392 100644 (file)
@@ -56,8 +56,7 @@ ghobject_t make_temp_oid(int i) {
 
 struct seastore_test_t :
   public seastar_test_suite_t,
-  SeaStoreTestState,
-  ::testing::WithParamInterface<const char*> {
+  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) {
index d9e0ecad167b12950c8b0439585356d104242251..1148884a0c1939b5e6137dee533cd1e1ac930f6d 100644 (file)
@@ -56,8 +56,7 @@ struct fmt::formatter<test_extent_record_t> : fmt::formatter<std::string_view> {
 
 struct transaction_manager_test_t :
   public seastar_test_suite_t,
-  TMTestState,
-  ::testing::WithParamInterface<const char*> {
+  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 {
index fadf17019c13f10db62f05302e9297cf84257154..c7c035928bca73dcd4a499affb41c90b67733ab7 100644 (file)
@@ -167,7 +167,7 @@ public:
   void set_primary_device_ref(DeviceRef) final;
 };
 
-class EphemeralTestState {
+class EphemeralTestState : public ::testing::WithParamInterface<const char*> {
 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);