]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
tests: verify object map is updated after full copyup
authorJason Dillaman <dillaman@redhat.com>
Mon, 20 Apr 2015 19:08:56 +0000 (15:08 -0400)
committerJason Dillaman <dillaman@redhat.com>
Thu, 7 May 2015 02:07:46 +0000 (22:07 -0400)
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/test/librbd/test_internal.cc

index afd17da1c95d0993e7afc52fc5ccba06d9634e3a..bac02049ede11e9a77c1e0ba3ba8a13f8dd20b5e 100644 (file)
@@ -4,6 +4,7 @@
 #include "librbd/AioCompletion.h"
 #include "librbd/ImageWatcher.h"
 #include "librbd/internal.h"
+#include "librbd/ObjectMap.h"
 #include <boost/scope_exit.hpp>
 #include <boost/assign/list_of.hpp>
 #include <utility>
@@ -477,6 +478,17 @@ TEST_F(TestInternal, SnapshotCopyup)
     } else {
       ASSERT_TRUE(read_bl.is_zero());
     }
+
+    // verify the object map was properly updated
+    if ((ictx2->features & RBD_FEATURE_OBJECT_MAP) != 0) {
+      uint8_t state = OBJECT_EXISTS;
+      if ((ictx2->features & RBD_FEATURE_DEEP_FLATTEN) != 0 &&
+          it != snaps.begin() && snap_name != NULL) {
+        state = OBJECT_EXISTS_CLEAN;
+      }
+      RWLock::WLocker object_map_locker(ictx2->object_map_lock);
+      ASSERT_EQ(state, ictx2->object_map[0]);
+    }
   }
 }