test: Use return values in dm_test_run()

Update this function to use the return value of ut_run_list() to check for
success/failure, so that they are in sync. Also return a command success
code so that the caller gets what it expects.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2021-03-07 17:35:06 -07:00 committed by Tom Rini
parent f97f85e661
commit 45d191af02

View File

@ -20,16 +20,13 @@
DECLARE_GLOBAL_DATA_PTR;
struct unit_test_state global_dm_test_state;
int dm_test_run(const char *test_name)
{
struct unit_test *tests = ll_entry_start(struct unit_test, dm_test);
const int n_ents = ll_entry_count(struct unit_test, dm_test);
struct unit_test_state uts_s = { .fail_count = 0 }, *uts = &uts_s;
struct device_node *of_root;
uts->fail_count = 0;
int ret;
if (!CONFIG_IS_ENABLED(OF_PLATDATA)) {
/*
@ -39,22 +36,23 @@ int dm_test_run(const char *test_name)
if (!gd->fdt_blob || fdt_next_node(gd->fdt_blob, 0, NULL) < 0) {
puts("Please run with test device tree:\n"
" ./u-boot -d arch/sandbox/dts/test.dtb\n");
ut_assert(gd->fdt_blob);
return CMD_RET_FAILURE;
}
}
of_root = gd_of_root();
ut_run_list("driver model", "dm_test_", tests, n_ents, test_name);
ret = ut_run_list("driver model", "dm_test_", tests, n_ents, test_name);
/* Put everything back to normal so that sandbox works as expected */
gd_set_of_root(of_root);
gd->dm_root = NULL;
ut_assertok(dm_init(CONFIG_IS_ENABLED(OF_LIVE)));
if (dm_init(CONFIG_IS_ENABLED(OF_LIVE)))
return CMD_RET_FAILURE;
dm_scan_plat(false);
if (!CONFIG_IS_ENABLED(OF_PLATDATA))
dm_scan_fdt(false);
return uts->fail_count ? CMD_RET_FAILURE : 0;
return ret ? CMD_RET_FAILURE : 0;
}
int do_ut_dm(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])