[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH 42/42] qemu-iotests: Test job-* with block jobs
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-block] [PATCH 42/42] qemu-iotests: Test job-* with block jobs |
Date: |
Thu, 17 May 2018 15:50:49 +0200 |
User-agent: |
Mutt/1.9.1 (2017-09-22) |
Am 15.05.2018 um 01:44 hat Max Reitz geschrieben:
> On 2018-05-09 18:26, Kevin Wolf wrote:
> > This adds a test case that tests the new job-* QMP commands with
> > mirror and backup block jobs.
> >
> > Signed-off-by: Kevin Wolf <address@hidden>
> > ---
> > tests/qemu-iotests/219 | 201 ++++++++++++++++++++++++++++
> > tests/qemu-iotests/219.out | 327
> > +++++++++++++++++++++++++++++++++++++++++++++
> > tests/qemu-iotests/group | 1 +
> > 3 files changed, 529 insertions(+)
> > create mode 100755 tests/qemu-iotests/219
> > create mode 100644 tests/qemu-iotests/219.out
> > +Pause/resume in READY
> > +=== Testing block-job-pause/block-job-resume ===
> > +{u'return': {}}
> > +{u'timestamp': {u'seconds': 'SECS', u'microseconds': 'USECS'}, u'data':
> > {u'status': u'standby', u'id': u'job0'}, u'event': u'JOB_STATUS_CHANGE'}
> > +{u'return': [{u'status': u'standby', u'current-progress': 4194304,
> > u'total-progress': 4194304, u'id': u'job0', u'type': u'mirror'}]}
> > +{u'return': {}}
> > +{u'timestamp': {u'seconds': 'SECS', u'microseconds': 'USECS'}, u'data':
> > {u'status': u'ready', u'id': u'job0'}, u'event': u'JOB_STATUS_CHANGE'}
> > +{u'return': [{u'status': u'ready', u'current-progress': 4194304,
> > u'total-progress': 4194304, u'id': u'job0', u'type': u'mirror'}]}
> > +=== Testing block-job-pause/job-resume ===
> > +{u'return': {}}
> > +{u'timestamp': {u'seconds': 'SECS', u'microseconds': 'USECS'}, u'data':
> > {u'status': u'standby', u'id': u'job0'}, u'event': u'JOB_STATUS_CHANGE'}
> > +{u'return': [{u'status': u'standby', u'current-progress': 4194304,
> > u'total-progress': 4194304, u'id': u'job0', u'type': u'mirror'}]}
> > +{u'return': {}}
> > +{u'timestamp': {u'seconds': 'SECS', u'microseconds': 'USECS'}, u'data':
> > {u'status': u'ready', u'id': u'job0'}, u'event': u'JOB_STATUS_CHANGE'}
> > +{u'return': [{u'status': u'ready', u'current-progress': 4194304,
> > u'total-progress': 4194304, u'id': u'job0', u'type': u'mirror'}]}
> > +=== Testing job-pause/block-job-resume ===
> > +{u'return': {}}
> > +{u'timestamp': {u'seconds': 'SECS', u'microseconds': 'USECS'}, u'data':
> > {u'status': u'standby', u'id': u'job0'}, u'event': u'JOB_STATUS_CHANGE'}
> > +{u'return': [{u'status': u'standby', u'current-progress': 4194304,
> > u'total-progress': 4194304, u'id': u'job0', u'type': u'mirror'}]}
> > +{u'return': {}}
> > +{u'timestamp': {u'seconds': 'SECS', u'microseconds': 'USECS'}, u'data':
> > {u'status': u'ready', u'id': u'job0'}, u'event': u'JOB_STATUS_CHANGE'}
> > +{u'return': [{u'status': u'ready', u'current-progress': 4194304,
> > u'total-progress': 4194304, u'id': u'job0', u'type': u'mirror'}]}
> > +=== Testing job-pause/job-resume ===
> > +{u'return': {}}
> > +{u'timestamp': {u'seconds': 'SECS', u'microseconds': 'USECS'}, u'data':
> > {u'status': u'standby', u'id': u'job0'}, u'event': u'JOB_STATUS_CHANGE'}
> > +{u'return': [{u'status': u'standby', u'current-progress': 4194304,
> > u'total-progress': 4194304, u'id': u'job0', u'type': u'mirror'}]}
> > +{u'return': {}}
> > +{u'timestamp': {u'seconds': 'SECS', u'microseconds': 'USECS'}, u'data':
> > {u'status': u'ready', u'id': u'job0'}, u'event': u'JOB_STATUS_CHANGE'}
> > +{u'return': [{u'status': u'ready', u'current-progress': 4194304,
> > u'total-progress': 4194304, u'id': u'job0', u'type': u'mirror'}]}
>
> This is really, really mean. Don't you have any compassion with the
> poor little job that just wants to have Feierabend?
>
> It worked so hard and it's always on standby and instantly ready when
> you need it. Yet, you keep it hanging. That's not nice.
If you just mean that I do some testing with the poor job before I
complete it, then I'm afraid the job will have to suffer this.
But if you have a more serious concern, I don't see it. Isn't the job
properly completed in the end, as the following lines show?
> > +{u'error': {u'class': u'GenericError', u'desc': u"Job 'job0' in state
> > 'ready' cannot accept command verb 'finalize'"}}
> > +{u'error': {u'class': u'GenericError', u'desc': u"Job 'job0' in state
> > 'ready' cannot accept command verb 'dismiss'"}}
> > +{u'error': {u'class': u'GenericError', u'desc': u"Job 'job0' in state
> > 'ready' cannot accept command verb 'finalize'"}}
> > +{u'error': {u'class': u'GenericError', u'desc': u"Job 'job0' in state
> > 'ready' cannot accept command verb 'dismiss'"}}
> > +{u'return': {}}
> > +
> > +Waiting for PENDING state...
> > +{u'timestamp': {u'seconds': 'SECS', u'microseconds': 'USECS'}, u'data':
> > {u'status': u'waiting', u'id': u'job0'}, u'event': u'JOB_STATUS_CHANGE'}
> > +{u'timestamp': {u'seconds': 'SECS', u'microseconds': 'USECS'}, u'data':
> > {u'status': u'pending', u'id': u'job0'}, u'event': u'JOB_STATUS_CHANGE'}
> > +{u'timestamp': {u'seconds': 'SECS', u'microseconds': 'USECS'}, u'data':
> > {u'status': u'concluded', u'id': u'job0'}, u'event': u'JOB_STATUS_CHANGE'}
> > +{u'timestamp': {u'seconds': 'SECS', u'microseconds': 'USECS'}, u'data':
> > {u'status': u'null', u'id': u'job0'}, u'event': u'JOB_STATUS_CHANGE'}
> > +{u'return': []}
Kevin
signature.asc
Description: PGP signature
- Re: [Qemu-block] [PATCH 39/42] job: Add lifecycle QMP commands, (continued)
[Qemu-block] [PATCH 40/42] job: Add query-jobs QMP command, Kevin Wolf, 2018/05/09
[Qemu-block] [PATCH 41/42] iotests: Move qmp_to_opts() to VM, Kevin Wolf, 2018/05/09
[Qemu-block] [PATCH 42/42] qemu-iotests: Test job-* with block jobs, Kevin Wolf, 2018/05/09
[Qemu-block] [PATCH 38/42] job: Add JOB_STATUS_CHANGE QMP event, Kevin Wolf, 2018/05/09
Re: [Qemu-block] [PATCH 00/42] Generic background jobs, Kevin Wolf, 2018/05/15