iotests: fix remainining tests to work with LUKS
The tests 033, 140, 145 and 157 were all broken when run with LUKS, since they did not correctly use the required image opts args syntax to specify the decryption secret. Further, the 120 test simply does not make sense to run with luks, as the scenario exercised is not relevant. The test 181 was broken when run with LUKS because it didn't take account of fact that $TEST_IMG was already in image opts syntax. The launch_qemu helper also didn't register the secret object providing the LUKS password. Reviewed-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Message-id: 20170626123510.20134-3-berrange@redhat.com Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
parent
2c6f600642
commit
13a1d4a71b
@ -50,10 +50,18 @@ do_test()
|
||||
local align=$1
|
||||
local iocmd=$2
|
||||
local img=$3
|
||||
if [ "$IMGOPTSSYNTAX" = "true" ]
|
||||
then
|
||||
IO_OPEN_ARG="$img"
|
||||
IO_EXTRA_ARGS="--image-opts"
|
||||
else
|
||||
IO_OPEN_ARG="-o driver=$IMGFMT,file.align=$align blkdebug::$img"
|
||||
IO_EXTRA_ARGS=""
|
||||
fi
|
||||
{
|
||||
echo "open -o driver=$IMGFMT,file.align=$align blkdebug::$img"
|
||||
echo "open $IO_OPEN_ARG"
|
||||
echo $iocmd
|
||||
} | $QEMU_IO
|
||||
} | $QEMU_IO $IO_EXTRA_ARGS
|
||||
}
|
||||
|
||||
for write_zero_cmd in "write -z" "aio_write -z"; do
|
||||
|
@ -41,6 +41,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
|
||||
_supported_fmt generic
|
||||
_supported_proto file
|
||||
_supported_os Linux
|
||||
_unsupported_fmt luks
|
||||
|
||||
_make_test_img 64M
|
||||
|
||||
|
@ -52,8 +52,15 @@ _make_test_img 64k
|
||||
|
||||
$QEMU_IO -c 'write -P 42 0 64k' "$TEST_IMG" | _filter_qemu_io
|
||||
|
||||
if test "$IMGOPTSSYNTAX" = "true"
|
||||
then
|
||||
SYSEMU_DRIVE_ARG=if=none,media=cdrom,id=drv,"$TEST_IMG"
|
||||
else
|
||||
SYSEMU_DRIVE_ARG=if=none,media=cdrom,id=drv,file="$TEST_IMG",driver=$IMGFMT
|
||||
fi
|
||||
|
||||
keep_stderr=y \
|
||||
_launch_qemu -drive if=none,media=cdrom,id=drv,file="$TEST_IMG",format=$IMGFMT \
|
||||
_launch_qemu -drive $SYSEMU_DRIVE_ARG \
|
||||
2> >(_filter_nbd)
|
||||
|
||||
_send_qemu_cmd $QEMU_HANDLE \
|
||||
|
@ -43,8 +43,23 @@ _supported_proto generic
|
||||
_supported_os Linux
|
||||
|
||||
_make_test_img 1M
|
||||
echo quit | $QEMU -nographic -hda "$TEST_IMG" -incoming 'exec:true' -snapshot -serial none -monitor stdio |
|
||||
_filter_qemu | _filter_hmp
|
||||
|
||||
if test "$IMGOPTSSYNTAX" = "true"
|
||||
then
|
||||
SYSEMU_DRIVE_ARG=if=none,$TEST_IMG
|
||||
SYSEMU_EXTRA_ARGS=""
|
||||
if [ -n "$IMGKEYSECRET" ]; then
|
||||
SECRET_ARG="secret,id=keysec0,data=$IMGKEYSECRET"
|
||||
SYSEMU_EXTRA_ARGS="-object $SECRET_ARG"
|
||||
fi
|
||||
else
|
||||
SYSEMU_DRIVE_ARG=if=none,file="$TEST_IMG",driver=$IMGFMT
|
||||
SYSEMU_EXTRA_ARGS=""
|
||||
fi
|
||||
|
||||
echo quit | $QEMU -nographic $SYSEMU_EXTRA_ARGS -drive $SYSEMU_DRIVE_ARG \
|
||||
-incoming 'exec:true' -snapshot -serial none -monitor stdio \
|
||||
| _filter_qemu | _filter_hmp
|
||||
|
||||
# success, all done
|
||||
echo "*** done"
|
||||
|
@ -43,7 +43,6 @@ _supported_os Linux
|
||||
|
||||
function do_run_qemu()
|
||||
{
|
||||
echo Testing: "$@"
|
||||
(
|
||||
if ! test -t 0; then
|
||||
while read cmd; do
|
||||
@ -63,7 +62,18 @@ function run_qemu()
|
||||
|
||||
|
||||
size=128M
|
||||
drive="if=none,file=$TEST_IMG,driver=$IMGFMT"
|
||||
if test "$IMGOPTSSYNTAX" = "true"
|
||||
then
|
||||
SYSEMU_DRIVE_ARG=if=none,$TEST_IMG
|
||||
SYSEMU_EXTRA_ARGS=""
|
||||
if [ -n "$IMGKEYSECRET" ]; then
|
||||
SECRET_ARG="secret,id=keysec0,data=$IMGKEYSECRET"
|
||||
SYSEMU_EXTRA_ARGS="-object $SECRET_ARG"
|
||||
fi
|
||||
else
|
||||
SYSEMU_DRIVE_ARG=if=none,file="$TEST_IMG",driver=$IMGFMT
|
||||
SYSEMU_EXTRA_ARGS=""
|
||||
fi
|
||||
|
||||
_make_test_img $size
|
||||
|
||||
@ -76,8 +86,9 @@ echo
|
||||
|
||||
for cache in "writeback" "writethrough"; do
|
||||
for wce in "" ",write-cache=auto" ",write-cache=on" ",write-cache=off"; do
|
||||
echo "Testing: cache='$cache' wce='$wce'"
|
||||
echo "info block" \
|
||||
| run_qemu -drive "$drive,cache=$cache" \
|
||||
| run_qemu $SYSEMU_EXTRA_ARGS -drive "$SYSEMU_DRIVE_ARG,cache=$cache" \
|
||||
-device "virtio-blk,drive=none0$wce" \
|
||||
| grep -e "Testing" -e "Cache mode"
|
||||
done
|
||||
|
@ -3,20 +3,20 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
|
||||
|
||||
=== Setting WCE with qdev and with manually created BB ===
|
||||
|
||||
Testing: -drive if=none,file=TEST_DIR/t.IMGFMT,driver=IMGFMT,cache=writeback -device virtio-blk,drive=none0
|
||||
Testing: cache='writeback' wce=''
|
||||
Cache mode: writeback
|
||||
Testing: -drive if=none,file=TEST_DIR/t.IMGFMT,driver=IMGFMT,cache=writeback -device virtio-blk,drive=none0,write-cache=auto
|
||||
Testing: cache='writeback' wce=',write-cache=auto'
|
||||
Cache mode: writeback
|
||||
Testing: -drive if=none,file=TEST_DIR/t.IMGFMT,driver=IMGFMT,cache=writeback -device virtio-blk,drive=none0,write-cache=on
|
||||
Testing: cache='writeback' wce=',write-cache=on'
|
||||
Cache mode: writeback
|
||||
Testing: -drive if=none,file=TEST_DIR/t.IMGFMT,driver=IMGFMT,cache=writeback -device virtio-blk,drive=none0,write-cache=off
|
||||
Testing: cache='writeback' wce=',write-cache=off'
|
||||
Cache mode: writethrough
|
||||
Testing: -drive if=none,file=TEST_DIR/t.IMGFMT,driver=IMGFMT,cache=writethrough -device virtio-blk,drive=none0
|
||||
Testing: cache='writethrough' wce=''
|
||||
Cache mode: writethrough
|
||||
Testing: -drive if=none,file=TEST_DIR/t.IMGFMT,driver=IMGFMT,cache=writethrough -device virtio-blk,drive=none0,write-cache=auto
|
||||
Testing: cache='writethrough' wce=',write-cache=auto'
|
||||
Cache mode: writethrough
|
||||
Testing: -drive if=none,file=TEST_DIR/t.IMGFMT,driver=IMGFMT,cache=writethrough -device virtio-blk,drive=none0,write-cache=on
|
||||
Testing: cache='writethrough' wce=',write-cache=on'
|
||||
Cache mode: writeback
|
||||
Testing: -drive if=none,file=TEST_DIR/t.IMGFMT,driver=IMGFMT,cache=writethrough -device virtio-blk,drive=none0,write-cache=off
|
||||
Testing: cache='writethrough' wce=',write-cache=off'
|
||||
Cache mode: writethrough
|
||||
*** done
|
||||
|
@ -41,7 +41,7 @@ _unsupported_fmt raw
|
||||
|
||||
|
||||
size=256K
|
||||
IMGFMT=raw IMGOPTS= _make_test_img $size | _filter_imgfmt
|
||||
IMGFMT=raw IMGKEYSECRET= IMGOPTS= _make_test_img $size | _filter_imgfmt
|
||||
|
||||
echo
|
||||
echo "== reading wrong format should fail =="
|
||||
|
@ -57,13 +57,24 @@ echo
|
||||
|
||||
qemu_comm_method="monitor"
|
||||
|
||||
if [ "$IMGOPTSSYNTAX" = "true" ]; then
|
||||
_launch_qemu \
|
||||
-drive "${TEST_IMG}",cache=${CACHEMODE},id=disk
|
||||
else
|
||||
_launch_qemu \
|
||||
-drive file="${TEST_IMG}",cache=${CACHEMODE},driver=$IMGFMT,id=disk
|
||||
fi
|
||||
src=$QEMU_HANDLE
|
||||
|
||||
if [ "$IMGOPTSSYNTAX" = "true" ]; then
|
||||
_launch_qemu \
|
||||
-drive "${TEST_IMG}",cache=${CACHEMODE},id=disk \
|
||||
-incoming "unix:${MIG_SOCKET}"
|
||||
else
|
||||
_launch_qemu \
|
||||
-drive file="${TEST_IMG}",cache=${CACHEMODE},driver=$IMGFMT,id=disk \
|
||||
-incoming "unix:${MIG_SOCKET}"
|
||||
fi
|
||||
dest=$QEMU_HANDLE
|
||||
|
||||
echo
|
||||
|
@ -153,14 +153,19 @@ function _launch_qemu()
|
||||
mkfifo "${fifo_out}"
|
||||
mkfifo "${fifo_in}"
|
||||
|
||||
object_options=
|
||||
if [ -n "$IMGKEYSECRET" ]; then
|
||||
object_options="--object secret,id=keysec0,data=$IMGKEYSECRET"
|
||||
fi
|
||||
|
||||
if [ -z "$keep_stderr" ]; then
|
||||
QEMU_NEED_PID='y'\
|
||||
${QEMU} -nographic -serial none ${comm} "${@}" >"${fifo_out}" \
|
||||
${QEMU} ${object_options} -nographic -serial none ${comm} "${@}" >"${fifo_out}" \
|
||||
2>&1 \
|
||||
<"${fifo_in}" &
|
||||
elif [ "$keep_stderr" = "y" ]; then
|
||||
QEMU_NEED_PID='y'\
|
||||
${QEMU} -nographic -serial none ${comm} "${@}" >"${fifo_out}" \
|
||||
${QEMU} ${object_options} -nographic -serial none ${comm} "${@}" >"${fifo_out}" \
|
||||
<"${fifo_in}" &
|
||||
else
|
||||
exit 1
|
||||
|
Loading…
Reference in New Issue
Block a user