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]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.