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