]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
fwu: Initialize global fwu library state during CI test
authorMarek Vasut <marek.vasut+renesas@mailbox.org>
Wed, 23 Aug 2023 00:16:52 +0000 (02:16 +0200)
committerTom Rini <trini@konsulko.com>
Wed, 30 Aug 2023 21:56:21 +0000 (17:56 -0400)
The current CI test worked by sheer luck, the g_dev global pointer
in the fwu library was never initialized and the test equally well
failed on sandbox64. Trigger the main loop in sandbox tests too to
initialize that global state, and move the sandbox specific exit
from fwu_boottime_checks after g_dev is initialized.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Acked-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
lib/fwu_updates/fwu.c
test/dm/fwu_mdata.c

index 4d0c8b84b9d0ba0bbd00e461afe6f307919e9ee5..22bdc78df593fbc255c11a50bd888b8dc392ae09 100644 (file)
@@ -623,18 +623,18 @@ static int fwu_boottime_checks(void *ctx, struct event *event)
        int ret;
        u32 boot_idx, active_idx;
 
-       /* Don't have boot time checks on sandbox */
-       if (IS_ENABLED(CONFIG_SANDBOX)) {
-               boottime_check = 1;
-               return 0;
-       }
-
        ret = uclass_first_device_err(UCLASS_FWU_MDATA, &g_dev);
        if (ret) {
                log_debug("Cannot find fwu device\n");
                return ret;
        }
 
+       /* Don't have boot time checks on sandbox */
+       if (IS_ENABLED(CONFIG_SANDBOX)) {
+               boottime_check = 1;
+               return 0;
+       }
+
        ret = fwu_get_mdata(NULL);
        if (ret) {
                log_debug("Unable to read meta-data\n");
index 8b5c83ef4e2d8ff366e4476bc8d2f66dd60e9eae..52018f610fe4764f2655f314069578ebd32489b5 100644 (file)
@@ -93,6 +93,12 @@ static int dm_test_fwu_mdata_read(struct unit_test_state *uts)
        struct udevice *dev;
        struct fwu_mdata mdata = { 0 };
 
+       /*
+        * Trigger lib/fwu_updates/fwu.c fwu_boottime_checks()
+        * to populate g_dev global pointer in that library.
+        */
+       event_notify_null(EVT_MAIN_LOOP);
+
        ut_assertok(uclass_first_device_err(UCLASS_FWU_MDATA, &dev));
        ut_assertok(setup_blk_device(uts));
        ut_assertok(populate_mmc_disk_image(uts));
@@ -112,6 +118,12 @@ static int dm_test_fwu_mdata_write(struct unit_test_state *uts)
        struct udevice *dev;
        struct fwu_mdata mdata = { 0 };
 
+       /*
+        * Trigger lib/fwu_updates/fwu.c fwu_boottime_checks()
+        * to populate g_dev global pointer in that library.
+        */
+       event_notify_null(EVT_MAIN_LOOP);
+
        ut_assertok(setup_blk_device(uts));
        ut_assertok(populate_mmc_disk_image(uts));
        ut_assertok(write_mmc_blk_device(uts));