[PATCH v5 22/41] test: Move dm_test_init() into test-main.c

Sean Anderson seanga2 at gmail.com
Mon Mar 22 14:26:57 CET 2021


On 3/7/21 7:34 PM, Simon Glass wrote:
> Move this function into test-main so that all the init is in one place.
> Rename it so that its purpose is clearer.
> 
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
> 
> (no changes since v1)
> 
>   include/test/ut.h |  9 ---------
>   test/dm/test-dm.c | 22 ----------------------
>   test/test-main.c  | 33 ++++++++++++++++++++++++++++++++-
>   3 files changed, 32 insertions(+), 32 deletions(-)
> 
> diff --git a/include/test/ut.h b/include/test/ut.h
> index 6e56ca99c31..4e0aba9f700 100644
> --- a/include/test/ut.h
> +++ b/include/test/ut.h
> @@ -387,15 +387,6 @@ 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);
>   
> -/**
> - * dm_test_init() - Get ready to run a driver model test
> - *
> - * This clears out the driver model data structures. For sandbox it resets the
> - * state structure.
> - *
> - * @uts: Test state
> - */
> -int dm_test_init(struct unit_test_state *uts);
>   
>   /**
>    * ut_run_tests() - Run a set of tests
> diff --git a/test/dm/test-dm.c b/test/dm/test-dm.c
> index 15adc53f533..d601e497522 100644
> --- a/test/dm/test-dm.c
> +++ b/test/dm/test-dm.c
> @@ -12,7 +12,6 @@
>   #include <malloc.h>
>   #include <asm/global_data.h>
>   #include <asm/state.h>
> -#include <dm/test.h>
>   #include <dm/root.h>
>   #include <dm/uclass-internal.h>
>   #include <test/test.h>
> @@ -23,27 +22,6 @@ DECLARE_GLOBAL_DATA_PTR;
>   
>   struct unit_test_state global_dm_test_state;
>   
> -int dm_test_init(struct unit_test_state *uts)
> -{
> -	bool of_live = uts->of_live;
> -
> -	uts->root = NULL;
> -	uts->testdev = NULL;
> -	uts->force_fail_alloc = false;
> -	uts->skip_post_probe = false;
> -	gd->dm_root = NULL;
> -	if (!CONFIG_IS_ENABLED(OF_PLATDATA))
> -		memset(dm_testdrv_op_count, '\0', sizeof(dm_testdrv_op_count));
> -	state_reset_for_test(state_get_current());
> -
> -	/* Determine whether to make the live tree available */
> -	gd_set_of_root(of_live ? uts->of_root : NULL);
> -	ut_assertok(dm_init(of_live));
> -	uts->root = dm_root();
> -
> -	return 0;
> -}
> -
>   static int dm_test_destroy(struct unit_test_state *uts)
>   {
>   	int id;
> diff --git a/test/test-main.c b/test/test-main.c
> index f14b7b09f79..8b0121bdcec 100644
> --- a/test/test-main.c
> +++ b/test/test-main.c
> @@ -7,12 +7,43 @@
>   #include <common.h>
>   #include <console.h>
>   #include <dm.h>
> +#include <asm/state.h>

This breaks non-sandbox unit testing, since they do not have a state.h.

--Sean

>   #include <dm/root.h>
> +#include <dm/test.h>
>   #include <test/test.h>
>   #include <test/ut.h>
>   
>   DECLARE_GLOBAL_DATA_PTR;
>   
> +/**
> + * dm_test_pre_run() - Get ready to run a driver model test
> + *
> + * This clears out the driver model data structures. For sandbox it resets the
> + * state structure
> + *
> + * @uts: Test state
> + */
> +static int dm_test_pre_run(struct unit_test_state *uts)
> +{
> +	bool of_live = uts->of_live;
> +
> +	uts->root = NULL;
> +	uts->testdev = NULL;
> +	uts->force_fail_alloc = false;
> +	uts->skip_post_probe = false;
> +	gd->dm_root = NULL;
> +	if (!CONFIG_IS_ENABLED(OF_PLATDATA))
> +		memset(dm_testdrv_op_count, '\0', sizeof(dm_testdrv_op_count));
> +	state_reset_for_test(state_get_current());
> +
> +	/* Determine whether to make the live tree available */
> +	gd_set_of_root(of_live ? uts->of_root : NULL);
> +	ut_assertok(dm_init(of_live));
> +	uts->root = dm_root();
> +
> +	return 0;
> +}
> +
>   /* Ensure all the test devices are probed */
>   static int do_autoprobe(struct unit_test_state *uts)
>   {
> @@ -31,7 +62,7 @@ static int do_autoprobe(struct unit_test_state *uts)
>   int test_pre_run(struct unit_test_state *uts, struct unit_test *test)
>   {
>   	if (test->flags & UT_TESTF_DM)
> -		ut_assertok(dm_test_init(uts));
> +		ut_assertok(dm_test_pre_run(uts));
>   
>   	ut_set_skip_delays(uts, false);
>   
> 


More information about the U-Boot mailing list