Hi Ludwig, On 2026-05-13T14:08:10, Ludwig Nussel <[email protected]> wrote: > test: vboot: handle CONFIG_FIT_REQUIRE_CONFIG_SIGS in test_vboot > > Make sure test_vboot works with CONFIG_FIT_REQUIRE_CONFIG_SIGS set > and unset. > Enable CONFIG_FIT_REQUIRE_CONFIG_SIGS in sandbox_defconfig and leave > it off in other sandbox configs > > Co-authored-by: Copilot <[email protected]> > > Signed-off-by: Ludwig Nussel <[email protected]> > > configs/sandbox_defconfig | 1 + > test/py/tests/test_vboot.py | 60 > ++++++++++++++++++++++++++++++++++++--------- > 2 files changed, 49 insertions(+), 12 deletions(-)
Reviewed-by: Simon Glass <[email protected]> > diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig > @@ -21,6 +21,7 @@ > CONFIG_EFI_CAPSULE_CRT_FILE='board/sandbox/capsule_pub_key_good.crt' > CONFIG_BUTTON_CMD=y > CONFIG_FIT=y > CONFIG_FIT_SIGNATURE=y > +CONFIG_FIT_REQUIRE_CONFIG_SIGS=y > CONFIG_FIT_CIPHER=y > CONFIG_FIT_VERBOSE=y Turning this on in the main sandbox_defconfig means the 'Test FIT with signed images' section (behind 'if not require_config_sigs:') is no longer exercised in CI, and test_global_sign() is skipped entirely. We lose coverage of image-level signatures and the pre-load global signature path on the primary sandbox build, both still supported features. Please leave sandbox_defconfig alone and turn this on in a secondary config (eg sandbox_noinst or sandbox_spl) so both paths keep getting tested. Or restructure the test so the image-level path still runs when require_config_sigs is set. Worse cas I suppose we could provide a runtime mechanism which the tests can control. What do you think? > diff --git a/test/py/tests/test_vboot.py b/test/py/tests/test_vboot.py > @@ -306,26 +306,54 @@ def test_vboot(ubman, name, sha_algo, padding, > sign_options, required, > + bcfg = ubman.config.buildconfig > + require_config_sigs = bcfg.get('config_fit_require_config_sigs', > False) The same idiom is repeated in test_global_sign() below. Please put this into the outer test_vboot() scope (or a small helper) so the build config is read once. > diff --git a/test/py/tests/test_vboot.py b/test/py/tests/test_vboot.py > @@ -485,6 +513,14 @@ def test_vboot(ubman, name, sha_algo, padding, > sign_options, required, > + # test_fdt_add_pubkey reuses this tmpdir and needs > sandbox-kernel.dtb, > + # so compile it unconditionally before any early exit. > + dtc('sandbox-kernel.dts', ubman, dtc_args, datadir, tmpdir, None) > + > + bcfg = ubman.config.buildconfig > + if bcfg.get('config_fit_require_config_sigs', False): > + pytest.skip('simple-images.its has no config-level signatures; ' > + 'incompatible with CONFIG_FIT_REQUIRE_CONFIG_SIGS') Worth mentioning in the commit message that test_global_sign() gets skipped, otherwise it's easy to miss that we silently stop testing the pre-load global signature path. Also, the comment suggests the right fix may be to provide an .its with config signatures rather than skip - is there a reason that won't work? > diff --git a/test/py/tests/test_vboot.py b/test/py/tests/test_vboot.py > @@ -306,26 +306,54 @@ def test_vboot(ubman, name, sha_algo, padding, > sign_options, required, > - ubman.log.action('%s: Test FIT with signed configuration' % sha_algo) > + ubman.log.action('%s: Test FIT with unsigned configuration' % > sha_algo) Good catch! Regards, Simon

