[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