On Thu, 14 Dec 2023 at 03:44, Rae Moar rmoar@google.com wrote:
Add example_init_test_suite to allow for testing the feature of running test suites marked as init to indicate they use init data and/or functions.
This suite should always pass and uses a simple init function.
This suite can also be used to test the is_init attribute introduced in the next patch.
Signed-off-by: Rae Moar rmoar@google.com
Thanks -- this looks better to me.
Reviewed-by: David Gow davidgow@google.com
-- David
Changes since v4:
- Mark test as __init and then set cases as __refdata to supress modpost warnings
lib/kunit/kunit-example-test.c | 37 ++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+)
diff --git a/lib/kunit/kunit-example-test.c b/lib/kunit/kunit-example-test.c index 6bb5c2ef6696..d2f7a3c62c18 100644 --- a/lib/kunit/kunit-example-test.c +++ b/lib/kunit/kunit-example-test.c @@ -287,4 +287,41 @@ static struct kunit_suite example_test_suite = { */ kunit_test_suites(&example_test_suite);
+static int __init init_add(int x, int y) +{
return (x + y);
+}
+/*
- This test should always pass. Can be used to test init suites.
- */
+static void __init example_init_test(struct kunit *test) +{
KUNIT_EXPECT_EQ(test, init_add(1, 1), 2);
+}
+/*
- The kunit_case struct cannot be marked as __initdata as this will be
- used in debugfs to retrieve results after test has run
- */
+static struct kunit_case __refdata example_init_test_cases[] = {
KUNIT_CASE(example_init_test),
{}
+};
+/*
- The kunit_suite struct cannot be marked as __initdata as this will be
- used in debugfs to retrieve results after test has run
- */
+static struct kunit_suite example_init_test_suite = {
.name = "example_init",
.test_cases = example_init_test_cases,
+};
+/*
- This registers the test suite and marks the suite as using init data
- and/or functions.
- */
+kunit_test_init_section_suites(&example_init_test_suite);
MODULE_LICENSE("GPL v2");
2.43.0.472.g3155946c3a-goog