[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v6 11/12] qemu-iotests: extract wait_until_completed
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PATCH v6 11/12] qemu-iotests: extract wait_until_completed() into iotests.py |
Date: |
Mon, 24 Jun 2013 17:13:19 +0200 |
The 'drive-mirror' tests often issue 'block-job-complete' and wait for
the QMP completion event. Other types of block jobs also want to wait
for completion but they may not need to issue 'block-job-complete'.
Extract wait_until_completed() from 041 and put it into iotests.py.
Return the QMP event object so the caller can make additional
assertions, if necessary.
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
tests/qemu-iotests/041 | 14 ++------------
tests/qemu-iotests/iotests.py | 15 +++++++++++++++
2 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/tests/qemu-iotests/041 b/tests/qemu-iotests/041
index 1e923e7..6661c03 100755
--- a/tests/qemu-iotests/041
+++ b/tests/qemu-iotests/041
@@ -57,18 +57,8 @@ class ImageMirroringTestCase(iotests.QMPTestCase):
result = self.vm.qmp('block-job-complete', device=drive)
self.assert_qmp(result, 'return', {})
- completed = False
- while not completed:
- for event in self.vm.get_qmp_events(wait=True):
- if event['event'] == 'BLOCK_JOB_COMPLETED':
- self.assert_qmp(event, 'data/type', 'mirror')
- self.assert_qmp(event, 'data/device', drive)
- self.assert_qmp_absent(event, 'data/error')
- self.assert_qmp(event, 'data/offset', self.image_len)
- self.assert_qmp(event, 'data/len', self.image_len)
- completed = True
-
- self.assert_no_active_block_jobs()
+ event = self.wait_until_completed()
+ self.assert_qmp(event, 'data/type', 'mirror')
class TestSingleDrive(ImageMirroringTestCase):
image_len = 1 * 1024 * 1024 # MB
diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index 8a8f181..b028a89 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -208,6 +208,21 @@ class QMPTestCase(unittest.TestCase):
self.assert_no_active_block_jobs()
return result
+ def wait_until_completed(self, drive='drive0'):
+ '''Wait for a block job to finish, returning the event'''
+ completed = False
+ while not completed:
+ for event in self.vm.get_qmp_events(wait=True):
+ if event['event'] == 'BLOCK_JOB_COMPLETED':
+ self.assert_qmp(event, 'data/device', drive)
+ self.assert_qmp_absent(event, 'data/error')
+ self.assert_qmp(event, 'data/offset', self.image_len)
+ self.assert_qmp(event, 'data/len', self.image_len)
+ completed = True
+
+ self.assert_no_active_block_jobs()
+ return event
+
def notrun(reason):
'''Skip this test suite'''
# Each test in qemu-iotests has a number ("seq")
--
1.8.1.4
- [Qemu-devel] [PATCH v6 00/12] block: drive-backup live backup command, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 01/12] notify: add NotiferWithReturn so notifier list can abort, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 09/12] blockdev: add DriveBackup transaction, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 08/12] blockdev: allow BdrvActionOps->commit() to be NULL, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 03/12] block: add basic backup support to block driver, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 10/12] blockdev: add Abort transaction, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 11/12] qemu-iotests: extract wait_until_completed() into iotests.py,
Stefan Hajnoczi <=
- [Qemu-devel] [PATCH v6 05/12] blockdev: use bdrv_getlength() in qmp_drive_mirror(), Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 02/12] block: add bdrv_add_before_write_notifier(), Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 04/12] blockdev: drop redundant proto_drv check, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 06/12] block: add drive-backup QMP command, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 07/12] blockdev: rename BlkTransactionStates to singular, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 12/12] qemu-iotests: add 055 drive-backup test case, Stefan Hajnoczi, 2013/06/24
- Re: [Qemu-devel] [PATCH v6 00/12] block: drive-backup live backup command, Kevin Wolf, 2013/06/25