]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
test/librbd: add 'remove demoted image' test
authorMykola Golub <mgolub@mirantis.com>
Sat, 12 Nov 2016 07:22:47 +0000 (09:22 +0200)
committerMykola Golub <mgolub@mirantis.com>
Sat, 12 Nov 2016 10:08:45 +0000 (12:08 +0200)
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
src/test/librbd/test_mirroring.cc

index fcd98ec767f0b976157643ea25b253021f676a69..e467686cae009740203f3dcd570ec84e07a7c327 100644 (file)
@@ -239,7 +239,7 @@ public:
   }
 
   void check_remove_image(rbd_mirror_mode_t mirror_mode, uint64_t features,
-                          bool enable_mirroring) {
+                          bool enable_mirroring, bool demote = false) {
 
     ASSERT_EQ(0, m_rbd.mirror_mode_set(m_ioctx, mirror_mode));
 
@@ -253,6 +253,11 @@ public:
       ASSERT_EQ(0, image.mirror_image_enable());
     }
 
+    if (demote) {
+      ASSERT_EQ(0, image.mirror_image_demote());
+      ASSERT_EQ(0, image.mirror_image_disable(true));
+    }
+
     image.close();
     ASSERT_EQ(0, m_rbd.remove(m_ioctx, image_name.c_str()));
     ASSERT_EQ(0, m_rbd.mirror_mode_set(m_ioctx, RBD_MIRROR_MODE_DISABLED));
@@ -608,6 +613,12 @@ TEST_F(TestMirroring, RemoveImage_With_ImageWithoutJournal) {
                      false);
 }
 
+TEST_F(TestMirroring, RemoveImage_With_MirrorImageDemoted) {
+  check_remove_image(RBD_MIRROR_MODE_IMAGE,
+                     RBD_FEATURE_EXCLUSIVE_LOCK | RBD_FEATURE_JOURNALING,
+                     true, true);
+}
+
 TEST_F(TestMirroring, MirrorStatusList) {
   std::vector<uint64_t>
       features_vec(5, RBD_FEATURE_EXCLUSIVE_LOCK | RBD_FEATURE_JOURNALING);