test: bootm: Ensure tests can be run twice
authorAndrew Goodbody <andrew.goodbody@linaro.org>
Wed, 6 Nov 2024 13:50:17 +0000 (13:50 +0000)
committerTom Rini <trini@konsulko.com>
Sun, 17 Nov 2024 19:13:02 +0000 (13:13 -0600)
Some of the bootm tests rely on state that is assumed to be
correct but is changed by the tests. This means that running
'ut bootm' twice will result in failures on the second run
as the state left by the first run is not what the tests
expect.
Fix this by ensuring the state is as expected by explicitly
setting that state.

Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
test/bootm.c

index 52b83f1..9455f44 100644 (file)
@@ -28,6 +28,7 @@ static int bootm_test_nop(struct unit_test_state *uts)
 
        /* This tests relies on GD_FLG_SILENT not being set */
        gd->flags &= ~GD_FLG_SILENT;
+       env_set("silent_linux", NULL);
 
        *buf = '\0';
        ut_assertok(bootm_process_cmdline(buf, BUF_SIZE, BOOTM_CL_ALL));
@@ -183,6 +184,7 @@ static int bootm_test_subst(struct unit_test_state *uts)
        ut_asserteq(0, bootm_process_cmdline(buf, 22, BOOTM_CL_SUBST));
 
        /* Check multiple substitutions */
+       ut_assertok(env_set("bvar", NULL));
        ut_assertok(env_set("var", "abc"));
        strcpy(buf, "some${var}thing${bvar}else");
        ut_asserteq(0, bootm_process_cmdline(buf, BUF_SIZE, BOOTM_CL_SUBST));
@@ -201,6 +203,7 @@ BOOTM_TEST(bootm_test_subst, 0);
 /* Test silent processing in the bootargs variable */
 static int bootm_test_silent_var(struct unit_test_state *uts)
 {
+       ut_assertok(env_set("var", NULL));
        env_set("bootargs", NULL);
        ut_assertok(bootm_process_cmdline_env(BOOTM_CL_SUBST));
        ut_assertnull(env_get("bootargs"));