Re: [PATCH v3 3/3] kunit: Add example of test suite that can be skipped at runtime

From: David Gow

Date: Sat Jun 20 2026 - 07:08:53 EST


Le 17/06/2026 à 8:15 PM, 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>
> ---

Reviewed-by: David Gow <david@xxxxxxxxxxxx>



> Changelog
> =========
> V2->V3:
> Link:
> https://lore.kernel.org/all/20260608090438.219497-3-vaibhav@xxxxxxxxxxxxx
> * Updated patch index in the series
>
> V1->V2:
> Link:
> https://lore.kernel.org/all/20260604162805.556135-3-vaibhav@xxxxxxxxxxxxx/
> * Added RB from 'David Gow'
> ---
> 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");