Replace HMP 'savevm' with QMP 'snapshot-save' job-based API.
Use _launch_qemu/_send_qemu_cmd for proper QMP interaction.

Signed-off-by: Marc-André Lureau <[email protected]>
---
 tests/qemu-iotests/007 | 25 +++++++++++++++++++------
 1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/tests/qemu-iotests/007 b/tests/qemu-iotests/007
index 936d3f14fbad..06096149ce83 100755
--- a/tests/qemu-iotests/007
+++ b/tests/qemu-iotests/007
@@ -29,6 +29,7 @@ status=1      # failure is the default!
 
 _cleanup()
 {
+       _cleanup_qemu
        _cleanup_test_img
        true
 }
@@ -37,6 +38,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
 # get standard environment, filters and checks
 . ./common.rc
 . ./common.filter
+. ./common.qemu
 
 # currently only qcow2 allows for consistency checks using qemu-img
 _supported_fmt qcow2
@@ -50,12 +52,23 @@ echo
 echo "creating image"
 _make_test_img 1M
 
-for ((i=1;i<=10;i++)); do
-    echo "savevm $i"
-    $QEMU -nographic -hda "$TEST_IMG" -serial none -monitor stdio >/dev/null 
2>&1 <<EOF
-savevm test-$i
-quit
-EOF
+silent=yes
+for ((n=1;n<=10;n++)); do
+    echo "savevm $n"
+    _launch_qemu \
+        -drive 
if=none,id=drive0,node-name=disk0,file="$TEST_IMG",format="$IMGFMT" \
+        -device virtio-scsi,id=hba0 -device scsi-hd,drive=drive0
+    _send_qemu_cmd $QEMU_HANDLE \
+        "{ 'execute': 'qmp_capabilities' }" 'return'
+    _run_qmp_job $QEMU_HANDLE 'save' \
+        "{ 'execute': 'snapshot-save',
+           'arguments': { 'job-id': 'save',
+                          'tag': 'test-$n',
+                          'vmstate': 'disk0',
+                          'devices': ['disk0'] } }"
+    _send_qemu_cmd $QEMU_HANDLE \
+        "{ 'execute': 'quit' }" 'return'
+    _cleanup_qemu
 done
 
 echo

-- 
2.56.0.rc0.29.g47ce80527c56


Reply via email to