summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2023-01-17 20:47:37 +0300
committerTom Rini <trini@konsulko.com>2023-01-24 02:11:40 +0300
commit04fb2b6e45893df45a7d6bed61614fce97c279e4 (patch)
tree259017d9a61483a7ec3aa0e9b16c48fe5bcabb2d /test
parent8b031871218689e72ecf517ad6d584ae4c659aad (diff)
downloadu-boot-04fb2b6e45893df45a7d6bed61614fce97c279e4.tar.xz
bootstd: Add a USB hunter
Add a hunter for USB which enumerates the bus to find new bootdevs. Update the tests and speed up bootdev_test_prio() while we are here, by dropping the USB delays. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'test')
-rw-r--r--test/boot/bootdev.c26
1 files changed, 21 insertions, 5 deletions
diff --git a/test/boot/bootdev.c b/test/boot/bootdev.c
index 45a00c34c0..7a0c579389 100644
--- a/test/boot/bootdev.c
+++ b/test/boot/bootdev.c
@@ -190,6 +190,8 @@ static int bootdev_test_prio(struct unit_test_state *uts)
struct bootflow bflow;
struct udevice *blk;
+ test_set_skip_delays(true);
+
/* Start up USB which gives us three additional bootdevs */
usb_started = false;
ut_assertok(run_command("usb start", 0));
@@ -227,6 +229,8 @@ static int bootdev_test_hunter(struct unit_test_state *uts)
{
struct bootstd_priv *std;
+ test_set_skip_delays(true);
+
/* get access to the used hunters */
ut_assertok(bootstd_get_priv(&std));
@@ -234,12 +238,17 @@ static int bootdev_test_hunter(struct unit_test_state *uts)
bootdev_list_hunters(std);
ut_assert_nextline("Prio Used Uclass Hunter");
ut_assert_nextlinen("----");
- ut_assert_nextline("(total hunters: 0)");
+ ut_assert_nextline(" 40 usb usb_bootdev");
+ ut_assert_nextline("(total hunters: 1)");
ut_assert_console_end();
- ut_assertok(bootdev_hunt("mmc1", false));
+ ut_assertok(bootdev_hunt("usb1", false));
+ ut_assert_nextline(
+ "Bus usb@1: scanning bus usb@1 for devices... 5 USB Device(s) found");
ut_assert_console_end();
+ ut_asserteq(GENMASK(0, 0), std->hunters_used);
+
return 0;
}
BOOTSTD_TEST(bootdev_test_hunter, UT_TESTF_DM | UT_TESTF_SCAN_FDT);
@@ -249,6 +258,8 @@ static int bootdev_test_cmd_hunt(struct unit_test_state *uts)
{
struct bootstd_priv *std;
+ test_set_skip_delays(true);
+
/* get access to the used hunters */
ut_assertok(bootstd_get_priv(&std));
@@ -256,21 +267,26 @@ static int bootdev_test_cmd_hunt(struct unit_test_state *uts)
ut_assertok(run_command("bootdev hunt -l", 0));
ut_assert_nextline("Prio Used Uclass Hunter");
ut_assert_nextlinen("----");
- ut_assert_nextline("(total hunters: 0)");
+ ut_assert_nextline(" 40 usb usb_bootdev");
+ ut_assert_nextline("(total hunters: 1)");
ut_assert_console_end();
/* Scan all hunters */
ut_assertok(run_command("bootdev hunt", 0));
+ ut_assert_nextline("Hunting with: usb");
+ ut_assert_nextline(
+ "Bus usb@1: scanning bus usb@1 for devices... 5 USB Device(s) found");
ut_assert_console_end();
/* List available hunters */
ut_assertok(run_command("bootdev hunt -l", 0));
ut_assert_nextlinen("Prio");
ut_assert_nextlinen("----");
- ut_assert_nextline("(total hunters: 0)");
+ ut_assert_nextline(" 40 * usb usb_bootdev");
+ ut_assert_nextline("(total hunters: 1)");
ut_assert_console_end();
- ut_asserteq(0, std->hunters_used);
+ ut_asserteq(GENMASK(0, 0), std->hunters_used);
return 0;
}