From: Samuel Just Date: Fri, 13 Feb 2026 23:50:03 +0000 (-0800) Subject: test/crimson/seastore/test_seastore: add clone removal test X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=adb3be53b37e8ca73ecc65f792967aac43f68e3f;p=ceph-ci.git test/crimson/seastore/test_seastore: add clone removal test Signed-off-by: Samuel Just --- diff --git a/src/test/crimson/seastore/test_seastore.cc b/src/test/crimson/seastore/test_seastore.cc index 8faa9ddce29..9045996f1bc 100644 --- a/src/test/crimson/seastore/test_seastore.cc +++ b/src/test/crimson/seastore/test_seastore.cc @@ -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] {