]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
tests: add test case for cls_rbd object_map_save
authorJason Dillaman <dillaman@redhat.com>
Fri, 10 Apr 2015 18:05:01 +0000 (14:05 -0400)
committerJason Dillaman <dillaman@redhat.com>
Fri, 10 Apr 2015 19:46:22 +0000 (15:46 -0400)
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/test/cls_rbd/test_cls_rbd.cc

index cc542abc735382d71b020f2cc88d1dfc5d5800f4..bf971aea57f0c80e080abc99637e979c22d448b3 100644 (file)
@@ -51,6 +51,7 @@ using ::librbd::cls_client::set_stripe_unit_count;
 using ::librbd::cls_client::old_snapshot_add;
 using ::librbd::cls_client::get_mutable_metadata;
 using ::librbd::cls_client::object_map_load;
+using ::librbd::cls_client::object_map_save;
 using ::librbd::cls_client::object_map_resize;
 using ::librbd::cls_client::object_map_update;
 using ::librbd::cls_client::get_flags;
@@ -912,6 +913,27 @@ TEST_F(TestClsRbd, get_mutable_metadata_features)
   ioctx.close();
 }
 
+TEST_F(TestClsRbd, object_map_save)
+{
+  librados::IoCtx ioctx;
+  ASSERT_EQ(0, _rados.ioctx_create(_pool_name.c_str(), ioctx));
+
+  string oid = get_temp_image_name();
+  BitVector<2> ref_bit_vector;
+  ref_bit_vector.resize(32);
+  for (uint64_t i = 0; i < ref_bit_vector.size(); ++i) {
+    ref_bit_vector[i] = 1;
+  }
+
+  librados::ObjectWriteOperation op;
+  object_map_save(&op, ref_bit_vector);
+  ASSERT_EQ(0, ioctx.operate(oid, &op));
+
+  BitVector<2> osd_bit_vector;
+  ASSERT_EQ(0, object_map_load(&ioctx, oid, &osd_bit_vector));
+  ASSERT_EQ(ref_bit_vector, osd_bit_vector);
+}
+
 TEST_F(TestClsRbd, object_map_resize)
 {
   librados::IoCtx ioctx;