qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 2/4] qemu-iotests: make cancel_and_wait() common


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [PATCH 2/4] qemu-iotests: make cancel_and_wait() common
Date: Wed, 29 May 2013 13:02:17 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Wed, May 29, 2013 at 11:54:56AM +0200, Kevin Wolf wrote:
> Am 28.05.2013 um 17:11 hat Stefan Hajnoczi geschrieben:
> > -    def cancel_and_wait(self, drive='drive0', wait_ready=True):
> > -        '''Cancel a block job and wait for it to finish'''
> > -        if wait_ready:
> > -            ready = False
> > -            while not ready:
> > -                for event in self.vm.get_qmp_events(wait=True):
> > -                    if event['event'] == 'BLOCK_JOB_READY':
> > -                        self.assert_qmp(event, 'data/type', 'mirror')
> > -                        self.assert_qmp(event, 'data/device', drive)
> > -                        ready = True
> > -
> > -        result = self.vm.qmp('block-job-cancel', device=drive,
> > -                             force=not wait_ready)
> > -        self.assert_qmp(result, 'return', {})
> > -
> > -        cancelled = False
> > -        while not cancelled:
> > +    def wait_ready(self, drive='drive0'):
> > +        '''Wait until a block job BLOCK_JOB_READY event'''
> > +        ready = False
> > +        while not ready:
> >              for event in self.vm.get_qmp_events(wait=True):
> > -                if event['event'] == 'BLOCK_JOB_COMPLETED' or \
> > -                   event['event'] == 'BLOCK_JOB_CANCELLED':
> > +                if event['event'] == 'BLOCK_JOB_READY':
> >                      self.assert_qmp(event, 'data/type', 'mirror')
> >                      self.assert_qmp(event, 'data/device', drive)
> > -                    if wait_ready:
> > -                        self.assertEquals(event['event'], 
> > 'BLOCK_JOB_COMPLETED')
> > -                        self.assert_qmp(event, 'data/offset', 
> > self.image_len)
> > -                        self.assert_qmp(event, 'data/len', self.image_len)
> > -                    cancelled = True
> > +                    ready = True
> 
> Why don't you just move the whole function including the wait_ready
> parameter? It doesn't do any harm to other callers that don't need the
> feature, and will likely be useful for other test cases later.

The BLOCK_JOB_READY and block-job-complete concepts are used by
mirroring only.  Plus the mirroring test cases perform additional checks
on the event object which aren't common.

I figured the cleanest solution is the patch I posted.

Stefan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]