Re: [PATCH kunit-fixes v5 3/4] kunit: test: Add example tests which are always skipped
From: Marco Elver
Date: Fri Jun 25 2021 - 06:52:33 EST
On Fri, 25 Jun 2021 at 08:58, David Gow <davidgow@xxxxxxxxxx> wrote:
>
> Add two new tests to the example test suite, both of which are always
> skipped. This is used as an example for how to write tests which are
> skipped, and to demonstrate the difference between kunit_skip() and
> kunit_mark_skipped().
>
> Note that these tests are enabled by default, so a default run of KUnit
> will have two skipped tests.
>
> Signed-off-by: David Gow <davidgow@xxxxxxxxxx>
> Reviewed-by: Daniel Latypov <dlatypov@xxxxxxxxxx>
> Reviewed-by: Brendan Higgins <brendanhiggins@xxxxxxxxxx>
Reviewed-by: Marco Elver <elver@xxxxxxxxxx>
> ---
>
> No changes since v4:
> https://lore.kernel.org/linux-kselftest/20210611070802.1318911-3-davidgow@xxxxxxxxxx/
>
> No changes since v3:
> https://lore.kernel.org/linux-kselftest/20210608065111.610297-1-davidgow@xxxxxxxxxx/
>
> No changes since v2:
> https://lore.kernel.org/linux-kselftest/20210528075932.347154-3-davidgow@xxxxxxxxxx/
>
> Changes since v1:
> https://lore.kernel.org/linux-kselftest/20210526081112.3652290-3-davidgow@xxxxxxxxxx/
> - These tests are now part of the example test suite.
> - Use kunit_info() instead of kunit_log(KERN_INFO, ...)
> - Use KUNIT_FAIL() to assert the test is not executing for skip_test
>
> lib/kunit/kunit-example-test.c | 31 +++++++++++++++++++++++++++++++
> 1 file changed, 31 insertions(+)
>
> diff --git a/lib/kunit/kunit-example-test.c b/lib/kunit/kunit-example-test.c
> index be1164ecc476..51099b0ca29c 100644
> --- a/lib/kunit/kunit-example-test.c
> +++ b/lib/kunit/kunit-example-test.c
> @@ -40,6 +40,35 @@ static int example_test_init(struct kunit *test)
> return 0;
> }
>
> +/*
> + * This test should always be skipped.
> + */
> +static void example_skip_test(struct kunit *test)
> +{
> + /* This line should run */
> + kunit_info(test, "You should not see a line below.");
> +
> + /* Skip (and abort) the test */
> + kunit_skip(test, "this test should be skipped");
> +
> + /* This line should not execute */
> + KUNIT_FAIL(test, "You should not see this line.");
> +}
> +
> +/*
> + * This test should always be marked skipped.
> + */
> +static void example_mark_skipped_test(struct kunit *test)
> +{
> + /* This line should run */
> + kunit_info(test, "You should see a line below.");
> +
> + /* Skip (but do not abort) the test */
> + kunit_mark_skipped(test, "this test should be skipped");
> +
> + /* This line should run */
> + kunit_info(test, "You should see this line.");
> +}
> /*
> * Here we make a list of all the test cases we want to add to the test suite
> * below.
> @@ -52,6 +81,8 @@ static struct kunit_case example_test_cases[] = {
> * test suite.
> */
> KUNIT_CASE(example_simple_test),
> + KUNIT_CASE(example_skip_test),
> + KUNIT_CASE(example_mark_skipped_test),
> {}
> };
>
> --
> 2.32.0.93.g670b81a890-goog
>