[PATCH] test/py: always use autostart on tpm2 selftests

Simon Glass sjg at chromium.org
Wed Oct 25 20:23:33 CEST 2023


Hi Ilias,

On Wed, 25 Oct 2023 at 07:25, Ilias Apalodimas
<ilias.apalodimas at linaro.org> wrote:
>
> commit 789ed2784256 ("test/py: replace 'tpm2 init, startup, selftest' sequences")
> changed some of the tpm2 init sequences to 'tpm2 autostart' instead of
> calling 'tpm init', 'tpm startup TPM2_SU_CLEAR', 'tpm2 self_test full'.
>
> The autostart command calls the afforementioned sequence and on top of
> that deals with the 'tpm2 init' return codes if the tpm is already
> started. Since we initialize the tpm from various subsystems now,
> replace the last remaining instances of 'tpm2 init' with 'tpm2
> autostart'.  Since the latter calls 'tpm2 init' anyway we will still be
> implicitly testing the validity of that command
>
> It's worth noting that since 'tpm2 autostart' performs the startup and
> self tests sequences of the tpm we could drop
> 'test_tpm2_sandbox_self_test_full' and 'test_tpm2_startup, but let's
> keep the since they test tpm commands and options
>
> Signed-off-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
> ---
>  test/py/tests/test_tpm2.py | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/test/py/tests/test_tpm2.py b/test/py/tests/test_tpm2.py
> index 47392b87a98f..1d654cd4a23b 100644
> --- a/test/py/tests/test_tpm2.py
> +++ b/test/py/tests/test_tpm2.py
> @@ -61,7 +61,7 @@ def test_tpm2_init(u_boot_console):
>      skip_test = u_boot_console.config.env.get('env__tpm_device_test_skip', False)
>      if skip_test:
>          pytest.skip('skip TPM device test')
> -    u_boot_console.run_command('tpm2 init')
> +    u_boot_console.run_command('tpm2 autostart')
>      output = u_boot_console.run_command('echo $?')
>      assert output.endswith('0')
>
> @@ -100,7 +100,7 @@ def test_tpm2_sandbox_self_test_full(u_boot_console):
>      """
>      if is_sandbox(u_boot_console):
>          u_boot_console.restart_uboot()

We should not need this. Can you please take a look at what reset is
needed in the TPM code to get the TPM back into its original state? We
have dm_test_pre_run() which could call a tpm_reset_for_test()
function, or similar.

> -        u_boot_console.run_command('tpm2 init')
> +        u_boot_console.run_command('tpm2 autostart')
>          output = u_boot_console.run_command('echo $?')
>          assert output.endswith('0')
>
> --
> 2.37.2
>

Regards,
Simon


More information about the U-Boot mailing list