]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
test/crimson/seastore/test_seastore: add clone removal test
authorSamuel Just <sjust@redhat.com>
Fri, 13 Feb 2026 23:50:03 +0000 (15:50 -0800)
committerSamuel Just <sjust@redhat.com>
Mon, 16 Feb 2026 23:40:56 +0000 (15:40 -0800)
Signed-off-by: Samuel Just <sjust@redhat.com>
src/test/crimson/seastore/test_seastore.cc

index 8faa9ddce2973f7780060a4a6f2d56e5ba5ae5bd..9045996f1bc6f4c636e7966d79d1802d9f989162 100644 (file)
@@ -329,7 +329,7 @@ struct seastore_test_t :
        std::move(t)).get();
     }
 
-    void clone(
+    object_state_t clone(
       SeaStoreShard &sharded_seastore,
       snapid_t snap) {
       ghobject_t coid = oid;
@@ -342,6 +342,7 @@ struct seastore_test_t :
       clone_contents[snap].reserve(contents.length());
       auto it = contents.begin();
       it.copy_all(clone_contents[snap]);
+      return get_clone(snap);
     }
 
     object_state_t get_clone(snapid_t snap) {
@@ -952,6 +953,25 @@ TEST_P(seastore_test_t, clone_aligned_extents)
   });
 }
 
+TEST_P(seastore_test_t, clone_remove)
+{
+  run_async([this] {
+    auto &test_obj = get_object(make_oid(0));
+    test_obj.write(*sharded_seastore, 0, 64 << 10, 'a');
+
+    auto clone_obj10 = test_obj.clone(*sharded_seastore, 10);
+    test_obj.write(*sharded_seastore, 4 << 10, 4 << 10, 'b');
+    test_obj.write(*sharded_seastore, 8 << 10, 4 << 10, 'c');
+
+    auto clone_obj20 = test_obj.clone(*sharded_seastore, 20);
+    test_obj.write(*sharded_seastore, 4 << 10, 4 << 10, 'b');
+    test_obj.write(*sharded_seastore, 8 << 10, 4 << 10, 'c');
+
+    clone_obj20.remove(*sharded_seastore);
+    clone_obj10.remove(*sharded_seastore);
+  });
+}
+
 TEST_P(seastore_test_t, clone_unaligned_extents)
 {
   run_async([this] {