Replace HMP migration and savevm/loadvm commands with QMP equivalents.

Signed-off-by: Marc-André Lureau <[email protected]>
---
 tests/qemu-iotests/181     | 86 ++++++++++++++++++++++++++++++++--------------
 tests/qemu-iotests/181.out | 36 +++++++++----------
 2 files changed, 78 insertions(+), 44 deletions(-)

diff --git a/tests/qemu-iotests/181 b/tests/qemu-iotests/181
index 458cb737f1cb..d814a1b8226e 100755
--- a/tests/qemu-iotests/181
+++ b/tests/qemu-iotests/181
@@ -47,7 +47,6 @@ _supported_fmt generic
 _unsupported_fmt qcow vdi vhdx vmdk vpc vvfat parallels
 _supported_proto generic
 _supported_os Linux
-_require_hmp
 
 _flaky_test https://gitlab.com/qemu-project/qemu/-/work_items/3515
 
@@ -58,8 +57,6 @@ echo
 echo === Starting VMs ===
 echo
 
-qemu_comm_method="monitor"
-
 if [ "$IMGOPTSSYNTAX" = "true" ]; then
     _launch_qemu \
         -drive "${TEST_IMG}",cache=${CACHEMODE},aio=$AIOMODE,id=disk
@@ -80,15 +77,27 @@ else
 fi
 dest=$QEMU_HANDLE
 
+silent=yes
+_send_qemu_cmd $src \
+    "{ 'execute': 'qmp_capabilities' }" \
+    'return'
+_send_qemu_cmd $dest \
+    "{ 'execute': 'qmp_capabilities' }" \
+    'return'
+
 echo
 echo === Write something on the source ===
 echo
 
 silent=
-_send_qemu_cmd $src 'qemu-io disk "write -P 0x55 0 64k"' "(qemu)"
-_send_qemu_cmd $src "" "ops/sec"
-_send_qemu_cmd $src 'qemu-io disk "read -P 0x55 0 64k"' "(qemu)"
-_send_qemu_cmd $src "" "ops/sec"
+_send_qemu_cmd $src \
+    "{ 'execute': 'x-qemu-io',
+       'arguments': { 'device': 'disk', 'command': 'write -P 0x55 0 64k' } }" \
+    'return'
+_send_qemu_cmd $src \
+    "{ 'execute': 'x-qemu-io',
+       'arguments': { 'device': 'disk', 'command': 'read -P 0x55 0 64k' } }" \
+    'return'
 
 echo
 echo === Do postcopy migration to destination ===
@@ -98,28 +107,45 @@ echo
 # switch to postcopy
 # Enable postcopy-ram capability both on source and destination
 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"
+    _send_qemu_cmd $dest \
+    "{ 'execute': 'migrate-set-capabilities',
+       'arguments': { 'capabilities': [
+           { 'capability': 'postcopy-ram', 'state': true } ] } }" \
+    'return' 'error'
 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_parameter max-bandwidth 4k' "(qemu)"
-_send_qemu_cmd $src 'migrate_set_capability postcopy-ram on' "(qemu)"
-_send_qemu_cmd $src "migrate -d unix:${MIG_SOCKET}" "(qemu)"
-_send_qemu_cmd $src 'migrate_start_postcopy' "(qemu)"
+_send_qemu_cmd $src \
+    "{ 'execute': 'migrate-set-parameters',
+       'arguments': { 'max-bandwidth': 4096 } }" \
+    'return'
+_send_qemu_cmd $src \
+    "{ 'execute': 'migrate-set-capabilities',
+       'arguments': { 'capabilities': [
+           { 'capability': 'postcopy-ram', 'state': true } ] } }" \
+    'return'
+_send_qemu_cmd $src \
+    "{ 'execute': 'migrate',
+       'arguments': { 'uri': 'unix:${MIG_SOCKET}' } }" \
+    'return'
+_send_qemu_cmd $src \
+    "{ 'execute': 'migrate-start-postcopy' }" \
+    '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' }" \
+    '"status": "completed"\|"status": "failed"'
 
 echo
 echo === Do some I/O on the destination ===
@@ -129,17 +155,25 @@ echo
 # of the node name, which would create a new BlockBackend and not test whether
 # the guest has the necessary permissions to access the image now
 silent=
-_send_qemu_cmd $dest 'qemu-io disk "read -P 0x55 0 64k"' "(qemu)"
-_send_qemu_cmd $dest "" "ops/sec"
-_send_qemu_cmd $dest 'qemu-io disk "write -P 0x66 1M 64k"' "(qemu)"
-_send_qemu_cmd $dest "" "ops/sec"
+_send_qemu_cmd $dest \
+    "{ 'execute': 'x-qemu-io',
+       'arguments': { 'device': 'disk', 'command': 'read -P 0x55 0 64k' } }" \
+    'return'
+_send_qemu_cmd $dest \
+    "{ 'execute': 'x-qemu-io',
+       'arguments': { 'device': 'disk', 'command': 'write -P 0x66 1M 64k' } }" 
\
+    'return'
 
 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/181.out b/tests/qemu-iotests/181.out
index d58c6a9dabb0..43dc83bc9cae 100644
--- a/tests/qemu-iotests/181.out
+++ b/tests/qemu-iotests/181.out
@@ -6,32 +6,32 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 
 === Write something on the source ===
 
-QEMU X.Y.Z monitor - type 'help' for more information
-(qemu) qemu-io disk "write -P 0x55 0 64k"
-wrote 65536/65536 bytes at offset 0
-64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-(qemu) 
-(qemu) qemu-io disk "read -P 0x55 0 64k"
-read 65536/65536 bytes at offset 0
-64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+{ 'execute': 'x-qemu-io',
+       'arguments': { 'device': 'disk', 'command': 'write -P 0x55 0 64k' } }
+{"return": {"human-readable-text": "wrote 65536/65536 bytes at offset 0n64 
KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)n"}}
+{ 'execute': 'x-qemu-io',
+       'arguments': { 'device': 'disk', 'command': 'read -P 0x55 0 64k' } }
+{"return": {"human-readable-text": "read 65536/65536 bytes at offset 0n64 KiB, 
X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)n"}}
 
 === Do postcopy migration to destination ===
 
 
 === Do some I/O on the destination ===
 
-(qemu) qemu-io disk "read -P 0x55 0 64k"
-read 65536/65536 bytes at offset 0
-64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-(qemu) 
-(qemu) qemu-io disk "write -P 0x66 1M 64k"
-wrote 65536/65536 bytes at offset 1048576
-64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+{ 'execute': 'x-qemu-io',
+       'arguments': { 'device': 'disk', 'command': 'read -P 0x55 0 64k' } }
+{"return": {"human-readable-text": "read 65536/65536 bytes at offset 0n64 KiB, 
X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)n"}}
+{ 'execute': 'x-qemu-io',
+       'arguments': { 'device': 'disk', 'command': 'write -P 0x66 1M 64k' } }
+{"return": {"human-readable-text": "wrote 65536/65536 bytes at offset 
1048576n64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)n"}}
 
 === Shut down and check image ===
 
-(qemu) quit
-(qemu) 
-(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


Reply via email to