diff mbox series

[1/2] kunit: Add example for using test->priv

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

Commit Message

Michal Wajdeczko Dec. 15, 2023, 3:13 p.m. UTC
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(+)

Comments

David Gow Dec. 16, 2023, 1:20 a.m. UTC | #1
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 mbox series

Patch

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),
 	{}