mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00:00
dm: test: Correct ordering of DM setup
We must call dm_scan_other() after devices from the device tree have been created, since that function behaves differently if there is no bootstd device. Adjust the logic to achieve this. Also fix the bootflow_system() test which was relying on this broken behaviour. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
d94d9844bc
commit
ecb274cf06
2 changed files with 14 additions and 7 deletions
|
@ -338,12 +338,14 @@ BOOTSTD_TEST(bootflow_iter, UT_TESTF_DM | UT_TESTF_SCAN_FDT);
|
|||
/* Check using the system bootdev */
|
||||
static int bootflow_system(struct unit_test_state *uts)
|
||||
{
|
||||
struct udevice *dev;
|
||||
struct udevice *bootstd, *dev;
|
||||
|
||||
if (!IS_ENABLED(CONFIG_CMD_BOOTEFI_BOOTMGR))
|
||||
return -EAGAIN;
|
||||
ut_assertok(uclass_get_device_by_name(UCLASS_BOOTMETH, "efi_mgr",
|
||||
&dev));
|
||||
ut_assertok(uclass_first_device_err(UCLASS_BOOTSTD, &bootstd));
|
||||
ut_assertok(device_bind(bootstd, DM_DRIVER_GET(bootmeth_efi_mgr),
|
||||
"efi_mgr", 0, ofnode_null(), &dev));
|
||||
ut_assertok(device_probe(dev));
|
||||
sandbox_set_fake_efi_mgr_dev(dev, true);
|
||||
|
||||
/* We should get a single 'bootmgr' method right at the end */
|
||||
|
@ -353,7 +355,7 @@ static int bootflow_system(struct unit_test_state *uts)
|
|||
ut_assert_skip_to_line(
|
||||
" 0 efi_mgr ready (none) 0 <NULL> <NULL>");
|
||||
ut_assert_skip_to_line("No more bootdevs");
|
||||
ut_assert_skip_to_line("(5 bootflows, 5 valid)");
|
||||
ut_assert_skip_to_line("(2 bootflows, 2 valid)");
|
||||
ut_assert_console_end();
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -296,10 +296,8 @@ static int test_pre_run(struct unit_test_state *uts, struct unit_test *test)
|
|||
|
||||
uts->start = mallinfo();
|
||||
|
||||
if (test->flags & UT_TESTF_SCAN_PDATA) {
|
||||
if (test->flags & UT_TESTF_SCAN_PDATA)
|
||||
ut_assertok(dm_scan_plat(false));
|
||||
ut_assertok(dm_scan_other(false));
|
||||
}
|
||||
|
||||
if (test->flags & UT_TESTF_PROBE_TEST)
|
||||
ut_assertok(do_autoprobe(uts));
|
||||
|
@ -308,6 +306,13 @@ static int test_pre_run(struct unit_test_state *uts, struct unit_test *test)
|
|||
(test->flags & UT_TESTF_SCAN_FDT))
|
||||
ut_assertok(dm_extended_scan(false));
|
||||
|
||||
/*
|
||||
* Do this after FDT scan since dm_scan_other() in bootstd-uclass.c
|
||||
* checks for the existence of bootstd
|
||||
*/
|
||||
if (test->flags & UT_TESTF_SCAN_PDATA)
|
||||
ut_assertok(dm_scan_other(false));
|
||||
|
||||
if (IS_ENABLED(CONFIG_SANDBOX) && (test->flags & UT_TESTF_OTHER_FDT)) {
|
||||
/* make sure the other FDT is available */
|
||||
ut_assertok(test_load_other_fdt(uts));
|
||||
|
|
Loading…
Reference in a new issue