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


Reply via email to