From d2467e406148c136d1394a59f2480d6170b2b67f Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 20 Mar 2015 17:07:51 -0700 Subject: [PATCH] ceph_test_rados_api_aio: verify omap_clear clears header, too Signed-off-by: Sage Weil --- src/test/librados/aio.cc | 47 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/src/test/librados/aio.cc b/src/test/librados/aio.cc index 37b3094b04f56..b9183aa0ff2ee 100644 --- a/src/test/librados/aio.cc +++ b/src/test/librados/aio.cc @@ -1491,6 +1491,53 @@ TEST(LibRadosAio, OmapPP) { ASSERT_EQ(set_got.size(), (unsigned)0); } + // omap_clear clears header *and* keys + { + boost::scoped_ptr my_completion(cluster.aio_create_completion(0, 0, 0)); + ObjectWriteOperation op; + bufferlist bl; + bl.append("some data"); + map to_set; + to_set["foo"] = bl; + to_set["foo2"] = bl; + to_set["qfoo3"] = bl; + op.omap_set(to_set); + op.omap_set_header(bl); + ioctx.aio_operate("foo3", my_completion.get(), &op); + { + TestAlarm alarm; + ASSERT_EQ(0, my_completion->wait_for_complete()); + } + EXPECT_EQ(0, my_completion->get_return_value()); + } + { + boost::scoped_ptr my_completion(cluster.aio_create_completion(0, 0, 0)); + ObjectWriteOperation op; + op.omap_clear(); + ioctx.aio_operate("foo3", my_completion.get(), &op); + { + TestAlarm alarm; + ASSERT_EQ(0, my_completion->wait_for_complete()); + } + EXPECT_EQ(0, my_completion->get_return_value()); + } + { + boost::scoped_ptr my_completion(cluster.aio_create_completion(0, 0, 0)); + ObjectReadOperation op; + set set_got; + bufferlist hdr; + op.omap_get_keys("", -1, &set_got, 0); + op.omap_get_header(&hdr, NULL); + ioctx.aio_operate("foo3", my_completion.get(), &op, 0); + { + TestAlarm alarm; + ASSERT_EQ(0, my_completion->wait_for_complete()); + } + EXPECT_EQ(0, my_completion->get_return_value()); + ASSERT_EQ(set_got.size(), (unsigned)0); + ASSERT_EQ(hdr.length(), 0u); + } + ioctx.remove("test_obj"); destroy_one_pool_pp(pool_name, cluster); } -- 2.39.5