On Tue, Jan 30, 2024 at 01:37:25PM +0800, yong.hu...@smartx.com wrote: > From: Hyman Huang <yong.hu...@smartx.com> > > Also, add a section to the MAINTAINERS file for detached > LUKS header, it only has a test case in it currently. > > Signed-off-by: Hyman Huang <yong.hu...@smartx.com> > --- > MAINTAINERS | 5 + > tests/qemu-iotests/tests/luks-detached-header | 218 ++++++++++++++++++ > .../tests/luks-detached-header.out | 5 + > 3 files changed, 228 insertions(+) > create mode 100755 tests/qemu-iotests/tests/luks-detached-header > create mode 100644 tests/qemu-iotests/tests/luks-detached-header.out
Pylint has some complaints on this which I needed to fix. Most of the issues were long line length related. Rather than manmually fix it, I decided to run it through the 'black -l 80' to bulk reformat in a standard style. There were a few bits black didn't want to fix, so I refactored a couple. > diff --git a/tests/qemu-iotests/tests/luks-detached-header > b/tests/qemu-iotests/tests/luks-detached-header > new file mode 100755 > index 0000000000..f0b5f3921c > --- /dev/null > +++ b/tests/qemu-iotests/tests/luks-detached-header > @@ -0,0 +1,218 @@ > +#!/usr/bin/env python3 > +# group: rw auto > +# > +# Test LUKS volume with detached header > +# > +# Copyright (C) 2024 SmartX Inc. > +# > +# Authors: > +# Hyman Huang <yong.hu...@smartx.com> > +# > +# 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/>. > +# > + > +import os > +import iotests > +from iotests import imgfmt, qemu_img_create, img_info_log, qemu_img_info, > QMPTestCase img_info_log si unused, so I dropped that. > + > + > +image_size = 128 * 1024 * 1024 > + > +luks_img = os.path.join(iotests.test_dir, 'luks.img') > +detached_header_img1 = os.path.join(iotests.test_dir, 'detached_header.img1') > +detached_header_img2 = os.path.join(iotests.test_dir, 'detached_header.img2') > +detached_payload_raw_img = os.path.join(iotests.test_dir, > 'detached_payload_raw.img') > +detached_payload_qcow2_img = os.path.join(iotests.test_dir, > 'detached_payload_qcow2.img') > +detached_header_raw_img = \ > + > "json:{\"driver\":\"luks\",\"file\":{\"filename\":\"%s\"},\"header\":{\"filename\":\"%s\"}}" > % (detached_payload_raw_img, detached_header_img1) > +detached_header_qcow2_img = \ > + > "json:{\"driver\":\"luks\",\"file\":{\"filename\":\"%s\"},\"header\":{\"filename\":\"%s\"}}" > % (detached_payload_qcow2_img, detached_header_img2) Black doesn't like to break strings, so I decided to turn this into python objects and get rid of the formatting: detached_header_raw_img = "json:" + json.dumps( { "driver": "luks", "file": {"filename": detached_payload_raw_img}, "header": { "filename": detached_header_img1, }, } ) > + # Detached LUKS header with raw payload > + result = self.vm.qmp('human-monitor-command', > + command_line='qemu-io luks-2-payload-raw-format > "write -P 41 0 64k"') > + self.assert_qmp(result, 'return', '') Here, I just declared the qemu-io command ahead of time cmd = 'qemu-io luks-2-payload-raw-format "write -P 41 0 64k"' result = self.vm.qmp( "human-monitor-command", command_line=cmd ) > + > + result = self.vm.qmp('human-monitor-command', > + command_line='qemu-io luks-2-payload-raw-format > "read -P 41 0 64k"') > + self.assert_qmp(result, 'return', '') > + > + # Detached LUKS header with qcow2 payload > + result = self.vm.qmp('human-monitor-command', > + command_line='qemu-io > luks-3-payload-qcow2-format "write -P 42 0 64k"') > + self.assert_qmp(result, 'return', '') > + > + result = self.vm.qmp('human-monitor-command', > + command_line='qemu-io > luks-3-payload-qcow2-format "read -P 42 0 64k"') > + self.assert_qmp(result, 'return', '') > + > + self.vm.shutdown() > + With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|