From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Glass Date: Wed, 10 May 2017 08:21:03 -0600 Subject: [U-Boot] [PATCH v2 24/71] dm: test: Move test running code into a separate function In-Reply-To: <20170510142150.30515-1-sjg@chromium.org> References: <20170510142150.30515-1-sjg@chromium.org> Message-ID: <20170510142150.30515-25-sjg@chromium.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 --- 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.rc2.291.g57267f2277-goog