[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 2/2] iotests: add new test case for image streaming
From: |
Andrey Zhadchenko |
Subject: |
[PATCH 2/2] iotests: add new test case for image streaming |
Date: |
Thu, 14 Sep 2023 13:09:51 +0200 |
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 <andrey.zhadchenko@virtuozzo.com>
---
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