summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/sbi/sbi_unit_test.h2
-rw-r--r--lib/sbi/tests/sbi_unit_test.c3
2 files changed, 5 insertions, 0 deletions
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);