From 1fc9c12210bba815d10e9261fc3602e3a6a73f8e Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Sun, 7 Mar 2021 17:35:07 -0700 Subject: [PATCH] test: Move the devicetree check into ut_run_list() Add a check to ut_run_list() as to whether a list has driver model tests. Move the logic for the test devicetree into that function, in an effort to eventually remove all logic from dm_test_run(). Signed-off-by: Simon Glass --- test/dm/test-dm.c | 13 ------------- test/test-main.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/test/dm/test-dm.c b/test/dm/test-dm.c index 54e6577b00..8cb99ed80c 100644 --- a/test/dm/test-dm.c +++ b/test/dm/test-dm.c @@ -24,22 +24,9 @@ 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; int ret; - if (!CONFIG_IS_ENABLED(OF_PLATDATA)) { - /* - * If we have no device tree, or it only has a root node, then - * these * tests clearly aren't going to work... - */ - 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"); - return CMD_RET_FAILURE; - } - } - of_root = gd_of_root(); ret = ut_run_list("driver model", "dm_test_", tests, n_ents, test_name); diff --git a/test/test-main.c b/test/test-main.c index 16c0d13ea5..8138fb4387 100644 --- a/test/test-main.c +++ b/test/test-main.c @@ -143,6 +143,25 @@ static bool test_matches(const char *prefix, const char *test_name, return false; } +/* + * ut_list_has_dm_tests() - Check if a list of tests has driver model ones + * + * @tests: List of tests to run + * @count: Number of tests to ru + * @return true if any of the tests have the UT_TESTF_DM flag + */ +static bool ut_list_has_dm_tests(struct unit_test *tests, int count) +{ + struct unit_test *test; + + for (test = tests; test < tests + count; test++) { + if (test->flags & UT_TESTF_DM) + return true; + } + + return false; +} + /** * test_pre_run() - Handle any preparation needed to run a test * @@ -342,6 +361,19 @@ int ut_run_list(const char *category, const char *prefix, struct unit_test_state uts = { .fail_count = 0 }; int ret; + if (!CONFIG_IS_ENABLED(OF_PLATDATA) && + ut_list_has_dm_tests(tests, count)) { + /* + * If we have no device tree, or it only has a root node, then + * these * tests clearly aren't going to work... + */ + 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"); + return CMD_RET_FAILURE; + } + } + if (!select_name) printf("Running %d %s tests\n", count, category); -- 2.39.5