[PATCH v2 2/2] tpm: Add error scenarios to get_test_result test
Simon Glass
sjg at chromium.org
Wed Aug 2 23:31:26 CEST 2023
Hi Julia,
On Wed, 2 Aug 2023 at 02:35, Julia Daxenberger
<julia.daxenberger at infineon.com> wrote:
>
> Patch 1/2 of this series provides basic testing of the get_test_result
> functionality. This Patch adds further testing of possible error
> scenarios, but relies on rebooting sandbox at the beginning of the test.
>
> Signed-off-by: Julia Daxenberger <julia.daxenberger at infineon.com>
> ---
> Changes in v2:
> - Add error test cases reliant on restart_uboot() in response to Simon
> Glass <sjg at chromium.org>
>
> test/py/tests/test_tpm2.py | 28 ++++++++++++++++++++++++++++
> 1 file changed, 28 insertions(+)
>
> diff --git a/test/py/tests/test_tpm2.py b/test/py/tests/test_tpm2.py
> index 96bed36c5f..8416ff5d0b 100644
> --- a/test/py/tests/test_tpm2.py
> +++ b/test/py/tests/test_tpm2.py
> @@ -322,12 +322,40 @@ def test_tpm2_get_test_result(u_boot_console):
> Ask the TPM to get the test result of the self test.
> Display the Test Result and Test Result Data.
>
> + Expected default return value of tpm2_get_test_result, if the TPM has not been initialized:
> + - TPM2_RC_INITIALIZE = TPM2_RC_VER1 + 0x0000 = 0x00000100.
> +
> Expected default value for test_result:
> + - TPM_RC_NEEDS_TEST = 0x00000153, if tpm2 self_test has not been executed.
> - TPM_RC_SUCCESS = 0x00000000, if testing is complete without functional failures.
>
> There is no expected default value for the test result data because it would depend on the chip
> used. The test result data is therefore not tested.
> """
> + if is_sandbox(u_boot_console):
> + u_boot_console.restart_uboot()
Actually sandbox should not need a restart. What is missing about the
current state init in dm_test_pre_run()?
> +
> + skip_test = u_boot_console.config.env.get('env__tpm_device_test_skip', False)
> + if skip_test:
> + pytest.skip('skip TPM device test')
> +
> + read_res = u_boot_console.run_command('tpm2 get_test_result')
> + output = u_boot_console.run_command('echo $?')
> + assert 'Error: 256' in read_res
> +
> + u_boot_console.run_command('tpm2 init')
> + read_res = u_boot_console.run_command('tpm2 get_test_result')
> + output = u_boot_console.run_command('echo $?')
> + assert 'Error: 256' in read_res
> +
> + u_boot_console.run_command('tpm2 startup TPM2_SU_CLEAR')
> + read_res = u_boot_console.run_command('tpm2 get_test_result')
> + output = u_boot_console.run_command('echo $?')
> + """assert output.endswith('0')"""
> + assert 'Test Result:\r\r\n0x00000153 TPM2_RC_NEEDS_TEST' in read_res
> + """ Assert console output. Test Result Data can not be tested, as it is vendor specific"""
> + assert 'Test Result Data of Self Test:\r\r\n0x' in read_res
> +
> u_boot_console.run_command('tpm2 self_test full')
> read_res = u_boot_console.run_command('tpm2 get_test_result')
> output = u_boot_console.run_command('echo $?')
> --
> 2.34.1
>
Regards,
Simon
More information about the U-Boot
mailing list