Replace HMP migration and savevm/loadvm commands with QMP equivalents.
Signed-off-by: Marc-André Lureau <[email protected]>
---
tests/qemu-iotests/201 | 75 +++++++++++++++++++++++++++++-----------------
tests/qemu-iotests/201.out | 10 ++++---
2 files changed, 53 insertions(+), 32 deletions(-)
diff --git a/tests/qemu-iotests/201 b/tests/qemu-iotests/201
index a5c750c38a83..302ad983d83d 100755
--- a/tests/qemu-iotests/201
+++ b/tests/qemu-iotests/201
@@ -47,7 +47,6 @@ _supported_os Linux
# Internal snapshots are (currently) impossible with refcount_bits=1,
# and generally impossible with external data files
_unsupported_imgopts 'refcount_bits=1[^0-9]' data_file
-_require_hmp
size=64M
_make_test_img $size
@@ -56,76 +55,96 @@ echo
echo === Starting VMs ===
echo
-qemu_comm_method="monitor"
-
if [ "$IMGOPTSSYNTAX" = "true" ]; then
_launch_qemu \
- -drive "${TEST_IMG}",cache=${CACHEMODE},aio=$AIOMODE,id=disk
+ -drive
"${TEST_IMG}",cache=${CACHEMODE},aio=$AIOMODE,id=disk,node-name=disk0
else
_launch_qemu \
- -drive
file="${TEST_IMG}",cache=${CACHEMODE},aio=$AIOMODE,driver=$IMGFMT,id=disk
+ -drive
file="${TEST_IMG}",cache=${CACHEMODE},aio=$AIOMODE,driver=$IMGFMT,id=disk,node-name=disk0
fi
src=$QEMU_HANDLE
+silent=yes _send_qemu_cmd $src "{ 'execute': 'qmp_capabilities' }" 'return'
if [ "$IMGOPTSSYNTAX" = "true" ]; then
_launch_qemu \
- -drive "${TEST_IMG}",cache=${CACHEMODE},aio=$AIOMODE,id=disk \
+ -drive
"${TEST_IMG}",cache=${CACHEMODE},aio=$AIOMODE,id=disk,node-name=disk0 \
-incoming "unix:${MIG_SOCKET}"
else
_launch_qemu \
- -drive
file="${TEST_IMG}",cache=${CACHEMODE},aio=$AIOMODE,driver=$IMGFMT,id=disk \
+ -drive
file="${TEST_IMG}",cache=${CACHEMODE},aio=$AIOMODE,driver=$IMGFMT,id=disk,node-name=disk0
\
-incoming "unix:${MIG_SOCKET}"
fi
dest=$QEMU_HANDLE
+silent=yes _send_qemu_cmd $dest "{ 'execute': 'qmp_capabilities' }" 'return'
echo
echo === Set \'migrate_set_capability postcopy-ram on\' and migrate ===
echo
-silent=yes
-_send_qemu_cmd $dest 'migrate_set_capability postcopy-ram on' "(qemu)"
-
-qemu_error_no_exit=yes success_or_failure=yes \
- _send_qemu_cmd $dest '' "(qemu)" "Postcopy is not supported"
+silent=yes qemu_error_no_exit=yes success_or_failure=yes \
+ _send_qemu_cmd $dest \
+ "{ 'execute': 'migrate-set-capabilities',
+ 'arguments': { 'capabilities': [
+ { 'capability': 'postcopy-ram', 'state': true }
+ ] } }" \
+ 'return' "Postcopy is not supported"
if [ ${QEMU_STATUS[$dest]} -lt 0 ]; then
- _send_qemu_cmd $dest '' "(qemu)"
-
- _send_qemu_cmd $src 'quit' ""
- _send_qemu_cmd $dest 'quit' ""
+ _send_qemu_cmd $src "{ 'execute': 'quit' }" 'return'
+ _send_qemu_cmd $dest "{ 'execute': 'quit' }" 'return'
wait=1 _cleanup_qemu
-
_notrun 'Postcopy is not supported'
fi
-_send_qemu_cmd $src 'migrate_set_capability postcopy-ram on' "(qemu)"
-_send_qemu_cmd $src "migrate -d unix:${MIG_SOCKET}" "(qemu)"
+silent=yes _send_qemu_cmd $src \
+ "{ 'execute': 'migrate-set-capabilities',
+ 'arguments': { 'capabilities': [
+ { 'capability': 'postcopy-ram', 'state': true }
+ ] } }" \
+ 'return'
+
+silent=yes _send_qemu_cmd $src \
+ "{ 'execute': 'migrate',
+ 'arguments': { 'uri': 'unix:${MIG_SOCKET}' } }" \
+ 'return'
QEMU_COMM_TIMEOUT=1 qemu_cmd_repeat=10 silent=yes \
- _send_qemu_cmd $src "info migrate" "completed\|failed"
-silent=yes _send_qemu_cmd $src "" "(qemu)"
+ _send_qemu_cmd $src \
+ "{ 'execute': 'query-migrate' }" \
+ '"completed"\|"failed"'
echo
echo === Check if migration was successful ===
echo
QEMU_COMM_TIMEOUT=1 silent=yes \
- _send_qemu_cmd $src "info migrate" "completed"
-silent=yes _send_qemu_cmd $src "" "(qemu)"
+ _send_qemu_cmd $src \
+ "{ 'execute': 'query-migrate' }" \
+ '"completed"'
echo
echo === On destination, execute savevm and loadvm ===
echo
-silent=
-_send_qemu_cmd $dest 'savevm state1' "(qemu)"
-_send_qemu_cmd $dest 'loadvm state1' "(qemu)"
+silent=yes _run_qmp_job $dest 'save0' \
+ "{ 'execute': 'snapshot-save',
+ 'arguments': { 'job-id': 'save0',
+ 'tag': 'state1',
+ 'vmstate': 'disk0',
+ 'devices': ['disk0'] } }"
+
+silent=yes _run_qmp_job $dest 'load0' \
+ "{ 'execute': 'snapshot-load',
+ 'arguments': { 'job-id': 'load0',
+ 'tag': 'state1',
+ 'vmstate': 'disk0',
+ 'devices': ['disk0'] } }"
echo
echo === Shut down and check image ===
echo
-_send_qemu_cmd $src 'quit' ""
-_send_qemu_cmd $dest 'quit' ""
+_send_qemu_cmd $src "{ 'execute': 'quit' }" 'return'
+_send_qemu_cmd $dest "{ 'execute': 'quit' }" 'return'
wait=1 _cleanup_qemu
_check_test_img
diff --git a/tests/qemu-iotests/201.out b/tests/qemu-iotests/201.out
index 9faf06f996a0..8c75a3441255 100644
--- a/tests/qemu-iotests/201.out
+++ b/tests/qemu-iotests/201.out
@@ -12,12 +12,14 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
=== On destination, execute savevm and loadvm ===
-(qemu) savevm state1
-(qemu) loadvm state1
=== Shut down and check image ===
-(qemu) quit
-(qemu) quit
+{ 'execute': 'quit' }
+{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event":
"SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"return": {}}
+{ 'execute': 'quit' }
+{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event":
"SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"return": {}}
No errors were found on the image.
*** done
--
2.56.0.rc0.29.g47ce80527c56