mirror of
https://github.com/qemu/qemu.git
synced 2024-12-01 07:43:35 +08:00
iotests: 153: Wait for an answer to QMP commands
There are various actions in this test that must be executed sequentially, as the result of it depends on the state triggered by the previous one. If the last argument of _send_qemu_cmd() is an empty string, it just sends the QMP commands without waiting for an answer. While unlikely, it may happen that the next action in the test gets invoked before QEMU processes the QMP request. This issue seems to be easier to reproduce on servers with limited resources or highly loaded. With this change, we wait for an answer on all _send_qemu_cmd() calls. Signed-off-by: Sergio Lopez <slp@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
2345bde647
commit
9cd97956cf
@ -155,7 +155,7 @@ for opts1 in "" "read-only=on" "read-only=on,force-share=on"; do
|
||||
_img_info -U | grep 'file format'
|
||||
fi
|
||||
done
|
||||
_send_qemu_cmd $h "{ 'execute': 'quit', }" ""
|
||||
_send_qemu_cmd $h "{ 'execute': 'quit' }" ''
|
||||
echo
|
||||
echo "Round done"
|
||||
_cleanup_qemu
|
||||
@ -219,7 +219,7 @@ echo "Adding drive"
|
||||
_send_qemu_cmd $QEMU_HANDLE \
|
||||
"{ 'execute': 'human-monitor-command',
|
||||
'arguments': { 'command-line': 'drive_add 0 if=none,id=d0,file=${TEST_IMG}' } }" \
|
||||
""
|
||||
'return'
|
||||
|
||||
_run_cmd $QEMU_IO "${TEST_IMG}" -c 'write 0 512'
|
||||
|
||||
@ -230,7 +230,7 @@ echo "== Closing an image should unlock it =="
|
||||
_send_qemu_cmd $QEMU_HANDLE \
|
||||
"{ 'execute': 'human-monitor-command',
|
||||
'arguments': { 'command-line': 'drive_del d0' } }" \
|
||||
""
|
||||
'return'
|
||||
|
||||
_run_cmd $QEMU_IO "${TEST_IMG}" -c 'write 0 512'
|
||||
|
||||
@ -239,7 +239,7 @@ for d in d0 d1; do
|
||||
_send_qemu_cmd $QEMU_HANDLE \
|
||||
"{ 'execute': 'human-monitor-command',
|
||||
'arguments': { 'command-line': 'drive_add 0 if=none,id=$d,file=${TEST_IMG},readonly=on' } }" \
|
||||
""
|
||||
'return'
|
||||
done
|
||||
|
||||
_run_cmd $QEMU_IMG info "${TEST_IMG}"
|
||||
@ -247,7 +247,7 @@ _run_cmd $QEMU_IMG info "${TEST_IMG}"
|
||||
_send_qemu_cmd $QEMU_HANDLE \
|
||||
"{ 'execute': 'human-monitor-command',
|
||||
'arguments': { 'command-line': 'drive_del d0' } }" \
|
||||
""
|
||||
'return'
|
||||
|
||||
_run_cmd $QEMU_IO "${TEST_IMG}" -c 'write 0 512'
|
||||
|
||||
@ -255,7 +255,7 @@ echo "Closing the other"
|
||||
_send_qemu_cmd $QEMU_HANDLE \
|
||||
"{ 'execute': 'human-monitor-command',
|
||||
'arguments': { 'command-line': 'drive_del d1' } }" \
|
||||
""
|
||||
'return'
|
||||
|
||||
_run_cmd $QEMU_IO "${TEST_IMG}" -c 'write 0 512'
|
||||
|
||||
|
@ -417,6 +417,7 @@ Is another process using the image [TEST_DIR/t.qcow2]?
|
||||
_qemu_img_wrapper commit -b TEST_DIR/t.qcow2.b TEST_DIR/t.qcow2.c
|
||||
{"return": {}}
|
||||
Adding drive
|
||||
{"return": "OKrn"}
|
||||
|
||||
_qemu_io_wrapper TEST_DIR/t.qcow2 -c write 0 512
|
||||
can't open device TEST_DIR/t.qcow2: Failed to get "write" lock
|
||||
@ -425,16 +426,21 @@ Creating overlay with qemu-img when the guest is running should be allowed
|
||||
|
||||
_qemu_img_wrapper create -f qcow2 -b TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.overlay
|
||||
== Closing an image should unlock it ==
|
||||
{"return": ""}
|
||||
|
||||
_qemu_io_wrapper TEST_DIR/t.qcow2 -c write 0 512
|
||||
Adding two and closing one
|
||||
{"return": "OKrn"}
|
||||
{"return": "OKrn"}
|
||||
|
||||
_qemu_img_wrapper info TEST_DIR/t.qcow2
|
||||
{"return": ""}
|
||||
|
||||
_qemu_io_wrapper TEST_DIR/t.qcow2 -c write 0 512
|
||||
can't open device TEST_DIR/t.qcow2: Failed to get "write" lock
|
||||
Is another process using the image [TEST_DIR/t.qcow2]?
|
||||
Closing the other
|
||||
{"return": ""}
|
||||
|
||||
_qemu_io_wrapper TEST_DIR/t.qcow2 -c write 0 512
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user