test: Use ut_run_test() to run driver model tests

Instead of having a separate function for running driver model tests, use
the common one. Make the pre/post-run functions private since we don't
need these outside of test-main.c

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2021-03-07 17:35:01 -07:00 committed by Tom Rini
parent 99a88fe1bd
commit ca44ca0556
3 changed files with 24 additions and 33 deletions

View File

@ -367,26 +367,6 @@ void ut_unsilence_console(struct unit_test_state *uts);
*/
void ut_set_skip_delays(struct unit_test_state *uts, bool skip_delays);
/**
* test_pre_run() - Handle any preparation needed to run a test
*
* @uts: Test state
* @test: Test to prepare for
* @return 0 if OK, -EAGAIN to skip this test since some required feature is not
* available, other -ve on error (meaning that testing cannot likely
* continue)
*/
int test_pre_run(struct unit_test_state *uts, struct unit_test *test);
/**
* test_post_run() - Handle cleaning up after a test
*
* @uts: Test state
* @test: Test to clean up after
* @return 0 if OK, -ve on error (meaning that testing cannot likely continue)
*/
int test_post_run(struct unit_test_state *uts, struct unit_test *test);
/**
* ut_run_test() - Run a single test
*

View File

@ -25,17 +25,8 @@ struct unit_test_state global_dm_test_state;
static int dm_do_test(struct unit_test_state *uts, struct unit_test *test,
bool of_live)
{
const char *fname = strrchr(test->file, '/') + 1;
printf("Test: %s: %s%s\n", test->name, fname,
!of_live ? " (flat tree)" : "");
uts->of_live = of_live;
ut_assertok(test_pre_run(uts, test));
test->func(uts);
ut_assertok(test_post_run(uts, test));
ut_assertok(ut_run_test(uts, test, test->name));
return 0;
}

View File

@ -80,7 +80,16 @@ static int do_autoprobe(struct unit_test_state *uts)
return ret;
}
int test_pre_run(struct unit_test_state *uts, struct unit_test *test)
/**
* test_pre_run() - Handle any preparation needed to run a test
*
* @uts: Test state
* @test: Test to prepare for
* @return 0 if OK, -EAGAIN to skip this test since some required feature is not
* available, other -ve on error (meaning that testing cannot likely
* continue)
*/
static int test_pre_run(struct unit_test_state *uts, struct unit_test *test)
{
if (test->flags & UT_TESTF_DM)
ut_assertok(dm_test_pre_run(uts));
@ -112,7 +121,14 @@ int test_pre_run(struct unit_test_state *uts, struct unit_test *test)
return 0;
}
int test_post_run(struct unit_test_state *uts, struct unit_test *test)
/**
* test_post_run() - Handle cleaning up after a test
*
* @uts: Test state
* @test: Test to clean up after
* @return 0 if OK, -ve on error (meaning that testing cannot likely continue)
*/
static int test_post_run(struct unit_test_state *uts, struct unit_test *test)
{
ut_unsilence_console(uts);
if (test->flags & UT_TESTF_DM)
@ -124,9 +140,13 @@ int test_post_run(struct unit_test_state *uts, struct unit_test *test)
int ut_run_test(struct unit_test_state *uts, struct unit_test *test,
const char *test_name)
{
const char *fname = strrchr(test->file, '/') + 1;
const char *note = "";
int ret;
printf("Test: %s\n", test_name);
if ((test->flags & UT_TESTF_DM) && !uts->of_live)
note = " (flat tree)";
printf("Test: %s: %s%s\n", test_name, fname, note);
ret = test_pre_run(uts, test);
if (ret == -EAGAIN)