From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48231) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ve1wu-0001qK-6c for qemu-devel@nongnu.org; Wed, 06 Nov 2013 07:11:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ve1wn-0003Qs-II for qemu-devel@nongnu.org; Wed, 06 Nov 2013 07:11:04 -0500 Received: from mail-qa0-x229.google.com ([2607:f8b0:400d:c00::229]:53995) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ve1wn-0003Qm-Cu for qemu-devel@nongnu.org; Wed, 06 Nov 2013 07:10:57 -0500 Received: by mail-qa0-f41.google.com with SMTP id k4so2040831qaq.14 for ; Wed, 06 Nov 2013 04:10:57 -0800 (PST) Sender: Paolo Bonzini Message-ID: <527A31CC.7070806@redhat.com> Date: Wed, 06 Nov 2013 13:10:52 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1383126148-1664-1-git-send-email-famz@redhat.com> <1383185888-8131-1-git-send-email-famz@redhat.com> In-Reply-To: <1383185888-8131-1-git-send-email-famz@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v3] qemu-iotests: use blkdebug to make test deterministic List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Fam Zheng Cc: kwolf@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com, mreitz@redhat.com 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 > --- > 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