summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2021-03-08 03:34:49 +0300
committerTom Rini <trini@konsulko.com>2021-03-12 17:57:29 +0300
commit30a0d2064d593bf357282071a938816de876c64b (patch)
tree1ffba2c09c279767da8cbffcfa917069abe25654
parentd002a2764418fa8f054d94789e7814f60294318f (diff)
downloadu-boot-30a0d2064d593bf357282071a938816de876c64b.tar.xz
test: Call test_pre/post_run() from driver model tests
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>
-rw-r--r--include/dm/test.h2
-rw-r--r--test/dm/test-dm.c10
-rw-r--r--test/test-main.c8
3 files changed, 13 insertions, 7 deletions
diff --git a/include/dm/test.h b/include/dm/test.h
index dfbc82c756..c0b463cc0f 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 71e9cf6e5d..69a0349d04 100644
--- a/test/dm/test-dm.c
+++ b/test/dm/test-dm.c
@@ -97,14 +97,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 7961fd8aa3..9c60009474 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;
}