Browse Source
Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>pull/77/head
3 changed files with 207 additions and 0 deletions
@ -0,0 +1,147 @@ |
|||
#!/bin/bash |
|||
# |
|||
# Test for auto-read-only |
|||
# |
|||
# Copyright (C) 2018 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" |
|||
|
|||
here=`pwd` |
|||
status=1 # failure is the default! |
|||
|
|||
_cleanup() |
|||
{ |
|||
_cleanup_test_img |
|||
rm -f $TEST_IMG.snap |
|||
} |
|||
trap "_cleanup; exit \$status" 0 1 2 3 15 |
|||
|
|||
# get standard environment, filters and checks |
|||
. ./common.rc |
|||
. ./common.filter |
|||
|
|||
_supported_fmt generic |
|||
_supported_proto file |
|||
_supported_os Linux |
|||
|
|||
function do_run_qemu() |
|||
{ |
|||
echo Testing: "$@" |
|||
( |
|||
if ! test -t 0; then |
|||
while read cmd; do |
|||
echo $cmd |
|||
done |
|||
fi |
|||
echo quit |
|||
) | $QEMU -nographic -monitor stdio -nodefaults "$@" |
|||
echo |
|||
} |
|||
|
|||
function run_qemu() |
|||
{ |
|||
do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qemu | _filter_hmp | |
|||
_filter_generated_node_ids | _filter_imgfmt |
|||
} |
|||
|
|||
function run_qemu_info_block() |
|||
{ |
|||
echo "info block -n" | run_qemu "$@" | grep -e "(file" -e "QEMU_PROG" |
|||
} |
|||
|
|||
size=128M |
|||
|
|||
_make_test_img $size |
|||
|
|||
echo |
|||
echo "=== -drive with read-write image: read-only/auto-read-only combinations ===" |
|||
echo |
|||
|
|||
run_qemu_info_block -drive driver=file,file="$TEST_IMG",if=none,read-only=on,auto-read-only=off |
|||
run_qemu_info_block -drive driver=file,file="$TEST_IMG",if=none,read-only=on,auto-read-only=on |
|||
run_qemu_info_block -drive driver=file,file="$TEST_IMG",if=none,read-only=on |
|||
echo |
|||
run_qemu_info_block -drive driver=file,file="$TEST_IMG",if=none,read-only=off,auto-read-only=off |
|||
run_qemu_info_block -drive driver=file,file="$TEST_IMG",if=none,read-only=off,auto-read-only=on |
|||
run_qemu_info_block -drive driver=file,file="$TEST_IMG",if=none,read-only=off |
|||
echo |
|||
run_qemu_info_block -drive driver=file,file="$TEST_IMG",if=none,auto-read-only=off |
|||
run_qemu_info_block -drive driver=file,file="$TEST_IMG",if=none,auto-read-only=on |
|||
run_qemu_info_block -drive driver=file,file="$TEST_IMG",if=none |
|||
|
|||
echo |
|||
echo "=== -drive with read-only image: read-only/auto-read-only combinations ===" |
|||
echo |
|||
|
|||
chmod a-w $TEST_IMG |
|||
|
|||
run_qemu_info_block -drive driver=file,file="$TEST_IMG",if=none,read-only=on,auto-read-only=off |
|||
run_qemu_info_block -drive driver=file,file="$TEST_IMG",if=none,read-only=on,auto-read-only=on |
|||
run_qemu_info_block -drive driver=file,file="$TEST_IMG",if=none,read-only=on |
|||
echo |
|||
run_qemu_info_block -drive driver=file,file="$TEST_IMG",if=none,read-only=off,auto-read-only=off |
|||
run_qemu_info_block -drive driver=file,file="$TEST_IMG",if=none,read-only=off,auto-read-only=on |
|||
run_qemu_info_block -drive driver=file,file="$TEST_IMG",if=none,read-only=off |
|||
echo |
|||
run_qemu_info_block -drive driver=file,file="$TEST_IMG",if=none,auto-read-only=off |
|||
run_qemu_info_block -drive driver=file,file="$TEST_IMG",if=none,auto-read-only=on |
|||
run_qemu_info_block -drive driver=file,file="$TEST_IMG",if=none |
|||
|
|||
echo |
|||
echo "=== -blockdev with read-write image: read-only/auto-read-only combinations ===" |
|||
echo |
|||
|
|||
chmod a+w $TEST_IMG |
|||
|
|||
run_qemu_info_block -blockdev driver=file,filename="$TEST_IMG",node-name=node0,read-only=on,auto-read-only=off |
|||
run_qemu_info_block -blockdev driver=file,filename="$TEST_IMG",node-name=node0,read-only=on,auto-read-only=on |
|||
run_qemu_info_block -blockdev driver=file,filename="$TEST_IMG",node-name=node0,read-only=on |
|||
echo |
|||
run_qemu_info_block -blockdev driver=file,filename="$TEST_IMG",node-name=node0,read-only=off,auto-read-only=off |
|||
run_qemu_info_block -blockdev driver=file,filename="$TEST_IMG",node-name=node0,read-only=off,auto-read-only=on |
|||
run_qemu_info_block -blockdev driver=file,filename="$TEST_IMG",node-name=node0,read-only=off |
|||
echo |
|||
run_qemu_info_block -blockdev driver=file,filename="$TEST_IMG",node-name=node0,auto-read-only=off |
|||
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 "=== -blockdev with read-only image: read-only/auto-read-only combinations ===" |
|||
echo |
|||
|
|||
chmod a-w $TEST_IMG |
|||
|
|||
run_qemu_info_block -blockdev driver=file,filename="$TEST_IMG",node-name=node0,read-only=on,auto-read-only=off |
|||
run_qemu_info_block -blockdev driver=file,filename="$TEST_IMG",node-name=node0,read-only=on,auto-read-only=on |
|||
run_qemu_info_block -blockdev driver=file,filename="$TEST_IMG",node-name=node0,read-only=on |
|||
echo |
|||
run_qemu_info_block -blockdev driver=file,filename="$TEST_IMG",node-name=node0,read-only=off,auto-read-only=off |
|||
run_qemu_info_block -blockdev driver=file,filename="$TEST_IMG",node-name=node0,read-only=off,auto-read-only=on |
|||
run_qemu_info_block -blockdev driver=file,filename="$TEST_IMG",node-name=node0,read-only=off |
|||
echo |
|||
run_qemu_info_block -blockdev driver=file,filename="$TEST_IMG",node-name=node0,auto-read-only=off |
|||
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 |
|||
|
|||
# success, all done |
|||
echo "*** done" |
|||
rm -f $seq.full |
|||
status=0 |
|||
@ -0,0 +1,59 @@ |
|||
QA output created by 232 |
|||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 |
|||
|
|||
=== -drive with read-write image: read-only/auto-read-only combinations === |
|||
|
|||
NODE_NAME: TEST_DIR/t.IMGFMT (file, read-only) |
|||
NODE_NAME: TEST_DIR/t.IMGFMT (file, read-only) |
|||
NODE_NAME: TEST_DIR/t.IMGFMT (file, read-only) |
|||
|
|||
NODE_NAME: TEST_DIR/t.IMGFMT (file) |
|||
NODE_NAME: TEST_DIR/t.IMGFMT (file) |
|||
NODE_NAME: TEST_DIR/t.IMGFMT (file) |
|||
|
|||
NODE_NAME: TEST_DIR/t.IMGFMT (file) |
|||
NODE_NAME: TEST_DIR/t.IMGFMT (file) |
|||
NODE_NAME: TEST_DIR/t.IMGFMT (file) |
|||
|
|||
=== -drive with read-only image: read-only/auto-read-only combinations === |
|||
|
|||
NODE_NAME: TEST_DIR/t.IMGFMT (file, read-only) |
|||
NODE_NAME: TEST_DIR/t.IMGFMT (file, read-only) |
|||
NODE_NAME: TEST_DIR/t.IMGFMT (file, read-only) |
|||
|
|||
QEMU_PROG: -drive driver=file,file=TEST_DIR/t.IMGFMT,if=none,read-only=off,auto-read-only=off: Could not open 'TEST_DIR/t.IMGFMT': Permission denied |
|||
NODE_NAME: TEST_DIR/t.IMGFMT (file, read-only) |
|||
NODE_NAME: TEST_DIR/t.IMGFMT (file, read-only) |
|||
|
|||
QEMU_PROG: -drive driver=file,file=TEST_DIR/t.IMGFMT,if=none,auto-read-only=off: Could not open 'TEST_DIR/t.IMGFMT': Permission denied |
|||
NODE_NAME: TEST_DIR/t.IMGFMT (file, read-only) |
|||
NODE_NAME: TEST_DIR/t.IMGFMT (file, read-only) |
|||
|
|||
=== -blockdev with read-write image: read-only/auto-read-only combinations === |
|||
|
|||
node0: TEST_DIR/t.IMGFMT (file, read-only) |
|||
node0: TEST_DIR/t.IMGFMT (file, read-only) |
|||
node0: TEST_DIR/t.IMGFMT (file, read-only) |
|||
|
|||
node0: TEST_DIR/t.IMGFMT (file) |
|||
node0: TEST_DIR/t.IMGFMT (file) |
|||
node0: TEST_DIR/t.IMGFMT (file) |
|||
|
|||
node0: TEST_DIR/t.IMGFMT (file) |
|||
node0: TEST_DIR/t.IMGFMT (file) |
|||
node0: TEST_DIR/t.IMGFMT (file) |
|||
|
|||
=== -blockdev with read-only image: read-only/auto-read-only combinations === |
|||
|
|||
node0: TEST_DIR/t.IMGFMT (file, read-only) |
|||
node0: TEST_DIR/t.IMGFMT (file, read-only) |
|||
node0: TEST_DIR/t.IMGFMT (file, read-only) |
|||
|
|||
QEMU_PROG: -blockdev driver=file,filename=TEST_DIR/t.IMGFMT,node-name=node0,read-only=off,auto-read-only=off: Could not open 'TEST_DIR/t.IMGFMT': Permission denied |
|||
node0: TEST_DIR/t.IMGFMT (file, read-only) |
|||
QEMU_PROG: -blockdev driver=file,filename=TEST_DIR/t.IMGFMT,node-name=node0,read-only=off: Could not open 'TEST_DIR/t.IMGFMT': Permission denied |
|||
|
|||
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, read-only) |
|||
QEMU_PROG: -blockdev driver=file,filename=TEST_DIR/t.IMGFMT,node-name=node0: Could not open 'TEST_DIR/t.IMGFMT': Permission denied |
|||
*** done |
|||
Loading…
Reference in new issue