diff --git a/include/sbi/sbi_unit_test.h b/include/sbi/sbi_unit_test.h index c63d900c..448c0486 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 1987838c..c2a0be68 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);