Message ID | 20231215151327.1835-2-michal.wajdeczko@intel.com |
---|---|
State | Accepted |
Commit | 2b61582acd19c1a3693b02f50b681a05236305ad |
Headers | show |
Series | kunit: Reset test->priv after each param iteration | expand |
On Fri, 15 Dec 2023 at 23:13, Michal Wajdeczko <michal.wajdeczko@intel.com> wrote: > > In a test->priv field the user can store arbitrary data. > Add example how to use this feature in the test code. > > Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com> > Cc: David Gow <davidgow@google.com> > Cc: Rae Moar <rmoar@google.com> > --- Looks good to me. Reviewed-by: David Gow <davidgow@google.com> Cheers, -- David > lib/kunit/kunit-example-test.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/lib/kunit/kunit-example-test.c b/lib/kunit/kunit-example-test.c > index 6bb5c2ef6696..d7dfcf209ece 100644 > --- a/lib/kunit/kunit-example-test.c > +++ b/lib/kunit/kunit-example-test.c > @@ -221,6 +221,20 @@ static void example_params_test(struct kunit *test) > KUNIT_EXPECT_EQ(test, param->value % param->value, 0); > } > > +/* > + * This test shows the use of test->priv. > + */ > +static void example_priv_test(struct kunit *test) > +{ > + /* unless setup in suite->init(), test->priv is NULL */ > + KUNIT_ASSERT_NULL(test, test->priv); > + > + /* but can be used to pass arbitrary data to other functions */ > + test->priv = kunit_kzalloc(test, 1, GFP_KERNEL); > + KUNIT_EXPECT_NOT_NULL(test, test->priv); > + KUNIT_ASSERT_PTR_EQ(test, test->priv, kunit_get_current_test()->priv); > +} > + > /* > * This test should always pass. Can be used to practice filtering attributes. > */ > @@ -245,6 +259,7 @@ static struct kunit_case example_test_cases[] = { > KUNIT_CASE(example_mark_skipped_test), > KUNIT_CASE(example_all_expect_macros_test), > KUNIT_CASE(example_static_stub_test), > + KUNIT_CASE(example_priv_test), > KUNIT_CASE_PARAM(example_params_test, example_gen_params), > KUNIT_CASE_SLOW(example_slow_test), > {} > -- > 2.25.1 >
diff --git a/lib/kunit/kunit-example-test.c b/lib/kunit/kunit-example-test.c index 6bb5c2ef6696..d7dfcf209ece 100644 --- a/lib/kunit/kunit-example-test.c +++ b/lib/kunit/kunit-example-test.c @@ -221,6 +221,20 @@ static void example_params_test(struct kunit *test) KUNIT_EXPECT_EQ(test, param->value % param->value, 0); } +/* + * This test shows the use of test->priv. + */ +static void example_priv_test(struct kunit *test) +{ + /* unless setup in suite->init(), test->priv is NULL */ + KUNIT_ASSERT_NULL(test, test->priv); + + /* but can be used to pass arbitrary data to other functions */ + test->priv = kunit_kzalloc(test, 1, GFP_KERNEL); + KUNIT_EXPECT_NOT_NULL(test, test->priv); + KUNIT_ASSERT_PTR_EQ(test, test->priv, kunit_get_current_test()->priv); +} + /* * This test should always pass. Can be used to practice filtering attributes. */ @@ -245,6 +259,7 @@ static struct kunit_case example_test_cases[] = { KUNIT_CASE(example_mark_skipped_test), KUNIT_CASE(example_all_expect_macros_test), KUNIT_CASE(example_static_stub_test), + KUNIT_CASE(example_priv_test), KUNIT_CASE_PARAM(example_params_test, example_gen_params), KUNIT_CASE_SLOW(example_slow_test), {}
In a test->priv field the user can store arbitrary data. Add example how to use this feature in the test code. Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com> Cc: David Gow <davidgow@google.com> Cc: Rae Moar <rmoar@google.com> --- lib/kunit/kunit-example-test.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)