237 lines
9.3 KiB
Diff
237 lines
9.3 KiB
Diff
|
From adda561394bb07c13ef3f2712b36704790530891 Mon Sep 17 00:00:00 2001
|
||
|
From: Kevin Wolf <kwolf@redhat.com>
|
||
|
Date: Wed, 3 Jun 2020 16:03:15 +0100
|
||
|
Subject: [PATCH 16/26] iotests: Add more "skip_if_unsupported" statements to
|
||
|
the python tests
|
||
|
|
||
|
RH-Author: Kevin Wolf <kwolf@redhat.com>
|
||
|
Message-id: <20200603160325.67506-2-kwolf@redhat.com>
|
||
|
Patchwork-id: 97099
|
||
|
O-Subject: [RHEL-AV-8.2.1 qemu-kvm PATCH v2 01/11] iotests: Add more "skip_if_unsupported" statements to the python tests
|
||
|
Bugzilla: 1778593
|
||
|
RH-Acked-by: Eric Blake <eblake@redhat.com>
|
||
|
RH-Acked-by: Max Reitz <mreitz@redhat.com>
|
||
|
RH-Acked-by: Stefano Garzarella <sgarzare@redhat.com>
|
||
|
|
||
|
From: Thomas Huth <thuth@redhat.com>
|
||
|
|
||
|
The python code already contains a possibility to skip tests if the
|
||
|
corresponding driver is not available in the qemu binary - use it
|
||
|
in more spots to avoid that the tests are failing if the driver has
|
||
|
been disabled.
|
||
|
|
||
|
While we're at it, we can now also remove some of the old checks that
|
||
|
were using iotests.supports_quorum() - and which were apparently not
|
||
|
working as expected since the tests aborted instead of being skipped
|
||
|
when "quorum" was missing in the QEMU binary.
|
||
|
|
||
|
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||
|
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||
|
(cherry picked from commit 9442bebe6e67a5d038bbf2572b79e7b59d202a23)
|
||
|
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||
|
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||
|
---
|
||
|
tests/qemu-iotests/030 | 4 +---
|
||
|
tests/qemu-iotests/040 | 2 ++
|
||
|
tests/qemu-iotests/041 | 39 +++------------------------------------
|
||
|
tests/qemu-iotests/245 | 2 ++
|
||
|
4 files changed, 8 insertions(+), 39 deletions(-)
|
||
|
|
||
|
diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030
|
||
|
index f3766f2..bddbb30 100755
|
||
|
--- a/tests/qemu-iotests/030
|
||
|
+++ b/tests/qemu-iotests/030
|
||
|
@@ -530,6 +530,7 @@ class TestQuorum(iotests.QMPTestCase):
|
||
|
children = []
|
||
|
backing = []
|
||
|
|
||
|
+ @iotests.skip_if_unsupported(['quorum'])
|
||
|
def setUp(self):
|
||
|
opts = ['driver=quorum', 'vote-threshold=2']
|
||
|
|
||
|
@@ -560,9 +561,6 @@ class TestQuorum(iotests.QMPTestCase):
|
||
|
os.remove(img)
|
||
|
|
||
|
def test_stream_quorum(self):
|
||
|
- if not iotests.supports_quorum():
|
||
|
- return
|
||
|
-
|
||
|
self.assertNotEqual(qemu_io('-f', iotests.imgfmt, '-rU', '-c', 'map', self.children[0]),
|
||
|
qemu_io('-f', iotests.imgfmt, '-rU', '-c', 'map', self.backing[0]),
|
||
|
'image file map matches backing file before streaming')
|
||
|
diff --git a/tests/qemu-iotests/040 b/tests/qemu-iotests/040
|
||
|
index 762ad1e..74f62c3 100755
|
||
|
--- a/tests/qemu-iotests/040
|
||
|
+++ b/tests/qemu-iotests/040
|
||
|
@@ -106,6 +106,7 @@ class TestSingleDrive(ImageCommitTestCase):
|
||
|
self.assertEqual(-1, qemu_io('-f', 'raw', '-c', 'read -P 0xab 0 524288', backing_img).find("verification failed"))
|
||
|
self.assertEqual(-1, qemu_io('-f', 'raw', '-c', 'read -P 0xef 524288 524288', backing_img).find("verification failed"))
|
||
|
|
||
|
+ @iotests.skip_if_unsupported(['throttle'])
|
||
|
def test_commit_with_filter_and_quit(self):
|
||
|
result = self.vm.qmp('object-add', qom_type='throttle-group', id='tg')
|
||
|
self.assert_qmp(result, 'return', {})
|
||
|
@@ -125,6 +126,7 @@ class TestSingleDrive(ImageCommitTestCase):
|
||
|
self.has_quit = True
|
||
|
|
||
|
# Same as above, but this time we add the filter after starting the job
|
||
|
+ @iotests.skip_if_unsupported(['throttle'])
|
||
|
def test_commit_plus_filter_and_quit(self):
|
||
|
result = self.vm.qmp('object-add', qom_type='throttle-group', id='tg')
|
||
|
self.assert_qmp(result, 'return', {})
|
||
|
diff --git a/tests/qemu-iotests/041 b/tests/qemu-iotests/041
|
||
|
index 8568426..a543b15 100755
|
||
|
--- a/tests/qemu-iotests/041
|
||
|
+++ b/tests/qemu-iotests/041
|
||
|
@@ -871,6 +871,7 @@ class TestRepairQuorum(iotests.QMPTestCase):
|
||
|
image_len = 1 * 1024 * 1024 # MB
|
||
|
IMAGES = [ quorum_img1, quorum_img2, quorum_img3 ]
|
||
|
|
||
|
+ @iotests.skip_if_unsupported(['quorum'])
|
||
|
def setUp(self):
|
||
|
self.vm = iotests.VM()
|
||
|
|
||
|
@@ -891,9 +892,8 @@ class TestRepairQuorum(iotests.QMPTestCase):
|
||
|
#assemble the quorum block device from the individual files
|
||
|
args = { "driver": "quorum", "node-name": "quorum0",
|
||
|
"vote-threshold": 2, "children": [ "img0", "img1", "img2" ] }
|
||
|
- if iotests.supports_quorum():
|
||
|
- result = self.vm.qmp("blockdev-add", **args)
|
||
|
- self.assert_qmp(result, 'return', {})
|
||
|
+ result = self.vm.qmp("blockdev-add", **args)
|
||
|
+ self.assert_qmp(result, 'return', {})
|
||
|
|
||
|
|
||
|
def tearDown(self):
|
||
|
@@ -906,9 +906,6 @@ class TestRepairQuorum(iotests.QMPTestCase):
|
||
|
pass
|
||
|
|
||
|
def test_complete(self):
|
||
|
- if not iotests.supports_quorum():
|
||
|
- return
|
||
|
-
|
||
|
self.assert_no_active_block_jobs()
|
||
|
|
||
|
result = self.vm.qmp('drive-mirror', job_id='job0', device='quorum0',
|
||
|
@@ -925,9 +922,6 @@ class TestRepairQuorum(iotests.QMPTestCase):
|
||
|
'target image does not match source after mirroring')
|
||
|
|
||
|
def test_cancel(self):
|
||
|
- if not iotests.supports_quorum():
|
||
|
- return
|
||
|
-
|
||
|
self.assert_no_active_block_jobs()
|
||
|
|
||
|
result = self.vm.qmp('drive-mirror', job_id='job0', device='quorum0',
|
||
|
@@ -942,9 +936,6 @@ class TestRepairQuorum(iotests.QMPTestCase):
|
||
|
self.vm.shutdown()
|
||
|
|
||
|
def test_cancel_after_ready(self):
|
||
|
- if not iotests.supports_quorum():
|
||
|
- return
|
||
|
-
|
||
|
self.assert_no_active_block_jobs()
|
||
|
|
||
|
result = self.vm.qmp('drive-mirror', job_id='job0', device='quorum0',
|
||
|
@@ -961,9 +952,6 @@ class TestRepairQuorum(iotests.QMPTestCase):
|
||
|
'target image does not match source after mirroring')
|
||
|
|
||
|
def test_pause(self):
|
||
|
- if not iotests.supports_quorum():
|
||
|
- return
|
||
|
-
|
||
|
self.assert_no_active_block_jobs()
|
||
|
|
||
|
result = self.vm.qmp('drive-mirror', job_id='job0', device='quorum0',
|
||
|
@@ -989,9 +977,6 @@ class TestRepairQuorum(iotests.QMPTestCase):
|
||
|
'target image does not match source after mirroring')
|
||
|
|
||
|
def test_medium_not_found(self):
|
||
|
- if not iotests.supports_quorum():
|
||
|
- return
|
||
|
-
|
||
|
if iotests.qemu_default_machine != 'pc':
|
||
|
return
|
||
|
|
||
|
@@ -1003,9 +988,6 @@ class TestRepairQuorum(iotests.QMPTestCase):
|
||
|
self.assert_qmp(result, 'error/class', 'GenericError')
|
||
|
|
||
|
def test_image_not_found(self):
|
||
|
- if not iotests.supports_quorum():
|
||
|
- return
|
||
|
-
|
||
|
result = self.vm.qmp('drive-mirror', job_id='job0', device='quorum0',
|
||
|
sync='full', node_name='repair0', replaces='img1',
|
||
|
mode='existing', target=quorum_repair_img,
|
||
|
@@ -1013,9 +995,6 @@ class TestRepairQuorum(iotests.QMPTestCase):
|
||
|
self.assert_qmp(result, 'error/class', 'GenericError')
|
||
|
|
||
|
def test_device_not_found(self):
|
||
|
- if not iotests.supports_quorum():
|
||
|
- return
|
||
|
-
|
||
|
result = self.vm.qmp('drive-mirror', job_id='job0',
|
||
|
device='nonexistent', sync='full',
|
||
|
node_name='repair0',
|
||
|
@@ -1024,9 +1003,6 @@ class TestRepairQuorum(iotests.QMPTestCase):
|
||
|
self.assert_qmp(result, 'error/class', 'GenericError')
|
||
|
|
||
|
def test_wrong_sync_mode(self):
|
||
|
- if not iotests.supports_quorum():
|
||
|
- return
|
||
|
-
|
||
|
result = self.vm.qmp('drive-mirror', device='quorum0', job_id='job0',
|
||
|
node_name='repair0',
|
||
|
replaces='img1',
|
||
|
@@ -1034,27 +1010,18 @@ class TestRepairQuorum(iotests.QMPTestCase):
|
||
|
self.assert_qmp(result, 'error/class', 'GenericError')
|
||
|
|
||
|
def test_no_node_name(self):
|
||
|
- if not iotests.supports_quorum():
|
||
|
- return
|
||
|
-
|
||
|
result = self.vm.qmp('drive-mirror', job_id='job0', device='quorum0',
|
||
|
sync='full', replaces='img1',
|
||
|
target=quorum_repair_img, format=iotests.imgfmt)
|
||
|
self.assert_qmp(result, 'error/class', 'GenericError')
|
||
|
|
||
|
def test_nonexistent_replaces(self):
|
||
|
- if not iotests.supports_quorum():
|
||
|
- return
|
||
|
-
|
||
|
result = self.vm.qmp('drive-mirror', job_id='job0', device='quorum0',
|
||
|
sync='full', node_name='repair0', replaces='img77',
|
||
|
target=quorum_repair_img, format=iotests.imgfmt)
|
||
|
self.assert_qmp(result, 'error/class', 'GenericError')
|
||
|
|
||
|
def test_after_a_quorum_snapshot(self):
|
||
|
- if not iotests.supports_quorum():
|
||
|
- return
|
||
|
-
|
||
|
result = self.vm.qmp('blockdev-snapshot-sync', node_name='img1',
|
||
|
snapshot_file=quorum_snapshot_file,
|
||
|
snapshot_node_name="snap1");
|
||
|
diff --git a/tests/qemu-iotests/245 b/tests/qemu-iotests/245
|
||
|
index 919131d..ed972f9 100644
|
||
|
--- a/tests/qemu-iotests/245
|
||
|
+++ b/tests/qemu-iotests/245
|
||
|
@@ -478,6 +478,7 @@ class TestBlockdevReopen(iotests.QMPTestCase):
|
||
|
# This test verifies that we can't change the children of a block
|
||
|
# device during a reopen operation in a way that would create
|
||
|
# cycles in the node graph
|
||
|
+ @iotests.skip_if_unsupported(['blkverify'])
|
||
|
def test_graph_cycles(self):
|
||
|
opts = []
|
||
|
|
||
|
@@ -534,6 +535,7 @@ class TestBlockdevReopen(iotests.QMPTestCase):
|
||
|
self.assert_qmp(result, 'return', {})
|
||
|
|
||
|
# Misc reopen tests with different block drivers
|
||
|
+ @iotests.skip_if_unsupported(['quorum', 'throttle'])
|
||
|
def test_misc_drivers(self):
|
||
|
####################
|
||
|
###### quorum ######
|
||
|
--
|
||
|
1.8.3.1
|
||
|
|