diff options
Diffstat (limited to 'tests/qemu-iotests')
-rwxr-xr-x | tests/qemu-iotests/232 | 30 | ||||
-rw-r--r-- | tests/qemu-iotests/232.out | 20 | ||||
-rwxr-xr-x | tests/qemu-iotests/247 | 79 | ||||
-rw-r--r-- | tests/qemu-iotests/247.out | 22 | ||||
-rw-r--r-- | tests/qemu-iotests/group | 1 |
5 files changed, 102 insertions, 50 deletions
diff --git a/tests/qemu-iotests/232 b/tests/qemu-iotests/232 index 0de097fc88..2063f78876 100755 --- a/tests/qemu-iotests/232 +++ b/tests/qemu-iotests/232 @@ -144,36 +144,6 @@ run_qemu_info_block -blockdev driver=file,filename="$TEST_IMG",node-name=node0,a run_qemu_info_block -blockdev driver=file,filename="$TEST_IMG",node-name=node0,auto-read-only=on run_qemu_info_block -blockdev driver=file,filename="$TEST_IMG",node-name=node0 -echo -echo "=== Try commit to backing file with auto-read-only ===" -echo - -TEST_IMG="$TEST_IMG.0" _make_test_img $size -TEST_IMG="$TEST_IMG.1" _make_test_img $size -TEST_IMG="$TEST_IMG.2" _make_test_img $size -TEST_IMG="$TEST_IMG.3" _make_test_img $size -TEST_IMG="$TEST_IMG.4" _make_test_img $size - -(cat <<EOF -{"execute":"qmp_capabilities"} -{"execute":"block-commit", - "arguments":{"device":"format-4", "top-node": "format-2", "base-node":"format-0", "job-id":"job0"}} -EOF -sleep 1 -echo '{"execute":"quit"}' -) | $QEMU -qmp stdio -nographic -nodefaults \ - -blockdev file,node-name=file-0,filename=$TEST_IMG.0,auto-read-only=on \ - -blockdev qcow2,node-name=format-0,file=file-0,read-only=on \ - -blockdev file,node-name=file-1,filename=$TEST_IMG.1,auto-read-only=on \ - -blockdev qcow2,node-name=format-1,file=file-1,read-only=on,backing=format-0 \ - -blockdev file,node-name=file-2,filename=$TEST_IMG.2,auto-read-only=on \ - -blockdev qcow2,node-name=format-2,file=file-2,read-only=on,backing=format-1 \ - -blockdev file,node-name=file-3,filename=$TEST_IMG.3,auto-read-only=on \ - -blockdev qcow2,node-name=format-3,file=file-3,read-only=on,backing=format-2 \ - -blockdev file,node-name=file-4,filename=$TEST_IMG.4,auto-read-only=on \ - -blockdev qcow2,node-name=format-4,file=file-4,read-only=on,backing=format-3 | - _filter_qmp - # success, all done echo "*** done" rm -f $seq.full diff --git a/tests/qemu-iotests/232.out b/tests/qemu-iotests/232.out index 5bcc44bb62..3bd1a920af 100644 --- a/tests/qemu-iotests/232.out +++ b/tests/qemu-iotests/232.out @@ -56,24 +56,4 @@ QEMU_PROG: -blockdev driver=file,filename=TEST_DIR/t.IMGFMT,node-name=node0,read QEMU_PROG: -blockdev driver=file,filename=TEST_DIR/t.IMGFMT,node-name=node0,auto-read-only=off: Could not open 'TEST_DIR/t.IMGFMT': Permission denied node0: TEST_DIR/t.IMGFMT (file) QEMU_PROG: -blockdev driver=file,filename=TEST_DIR/t.IMGFMT,node-name=node0: Could not open 'TEST_DIR/t.IMGFMT': Permission denied - -=== Try commit to backing file with auto-read-only === - -Formatting 'TEST_DIR/t.IMGFMT.0', fmt=IMGFMT size=134217728 -Formatting 'TEST_DIR/t.IMGFMT.1', fmt=IMGFMT size=134217728 -Formatting 'TEST_DIR/t.IMGFMT.2', fmt=IMGFMT size=134217728 -Formatting 'TEST_DIR/t.IMGFMT.3', fmt=IMGFMT size=134217728 -Formatting 'TEST_DIR/t.IMGFMT.4', fmt=IMGFMT size=134217728 -QMP_VERSION -{"return": {}} -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}} -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "job0"}} -{"return": {}} -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "job0"}} -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "job0"}} -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "job0", "len": 134217728, "offset": 134217728, "speed": 0, "type": "commit"}} -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "job0"}} -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}} -{"return": {}} -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} *** done diff --git a/tests/qemu-iotests/247 b/tests/qemu-iotests/247 new file mode 100755 index 0000000000..fc50eb5dc1 --- /dev/null +++ b/tests/qemu-iotests/247 @@ -0,0 +1,79 @@ +#!/usr/bin/env bash +# +# Test for auto-read-only with commit block job +# +# Copyright (C) 2019 Red Hat, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +# creator +owner=kwolf@redhat.com + +seq=`basename $0` +echo "QA output created by $seq" + +status=1 # failure is the default! + +_cleanup() +{ + _cleanup_test_img + rm -f $TEST_IMG.[01234] +} +trap "_cleanup; exit \$status" 0 1 2 3 15 + +# get standard environment, filters and checks +. ./common.rc +. ./common.filter + +# Requires backing files and .bdrv_change_backing_file support +_supported_fmt qcow2 qed +_supported_proto file +_supported_os Linux + +size=128M + +echo +echo "=== Try commit to backing file with auto-read-only ===" +echo +TEST_IMG="$TEST_IMG.0" _make_test_img $size +TEST_IMG="$TEST_IMG.1" _make_test_img $size +TEST_IMG="$TEST_IMG.2" _make_test_img $size +TEST_IMG="$TEST_IMG.3" _make_test_img $size +TEST_IMG="$TEST_IMG.4" _make_test_img $size + +(cat <<EOF +{"execute":"qmp_capabilities"} +{"execute":"block-commit", + "arguments":{"device":"format-4", "top-node": "format-2", "base-node":"format-0", "job-id":"job0"}} +EOF +sleep 1 +echo '{"execute":"quit"}' +) | $QEMU -qmp stdio -nographic -nodefaults \ + -blockdev file,node-name=file-0,filename=$TEST_IMG.0,auto-read-only=on \ + -blockdev $IMGFMT,node-name=format-0,file=file-0,read-only=on \ + -blockdev file,node-name=file-1,filename=$TEST_IMG.1,auto-read-only=on \ + -blockdev $IMGFMT,node-name=format-1,file=file-1,read-only=on,backing=format-0 \ + -blockdev file,node-name=file-2,filename=$TEST_IMG.2,auto-read-only=on \ + -blockdev $IMGFMT,node-name=format-2,file=file-2,read-only=on,backing=format-1 \ + -blockdev file,node-name=file-3,filename=$TEST_IMG.3,auto-read-only=on \ + -blockdev $IMGFMT,node-name=format-3,file=file-3,read-only=on,backing=format-2 \ + -blockdev file,node-name=file-4,filename=$TEST_IMG.4,auto-read-only=on \ + -blockdev $IMGFMT,node-name=format-4,file=file-4,read-only=on,backing=format-3 | + _filter_qmp + +# success, all done +echo "*** done" +rm -f $seq.full +status=0 diff --git a/tests/qemu-iotests/247.out b/tests/qemu-iotests/247.out new file mode 100644 index 0000000000..e909e83994 --- /dev/null +++ b/tests/qemu-iotests/247.out @@ -0,0 +1,22 @@ +QA output created by 247 + +=== Try commit to backing file with auto-read-only === + +Formatting 'TEST_DIR/t.IMGFMT.0', fmt=IMGFMT size=134217728 +Formatting 'TEST_DIR/t.IMGFMT.1', fmt=IMGFMT size=134217728 +Formatting 'TEST_DIR/t.IMGFMT.2', fmt=IMGFMT size=134217728 +Formatting 'TEST_DIR/t.IMGFMT.3', fmt=IMGFMT size=134217728 +Formatting 'TEST_DIR/t.IMGFMT.4', fmt=IMGFMT size=134217728 +QMP_VERSION +{"return": {}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "job0"}} +{"return": {}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "job0"}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "job0"}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "job0", "len": 134217728, "offset": 134217728, "speed": 0, "type": "commit"}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "job0"}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}} +{"return": {}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} +*** done diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group index 7289309604..d192abaecf 100644 --- a/tests/qemu-iotests/group +++ b/tests/qemu-iotests/group @@ -245,3 +245,4 @@ 244 rw auto quick 245 rw auto 246 rw auto quick +247 rw auto quick |