test: Use return values in dm_test_run()
authorSimon Glass <sjg@chromium.org>
Mon, 8 Mar 2021 00:35:06 +0000 (17:35 -0700)
committerTom Rini <trini@konsulko.com>
Fri, 12 Mar 2021 14:57:30 +0000 (09:57 -0500)
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>
test/dm/test-dm.c

index 20af1c1..54e6577 100644 (file)
 
 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[])