Re: [PATCH 2/2] kunit: Add example of test suite that can be skipped at runtime
From: David Gow
Date: Fri Jun 05 2026 - 01:13:09 EST
Le 05/06/2026 à 12:28 AM, Vaibhav Jain a écrit :
> Add an example test suite name 'example_test_skip_suite' to
> 'kunit-example-test.c' that shows how to skip an entire test suite based on
> runtime conditions.
>
> The example suite 'example_skip_suite' provides a 'suite_init' callback
> named example_skip_suite_init() which marks the entire suite as skipped
> using kunit_mark_skipped().
>
> This demonstrates a way for conditionally skipping test suites when any
> prerequisites for kunit_suite execution are not met. The 'suite_init'
> callback can perform any necessary checks and mark the suite as skipped,
> preventing all test cases from executing while also indicating why the
> suite was skipped.
>
> Signed-off-by: Vaibhav Jain <vaibhav@xxxxxxxxxxxxx>
> ---
Thanks!
Reviewed-by: David Gow <david@xxxxxxxxxxxx>
Cheers,
-- David
> lib/kunit/kunit-example-test.c | 29 +++++++++++++++++++++++++++++
> 1 file changed, 29 insertions(+)
>
> diff --git a/lib/kunit/kunit-example-test.c b/lib/kunit/kunit-example-test.c
> index 0bae7b7ca0b0..b8ded54fa46d 100644
> --- a/lib/kunit/kunit-example-test.c
> +++ b/lib/kunit/kunit-example-test.c
> @@ -591,5 +591,34 @@ static struct kunit_suite example_init_test_suite = {
> */
> kunit_test_init_section_suites(&example_init_test_suite);
>
> +/*
> + * This test should always be skipped.
> + */
> +static void example_skip_suite_test(struct kunit *test)
> +{
> + /* This line should never be seen */
> + KUNIT_FAIL(test, "You should not see a this.");
> +}
> +
> +static struct kunit_case example_skip_suite_test_cases[] = {
> + KUNIT_CASE(example_skip_suite_test),
> + {}
> +};
> +
> +static int example_skip_suite_init(struct kunit_suite *suite)
> +{
> + kunit_mark_skipped(suite, "Test suite expected to be skipped");
> + return 0;
> +}
> +
> +static struct kunit_suite example_test_skip_suite = {
> + .name = "example_skip_suite",
> + .suite_init = example_skip_suite_init,
> + .test_cases = example_skip_suite_test_cases,
> +};
> +
> +/* This registers a test suite that will be skipped */
> +kunit_test_suite(example_test_skip_suite);
> +
> MODULE_DESCRIPTION("Example KUnit test suite");
> MODULE_LICENSE("GPL v2");