Re: [PATCH 2/2] kunit: Add example of test suite that can be skipped at runtime
From: Vaibhav Jain
Date: Mon Jun 08 2026 - 04:55:06 EST
David Gow <david@xxxxxxxxxxxx> writes:
> 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>
Awesome, thanks
Will add your RB to v2 of the patch series
>
> 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");
>
--
Cheers
~ Vaibhav