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>
This commit is contained in:
Simon Glass 2021-03-07 17:34:49 -07:00 committed by Tom Rini
parent d002a27644
commit 30a0d2064d
3 changed files with 13 additions and 7 deletions

View File

@ -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

View File

@ -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);

View File

@ -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;
}