diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030 index 14112835ed..18eddcc734 100755 --- a/tests/qemu-iotests/030 +++ b/tests/qemu-iotests/030 @@ -724,7 +724,8 @@ class TestEIO(TestErrors): 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') @@ -754,8 +755,14 @@ class TestEIO(TestErrors): 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') @@ -766,7 +773,8 @@ class TestEIO(TestErrors): 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') @@ -843,8 +851,14 @@ class TestENOSPC(TestErrors): 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') @@ -855,7 +869,8 @@ class TestENOSPC(TestErrors): 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') diff --git a/tests/qemu-iotests/041 b/tests/qemu-iotests/041 index 3e16acee56..8429958bf0 100755 --- a/tests/qemu-iotests/041 +++ b/tests/qemu-iotests/041 @@ -529,7 +529,7 @@ new_state = "1" 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): @@ -555,7 +555,7 @@ new_state = "1" 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() @@ -580,8 +580,14 @@ new_state = "1" 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') @@ -593,7 +599,7 @@ new_state = "1" 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) @@ -686,7 +692,7 @@ new_state = "1" 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): @@ -705,15 +711,21 @@ new_state = "1" 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':