Re: [PATCH v1 3/3] tests/functional/s390x/test_secure_ipl: Add virtio-blk-pci boot dev case
Jared Rossi <[email protected]>
| Newsgroups | gmane.comp.emulators.qemu |
|---|---|
| Message-ID | <[email protected]> |
On 8/12/26 11:21 AM, Joshua Daley wrote: > Split test_s390x_secure_ipl() into two subtests. Each tests with a > different boot device: virtio-blk-ccw or virtio-blk-pci. Use a state var > such that the setup is run only once. > > Signed-off-by: Joshua Daley <[email protected]> > --- > tests/functional/s390x/test_secure_ipl.py | 70 +++++++++++++++-------- > 1 file changed, 47 insertions(+), 23 deletions(-) > > diff --git a/tests/functional/s390x/test_secure_ipl.py b/tests/functional/s390x/test_secure_ipl.py > index 5af36b91d8..7fd4cfeaab 100755 > --- a/tests/functional/s390x/test_secure_ipl.py > +++ b/tests/functional/s390x/test_secure_ipl.py > @@ -28,6 +28,7 @@ def __init__(self, *args, **kwargs): > self.qcow2_path = None > self.cert_path = None > self.prompt = None > + self.setup_done = False > > def _require_host_secure_ipl_support(self, vm): > """ > @@ -150,41 +151,64 @@ def setup_s390x_secure_ipl(self): > > # Shutdown temp vm > temp_vm.shutdown() > + self.setup_done = True > > - @skipBigDataTest() > - def test_s390x_secure_ipl(self): > + def verify_s390x_secure_ipl(self, boot_dev_bus: str): > """ > Verify secure boot validation during s390x guest boot. > > Expects two "Verified component" messages and confirms > /sys/firmware/ipl/secure reports secure boot is active. > """ > - self.require_accelerator('kvm') > - self.setup_s390x_secure_ipl() > - > - self.set_machine('s390-ccw-virtio') > - > - self.vm.set_console() > - self.vm.add_args('-nographic', > - '-machine', 's390-ccw-virtio,secure-boot=on,' > - f'boot-certs.0.path={self.cert_path}', > - '-accel', 'kvm', > - '-m', '1024', > - '-drive', > - f'id=drive1,if=none,format=qcow2,file={self.qcow2_path}', > - '-device', 'virtio-blk-ccw,drive=drive1,bootindex=1') > - self.vm.launch() > + if boot_dev_bus not in ['ccw', 'pci']: > + raise ValueError( > + f"boot_dev_bus must be 'ccw' or 'pci', got {boot_dev_bus}") > + > + vm = self.get_vm(name=f'sipl_test_vblk_{boot_dev_bus}') > + vm.set_machine('s390-ccw-virtio') > + > + vm.set_console() > + vm.add_args('-nographic', > + '-machine', 's390-ccw-virtio,secure-boot=on,' > + f'boot-certs.0.path={self.cert_path}', > + '-accel', 'kvm', > + '-m', '1024', > + '-drive', > + f'id=drive1,if=none,format=qcow2,file={self.qcow2_path}', > + '-device', > + f'virtio-blk-{boot_dev_bus},drive=drive1,bootindex=1') > + vm.launch() > > # Expect two verified components > verified_output = "Verified component" > - wait_for_console_pattern(self, verified_output) > - wait_for_console_pattern(self, verified_output) > + wait_for_console_pattern(self, verified_output, vm=vm) > + wait_for_console_pattern(self, verified_output, vm=vm) > > # Login and verify the vm is booted using secure boot > - wait_for_console_pattern(self, 'localhost login:') > - exec_command_and_wait_for_pattern(self, 'root', 'Password:') > - exec_command_and_wait_for_pattern(self, self.root_password, self.prompt) > - exec_command_and_wait_for_pattern(self, 'cat /sys/firmware/ipl/secure', '1') > + wait_for_console_pattern(self, 'localhost login:', vm=vm) > + exec_command_and_wait_for_pattern(self, 'root', 'Password:', vm=vm) > + exec_command_and_wait_for_pattern( > + self, self.root_password, self.prompt, vm=vm) > + exec_command_and_wait_for_pattern( > + self, 'cat /sys/firmware/ipl/secure', '1', vm=vm) > + > + vm.shutdown() > + > + @skipBigDataTest() > + def test_s390x_secure_ipl_ccw(self): > + """Test secure IPL with a virtio-blk-ccw boot device.""" > + self.require_accelerator('kvm') > + if not self.setup_done: > + self.setup_s390x_secure_ipl() > + self.verify_s390x_secure_ipl('ccw') > + > + @skipBigDataTest() > + def test_s390x_secure_ipl_pci(self): > + """Test secure IPL with a virtio-blk-pci boot device.""" > + self.require_accelerator('kvm') > + if not self.setup_done: > + self.setup_s390x_secure_ipl() > + self.verify_s390x_secure_ipl('pci') > > if __name__ == '__main__': > QemuSystemTest.main() Reviewed-by: Jared Rossi <[email protected]>