]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
qa/rbd: add cram-based snap diff test
authorNathan Cutler <ncutler@suse.com>
Fri, 31 May 2019 10:57:15 +0000 (12:57 +0200)
committerNathan Cutler <ncutler@suse.com>
Fri, 14 Jun 2019 07:42:23 +0000 (09:42 +0200)
Fixes: http://tracker.ceph.com/issues/39447
Signed-off-by: Shyukri Shyukriev <shshyukriev@suse.com>
Signed-off-by: Nathan Cutler <ncutler@suse.com>
qa/suites/rbd/singleton/all/snap-diff.yaml [new file with mode: 0644]
src/test/cli-integration/rbd/snap-diff.t [new file with mode: 0644]

diff --git a/qa/suites/rbd/singleton/all/snap-diff.yaml b/qa/suites/rbd/singleton/all/snap-diff.yaml
new file mode 100644 (file)
index 0000000..be7e685
--- /dev/null
@@ -0,0 +1,10 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- ceph:
+    fs: xfs
+- cram:
+    clients:
+      client.0:
+      - src/test/cli-integration/rbd/snap-diff.t
diff --git a/src/test/cli-integration/rbd/snap-diff.t b/src/test/cli-integration/rbd/snap-diff.t
new file mode 100644 (file)
index 0000000..c0f5639
--- /dev/null
@@ -0,0 +1,48 @@
+  $ ceph osd pool create xrbddiff1 8
+  pool 'xrbddiff1' created
+  $ rbd pool init xrbddiff1
+  $ rbd create --thick-provision --size 1M xrbddiff1/xtestdiff1 --no-progress
+  $ rbd diff xrbddiff1/xtestdiff1 --format json
+  [{"offset":0,"length":1048576,"exists":"true"}]
+  $ rbd rm xrbddiff1/xtestdiff1 --no-progress
+  $ rbd create --size 1M xrbddiff1/xtestdiff1
+  $ rbd diff xrbddiff1/xtestdiff1 --format json
+  []
+  $ rbd snap create xrbddiff1/xtestdiff1 --snap=allzeroes
+  $ rbd diff xrbddiff1/xtestdiff1 --format json
+  []
+  $ rbd diff --from-snap=allzeroes xrbddiff1/xtestdiff1 --format json
+  []
+  $ rbd bench --io-type write --io-size 1M --io-total 1M xrbddiff1/xtestdiff1 > /dev/null 2>&1
+  $ rbd diff xrbddiff1/xtestdiff1 --format json
+  [{"offset":0,"length":1048576,"exists":"true"}]
+  $ rbd diff --from-snap=allzeroes xrbddiff1/xtestdiff1 --format json
+  [{"offset":0,"length":1048576,"exists":"true"}]
+  $ rbd snap create xrbddiff1/xtestdiff1 --snap=snap1
+  $ rbd snap list xrbddiff1/xtestdiff1 --format json | python -mjson.tool | sed 's/,$/, /'
+  [
+      {
+          "id": *,  (glob)
+          "name": "allzeroes", 
+          "protected": "false", 
+          "size": 1048576, 
+          "timestamp": * (glob)
+      }, 
+      {
+          "id": *,  (glob)
+          "name": "snap1", 
+          "protected": "false", 
+          "size": 1048576, 
+          "timestamp": * (glob)
+      }
+  ]
+  $ rbd diff --from-snap=snap1 xrbddiff1/xtestdiff1 --format json
+  []
+  $ rbd snap rollback xrbddiff1/xtestdiff1@snap1 --no-progress
+  $ rbd diff --from-snap=snap1 xrbddiff1/xtestdiff1 --format json
+  []
+  $ rbd snap rollback xrbddiff1/xtestdiff1@allzeroes --no-progress
+  $ rbd diff --from-snap=allzeroes xrbddiff1/xtestdiff1 --format json
+  [{"offset":0,"length":1048576,"exists":"false"}]
+  $ ceph osd pool rm xrbddiff1 xrbddiff1 --yes-i-really-really-mean-it
+  pool 'xrbddiff1' removed