On Wed, 13 Dec 2023 at 09:02, Rae Moar <rmoar@xxxxxxxxxx> 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@xxxxxxxxxx> > --- > Changes since v3: > - I ended up not changing anything as adding __init to the test gave > a build warning. It did still work so I could add it back if wanted. I had another look at this, and I think the most correct solution here is to make the test __init, and the array of tests __refdata. (Ideally this would be something we could wrap in a macro, but I think it's fine to just have it written here for now, so it's explicit in the example._ How does that sound? -- David > > 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..18495778de7c 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 example_init_test(struct kunit *test) Add __init here. > +{ > + 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 example_init_test_cases[] = { Make this '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 >
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature