From fd1976d527a36e2d7674148ede5fac801633ae52 Mon Sep 17 00:00:00 2001 From: Xuehan Xu Date: Wed, 30 Nov 2022 17:26:21 +0800 Subject: [PATCH] test/crimson/seastore: test removing objects with omap and data Signed-off-by: Xuehan Xu --- src/test/crimson/seastore/test_seastore.cc | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/test/crimson/seastore/test_seastore.cc b/src/test/crimson/seastore/test_seastore.cc index ae0c5eafa668..fc4457cdf7ca 100644 --- a/src/test/crimson/seastore/test_seastore.cc +++ b/src/test/crimson/seastore/test_seastore.cc @@ -232,6 +232,7 @@ struct seastore_test_t : bl.length(), bl); } + void write( SeaStore &seastore, uint64_t offset, @@ -927,6 +928,35 @@ TEST_P(seastore_test_t, omap_test_iterator) }); } +TEST_P(seastore_test_t, object_data_omap_remove) +{ + run_async([this] { + auto make_key = [](unsigned i) { + std::stringstream ss; + ss << "key" << i; + return ss.str(); + }; + auto &test_obj = get_object(make_oid(0)); + test_obj.touch(*seastore); + for (unsigned i = 0; i < 1024; ++i) { + test_obj.set_omap( + *seastore, + make_key(i), + make_bufferlist(128)); + } + test_obj.check_omap(*seastore); + + for (uint64_t i = 0; i < 16; i++) { + test_obj.write( + *seastore, + 4096 * i, + 4096, + 'a'); + } + test_obj.remove(*seastore); + }); +} + TEST_P(seastore_test_t, simple_extent_test) { -- 2.47.3