[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH for-5.0 v4 4/5] iotests: Add @error to wait_until_completed
From: |
Max Reitz |
Subject: |
[PATCH for-5.0 v4 4/5] iotests: Add @error to wait_until_completed |
Date: |
Fri, 8 Nov 2019 13:34:54 +0100 |
Callers can use this new parameter to expect failure during the
completion process.
Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: John Snow <address@hidden>
Reviewed-by: Vladimir Sementsov-Ogievskiy <address@hidden>
---
tests/qemu-iotests/iotests.py | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index 075f4739da..2010b71d4b 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -783,15 +783,20 @@ class QMPTestCase(unittest.TestCase):
self.assert_no_active_block_jobs()
return result
- def wait_until_completed(self, drive='drive0', check_offset=True,
wait=60.0):
+ def wait_until_completed(self, drive='drive0', check_offset=True,
wait=60.0,
+ error=None):
'''Wait for a block job to finish, returning the event'''
while True:
for event in self.vm.get_qmp_events(wait=wait):
if event['event'] == 'BLOCK_JOB_COMPLETED':
self.assert_qmp(event, 'data/device', drive)
- self.assert_qmp_absent(event, 'data/error')
- if check_offset:
- self.assert_qmp(event, 'data/offset',
event['data']['len'])
+ if error is None:
+ self.assert_qmp_absent(event, 'data/error')
+ if check_offset:
+ self.assert_qmp(event, 'data/offset',
+ event['data']['len'])
+ else:
+ self.assert_qmp(event, 'data/error', error)
self.assert_no_active_block_jobs()
return event
elif event['event'] == 'JOB_STATUS_CHANGE':
@@ -809,7 +814,8 @@ class QMPTestCase(unittest.TestCase):
self.assert_qmp(event, 'data/type', 'mirror')
self.assert_qmp(event, 'data/offset', event['data']['len'])
- def complete_and_wait(self, drive='drive0', wait_ready=True):
+ def complete_and_wait(self, drive='drive0', wait_ready=True,
+ completion_error=None):
'''Complete a block job and wait for it to finish'''
if wait_ready:
self.wait_ready(drive=drive)
@@ -817,7 +823,7 @@ class QMPTestCase(unittest.TestCase):
result = self.vm.qmp('block-job-complete', device=drive)
self.assert_qmp(result, 'return', {})
- event = self.wait_until_completed(drive=drive)
+ event = self.wait_until_completed(drive=drive, error=completion_error)
self.assert_qmp(event, 'data/type', 'mirror')
def pause_wait(self, job_id='job0'):
--
2.23.0
- [PATCH for-5.0 v4 0/5] iotests: Test failing mirror complete, Max Reitz, 2019/11/08
- [PATCH for-5.0 v4 1/5] block: Add bdrv_qapi_perm_to_blk_perm(), Max Reitz, 2019/11/08
- [PATCH for-5.0 v4 2/5] block: Use bdrv_qapi_perm_to_blk_perm(), Max Reitz, 2019/11/08
- [PATCH for-5.0 v4 3/5] blkdebug: Allow taking/unsharing permissions, Max Reitz, 2019/11/08
- [PATCH for-5.0 v4 4/5] iotests: Add @error to wait_until_completed,
Max Reitz <=
- [PATCH for-5.0 v4 5/5] iotests: Add test for failing mirror complete, Max Reitz, 2019/11/08
- Re: [PATCH for-5.0 v4 0/5] iotests: Test failing mirror complete, Max Reitz, 2019/11/26