Hi Aidan,

On Tue, 12 May 2026 at 18:27, Aidan Garske <[email protected]> wrote:
>
> From: Aidan <[email protected]>
>
> Add comprehensive test suites for wolfTPM commands, modeled after
> the existing TPM2 test infrastructure.
>
> test/cmd/wolftpm.c (C unit tests):
>   18 tests using U-Boot's unit test framework (CMD_TEST macro):
>   - autostart, init, info, state, device: basic lifecycle
>   - self_test (full and continue): TPM self-test verification
>   - startup_clear, startup_state: TPM2_Startup modes
>   - get_capability: read TPM properties
>   - caps: wolfTPM-enhanced capabilities display
>   - clear: TPM state reset via LOCKOUT hierarchy
>   - pcr_read, pcr_extend, pcr_print: PCR operations
>   - pcr_allocate: PCR bank reconfiguration
>   - dam_reset, dam_parameters: dictionary attack mitigation
>   - change_auth: hierarchy password change (requires wolfCrypt)
>   - cleanup: reset TPM state after tests
>   Run with: ut cmd cmd_test_wolftpm_*
>
> test/cmd/Makefile:
>   Adds wolftpm.o when CONFIG_TPM_WOLF is enabled.
>
> test/py/tests/test_wolftpm.py (Python integration tests):
>   21 tests using pytest with the U-Boot test framework:
>   - Requires QEMU + swtpm (not sandbox) because wolfTPM bypasses
>     U-Boot's driver model and communicates directly with TPM
>     hardware via its own SPI/MMIO HAL
>   - Tests mirror the C tests but run end-to-end through the U-Boot
>     console, checking return codes via 'echo $?'
>   - Includes force_init() helper for TPM reinitialization after
>     test failures
>   - Skippable via env__wolftpm_device_test_skip config
>   - Verified: 19 passed, 2 skipped (change_auth requires wolfCrypt,
>     get_capability may skip on some platforms)
>
> Signed-off-by: Aidan Garske <[email protected]>
> ---
>  test/cmd/Makefile             |   1 +
>  test/cmd/wolftpm.c            | 364 +++++++++++++++++++++++++++++++++
>  test/py/tests/test_wolftpm.py | 375 ++++++++++++++++++++++++++++++++++
>  3 files changed, 740 insertions(+)
>  create mode 100644 test/cmd/wolftpm.c
>  create mode 100644 test/py/tests/test_wolftpm.py

Thank you for writing tests here. For the cmd tests it is a good idea
to check the console output - see the UTF_CONSOLE flag and things like
ut_assert_nextline()

Regards,
Simon

Reply via email to