diff mbox series

[v3,4/4] kunit: example: Provide example exit functions

Message ID 20230421040218.2156548-4-davidgow@google.com (mailing list archive)
State Accepted
Commit a5ce66ad292b681ffe245e1c0e8840484da76784
Delegated to: Brendan Higgins
Headers show
Series [v3,1/4] kunit: Always run cleanup from a test kthread | expand

Commit Message

David Gow April 21, 2023, 4:02 a.m. UTC
Add an example .exit and .suite_exit function to the KUnit example
suite. Given exit functions are a bit more subtle than init functions
(due to running in a different kthread, and running even after tests or
test init functions fail), providing an easy place to experiment with
them is useful.

Signed-off-by: David Gow <davidgow@google.com>
---

This patch was introduced in v3.

---
 lib/kunit/kunit-example-test.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

Comments

Rae Moar April 25, 2023, 7:11 p.m. UTC | #1
On Fri, Apr 21, 2023 at 12:02 AM David Gow <davidgow@google.com> wrote:
>
> Add an example .exit and .suite_exit function to the KUnit example
> suite. Given exit functions are a bit more subtle than init functions
> (due to running in a different kthread, and running even after tests or
> test init functions fail), providing an easy place to experiment with
> them is useful.
>
> Signed-off-by: David Gow <davidgow@google.com>

Hi David!

I have reviewed this patch and the overall changes to the cleanup
structure. It looks good to me (other than that kernel test robot
error). Nice to see an example of how to use exit functions in our
example test.

Thanks!
-Rae

Reviewed-by: Rae Moar <rmoar@google.com>

> ---
>
> This patch was introduced in v3.
>
> ---
>  lib/kunit/kunit-example-test.c | 22 ++++++++++++++++++++++
>  1 file changed, 22 insertions(+)
>
> diff --git a/lib/kunit/kunit-example-test.c b/lib/kunit/kunit-example-test.c
> index cd8b7e51d02b..24315c882b31 100644
> --- a/lib/kunit/kunit-example-test.c
> +++ b/lib/kunit/kunit-example-test.c
> @@ -41,6 +41,16 @@ static int example_test_init(struct kunit *test)
>         return 0;
>  }
>
> +/*
> + * This is run once after each test case, see the comment on
> + * example_test_suite for more information.
> + */
> +static void example_test_exit(struct kunit *test)
> +{
> +       kunit_info(test, "cleaning up\n");
> +}
> +
> +
>  /*
>   * This is run once before all test cases in the suite.
>   * See the comment on example_test_suite for more information.
> @@ -52,6 +62,16 @@ static int example_test_init_suite(struct kunit_suite *suite)
>         return 0;
>  }
>
> +/*
> + * This is run once after all test cases in the suite.
> + * See the comment on example_test_suite for more information.
> + */
> +static void example_test_exit_suite(struct kunit_suite *suite)
> +{
> +       kunit_info(suite, "exiting suite\n");
> +}
> +
> +
>  /*
>   * This test should always be skipped.
>   */
> @@ -211,7 +231,9 @@ static struct kunit_case example_test_cases[] = {
>  static struct kunit_suite example_test_suite = {
>         .name = "example",
>         .init = example_test_init,
> +       .exit = example_test_exit,
>         .suite_init = example_test_init_suite,
> +       .suite_exit = example_test_exit_suite,
>         .test_cases = example_test_cases,
>  };
>
> --
> 2.40.0.634.g4ca3ef3211-goog
>
diff mbox series

Patch

diff --git a/lib/kunit/kunit-example-test.c b/lib/kunit/kunit-example-test.c
index cd8b7e51d02b..24315c882b31 100644
--- a/lib/kunit/kunit-example-test.c
+++ b/lib/kunit/kunit-example-test.c
@@ -41,6 +41,16 @@  static int example_test_init(struct kunit *test)
 	return 0;
 }
 
+/*
+ * This is run once after each test case, see the comment on
+ * example_test_suite for more information.
+ */
+static void example_test_exit(struct kunit *test)
+{
+	kunit_info(test, "cleaning up\n");
+}
+
+
 /*
  * This is run once before all test cases in the suite.
  * See the comment on example_test_suite for more information.
@@ -52,6 +62,16 @@  static int example_test_init_suite(struct kunit_suite *suite)
 	return 0;
 }
 
+/*
+ * This is run once after all test cases in the suite.
+ * See the comment on example_test_suite for more information.
+ */
+static void example_test_exit_suite(struct kunit_suite *suite)
+{
+	kunit_info(suite, "exiting suite\n");
+}
+
+
 /*
  * This test should always be skipped.
  */
@@ -211,7 +231,9 @@  static struct kunit_case example_test_cases[] = {
 static struct kunit_suite example_test_suite = {
 	.name = "example",
 	.init = example_test_init,
+	.exit = example_test_exit,
 	.suite_init = example_test_init_suite,
+	.suite_exit = example_test_exit_suite,
 	.test_cases = example_test_cases,
 };