if result == {'return': []}:
# Job finished too quickly
continue
- self.assert_qmp(result, 'return[0]/paused', False)
+ self.assertIn(result['return'][0]['status'],
+ ['running', 'pending', 'aborting', 'concluded'])
elif event['event'] == 'BLOCK_JOB_COMPLETED':
self.assertTrue(error, 'job completed unexpectedly')
self.assert_qmp(event, 'data/type', 'stream')
self.assert_qmp(event, 'data/device', 'drive0')
self.assert_qmp(event, 'data/operation', 'read')
+ if self.vm.qmp('query-block-jobs')['return'][0]['status'] != 'paused':
+ self.vm.events_wait([(
+ 'JOB_STATUS_CHANGE',
+ {'data': {'id': 'drive0', 'status': 'paused'}}
+ )])
+
result = self.vm.qmp('query-block-jobs')
- self.assert_qmp(result, 'return[0]/paused', True)
+ self.assert_qmp(result, 'return[0]/status', 'paused')
self.assert_qmp(result, 'return[0]/offset', self.STREAM_BUFFER_SIZE)
self.assert_qmp(result, 'return[0]/io-status', 'failed')
if result == {'return': []}:
# Race; likely already finished. Check.
continue
- self.assert_qmp(result, 'return[0]/paused', False)
+ self.assertIn(result['return'][0]['status'],
+ ['running', 'pending', 'aborting', 'concluded'])
self.assert_qmp(result, 'return[0]/io-status', 'ok')
elif event['event'] == 'BLOCK_JOB_COMPLETED':
self.assertTrue(error, 'job completed unexpectedly')
self.assert_qmp(event, 'data/operation', 'read')
error = True
+ if self.vm.qmp('query-block-jobs')['return'][0]['status'] != 'paused':
+ self.vm.events_wait([(
+ 'JOB_STATUS_CHANGE',
+ {'data': {'id': 'drive0', 'status': 'paused'}}
+ )])
+
result = self.vm.qmp('query-block-jobs')
- self.assert_qmp(result, 'return[0]/paused', True)
+ self.assert_qmp(result, 'return[0]/status', 'paused')
self.assert_qmp(result, 'return[0]/offset', self.STREAM_BUFFER_SIZE)
self.assert_qmp(result, 'return[0]/io-status', 'nospace')
if result == {'return': []}:
# Race; likely already finished. Check.
continue
- self.assert_qmp(result, 'return[0]/paused', False)
+ self.assertIn(result['return'][0]['status'],
+ ['running', 'pending', 'aborting', 'concluded'])
self.assert_qmp(result, 'return[0]/io-status', 'ok')
elif event['event'] == 'BLOCK_JOB_COMPLETED':
self.assertTrue(error, 'job completed unexpectedly')
self.assert_qmp(event, 'data/device', 'drive0')
self.assert_qmp(event, 'data/operation', 'read')
result = self.vm.qmp('query-block-jobs')
- self.assert_qmp(result, 'return[0]/paused', False)
+ self.assertIn(result['return'][0]['status'], ['running', 'ready'])
self.complete_and_wait()
def test_large_cluster(self):
self.assert_qmp(event, 'data/device', 'drive0')
self.assert_qmp(event, 'data/operation', 'read')
result = self.vm.qmp('query-block-jobs')
- self.assert_qmp(result, 'return[0]/paused', False)
+ self.assertIn(result['return'][0]['status'], ['running', 'ready'])
self.complete_and_wait()
self.vm.shutdown()
self.assert_qmp(event, 'data/device', 'drive0')
self.assert_qmp(event, 'data/operation', 'read')
+ if self.vm.qmp('query-block-jobs')['return'][0]['status'] != 'paused':
+ self.vm.events_wait([(
+ 'JOB_STATUS_CHANGE',
+ {'data': {'id': 'drive0', 'status': 'paused'}}
+ )])
+
result = self.vm.qmp('query-block-jobs')
- self.assert_qmp(result, 'return[0]/paused', True)
+ self.assert_qmp(result, 'return[0]/status', 'paused')
self.assert_qmp(result, 'return[0]/io-status', 'failed')
result = self.vm.qmp('block-job-resume', device='drive0')
ready = True
result = self.vm.qmp('query-block-jobs')
- self.assert_qmp(result, 'return[0]/paused', False)
+ self.assert_qmp(result, 'return[0]/status', 'ready')
self.assert_qmp(result, 'return[0]/io-status', 'ok')
self.complete_and_wait(wait_ready=False)
self.assert_qmp(event, 'data/device', 'drive0')
self.assert_qmp(event, 'data/operation', 'write')
result = self.vm.qmp('query-block-jobs')
- self.assert_qmp(result, 'return[0]/paused', False)
+ self.assertIn(result['return'][0]['status'], ['running', 'ready'])
self.complete_and_wait()
def test_stop_write(self):
self.assert_qmp(event, 'data/device', 'drive0')
self.assert_qmp(event, 'data/operation', 'write')
+ if self.vm.qmp('query-block-jobs')['return'][0]['status'] != 'paused':
+ self.vm.events_wait([(
+ 'JOB_STATUS_CHANGE',
+ {'data': {'id': 'drive0', 'status': 'paused'}}
+ )])
+
result = self.vm.qmp('query-block-jobs')
- self.assert_qmp(result, 'return[0]/paused', True)
+ self.assert_qmp(result, 'return[0]/status', 'paused')
self.assert_qmp(result, 'return[0]/io-status', 'failed')
result = self.vm.qmp('block-job-resume', device='drive0')
self.assert_qmp(result, 'return', {})
result = self.vm.qmp('query-block-jobs')
- self.assert_qmp(result, 'return[0]/paused', False)
+ self.assertIn(result['return'][0]['status'], ['running', 'ready'])
self.assert_qmp(result, 'return[0]/io-status', 'ok')
error = True
elif event['event'] == 'BLOCK_JOB_READY':