
Ultimately we want to get rid of the special driver model test init and use test_pre_run() and test_post_run() for all tests. As a first step, use those function to handle console recording.
For now we need a special case for setting uts->start, but that wil go away once all init is in one place.
Signed-off-by: Simon Glass sjg@chromium.org ---
(no changes since v1)
include/dm/test.h | 2 +- test/dm/test-dm.c | 10 +++++----- test/test-main.c | 8 +++++++- 3 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/include/dm/test.h b/include/dm/test.h index dfbc82c756d..c0b463cc0f1 100644 --- a/include/dm/test.h +++ b/include/dm/test.h @@ -144,7 +144,7 @@ struct dm_test_state {
/* Declare a new driver model test */ #define DM_TEST(_name, _flags) \ - UNIT_TEST(_name, UT_TESTF_DM | (_flags), dm_test) + UNIT_TEST(_name, UT_TESTF_DM | UT_TESTF_CONSOLE_REC | (_flags), dm_test)
/* * struct sandbox_sdl_plat - Platform data for the SDL video driver diff --git a/test/dm/test-dm.c b/test/dm/test-dm.c index 74e12bd8bcc..3b1460327ad 100644 --- a/test/dm/test-dm.c +++ b/test/dm/test-dm.c @@ -96,14 +96,14 @@ static int dm_do_test(struct unit_test_state *uts, struct unit_test *test, (test->flags & UT_TESTF_SCAN_FDT)) ut_assertok(dm_extended_scan(false));
- /* - * Silence the console and rely on console recording to get - * our output. - */ - console_record_reset_enable(); + ut_assertok(test_pre_run(uts, test)); + if (!state->show_test_output) gd->flags |= GD_FLG_SILENT; test->func(uts); + + ut_assertok(test_post_run(uts, test)); + gd->flags &= ~(GD_FLG_SILENT | GD_FLG_RECORD); state_set_skip_delays(false);
diff --git a/test/test-main.c b/test/test-main.c index 7961fd8aa3e..9c600094740 100644 --- a/test/test-main.c +++ b/test/test-main.c @@ -8,9 +8,13 @@ #include <console.h> #include <test/test.h>
+DECLARE_GLOBAL_DATA_PTR; + int test_pre_run(struct unit_test_state *uts, struct unit_test *test) { - uts->start = mallinfo(); + /* DM tests have already done this */ + if (!(test->flags & UT_TESTF_DM)) + uts->start = mallinfo();
if (test->flags & UT_TESTF_CONSOLE_REC) { int ret = console_record_reset_enable(); @@ -26,6 +30,8 @@ int test_pre_run(struct unit_test_state *uts, struct unit_test *test)
int test_post_run(struct unit_test_state *uts, struct unit_test *test) { + gd->flags &= ~GD_FLG_RECORD; + return 0; }