From 7ccd2d6110b53779c9c04281bdd5f95d33b815b8 Mon Sep 17 00:00:00 2001 From: Xuehan Xu Date: Thu, 7 Mar 2024 17:06:13 +0800 Subject: [PATCH] test/crimson/seastore: add the test case for renaming objects Signed-off-by: Xuehan Xu (cherry picked from commit 2520927590ac48783cb35feb570285ec066964a4) --- src/test/crimson/seastore/test_seastore.cc | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/test/crimson/seastore/test_seastore.cc b/src/test/crimson/seastore/test_seastore.cc index d3a21261e27..4d671cebd5b 100644 --- a/src/test/crimson/seastore/test_seastore.cc +++ b/src/test/crimson/seastore/test_seastore.cc @@ -262,6 +262,19 @@ struct seastore_test_t : return clone_obj; } + void rename( + SeaStoreShard &sharded_seastore, + object_state_t &other) { + CTransaction t; + t.collection_move_rename(cid, oid, cid, other.oid); + sharded_seastore.do_transaction( + coll, + std::move(t)).get0(); + other.contents = contents; + other.omap = omap; + other.clone_contents = clone_contents; + } + void write( SeaStoreShard &sharded_seastore, uint64_t offset, @@ -787,6 +800,25 @@ TEST_P(seastore_test_t, omap_test_simple) }); } +TEST_P(seastore_test_t, rename) +{ + run_async([this] { + auto &test_obj = get_object(make_oid(0)); + test_obj.write(*sharded_seastore, 0, 4096, 'a'); + test_obj.set_omap( + *sharded_seastore, + "asdf", + make_bufferlist(128)); + auto test_other = object_state_t{ + test_obj.cid, + test_obj.coll, + ghobject_t(hobject_t(sobject_t(std::string("object_1"), CEPH_NOSNAP)))}; + test_obj.rename(*sharded_seastore, test_other); + test_other.read(*sharded_seastore, 0, 4096); + test_other.check_omap(*sharded_seastore); + }); +} + TEST_P(seastore_test_t, clone_aligned_extents) { run_async([this] { -- 2.39.5