]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
test/librbd: add features_to_string and features_from_string test case
authorzhengyin <zhengyin@cmss.chinamobile.com>
Fri, 25 Oct 2019 07:26:11 +0000 (15:26 +0800)
committerzhengyin <zhengyin@cmss.chinamobile.com>
Fri, 1 Nov 2019 02:58:21 +0000 (10:58 +0800)
Signed-off-by: Zheng Yin <zhengyin@cmss.chinamobile.com>
src/test/librbd/test_librbd.cc

index 7832ba5545a5d1946409ec51321a3ae6c331d6ae..5dd8f5054a97d79bbb8c9c8a8c3bb096686d65d4 100644 (file)
@@ -5713,6 +5713,33 @@ TEST_F(TestLibRBD, UpdateFeatures)
   ASSERT_EQ(-EINVAL, image.update_features(RBD_FEATURE_DEEP_FLATTEN, true));
 }
 
+TEST_F(TestLibRBD, FeaturesBitmaskString)
+{
+  librbd::RBD rbd;
+  uint64_t features = RBD_FEATURES_DEFAULT;
+
+  std::string features_str;
+  std::string expected_str = "deep-flatten,exclusive-lock,fast-diff,layering,object-map";
+  rbd.features_to_string(features, &features_str);
+  ASSERT_EQ(expected_str, features_str);
+
+  features = RBD_FEATURE_LAYERING;
+  features_str = "";
+  expected_str = "layering";
+  rbd.features_to_string(features, &features_str);
+  ASSERT_EQ(expected_str, features_str);
+
+  uint64_t features_bitmask;
+  features_str = "deep-flatten,exclusive-lock,fast-diff,layering,object-map";
+  rbd.features_from_string(features_str, &features_bitmask);
+  ASSERT_EQ(features_bitmask, RBD_FEATURES_DEFAULT);
+
+  features_str = "layering";
+  features_bitmask = 0;
+  rbd.features_from_string(features_str, &features_bitmask);
+  ASSERT_EQ(features_bitmask, RBD_FEATURE_LAYERING);
+}
+
 TEST_F(TestLibRBD, RebuildObjectMap)
 {
   librados::IoCtx ioctx;