Introduce qmp_qemu_io() to help with sending just one x-qemu-io command.

Signed-off-by: Marc-André Lureau <[email protected]>
---
 tests/qemu-iotests/tests/write-zeroes-unmap     | 42 +++++++------
 tests/qemu-iotests/tests/write-zeroes-unmap.out | 80 ++++++++++++-------------
 2 files changed, 64 insertions(+), 58 deletions(-)

diff --git a/tests/qemu-iotests/tests/write-zeroes-unmap 
b/tests/qemu-iotests/tests/write-zeroes-unmap
index 506ced647bc1..b5c019c85acf 100755
--- a/tests/qemu-iotests/tests/write-zeroes-unmap
+++ b/tests/qemu-iotests/tests/write-zeroes-unmap
@@ -33,27 +33,33 @@ _supported_fmt raw
 _supported_proto file
 _supported_os Linux
 _require_disk_usage
-_require_hmp
 
 create_test_image() {
     _make_test_img -f $IMGFMT 1m
 }
 
 filter_command() {
-    _filter_testdir | _filter_qemu_io | _filter_qemu | _filter_hmp
+    _filter_qmp | _filter_testdir | _filter_qemu_io | _filter_qemu
 }
 
 print_disk_usage() {
     du -sh $TEST_IMG | _filter_testdir
 }
 
+qmp_qemu_io() {
+    printf '%s\n' \
+        '{"execute":"qmp_capabilities"}' \
+        
"{\"execute\":\"x-qemu-io\",\"arguments\":{\"device\":\"none0\",\"command\":\"$1\"}}"
 \
+        '{"execute":"quit"}'
+}
+
 echo
 echo "=== defaults - write zeros ==="
 echo
 
 create_test_image
-echo -e 'qemu-io none0 "write -z 0 1m"\nquit' \
-    | $QEMU -monitor stdio -drive if=none,file=$TEST_IMG,format=$IMGFMT \
+qmp_qemu_io "write -z 0 1m" \
+    | $QEMU -qmp stdio -drive if=none,file=$TEST_IMG,format=$IMGFMT \
     | filter_command
 print_disk_usage
 
@@ -62,8 +68,8 @@ echo "=== defaults - write zeros unmap ==="
 echo
 
 create_test_image
-echo -e 'qemu-io none0 "write -zu 0 1m"\nquit' \
-    | $QEMU -monitor stdio -drive if=none,file=$TEST_IMG,format=$IMGFMT \
+qmp_qemu_io "write -zu 0 1m" \
+    | $QEMU -qmp stdio -drive if=none,file=$TEST_IMG,format=$IMGFMT \
     | filter_command
 print_disk_usage
 
@@ -73,8 +79,8 @@ echo "=== defaults - write actual zeros ==="
 echo
 
 create_test_image
-echo -e 'qemu-io none0 "write -P 0 0 1m"\nquit' \
-    | $QEMU -monitor stdio -drive if=none,file=$TEST_IMG,format=$IMGFMT \
+qmp_qemu_io "write -P 0 0 1m" \
+    | $QEMU -qmp stdio -drive if=none,file=$TEST_IMG,format=$IMGFMT \
     | filter_command
 print_disk_usage
 
@@ -83,8 +89,8 @@ echo "=== discard=off - write zeroes unmap ==="
 echo
 
 create_test_image
-echo -e 'qemu-io none0 "write -zu 0 1m"\nquit' \
-    | $QEMU -monitor stdio -drive 
if=none,file=$TEST_IMG,format=$IMGFMT,discard=off \
+qmp_qemu_io "write -zu 0 1m" \
+    | $QEMU -qmp stdio -drive 
if=none,file=$TEST_IMG,format=$IMGFMT,discard=off \
     | filter_command
 print_disk_usage
 
@@ -93,8 +99,8 @@ echo "=== detect-zeroes=on - write actual zeros ==="
 echo
 
 create_test_image
-echo -e 'qemu-io none0 "write -P 0 0 1m"\nquit' \
-    | $QEMU -monitor stdio -drive 
if=none,file=$TEST_IMG,format=$IMGFMT,detect-zeroes=on \
+qmp_qemu_io "write -P 0 0 1m" \
+    | $QEMU -qmp stdio -drive 
if=none,file=$TEST_IMG,format=$IMGFMT,detect-zeroes=on \
     | filter_command
 print_disk_usage
 
@@ -103,8 +109,8 @@ echo "=== detect-zeroes=on,discard=on - write actual zeros 
==="
 echo
 
 create_test_image
-echo -e 'qemu-io none0 "write -P 0 0 1m"\nquit' \
-    | $QEMU -monitor stdio -drive 
if=none,file=$TEST_IMG,format=$IMGFMT,detect-zeroes=on,discard=on \
+qmp_qemu_io "write -P 0 0 1m" \
+    | $QEMU -qmp stdio -drive 
if=none,file=$TEST_IMG,format=$IMGFMT,detect-zeroes=on,discard=on \
     | filter_command
 print_disk_usage
 
@@ -113,8 +119,8 @@ echo "=== discard=on - write zeroes ==="
 echo
 
 create_test_image
-echo -e 'qemu-io none0 "write -z 0 1m"\nquit' \
-    | $QEMU -monitor stdio -drive 
if=none,file=$TEST_IMG,format=$IMGFMT,discard=on \
+qmp_qemu_io "write -z 0 1m" \
+    | $QEMU -qmp stdio -drive if=none,file=$TEST_IMG,format=$IMGFMT,discard=on 
\
     | filter_command
 print_disk_usage
 
@@ -123,7 +129,7 @@ echo "=== discard=on - write zeroes unmap ==="
 echo
 
 create_test_image
-echo -e 'qemu-io none0 "write -zu 0 1m"\nquit' \
-    | $QEMU -monitor stdio -drive 
if=none,file=$TEST_IMG,format=$IMGFMT,discard=on \
+qmp_qemu_io "write -zu 0 1m" \
+    | $QEMU -qmp stdio -drive if=none,file=$TEST_IMG,format=$IMGFMT,discard=on 
\
     | filter_command
 print_disk_usage
diff --git a/tests/qemu-iotests/tests/write-zeroes-unmap.out 
b/tests/qemu-iotests/tests/write-zeroes-unmap.out
index c9319948976f..1ac940a8badc 100644
--- a/tests/qemu-iotests/tests/write-zeroes-unmap.out
+++ b/tests/qemu-iotests/tests/write-zeroes-unmap.out
@@ -3,79 +3,79 @@ QA output created by write-zeroes-unmap
 === defaults - write zeros ===
 
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576
-QEMU X.Y.Z monitor - type 'help' for more information
-(qemu) qemu-io none0 "write -z 0 1m"
-wrote 1048576/1048576 bytes at offset 0
-1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-(qemu) quit
+QMP_VERSION
+{"return": {}}
+{"return": {"human-readable-text": "wrote 1048576/1048576 bytes at offset 0\n1 
MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)\n"}}
+{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": 
"SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"return": {}}
 1.0M   TEST_DIR/t.raw
 
 === defaults - write zeros unmap ===
 
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576
-QEMU X.Y.Z monitor - type 'help' for more information
-(qemu) qemu-io none0 "write -zu 0 1m"
-wrote 1048576/1048576 bytes at offset 0
-1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-(qemu) quit
+QMP_VERSION
+{"return": {}}
+{"return": {"human-readable-text": "wrote 1048576/1048576 bytes at offset 0\n1 
MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)\n"}}
+{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": 
"SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"return": {}}
 1.0M   TEST_DIR/t.raw
 
 === defaults - write actual zeros ===
 
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576
-QEMU X.Y.Z monitor - type 'help' for more information
-(qemu) qemu-io none0 "write -P 0 0 1m"
-wrote 1048576/1048576 bytes at offset 0
-1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-(qemu) quit
+QMP_VERSION
+{"return": {}}
+{"return": {"human-readable-text": "wrote 1048576/1048576 bytes at offset 0\n1 
MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)\n"}}
+{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": 
"SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"return": {}}
 1.0M   TEST_DIR/t.raw
 
 === discard=off - write zeroes unmap ===
 
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576
-QEMU X.Y.Z monitor - type 'help' for more information
-(qemu) qemu-io none0 "write -zu 0 1m"
-wrote 1048576/1048576 bytes at offset 0
-1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-(qemu) quit
+QMP_VERSION
+{"return": {}}
+{"return": {"human-readable-text": "wrote 1048576/1048576 bytes at offset 0\n1 
MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)\n"}}
+{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": 
"SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"return": {}}
 1.0M   TEST_DIR/t.raw
 
 === detect-zeroes=on - write actual zeros ===
 
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576
-QEMU X.Y.Z monitor - type 'help' for more information
-(qemu) qemu-io none0 "write -P 0 0 1m"
-wrote 1048576/1048576 bytes at offset 0
-1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-(qemu) quit
+QMP_VERSION
+{"return": {}}
+{"return": {"human-readable-text": "wrote 1048576/1048576 bytes at offset 0\n1 
MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)\n"}}
+{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": 
"SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"return": {}}
 1.0M   TEST_DIR/t.raw
 
 === detect-zeroes=on,discard=on - write actual zeros ===
 
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576
-QEMU X.Y.Z monitor - type 'help' for more information
-(qemu) qemu-io none0 "write -P 0 0 1m"
-wrote 1048576/1048576 bytes at offset 0
-1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-(qemu) quit
+QMP_VERSION
+{"return": {}}
+{"return": {"human-readable-text": "wrote 1048576/1048576 bytes at offset 0\n1 
MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)\n"}}
+{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": 
"SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"return": {}}
 1.0M   TEST_DIR/t.raw
 
 === discard=on - write zeroes ===
 
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576
-QEMU X.Y.Z monitor - type 'help' for more information
-(qemu) qemu-io none0 "write -z 0 1m"
-wrote 1048576/1048576 bytes at offset 0
-1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-(qemu) quit
+QMP_VERSION
+{"return": {}}
+{"return": {"human-readable-text": "wrote 1048576/1048576 bytes at offset 0\n1 
MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)\n"}}
+{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": 
"SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"return": {}}
 1.0M   TEST_DIR/t.raw
 
 === discard=on - write zeroes unmap ===
 
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576
-QEMU X.Y.Z monitor - type 'help' for more information
-(qemu) qemu-io none0 "write -zu 0 1m"
-wrote 1048576/1048576 bytes at offset 0
-1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-(qemu) quit
+QMP_VERSION
+{"return": {}}
+{"return": {"human-readable-text": "wrote 1048576/1048576 bytes at offset 0\n1 
MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)\n"}}
+{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": 
"SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"return": {}}
 0      TEST_DIR/t.raw

-- 
2.56.0.rc0.29.g47ce80527c56


Reply via email to