]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd: Add tests for metadata get operation
authorHaomai Wang <haomaiwang@gmail.com>
Mon, 9 Mar 2015 07:28:04 +0000 (15:28 +0800)
committerHaomai Wang <haomaiwang@gmail.com>
Fri, 13 Mar 2015 14:52:42 +0000 (22:52 +0800)
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
src/test/cls_rbd/test_cls_rbd.cc
src/test/librbd/test_librbd.cc

index 601f9a617a0469ccc36237cd8d9c0cc54b3c76dd..76c119b33a163fc20b9079b8c9089950d768e4fc 100644 (file)
@@ -57,6 +57,7 @@ using ::librbd::cls_client::set_flags;
 using ::librbd::cls_client::metadata_set;
 using ::librbd::cls_client::metadata_remove;
 using ::librbd::cls_client::metadata_list;
+using ::librbd::cls_client::metadata_get;
 
 static char *random_buf(size_t len)
 {
@@ -1078,11 +1079,14 @@ TEST_F(TestClsRbd, metadata)
   ASSERT_EQ(0, create_image(&ioctx, oid, 0, 22, 0, oid));
 
   map<string, string> pairs;
+  string value;
   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_get(&ioctx, oid, "key1", &value));
+  ASSERT_EQ(0, strcmp("value1", value.c_str()));
   ASSERT_EQ(0, metadata_list(&ioctx, oid, &pairs));
   ASSERT_EQ(2U, pairs.size());
   ASSERT_EQ(0, strcmp("value1", pairs["key1"].c_str()));
@@ -1091,6 +1095,7 @@ TEST_F(TestClsRbd, metadata)
   pairs.clear();
   ASSERT_EQ(0, metadata_remove(&ioctx, oid, "key1"));
   ASSERT_EQ(0, metadata_remove(&ioctx, oid, "key3"));
+  ASSERT_TRUE(metadata_get(&ioctx, oid, "key1", &value) < 0);
   ASSERT_EQ(0, metadata_list(&ioctx, oid, &pairs));
   ASSERT_EQ(1U, pairs.size());
   ASSERT_EQ(0, strcmp("value2", pairs["key2"].c_str()));
index f9c7b6b17f2ef7b15e6335a8386491d5a82fe9c6..ab336c1ebec9045cd039b8631aa386f840616cb6 100644 (file)
@@ -2604,10 +2604,11 @@ TEST_F(TestLibRBD, Metadata)
   ASSERT_EQ(0, _rados.ioctx_create(m_pool_name.c_str(), ioctx));
 
   librbd::RBD rbd;
-  std::string name = get_temp_image_name();
+  string name = get_temp_image_name();
   uint64_t size = 2 << 20;
   int order = 0;
   uint64_t features;
+  string value;
   ASSERT_EQ(0, create_image_pp(rbd, ioctx, name.c_str(), size, &order));
 
   librbd::Image image1;
@@ -2618,6 +2619,8 @@ TEST_F(TestLibRBD, Metadata)
 
   ASSERT_EQ(0, image1.metadata_set("key1", "value1"));
   ASSERT_EQ(0, image1.metadata_set("key2", "value2"));
+  ASSERT_EQ(0, image1.metadata_get("key1", &value));
+  ASSERT_EQ(0, strcmp("value1", value.c_str()));
   ASSERT_EQ(0, image1.metadata_list(&pairs));
   ASSERT_EQ(2U, pairs.size());
   ASSERT_EQ(0, strcmp("value1", pairs["key1"].c_str()));
@@ -2626,6 +2629,7 @@ TEST_F(TestLibRBD, Metadata)
   pairs.clear();
   ASSERT_EQ(0, image1.metadata_remove("key1"));
   ASSERT_EQ(0, image1.metadata_remove("key3"));
+  ASSERT_TRUE(image1.metadata_get("key3", &value) < 0);
   ASSERT_EQ(0, image1.metadata_list(&pairs));
   ASSERT_EQ(1U, pairs.size());
   ASSERT_EQ(0, strcmp("value2", pairs["key2"].c_str()));
@@ -2665,4 +2669,5 @@ TEST_F(TestLibRBD, Metadata)
   pairs.clear();
   ASSERT_EQ(0, image1.metadata_list(&pairs));
   ASSERT_EQ(3U, pairs.size());
+  ASSERT_EQ(-ENOENT, image1.metadata_get("key4", &value));
 }