forked from rpms/qemu-kvm
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
3.5 KiB
83 lines
3.5 KiB
7 months ago
|
From 9b5e69ce5f4ba9541e55d801af16ece4969379e9 Mon Sep 17 00:00:00 2001
|
||
|
From: Kevin Wolf <kwolf@redhat.com>
|
||
|
Date: Fri, 9 Feb 2024 18:31:03 +0100
|
||
|
Subject: [PATCH 4/4] iotests: Make 144 deterministic again
|
||
|
|
||
|
RH-Author: Stefan Hajnoczi <stefanha@redhat.com>
|
||
|
RH-MergeRequest: 352: monitor: only run coroutine commands in qemu_aio_context
|
||
|
RH-Jira: RHEL-7353
|
||
|
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
|
||
|
RH-Acked-by: Hanna Czenczek <hreitz@redhat.com>
|
||
|
RH-Commit: [4/4] 4974a32174abefb509b7c46671a364b4b991449e
|
||
|
|
||
|
Since commit effd60c8 changed how QMP commands are processed, the order
|
||
|
of the block-commit return value and job events in iotests 144 wasn't
|
||
|
fixed and more and caused the test to fail intermittently.
|
||
|
|
||
|
Change the test to cache events first and then print them in a
|
||
|
predefined order.
|
||
|
|
||
|
Waiting three times for JOB_STATUS_CHANGE is a bit uglier than just
|
||
|
waiting for the JOB_STATUS_CHANGE that has "status": "ready", but the
|
||
|
tooling we have doesn't seem to allow the latter easily.
|
||
|
|
||
|
Fixes: effd60c878176bcaf97fa7ce2b12d04bb8ead6f7
|
||
|
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2126
|
||
|
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||
|
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||
|
Message-id: 20240209173103.239994-1-kwolf@redhat.com
|
||
|
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
||
|
(cherry picked from commit cc29c12ec629ba68a4a6cb7d165c94cc8502815a)
|
||
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||
|
---
|
||
|
tests/qemu-iotests/144 | 12 +++++++++++-
|
||
|
tests/qemu-iotests/144.out | 2 +-
|
||
|
2 files changed, 12 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/tests/qemu-iotests/144 b/tests/qemu-iotests/144
|
||
|
index 60e9ddd75f..8c50d6487e 100755
|
||
|
--- a/tests/qemu-iotests/144
|
||
|
+++ b/tests/qemu-iotests/144
|
||
|
@@ -83,12 +83,22 @@ echo
|
||
|
echo === Performing block-commit on active layer ===
|
||
|
echo
|
||
|
|
||
|
+capture_events="BLOCK_JOB_READY JOB_STATUS_CHANGE"
|
||
|
+
|
||
|
# Block commit on active layer, push the new overlay into base
|
||
|
_send_qemu_cmd $h "{ 'execute': 'block-commit',
|
||
|
'arguments': {
|
||
|
'device': 'virtio0'
|
||
|
}
|
||
|
- }" "READY"
|
||
|
+ }" "return"
|
||
|
+
|
||
|
+_wait_event $h "JOB_STATUS_CHANGE"
|
||
|
+_wait_event $h "JOB_STATUS_CHANGE"
|
||
|
+_wait_event $h "JOB_STATUS_CHANGE"
|
||
|
+
|
||
|
+_wait_event $h "BLOCK_JOB_READY"
|
||
|
+
|
||
|
+capture_events=
|
||
|
|
||
|
_send_qemu_cmd $h "{ 'execute': 'block-job-complete',
|
||
|
'arguments': {
|
||
|
diff --git a/tests/qemu-iotests/144.out b/tests/qemu-iotests/144.out
|
||
|
index b3b4812015..2245ddfa10 100644
|
||
|
--- a/tests/qemu-iotests/144.out
|
||
|
+++ b/tests/qemu-iotests/144.out
|
||
|
@@ -25,9 +25,9 @@ Formatting 'TEST_DIR/tmp.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off co
|
||
|
'device': 'virtio0'
|
||
|
}
|
||
|
}
|
||
|
+{"return": {}}
|
||
|
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "virtio0"}}
|
||
|
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "virtio0"}}
|
||
|
-{"return": {}}
|
||
|
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "ready", "id": "virtio0"}}
|
||
|
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_READY", "data": {"device": "virtio0", "len": 0, "offset": 0, "speed": 0, "type": "commit"}}
|
||
|
{ 'execute': 'block-job-complete',
|
||
|
--
|
||
|
2.39.3
|
||
|
|