[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 05/19] iotests.py: Add (verify|has)_working_luks()
From: |
Max Reitz |
Subject: |
[PATCH 05/19] iotests.py: Add (verify|has)_working_luks() |
Date: |
Thu, 25 Jun 2020 14:55:34 +0200 |
Similar to _require_working_luks for bash tests, these functions can be
used to check whether our luks driver can actually create images.
Signed-off-by: Max Reitz <mreitz@redhat.com>
---
tests/qemu-iotests/iotests.py | 39 +++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index eee94e18cc..039170a8a3 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -1052,6 +1052,45 @@ def verify_quorum():
if not supports_quorum():
notrun('quorum support missing')
+def has_working_luks() -> Tuple[bool, str]:
+ """
+ Check whether our LUKS driver can actually create images
+ (this extends to LUKS encryption for qcow2).
+
+ If not, return the reason why.
+ """
+
+ img_file = f'{test_dir}/luks-test.luks'
+ (output, status) = \
+ qemu_img_pipe_and_status('create', '-f', 'luks',
+ '--object', luks_default_secret_object,
+ '-o', luks_default_key_secret_opt,
+ '-o', 'iter-time=10',
+ img_file, '1G')
+ try:
+ os.remove(img_file)
+ except OSError:
+ pass
+
+ if status != 0:
+ reason = output
+ for line in output.splitlines():
+ if img_file + ':' in line:
+ reason = line.split(img_file + ':', 1)[1].strip()
+ break
+
+ return (False, reason)
+ else:
+ return (True, '')
+
+def verify_working_luks():
+ """
+ Skip test suite if LUKS does not work
+ """
+ (working, reason) = has_working_luks()
+ if not working:
+ notrun(reason)
+
def qemu_pipe(*args):
"""
Run qemu with an option to print something and exit (e.g. a help option).
--
2.26.2
- [PATCH 00/19] block: LUKS encryption slot management + iotest tweaks, Max Reitz, 2020/06/25
- [PATCH 02/19] iotests: filter few more luks specific create options, Max Reitz, 2020/06/25
- [PATCH 03/19] iotests/common.rc: Add _require_working_luks, Max Reitz, 2020/06/25
- [PATCH 01/19] iotests: Make _filter_img_create more active, Max Reitz, 2020/06/25
- [PATCH 04/19] iotests.py: Add qemu_img_pipe_and_status(), Max Reitz, 2020/06/25
- [PATCH 05/19] iotests.py: Add (verify|has)_working_luks(),
Max Reitz <=
- [PATCH 06/19] iotests: Check whether luks works, Max Reitz, 2020/06/25
- [PATCH 07/19] qcrypto/core: add generic infrastructure for crypto options amendment, Max Reitz, 2020/06/25
- [PATCH 08/19] qcrypto/luks: implement encryption key management, Max Reitz, 2020/06/25
- [PATCH 09/19] block/amend: add 'force' option, Max Reitz, 2020/06/25
- [PATCH 10/19] block/amend: separate amend and create options for qemu-img, Max Reitz, 2020/06/25
- [PATCH 12/19] block/crypto: rename two functions, Max Reitz, 2020/06/25