We want to run the same test on flat and live trees. In preparation for
this, create a new function which handles running a test.

Signed-off-by: Simon Glass <s...@chromium.org>
---

Changes in v3: None
Changes in v2: None

 test/dm/test-main.c | 56 ++++++++++++++++++++++++++++++-----------------------
 1 file changed, 32 insertions(+), 24 deletions(-)

diff --git a/test/dm/test-main.c b/test/dm/test-main.c
index 9aa9d3a953..2848673e06 100644
--- a/test/dm/test-main.c
+++ b/test/dm/test-main.c
@@ -72,12 +72,42 @@ static int dm_test_destroy(struct unit_test_state *uts)
        return 0;
 }
 
+static int dm_do_test(struct unit_test_state *uts, struct unit_test *test)
+{
+       struct sandbox_state *state = state_get_current();
+
+       printf("Test: %s\n", test->name);
+       ut_assertok(dm_test_init(uts));
+
+       uts->start = mallinfo();
+       if (test->flags & DM_TESTF_SCAN_PDATA)
+               ut_assertok(dm_scan_platdata(false));
+       if (test->flags & DM_TESTF_PROBE_TEST)
+               ut_assertok(do_autoprobe(uts));
+       if (test->flags & DM_TESTF_SCAN_FDT)
+               ut_assertok(dm_scan_fdt(gd->fdt_blob, false));
+
+       /*
+        * Silence the console and rely on console reocrding to get
+        * our output.
+        */
+       console_record_reset();
+       if (!state->show_test_output)
+               gd->flags |= GD_FLG_SILENT;
+       test->func(uts);
+       gd->flags &= ~GD_FLG_SILENT;
+       state_set_skip_delays(false);
+
+       ut_assertok(dm_test_destroy(uts));
+
+       return 0;
+}
+
 static int dm_test_main(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 = &global_dm_test_state;
-       struct sandbox_state *state = state_get_current();
        uts->priv = &_global_priv_dm_test_state;
        struct unit_test *test;
        int run_count;
@@ -106,30 +136,8 @@ static int dm_test_main(const char *test_name)
                        name += 8;
                if (test_name && strcmp(test_name, name))
                        continue;
-               printf("Test: %s\n", test->name);
+               ut_assertok(dm_do_test(uts, test));
                run_count++;
-               ut_assertok(dm_test_init(uts));
-
-               uts->start = mallinfo();
-               if (test->flags & DM_TESTF_SCAN_PDATA)
-                       ut_assertok(dm_scan_platdata(false));
-               if (test->flags & DM_TESTF_PROBE_TEST)
-                       ut_assertok(do_autoprobe(uts));
-               if (test->flags & DM_TESTF_SCAN_FDT)
-                       ut_assertok(dm_scan_fdt(gd->fdt_blob, false));
-
-               /*
-                * Silence the console and rely on console reocrding to get
-                * our output.
-                */
-               console_record_reset();
-               if (!state->show_test_output)
-                       gd->flags |= GD_FLG_SILENT;
-               test->func(uts);
-               gd->flags &= ~GD_FLG_SILENT;
-               state_set_skip_delays(false);
-
-               ut_assertok(dm_test_destroy(uts));
        }
 
        if (test_name && !run_count)
-- 
2.13.0.303.g4ebf302169-goog

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to