From: Haomai Wang Date: Mon, 9 Mar 2015 03:52:51 +0000 (+0800) Subject: test_cls_rbd: add metadata cls tests X-Git-Tag: v9.0.0~153^2~11 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1260af3d8ccd57b4af48886ba3e8c91aaeeec931;p=ceph.git test_cls_rbd: add metadata cls tests Signed-off-by: Haomai Wang --- diff --git a/src/test/cls_rbd/test_cls_rbd.cc b/src/test/cls_rbd/test_cls_rbd.cc index dbb923001be..601f9a617a0 100644 --- a/src/test/cls_rbd/test_cls_rbd.cc +++ b/src/test/cls_rbd/test_cls_rbd.cc @@ -54,6 +54,9 @@ using ::librbd::cls_client::object_map_resize; using ::librbd::cls_client::object_map_update; using ::librbd::cls_client::get_flags; using ::librbd::cls_client::set_flags; +using ::librbd::cls_client::metadata_set; +using ::librbd::cls_client::metadata_remove; +using ::librbd::cls_client::metadata_list; static char *random_buf(size_t len) { @@ -1064,3 +1067,33 @@ TEST_F(TestClsRbd, flags) ioctx.close(); } + + +TEST_F(TestClsRbd, metadata) +{ + librados::IoCtx ioctx; + ASSERT_EQ(0, _rados.ioctx_create(_pool_name.c_str(), ioctx)); + + string oid = get_temp_image_name(); + ASSERT_EQ(0, create_image(&ioctx, oid, 0, 22, 0, oid)); + + map pairs; + ASSERT_EQ(0, metadata_list(&ioctx, oid, &pairs)); + ASSERT_TRUE(pairs.empty()); + + ASSERT_EQ(0, metadata_set(&ioctx, oid, "key1", "value1")); + ASSERT_EQ(0, metadata_set(&ioctx, oid, "key2", "value2")); + ASSERT_EQ(0, metadata_list(&ioctx, oid, &pairs)); + ASSERT_EQ(2U, pairs.size()); + ASSERT_EQ(0, strcmp("value1", pairs["key1"].c_str())); + ASSERT_EQ(0, strcmp("value2", pairs["key2"].c_str())); + + pairs.clear(); + ASSERT_EQ(0, metadata_remove(&ioctx, oid, "key1")); + ASSERT_EQ(0, metadata_remove(&ioctx, oid, "key3")); + ASSERT_EQ(0, metadata_list(&ioctx, oid, &pairs)); + ASSERT_EQ(1U, pairs.size()); + ASSERT_EQ(0, strcmp("value2", pairs["key2"].c_str())); + + ioctx.close(); +}