mirror of https://gitee.com/openkylin/qemu.git
iotests: Add more "skip_if_unsupported" statements to the python tests
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>
This commit is contained in:
parent
8da7969bd7
commit
9442bebe6e
|
@ -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')
|
||||
|
|
|
@ -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', {})
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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 ######
|
||||
|
|
Loading…
Reference in New Issue