With TLV signature coming up, we want to test all things TLV more thoroughly, including "roundtrip" integration tests that include the bareboxtlv-generator python-script and the tlv barebox-command.
As this is the third test module to make use of the testfs, it seemed adequate to revisit its implementation. Avoid integration test logic outside pytest; migrate logic from .github/ and scripts/ into pytest. Use fixtures for testcase preconditions and migrate existing testdata preparation from scripts/generate_testfs.sh. Cleanups here and there. The ci-container needs to be rebuilt before the TLV tests will succeed in CI. Signed-off-by: Jonas Rebmann <[email protected]> --- Changes in v2: - work around a corner case where a failed network test leads to unrelated pritinting above the tlv command output (triggered by accessing the 9pfs) - move fitimage testdata generation to fixture and drop script - Enable CMD_TLV for multi_v7 and multi_v8 (required for tlv_command test) - Skip tlv_command test if CMD_TLV is disabled - Ensure that pwd is returned to / after dm_verity test even on failure - Silently skip generating testdata for the fit tests for platforms for which no files are provided to prevent ci failure on mips and riscv - minor improvements in style and consistency - Link to v1: https://lore.barebox.org/barebox/[email protected] --- Jonas Rebmann (9): test: when testfs feature is available, always enable it test: provide testfs via fixture test: move dm-verity testdata generation to fixture test: move fitimage testdata generation to fixture and drop script test: py: test_bootchooser: remove dead code commands: tlv: clarify error opening tlv ci: container: install crcmod and cryptography configs: enable tlv command for multi_v7 and multi_v8 test: py: add TLV integration tests .github/workflows/test-labgrid-pytest.yml | 13 ---- arch/arm/configs/multi_v7_defconfig | 2 + arch/arm/configs/multi_v8_defconfig | 2 + commands/tlv.c | 8 ++- conftest.py | 14 ++++ scripts/generate_testfs.sh | 77 --------------------- test/Containerfile | 8 ++- test/py/test_bootchooser.py | 4 -- test/py/test_dm.py | 59 ++++++++++++++-- test/py/test_fit.py | 46 +++++++++++-- test/py/test_tlv.py | 78 ++++++++++++++++++++++ .../testdata}/multi_v7_defconfig-gzipped.its | 0 .../testdata}/multi_v8_defconfig-gzipped.its | 0 13 files changed, 200 insertions(+), 111 deletions(-) --- base-commit: 1b817ae40c2ba628ba0ce413564ea77e91a6009b change-id: 20250926-tlv-integration-945bdd7903d9 Best regards, -- Jonas Rebmann <[email protected]>
