]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test/crimson/seastore/test_transaction_manager: update find_hole_assert_trigger
authorSamuel Just <sjust@redhat.com>
Tue, 24 Aug 2021 05:38:36 +0000 (05:38 +0000)
committerSamuel Just <sjust@redhat.com>
Thu, 26 Aug 2021 20:49:09 +0000 (13:49 -0700)
Signed-off-by: Samuel Just <sjust@redhat.com>
src/test/crimson/seastore/test_transaction_manager.cc

index ee1a5e1a7aeb7abc7ee8cb5dcfca0683677fa51c..b1c85584cb6ca746a32275fa6a68bfdab5c655af 100644 (file)
@@ -568,42 +568,43 @@ struct transaction_manager_test_t :
     EXPECT_FALSE(success);
   }
 
-  auto trigger_find_hole(const size_t& size, int &num) {
+  auto allocate_sequentially(const size_t& size, int &num) {
     return repeat_eagain([&, this] {
-      return seastar::do_with(create_transaction(), [&, this] (auto &t) {
-        return crimson::do_for_each(
-               boost::make_counting_iterator(0),
-               boost::make_counting_iterator(num),
-          [&, this] (auto idx) {
-          using ertr = with_trans_ertr<TransactionManager::alloc_extent_iertr>;
-          using ret = ertr::future<>;
-          return itm.alloc_extent<TestBlock>(*(t.t), L_ADDR_MIN, size)
-            .safe_then([&, this] (auto extent) ->ret {
-            extent->set_contents(get_random_contents());
-            EXPECT_FALSE(test_mappings.contains(extent->get_laddr(), t.mapping_delta));
-            EXPECT_EQ(size, extent->get_length());
-            test_mappings.alloced(extent->get_laddr(), *extent, t.mapping_delta);
-            return ertr::make_ready_future<>();
-          });
-        }).safe_then([&t, this] {
-          using ertr = with_trans_ertr<TransactionManager::submit_transaction_iertr>;
-          using ret = ertr::future<>;
-          return itm.submit_transaction(*t.t).safe_then([]() -> ret {
-            return ertr::make_ready_future<>();
-          });
-        }).safe_then([&t, this]() {
-          test_mappings.consume(t.mapping_delta);
-        });
-      });
+      return seastar::do_with(
+       create_transaction(),
+       [&, this](auto &t) {
+         return with_trans_intr(
+           *t.t,
+           [&, this](auto &) {
+             return trans_intr::do_for_each(
+               boost::make_counting_iterator(0),
+               boost::make_counting_iterator(num),
+               [&, this](auto) {
+                 return tm->alloc_extent<TestBlock>(
+                   *(t.t), L_ADDR_MIN, size
+                 ).si_then([&, this](auto extent) {
+                   extent->set_contents(get_random_contents());
+                   EXPECT_FALSE(
+                     test_mappings.contains(extent->get_laddr(), t.mapping_delta));
+                   EXPECT_EQ(size, extent->get_length());
+                   test_mappings.alloced(extent->get_laddr(), *extent, t.mapping_delta);
+                   return seastar::now();
+                 });
+               }).si_then([&t, this] {
+                 return tm->submit_transaction(*t.t);
+               });
+           }).safe_then([&t, this] {
+             test_mappings.consume(t.mapping_delta);
+           });
+       });
     }).safe_then([this]() {
       return segment_cleaner->run_until_halt();
     }).handle_error(
       crimson::ct_error::assert_all{
-      "Invalid error in SeaStore::list_collections"
+       "Invalid error in SeaStore::list_collections"
       }
     );
   }
-
 };
 
 TEST_F(transaction_manager_test_t, basic)
@@ -999,17 +1000,17 @@ TEST_F(transaction_manager_test_t, random_writes_concurrent)
   });
 }
 
-TEST_F(transaction_manager_test_t, find_hole_assert_triggeri)
+TEST_F(transaction_manager_test_t, find_hole_assert_trigger)
 {
-  constexpr unsigned max = 20;
+  constexpr unsigned max = 10;
   constexpr size_t BSIZE = 4<<10;
-  int num = 100;
+  int num = 40;
   run([&, this] {
     return seastar::parallel_for_each(
       boost::make_counting_iterator(0u),
       boost::make_counting_iterator(max),
       [&, this](auto idx) {
-        return trigger_find_hole(BSIZE, num);
+        return allocate_sequentially(BSIZE, num);
     });
   });