[PATCH 1/3] lib: tests: Add test suite init function

Anup Patel anup at brainfault.org
Mon May 6 23:02:20 PDT 2024


On Tue, Apr 23, 2024 at 9:23 PM Ivan Orlov <ivan.orlov0322 at gmail.com> wrote:
>
> Allow to define an init function for the test suite. It could help us
> to initialize global variable once, and use them in multiple test cases
> after the initialization.
>
> For instance, if multiple test cases use the same atomic_t var, it
> could be helpful to call ATOMIC_INIT once during the suite
> initialization.
>
> Signed-off-by: Ivan Orlov <ivan.orlov0322 at gmail.com>

LGTM.

Reviewed-by: Anup Patel <anup at brainfault.org>

Applied this patch to the riscv/opensbi repo.

Thanks,
Anup

> ---
>  include/sbi/sbi_unit_test.h   | 2 ++
>  lib/sbi/tests/sbi_unit_test.c | 3 +++
>  2 files changed, 5 insertions(+)
>
> diff --git a/include/sbi/sbi_unit_test.h b/include/sbi/sbi_unit_test.h
> index c63d900..448c048 100644
> --- a/include/sbi/sbi_unit_test.h
> +++ b/include/sbi/sbi_unit_test.h
> @@ -19,6 +19,7 @@ struct sbiunit_test_case {
>
>  struct sbiunit_test_suite {
>         const char *name;
> +       void (*init)(void);
>         struct sbiunit_test_case *cases;
>  };
>
> @@ -34,6 +35,7 @@ struct sbiunit_test_suite {
>  #define SBIUNIT_TEST_SUITE(suite_name, cases_arr)              \
>         struct sbiunit_test_suite suite_name = {                \
>                 .name = #suite_name,                            \
> +               .init = NULL,                                   \
>                 .cases = cases_arr                              \
>         }
>
> diff --git a/lib/sbi/tests/sbi_unit_test.c b/lib/sbi/tests/sbi_unit_test.c
> index 1987838..c2a0be6 100644
> --- a/lib/sbi/tests/sbi_unit_test.c
> +++ b/lib/sbi/tests/sbi_unit_test.c
> @@ -17,6 +17,9 @@ static void run_test_suite(struct sbiunit_test_suite *suite)
>
>         sbi_printf("## Running test suite: %s\n", suite->name);
>
> +       if (suite->init)
> +               suite->init();
> +
>         s_case = suite->cases;
>         while (s_case->test_func) {
>                 s_case->test_func(s_case);
> --
> 2.34.1
>



More information about the opensbi mailing list