aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2021-03-07 17:35:07 -0700
committerTom Rini <trini@konsulko.com>2021-03-12 09:57:30 -0500
commit1fc9c12210bba815d10e9261fc3602e3a6a73f8e (patch)
tree7224f28212a0bc7707bd122bb9b06eca0583c11b /test
parent45d191af0218e8a4f7a760f932223c5a9bc55765 (diff)
downloadu-boot-1fc9c12210bba815d10e9261fc3602e3a6a73f8e.zip
u-boot-1fc9c12210bba815d10e9261fc3602e3a6a73f8e.tar.gz
u-boot-1fc9c12210bba815d10e9261fc3602e3a6a73f8e.tar.bz2
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 <sjg@chromium.org>
Diffstat (limited to 'test')
-rw-r--r--test/dm/test-dm.c13
-rw-r--r--test/test-main.c32
2 files changed, 32 insertions, 13 deletions
diff --git a/test/dm/test-dm.c b/test/dm/test-dm.c
index 54e6577..8cb99ed 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 16c0d13..8138fb4 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);