Tests 067 and 087 filter the actual image size because it depends on the host filesystem (and is not part of the respective test). Since this is generally true, we should have a common filter function for this, so let's pull out the sed line from both tests into such a function. Signed-off-by: Max Reitz <mreitz@redhat.com> Message-id: 20171009163456.485-2-mreitz@redhat.com Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Jeff Cody <jcody@redhat.com> Signed-off-by: Max Reitz <mreitz@redhat.com>
206 lines
4.1 KiB
Bash
Executable file
206 lines
4.1 KiB
Bash
Executable file
#!/bin/bash
|
|
#
|
|
# Test unsupported blockdev-add cases
|
|
#
|
|
# Copyright (C) 2014 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!
|
|
|
|
# get standard environment, filters and checks
|
|
. ./common.rc
|
|
. ./common.filter
|
|
|
|
_supported_fmt qcow2
|
|
_supported_proto file
|
|
_supported_os Linux
|
|
|
|
function do_run_qemu()
|
|
{
|
|
echo Testing: "$@"
|
|
$QEMU -nographic -qmp stdio -serial none "$@"
|
|
echo
|
|
}
|
|
|
|
function run_qemu()
|
|
{
|
|
do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qmp \
|
|
| _filter_qemu | _filter_imgfmt \
|
|
| _filter_actual_image_size
|
|
}
|
|
|
|
size=128M
|
|
|
|
_make_test_img $size
|
|
|
|
echo
|
|
echo === Missing ID and node-name ===
|
|
echo
|
|
|
|
run_qemu <<EOF
|
|
{ "execute": "qmp_capabilities" }
|
|
{ "execute": "blockdev-add",
|
|
"arguments": {
|
|
"driver": "$IMGFMT",
|
|
"file": {
|
|
"driver": "file",
|
|
"filename": "$TEST_IMG"
|
|
}
|
|
}
|
|
}
|
|
{ "execute": "quit" }
|
|
EOF
|
|
|
|
echo
|
|
echo === Duplicate ID ===
|
|
echo
|
|
|
|
run_qemu -drive driver=$IMGFMT,id=disk,node-name=test-node,file="$TEST_IMG" <<EOF
|
|
{ "execute": "qmp_capabilities" }
|
|
{ "execute": "blockdev-add",
|
|
"arguments": {
|
|
"driver": "$IMGFMT",
|
|
"node-name": "disk",
|
|
"file": {
|
|
"driver": "null-co"
|
|
}
|
|
}
|
|
}
|
|
{ "execute": "blockdev-add",
|
|
"arguments": {
|
|
"driver": "$IMGFMT",
|
|
"node-name": "test-node",
|
|
"file": {
|
|
"driver": "null-co"
|
|
}
|
|
}
|
|
}
|
|
{ "execute": "quit" }
|
|
EOF
|
|
|
|
echo
|
|
echo === aio=native without O_DIRECT ===
|
|
echo
|
|
|
|
run_qemu <<EOF
|
|
{ "execute": "qmp_capabilities" }
|
|
{ "execute": "blockdev-add",
|
|
"arguments": {
|
|
"driver": "$IMGFMT",
|
|
"node-name": "disk",
|
|
"file": {
|
|
"driver": "file",
|
|
"filename": "$TEST_IMG",
|
|
"aio": "native"
|
|
}
|
|
}
|
|
}
|
|
{ "execute": "quit" }
|
|
EOF
|
|
|
|
echo
|
|
echo === Encrypted image QCow ===
|
|
echo
|
|
|
|
_make_test_img --object secret,id=sec0,data=123456 -o encryption=on,encrypt.key-secret=sec0 $size
|
|
run_qemu <<EOF
|
|
{ "execute": "qmp_capabilities" }
|
|
{ "execute": "object-add",
|
|
"arguments": {
|
|
"qom-type": "secret",
|
|
"id": "sec0",
|
|
"props": {
|
|
"data": "123456"
|
|
}
|
|
}
|
|
}
|
|
{ "execute": "blockdev-add",
|
|
"arguments": {
|
|
"driver": "$IMGFMT",
|
|
"node-name": "disk",
|
|
"file": {
|
|
"driver": "file",
|
|
"filename": "$TEST_IMG"
|
|
},
|
|
"encrypt": {
|
|
"format": "aes",
|
|
"key-secret": "sec0"
|
|
}
|
|
}
|
|
}
|
|
{ "execute": "quit" }
|
|
EOF
|
|
|
|
echo
|
|
echo === Encrypted image LUKS ===
|
|
echo
|
|
|
|
_make_test_img --object secret,id=sec0,data=123456 -o encrypt.format=luks,encrypt.key-secret=sec0 $size
|
|
run_qemu <<EOF
|
|
{ "execute": "qmp_capabilities" }
|
|
{ "execute": "object-add",
|
|
"arguments": {
|
|
"qom-type": "secret",
|
|
"id": "sec0",
|
|
"props": {
|
|
"data": "123456"
|
|
}
|
|
}
|
|
}
|
|
{ "execute": "blockdev-add",
|
|
"arguments": {
|
|
"driver": "$IMGFMT",
|
|
"node-name": "disk",
|
|
"file": {
|
|
"driver": "file",
|
|
"filename": "$TEST_IMG"
|
|
},
|
|
"encrypt": {
|
|
"format": "luks",
|
|
"key-secret": "sec0"
|
|
}
|
|
}
|
|
}
|
|
{ "execute": "quit" }
|
|
EOF
|
|
|
|
echo
|
|
echo === Missing driver ===
|
|
echo
|
|
|
|
_make_test_img --object secret,id=sec0,data=123456 -o encryption=on,encrypt.key-secret=sec0 $size
|
|
run_qemu -S <<EOF
|
|
{ "execute": "qmp_capabilities" }
|
|
{ "execute": "blockdev-add",
|
|
"arguments": {
|
|
"node-name": "disk"
|
|
}
|
|
}
|
|
{ "execute": "quit" }
|
|
EOF
|
|
|
|
# success, all done
|
|
echo "*** done"
|
|
rm -f $seq.full
|
|
status=0
|