[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3] qemu-iotests: use blkdebug to make test dete
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v3] qemu-iotests: use blkdebug to make test deterministic |
Date: |
Wed, 06 Nov 2013 13:10:52 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130923 Thunderbird/17.0.9 |
Il 31/10/2013 03:18, Fam Zheng ha scritto:
> This patch suspends the test image IO before starting block stream job
> so that it doesn't complete before we could check the status.
>
> Signed-off-by: Fam Zheng <address@hidden>
> ---
> tests/qemu-iotests/030 | 10 ++++++----
> tests/qemu-iotests/iotests.py | 5 ++++-
> 2 files changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030
> index d0f96ea..bc66e6f 100755
> --- a/tests/qemu-iotests/030
> +++ b/tests/qemu-iotests/030
> @@ -391,7 +391,7 @@ class TestStreamStop(iotests.QMPTestCase):
> qemu_io('-c', 'write -P 0x1 0 32M', backing_img)
> qemu_img('create', '-f', iotests.imgfmt, '-o', 'backing_file=%s' %
> backing_img, test_img)
> qemu_io('-c', 'write -P 0x1 32M 32M', test_img)
> - self.vm = iotests.VM().add_drive(test_img)
> + self.vm = iotests.VM().add_drive("blkdebug::" + test_img)
> self.vm.launch()
>
> def tearDown(self):
> @@ -402,6 +402,7 @@ class TestStreamStop(iotests.QMPTestCase):
> def test_stream_stop(self):
> self.assert_no_active_block_jobs()
>
> + self.vm.qmp('human-monitor-command', command_line='qemu-io drive0
> "break write_aio a"')
> result = self.vm.qmp('block-stream', device='drive0')
> self.assert_qmp(result, 'return', {})
>
> @@ -409,7 +410,7 @@ class TestStreamStop(iotests.QMPTestCase):
> events = self.vm.get_qmp_events(wait=False)
> self.assertEqual(events, [], 'unexpected QMP event: %s' % events)
>
> - self.cancel_and_wait()
> + self.cancel_and_wait(resume='a')
>
> class TestSetSpeed(iotests.QMPTestCase):
> image_len = 80 * 1024 * 1024 # MB
> @@ -419,7 +420,7 @@ class TestSetSpeed(iotests.QMPTestCase):
> qemu_io('-c', 'write -P 0x1 0 32M', backing_img)
> qemu_img('create', '-f', iotests.imgfmt, '-o', 'backing_file=%s' %
> backing_img, test_img)
> qemu_io('-c', 'write -P 0x1 32M 32M', test_img)
> - self.vm = iotests.VM().add_drive(test_img)
> + self.vm = iotests.VM().add_drive('blkdebug::' + test_img)
> self.vm.launch()
>
> def tearDown(self):
> @@ -453,6 +454,7 @@ class TestSetSpeed(iotests.QMPTestCase):
> def test_set_speed(self):
> self.assert_no_active_block_jobs()
>
> + self.vm.qmp('human-monitor-command', command_line='qemu-io drive0
> "break write_aio a"')
> result = self.vm.qmp('block-stream', device='drive0')
> self.assert_qmp(result, 'return', {})
>
> @@ -469,7 +471,7 @@ class TestSetSpeed(iotests.QMPTestCase):
> self.assert_qmp(result, 'return[0]/device', 'drive0')
> self.assert_qmp(result, 'return[0]/speed', 8 * 1024 * 1024)
>
> - self.cancel_and_wait()
> + self.cancel_and_wait(resume='a')
>
> # Check setting speed in block-stream works
> result = self.vm.qmp('block-stream', device='drive0', speed=4 * 1024
> * 1024)
> diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
> index fb10ff4..de45079 100644
> --- a/tests/qemu-iotests/iotests.py
> +++ b/tests/qemu-iotests/iotests.py
> @@ -222,11 +222,14 @@ class QMPTestCase(unittest.TestCase):
> result = self.vm.qmp('query-block-jobs')
> self.assert_qmp(result, 'return', [])
>
> - def cancel_and_wait(self, drive='drive0', force=False):
> + def cancel_and_wait(self, drive='drive0', force=False, resume=""):
> '''Cancel a block job and wait for it to finish, returning the
> event'''
> result = self.vm.qmp('block-job-cancel', device=drive, force=force)
> self.assert_qmp(result, 'return', {})
>
> + if resume:
> + self.vm.qmp('human-monitor-command', command_line='qemu-io %s
> "resume %s"' % (drive, resume))
> +
> cancelled = False
> result = None
> while not cancelled:
>
Can you do the same for the mirror test too?
Paolo
- Re: [Qemu-devel] [PATCH v3] qemu-iotests: use blkdebug to make test deterministic,
Paolo Bonzini <=