]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
test/crimson/seastore: add test case for partial reads
authorJianxin Li <jianxin1.li@intel.com>
Wed, 19 Jun 2024 05:06:49 +0000 (13:06 +0800)
committerYingxin Cheng <yingxin.cheng@intel.com>
Thu, 28 Nov 2024 01:32:51 +0000 (09:32 +0800)
Signed-off-by: Jianxin Li <jianxin1.li@intel.com>
src/test/crimson/seastore/test_object_data_handler.cc
src/test/crimson/seastore/test_transaction_manager.cc

index e7374d1d9b8bb02ba0c6c3b9583cc27a4f387e6d..a6233ad2c63fad3c99c192f86e7f82a6d76a45ec 100644 (file)
@@ -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,
index 7ee05f111e7b604dddc1e0d5c3a6cec1c688ec9e..012d1819d85a88c3bade687c14360cbf48721f2f 100644 (file)
@@ -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),