Hi Frieder,

On 2026-10-29T16:23:07+11:00, Frieder Schrempf <[email protected]> wrote:
> test: boot: Test the RAUC partition name check
>
> Set CONFIG_BOOTMETH_RAUC_PART_NAMES on sandbox and give the
> partitions of the RAUC test image (mmc10) matching names. As only GPT
> has partition names, DiskHelper now creates the image with GPT instead
> of MBR. The existing test passes with or without the option, as the
> names match.
>
> Add a second image (mmc13) with the same layout but other names, and
> a test that the RAUC bootmeth finds no bootflow on it. The test is
> skipped if the option is empty. It needs an #ifdef, since the string
> option does not exist without BOOTMETH_RAUC and IS_ENABLED() cannot
> check a string.
>
> Assisted-by: LLM
> Signed-off-by: Frieder Schrempf <[email protected]>
>
>  arch/sandbox/dts/test.dts |  8 ++++++++
>  configs/sandbox_defconfig |  1 +
>  test/boot/bootflow.c      | 27 +++++++++++++++++++++++++++
>  test/py/tests/test_ut.py  | 26 +++++++++++++++++---------
>  4 files changed, 53 insertions(+), 9 deletions(-)

> diff --git a/test/boot/bootflow.c b/test/boot/bootflow.c
> @@ -1824,6 +1824,33 @@ static int bootflow_bls_prefix(struct unit_test_state 
> *uts)
> +static int bootflow_rauc_part_names_check(struct unit_test_state *uts)
> +{
> +     ut_assertok(run_command("bootflow scan", 0));
> +     ut_assert_nextline("No bootflows found; try again with -l");
> +     ut_assert_console_end();

'No bootflows found' doesn't tell us much here. The test also passes
if mmc13.img is missing or empty (e.g. 'ut bootstd' run without
test_ut_dm_init_bootstd first), or if BOOT_ORDER still holds an
unknown slot: bootflow_rauc_check() leaves "A B rescue" in place if it
fails partway through, and get_slot() then fails the same way. Please
can you set BOOT_ORDER at the start and check that mmc13 really has
the expected layout, e.g. by asserting the partition names with
part_get_info() or 'part list mmc 13'? Then the only thing that can
make the scan fail is the name check.

It would also be worth checking the environment after the scan: clear
the variables first and assert afterwards that env_get() returns NULL
for them. This would show the env_set() problem I mentioned on patch
6.

> diff --git a/test/boot/bootflow.c b/test/boot/bootflow.c
> @@ -1824,6 +1824,33 @@ static int bootflow_bls_prefix(struct unit_test_state 
> *uts)
> +/* Test that the RAUC bootmeth ignores a device with other partition names */
> +static int bootflow_rauc_part_names(struct unit_test_state *uts)

Please can you put this next to bootflow_rauc(), rather than after the
BLS tests, so the RAUC tests stay together?

Regards,
Simon

Reply via email to