Check if we can list named block nodes when the block-stream is finalized but not yet dismissed This previously led to a crash
Signed-off-by: Andrey Zhadchenko <[email protected]> --- tests/qemu-iotests/030 | 17 +++++++++++++++++ tests/qemu-iotests/030.out | 4 ++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030 index 98595d47fe..2be407a8da 100755 --- a/tests/qemu-iotests/030 +++ b/tests/qemu-iotests/030 @@ -192,6 +192,23 @@ test_img = os.path.join(iotests.test_dir, 'test.img') self.assert_qmp(result, 'return', {}) + def test_auto_dismiss(self): + result = self.vm.qmp('block-stream', device='drive0', auto_dismiss=False) + completed = False + while not completed: + for event in self.vm.get_qmp_events(wait=True): + self.assertNotEqual(event['event'], 'BLOCK_JOB_ERROR') + if event['event'] == 'BLOCK_JOB_COMPLETED': + self.assert_qmp(event, 'data/device', 'drive0') + completed = True + elif event['event'] == 'JOB_STATUS_CHANGE': + self.assert_qmp(event, 'data/id', 'drive0') + + result = self.vm.qmp('query-named-block-nodes') + result = self.vm.qmp('job-dismiss', id='drive0') + self.assert_qmp(result, 'return', {}) + + class TestParallelOps(iotests.QMPTestCase): num_ops = 4 # Number of parallel block-stream operations num_imgs = num_ops * 2 + 1 diff --git a/tests/qemu-iotests/030.out b/tests/qemu-iotests/030.out index 6d9bee1a4b..af8dac10f9 100644 --- a/tests/qemu-iotests/030.out +++ b/tests/qemu-iotests/030.out @@ -1,5 +1,5 @@ -........................... +............................ ---------------------------------------------------------------------- -Ran 27 tests +Ran 28 tests OK -- 2.40.1
