]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
tests: add update_features test for pybind
authorJason Dillaman <dillaman@redhat.com>
Thu, 12 Mar 2015 04:13:40 +0000 (00:13 -0400)
committerJason Dillaman <dillaman@redhat.com>
Mon, 6 Apr 2015 17:14:34 +0000 (13:14 -0400)
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/test/pybind/test_rbd.py

index 4be09085b5c22a779a40a7f9e435bdc9df23f62f..a98b5dcea9f52d3a583995c78c8f2cb8b9fe264c 100644 (file)
@@ -73,6 +73,16 @@ def remove_image():
     if image_name is not None:
         RBD().remove(ioctx, image_name)
 
+def require_new_format():
+    def wrapper(fn):
+        def _require_new_format(*args, **kwargs):
+            global features
+            if features is None:
+                raise SkipTest
+            return fn(*args, **kwargs)
+        return functools.wraps(fn)(_require_new_format)
+    return wrapper
+
 def require_features(required_features):
     def wrapper(fn):
         def _require_features(*args, **kwargs):
@@ -283,6 +293,13 @@ class TestImage(object):
         self.image.close()
         remove_image()
 
+    @require_new_format()
+    @blacklist_features([RBD_FEATURE_EXCLUSIVE_LOCK])
+    def test_update_features(self):
+        features = self.image.features()
+        self.image.update_features(RBD_FEATURE_EXCLUSIVE_LOCK, True)
+        eq(features | RBD_FEATURE_EXCLUSIVE_LOCK, self.image.features())
+
     def test_invalidate_cache(self):
         self.image.write('abc', 0)
         eq('abc', self.image.read(0, 3))