
On Sun, 29 Oct 2023 at 06:28, Simon Glass sjg@chromium.org wrote:
These don't seem to be needed.
Please metnion something we can refer to in the future. e.g. "A previous patch moves most of the sandbox tests to C code, those arent needed anymore" etc
Add a few notes about what to do next. Also mention parallel tests in at the top of thefile.
Signed-off-by: Simon Glass sjg@chromium.org
test/py/tests/test_tpm2.py | 44 +++++++++----------------------------- 1 file changed, 10 insertions(+), 34 deletions(-)
diff --git a/test/py/tests/test_tpm2.py b/test/py/tests/test_tpm2.py index 522ed41de633..e01a05143b63 100644 --- a/test/py/tests/test_tpm2.py +++ b/test/py/tests/test_tpm2.py @@ -27,6 +27,16 @@ behavior.
- Setup env__tpm_device_test_skip to True if tests with TPM devices should be
skipped.
+Parallel tests +--------------
+These tests can be run in parallel on sandbox. In that case any action taken +by one test may be independent of another. For sandbox, care should be taken to +ensure that tests are independent.
+Unfortunately, tests cannot be made independent on real hardware, since there is +no way to reset the TPM other than restarting the board. Perhaps that would be +the best approach? """
updates = 0 @@ -50,11 +60,6 @@ def force_init(u_boot_console, force=False): u_boot_console.run_command('tpm2 clear TPM2_RH_PLATFORM') u_boot_console.run_command('echo --- end of init ---')
-def is_sandbox(cons):
- # Array slice removes leading/trailing quotes.
- sys_arch = cons.config.buildconfig.get('config_sys_arch', '"sandbox"')[1:-1]
- return sys_arch == 'sandbox'
@pytest.mark.buildconfigspec('cmd_tpm_v2') def test_tpm2_autostart(u_boot_console): """Init the software stack to use TPMv2 commands.""" @@ -65,20 +70,6 @@ def test_tpm2_autostart(u_boot_console): output = u_boot_console.run_command('echo $?') assert output.endswith('0')
-def tpm2_sandbox_init(u_boot_console):
- """Put sandbox back into a known state so we can run a test
- This allows all tests to run in parallel, since no test depends on another.
- """
- u_boot_console.restart_uboot()
- u_boot_console.run_command('tpm2 autostart')
- output = u_boot_console.run_command('echo $?')
- assert output.endswith('0')
- skip_test = u_boot_console.config.env.get('env__tpm_device_test_skip', False)
- if skip_test:
pytest.skip('skip TPM device test')
@pytest.mark.buildconfigspec('cmd_tpm_v2') def test_tpm2_clear(u_boot_console): """Execute a TPM2_Clear command. @@ -91,9 +82,6 @@ def test_tpm2_clear(u_boot_console): not have a password set, otherwise this test will fail. ENDORSEMENT and PLATFORM hierarchies are also available. """
- if is_sandbox(u_boot_console):
tpm2_sandbox_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')
@@ -114,8 +102,6 @@ def test_tpm2_change_auth(u_boot_console): Use the LOCKOUT hierarchy for this. ENDORSEMENT and PLATFORM hierarchies are also available. """
if is_sandbox(u_boot_console):
tpm2_sandbox_init(u_boot_console)
force_init(u_boot_console)
u_boot_console.run_command('tpm2 change_auth TPM2_RH_LOCKOUT unicorn')
@@ -140,9 +126,6 @@ def test_tpm2_get_capability(u_boot_console): There is no expected default values because it would depend on the chip used. We can still save them in order to check they have changed later. """
- if is_sandbox(u_boot_console):
tpm2_sandbox_init(u_boot_console)
- force_init(u_boot_console) ram = u_boot_utils.find_ram_base(u_boot_console)
@@ -164,8 +147,6 @@ def test_tpm2_dam_parameters(u_boot_console): the authentication, otherwise the lockout will be engaged after the first failed authentication attempt. """
- if is_sandbox(u_boot_console):
force_init(u_boot_console) ram = u_boot_utils.find_ram_base(u_boot_console)tpm2_sandbox_init(u_boot_console)
@@ -188,9 +169,6 @@ def test_tpm2_pcr_read(u_boot_console):
Perform a PCR read of the 0th PCR. Must be zero. """
- if is_sandbox(u_boot_console):
tpm2_sandbox_init(u_boot_console)
- force_init(u_boot_console) ram = u_boot_utils.find_ram_base(u_boot_console)
@@ -217,8 +195,6 @@ def test_tpm2_pcr_extend(u_boot_console): No authentication mechanism is used here, not protecting against packet replay, yet. """
- if is_sandbox(u_boot_console):
force_init(u_boot_console) ram = u_boot_utils.find_ram_base(u_boot_console)tpm2_sandbox_init(u_boot_console)
-- 2.42.0.820.g83a721a137-goog
With this rebased on top of patch #2 & master Reviewed-by: Ilias Apalodimas ilias.apalodimas@linaro.org