]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
bootstd: Expand boot-ordering test to include USB
authorSimon Glass <sjg@chromium.org>
Mon, 23 Oct 2023 07:02:11 +0000 (00:02 -0700)
committerTom Rini <trini@konsulko.com>
Mon, 23 Oct 2023 17:05:13 +0000 (13:05 -0400)
Scan the USB bus as well, so we can check that different uclasses work
correctly in boot_targets

update the function comment with more detail.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Ivan T.Ivanov <iivanov@suse.de>
test/boot/bootdev.c

index 6b29213416db931b71a5a55fb590692a40704a24..7228f545e9e648a76b1cee6e03032297ada27a57 100644 (file)
@@ -190,12 +190,21 @@ static int bootdev_test_any(struct unit_test_state *uts)
 BOOTSTD_TEST(bootdev_test_any, UT_TESTF_DM | UT_TESTF_SCAN_FDT |
             UT_TESTF_ETH_BOOTDEV);
 
-/* Check bootdev ordering with the bootdev-order property */
+/*
+ * Check bootdev ordering with the bootdev-order property and boot_targets
+ * environment variable
+ */
 static int bootdev_test_order(struct unit_test_state *uts)
 {
        struct bootflow_iter iter;
        struct bootflow bflow;
 
+       test_set_skip_delays(true);
+
+       /* Start up USB which gives us three additional bootdevs */
+       usb_started = false;
+       ut_assertok(run_command("usb start", 0));
+
        /*
         * First try the order set by the bootdev-order property
         * Like all sandbox unit tests this relies on the devicetree setting up
@@ -213,12 +222,14 @@ static int bootdev_test_order(struct unit_test_state *uts)
        bootflow_iter_uninit(&iter);
 
        /* Use the environment variable to override it */
-       ut_assertok(env_set("boot_targets", "mmc1 mmc2"));
+       ut_assertok(env_set("boot_targets", "mmc1 mmc2 usb"));
        ut_assertok(bootflow_scan_first(NULL, NULL, &iter, 0, &bflow));
        ut_asserteq(-ENODEV, bootflow_scan_next(&iter, &bflow));
-       ut_asserteq(2, iter.num_devs);
+       ut_asserteq(3, iter.num_devs);
        ut_asserteq_str("mmc1.bootdev", iter.dev_used[0]->name);
        ut_asserteq_str("mmc2.bootdev", iter.dev_used[1]->name);
+       ut_asserteq_str("usb_mass_storage.lun0.bootdev",
+                       iter.dev_used[2]->name);
        bootflow_iter_uninit(&iter);
 
        return 0;