iotests: Check whether luks works

Whenever running an iotest for the luks format, we should check whether
luks actually really works.

Tests that try to create luks-encrypted qcow2 images should do the same.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20200625125548.870061-7-mreitz@redhat.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
This commit is contained in:
Max Reitz 2020-06-25 14:55:35 +02:00
parent 6649f4bd29
commit d2a839ede8
10 changed files with 16 additions and 0 deletions

View File

@ -39,6 +39,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto file _supported_proto file
_supported_os Linux _supported_os Linux
_require_working_luks
do_run_qemu() do_run_qemu()
{ {

View File

@ -41,6 +41,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt raw qcow2 _supported_fmt raw qcow2
_supported_proto file _supported_proto file
_supported_os Linux _supported_os Linux
_require_working_luks
echo "== Input validation ==" echo "== Input validation =="
echo echo

View File

@ -39,6 +39,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto generic _supported_proto generic
_supported_os Linux _supported_os Linux
_require_working_luks
size=16M size=16M

View File

@ -39,6 +39,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto generic _supported_proto generic
_supported_os Linux _supported_os Linux
_require_working_luks
size=16M size=16M

View File

@ -39,6 +39,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto generic _supported_proto generic
_supported_os Linux _supported_os Linux
_require_working_luks
size=16M size=16M

View File

@ -24,6 +24,7 @@ import iotests
from iotests import imgfmt from iotests import imgfmt
iotests.script_initialize(supported_fmts=['qcow2']) iotests.script_initialize(supported_fmts=['qcow2'])
iotests.verify_working_luks()
with iotests.FilePath('t.qcow2') as disk_path, \ with iotests.FilePath('t.qcow2') as disk_path, \
iotests.FilePath('t.qcow2.base') as backing_path, \ iotests.FilePath('t.qcow2.base') as backing_path, \

View File

@ -40,6 +40,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto generic _supported_proto generic
_supported_os Linux _supported_os Linux
_require_working_luks
size=1M size=1M

View File

@ -39,6 +39,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto generic _supported_proto generic
_supported_os Linux _supported_os Linux
_require_working_luks
size=1M size=1M

View File

@ -605,6 +605,9 @@ _supported_fmt()
# setting IMGFMT_GENERIC to false. # setting IMGFMT_GENERIC to false.
for f; do for f; do
if [ "$f" = "$IMGFMT" -o "$f" = "generic" -a "$IMGFMT_GENERIC" = "true" ]; then if [ "$f" = "$IMGFMT" -o "$f" = "generic" -a "$IMGFMT_GENERIC" = "true" ]; then
if [ "$IMGFMT" = "luks" ]; then
_require_working_luks
fi
return return
fi fi
done done

View File

@ -1010,12 +1010,17 @@ def _verify_image_format(supported_fmts: Sequence[str] = (),
# similar to # similar to
# _supported_fmt generic # _supported_fmt generic
# for bash tests # for bash tests
if imgfmt == 'luks':
verify_working_luks()
return return
not_sup = supported_fmts and (imgfmt not in supported_fmts) not_sup = supported_fmts and (imgfmt not in supported_fmts)
if not_sup or (imgfmt in unsupported_fmts): if not_sup or (imgfmt in unsupported_fmts):
notrun('not suitable for this image format: %s' % imgfmt) notrun('not suitable for this image format: %s' % imgfmt)
if imgfmt == 'luks':
verify_working_luks()
def _verify_protocol(supported: Sequence[str] = (), def _verify_protocol(supported: Sequence[str] = (),
unsupported: Sequence[str] = ()) -> None: unsupported: Sequence[str] = ()) -> None:
assert not (supported and unsupported) assert not (supported and unsupported)