diff mbox series

selftests: Warn about skipped tests in result summary

Message ID 20241122155548.55495-1-laura.nao@collabora.com (mailing list archive)
State New
Headers show
Series selftests: Warn about skipped tests in result summary | expand

Commit Message

Laura Nao Nov. 22, 2024, 3:55 p.m. UTC
Update the functions that print the test totals at the end of a selftest
to include a warning message when skipped tests are detected. The
message advises users that skipped tests may indicate missing
configuration options and suggests enabling them to improve coverage.

Signed-off-by: Laura Nao <laura.nao@collabora.com>
---
This patch follows up on a previous discussion[1] and aims to highlight
skipped tests for the user's attention.

[1] https://lore.kernel.org/lkml/2bb2d338-cd00-4ac2-b8bd-5579eae82637@linuxfoundation.org/
---
 tools/testing/selftests/kselftest.h               | 4 ++++
 tools/testing/selftests/kselftest/ksft.py         | 3 +++
 tools/testing/selftests/kselftest/ktap_helpers.sh | 4 ++++
 3 files changed, 11 insertions(+)

Comments

Shuah Nov. 22, 2024, 6:19 p.m. UTC | #1
On 11/22/24 08:55, Laura Nao wrote:
> Update the functions that print the test totals at the end of a selftest
> to include a warning message when skipped tests are detected. The
> message advises users that skipped tests may indicate missing
> configuration options and suggests enabling them to improve coverage.
> 
> Signed-off-by: Laura Nao <laura.nao@collabora.com>
> ---
> This patch follows up on a previous discussion[1] and aims to highlight
> skipped tests for the user's attention.
> 
> [1] https://lore.kernel.org/lkml/2bb2d338-cd00-4ac2-b8bd-5579eae82637@linuxfoundation.org/
> ---
>   tools/testing/selftests/kselftest.h               | 4 ++++
>   tools/testing/selftests/kselftest/ksft.py         | 3 +++
>   tools/testing/selftests/kselftest/ktap_helpers.sh | 4 ++++
>   3 files changed, 11 insertions(+)
> 
> diff --git a/tools/testing/selftests/kselftest.h b/tools/testing/selftests/kselftest.h
> index 29fedf609611..d3f64b333acd 100644
> --- a/tools/testing/selftests/kselftest.h
> +++ b/tools/testing/selftests/kselftest.h
> @@ -147,6 +147,10 @@ static inline void ksft_set_plan(unsigned int plan)
>   
>   static inline void ksft_print_cnts(void)
>   {
> +	if (ksft_cnt.ksft_xskip > 0)
> +		printf(
> +			"# Skipped tests detected. Consider enabling relevant config options to improve coverage.\n"

I like this. How about printing the number of skipped tests in this
message also to make it easy to parse.

Same comment on other print messages,

> +		);
>   	if (ksft_plan != ksft_test_num())
>   		printf("# Planned tests != run tests (%u != %u)\n",
>   			ksft_plan, ksft_test_num());
> diff --git a/tools/testing/selftests/kselftest/ksft.py b/tools/testing/selftests/kselftest/ksft.py
> index bf215790a89d..7675a15a1264 100644
> --- a/tools/testing/selftests/kselftest/ksft.py
> +++ b/tools/testing/selftests/kselftest/ksft.py
> @@ -27,6 +27,9 @@ def set_plan(num_tests):
>   
>   
>   def print_cnts():
> +    if ksft_cnt['skip'] > 0:
> +        print("# Skipped tests detected. Consider enabling relevant config options to improve coverage.")
> +
>       print(
>           f"# Totals: pass:{ksft_cnt['pass']} fail:{ksft_cnt['fail']} xfail:0 xpass:0 skip:{ksft_cnt['skip']} error:0"
>       )
> diff --git a/tools/testing/selftests/kselftest/ktap_helpers.sh b/tools/testing/selftests/kselftest/ktap_helpers.sh
> index 79a125eb24c2..a4211221ccd6 100644
> --- a/tools/testing/selftests/kselftest/ktap_helpers.sh
> +++ b/tools/testing/selftests/kselftest/ktap_helpers.sh
> @@ -107,5 +107,9 @@ ktap_finished() {
>   }
>   
>   ktap_print_totals() {
> +	if [ "$KTAP_CNT_SKIP" -gt 0 ]; then
> +		echo "# Skipped tests detected. " \
> +			"Consider enabling relevant config options to improve coverage."
> +	fi
>   	echo "# Totals: pass:$KTAP_CNT_PASS fail:$KTAP_CNT_FAIL xfail:0 xpass:0 skip:$KTAP_CNT_SKIP error:0"
>   }

thanks,
-- Shuah
Muhammad Usama Anjum Nov. 25, 2024, 8:46 a.m. UTC | #2
Hi Laura,

Thank you for making change.

On 11/22/24 11:19 PM, Shuah wrote:
> On 11/22/24 08:55, Laura Nao wrote:
>> Update the functions that print the test totals at the end of a selftest
>> to include a warning message when skipped tests are detected. The
>> message advises users that skipped tests may indicate missing
>> configuration options and suggests enabling them to improve coverage.
>>
>> Signed-off-by: Laura Nao <laura.nao@collabora.com>
>> ---
>> This patch follows up on a previous discussion[1] and aims to highlight
>> skipped tests for the user's attention.
>>
>> [1] https://lore.kernel.org/lkml/2bb2d338-cd00-4ac2-b8bd-5579eae82637@linuxfoundation.org/
>> ---
>>   tools/testing/selftests/kselftest.h               | 4 ++++
>>   tools/testing/selftests/kselftest/ksft.py         | 3 +++
>>   tools/testing/selftests/kselftest/ktap_helpers.sh | 4 ++++
>>   3 files changed, 11 insertions(+)
>>
>> diff --git a/tools/testing/selftests/kselftest.h b/tools/testing/selftests/kselftest.h
>> index 29fedf609611..d3f64b333acd 100644
>> --- a/tools/testing/selftests/kselftest.h
>> +++ b/tools/testing/selftests/kselftest.h
>> @@ -147,6 +147,10 @@ static inline void ksft_set_plan(unsigned int plan)
>>     static inline void ksft_print_cnts(void)
>>   {
>> +    if (ksft_cnt.ksft_xskip > 0)
>> +        printf(
>> +            "# Skipped tests detected. Consider enabling relevant config options to improve coverage.\n"
Looks good. Printing the number of skipped tests would be an improvement.
I'm thinking about a case where some tests got failed and some skipped. Would
this warning be useful in that case?

> 
> I like this. How about printing the number of skipped tests in this
> message also to make it easy to parse.
> 
> Same comment on other print messages,
> 
>> +        );
>>       if (ksft_plan != ksft_test_num())
>>           printf("# Planned tests != run tests (%u != %u)\n",
>>               ksft_plan, ksft_test_num());
>> diff --git a/tools/testing/selftests/kselftest/ksft.py b/tools/testing/selftests/kselftest/ksft.py
>> index bf215790a89d..7675a15a1264 100644
>> --- a/tools/testing/selftests/kselftest/ksft.py
>> +++ b/tools/testing/selftests/kselftest/ksft.py
>> @@ -27,6 +27,9 @@ def set_plan(num_tests):
>>       def print_cnts():
>> +    if ksft_cnt['skip'] > 0:
>> +        print("# Skipped tests detected. Consider enabling relevant config options to improve coverage.")
>> +
>>       print(
>>           f"# Totals: pass:{ksft_cnt['pass']} fail:{ksft_cnt['fail']} xfail:0 xpass:0 skip:{ksft_cnt['skip']} error:0"
>>       )
>> diff --git a/tools/testing/selftests/kselftest/ktap_helpers.sh b/tools/testing/selftests/kselftest/ktap_helpers.sh
>> index 79a125eb24c2..a4211221ccd6 100644
>> --- a/tools/testing/selftests/kselftest/ktap_helpers.sh
>> +++ b/tools/testing/selftests/kselftest/ktap_helpers.sh
>> @@ -107,5 +107,9 @@ ktap_finished() {
>>   }
>>     ktap_print_totals() {
>> +    if [ "$KTAP_CNT_SKIP" -gt 0 ]; then
>> +        echo "# Skipped tests detected. " \
>> +            "Consider enabling relevant config options to improve coverage."
>> +    fi
>>       echo "# Totals: pass:$KTAP_CNT_PASS fail:$KTAP_CNT_FAIL xfail:0 xpass:0 skip:$KTAP_CNT_SKIP error:0"
>>   }
> 
> thanks,
> -- Shuah
>
Laura Nao Nov. 25, 2024, 11:49 a.m. UTC | #3
Hi Shuah and Usama,

On 11/25/24 09:46, Muhammad Usama Anjum wrote:
> Hi Laura,
> 
> Thank you for making change.
> 
> On 11/22/24 11:19 PM, Shuah wrote:
>> On 11/22/24 08:55, Laura Nao wrote:
>>> Update the functions that print the test totals at the end of a selftest
>>> to include a warning message when skipped tests are detected. The
>>> message advises users that skipped tests may indicate missing
>>> configuration options and suggests enabling them to improve coverage.
>>>
>>> Signed-off-by: Laura Nao <laura.nao@collabora.com>
>>> ---
>>> This patch follows up on a previous discussion[1] and aims to highlight
>>> skipped tests for the user's attention.
>>>
>>> [1] https://lore.kernel.org/lkml/2bb2d338-cd00-4ac2-b8bd-5579eae82637@linuxfoundation.org/
>>> ---
>>>    tools/testing/selftests/kselftest.h               | 4 ++++
>>>    tools/testing/selftests/kselftest/ksft.py         | 3 +++
>>>    tools/testing/selftests/kselftest/ktap_helpers.sh | 4 ++++
>>>    3 files changed, 11 insertions(+)
>>>
>>> diff --git a/tools/testing/selftests/kselftest.h b/tools/testing/selftests/kselftest.h
>>> index 29fedf609611..d3f64b333acd 100644
>>> --- a/tools/testing/selftests/kselftest.h
>>> +++ b/tools/testing/selftests/kselftest.h
>>> @@ -147,6 +147,10 @@ static inline void ksft_set_plan(unsigned int plan)
>>>      static inline void ksft_print_cnts(void)
>>>    {
>>> +    if (ksft_cnt.ksft_xskip > 0)
>>> +        printf(
>>> +            "# Skipped tests detected. Consider enabling relevant config options to improve coverage.\n"
> Looks good. Printing the number of skipped tests would be an improvement.
> I'm thinking about a case where some tests got failed and some skipped. Would
> this warning be useful in that case?
> 

I believe the warning remains useful, as it helps users identify possible 
gaps in their configuration - I think that's valuable regardless of the 
results of other tests.

>>
>> I like this. How about printing the number of skipped tests in this
>> message also to make it easy to parse.
>>
>> Same comment on other print messages,
>>

Sure, that makes sense. I'll submit a v2 to include the number of skipped 
tests.

>>> +        );
>>>        if (ksft_plan != ksft_test_num())
>>>            printf("# Planned tests != run tests (%u != %u)\n",
>>>                ksft_plan, ksft_test_num());
>>> diff --git a/tools/testing/selftests/kselftest/ksft.py b/tools/testing/selftests/kselftest/ksft.py
>>> index bf215790a89d..7675a15a1264 100644
>>> --- a/tools/testing/selftests/kselftest/ksft.py
>>> +++ b/tools/testing/selftests/kselftest/ksft.py
>>> @@ -27,6 +27,9 @@ def set_plan(num_tests):
>>>        def print_cnts():
>>> +    if ksft_cnt['skip'] > 0:
>>> +        print("# Skipped tests detected. Consider enabling relevant config options to improve coverage.")
>>> +
>>>        print(
>>>            f"# Totals: pass:{ksft_cnt['pass']} fail:{ksft_cnt['fail']} xfail:0 xpass:0 skip:{ksft_cnt['skip']} error:0"
>>>        )
>>> diff --git a/tools/testing/selftests/kselftest/ktap_helpers.sh b/tools/testing/selftests/kselftest/ktap_helpers.sh
>>> index 79a125eb24c2..a4211221ccd6 100644
>>> --- a/tools/testing/selftests/kselftest/ktap_helpers.sh
>>> +++ b/tools/testing/selftests/kselftest/ktap_helpers.sh
>>> @@ -107,5 +107,9 @@ ktap_finished() {
>>>    }
>>>      ktap_print_totals() {
>>> +    if [ "$KTAP_CNT_SKIP" -gt 0 ]; then
>>> +        echo "# Skipped tests detected. " \
>>> +            "Consider enabling relevant config options to improve coverage."
>>> +    fi
>>>        echo "# Totals: pass:$KTAP_CNT_PASS fail:$KTAP_CNT_FAIL xfail:0 xpass:0 skip:$KTAP_CNT_SKIP error:0"
>>>    }
>>
>> thanks,
>> -- Shuah
>>
> 

Thanks,

Laura
diff mbox series

Patch

diff --git a/tools/testing/selftests/kselftest.h b/tools/testing/selftests/kselftest.h
index 29fedf609611..d3f64b333acd 100644
--- a/tools/testing/selftests/kselftest.h
+++ b/tools/testing/selftests/kselftest.h
@@ -147,6 +147,10 @@  static inline void ksft_set_plan(unsigned int plan)
 
 static inline void ksft_print_cnts(void)
 {
+	if (ksft_cnt.ksft_xskip > 0)
+		printf(
+			"# Skipped tests detected. Consider enabling relevant config options to improve coverage.\n"
+		);
 	if (ksft_plan != ksft_test_num())
 		printf("# Planned tests != run tests (%u != %u)\n",
 			ksft_plan, ksft_test_num());
diff --git a/tools/testing/selftests/kselftest/ksft.py b/tools/testing/selftests/kselftest/ksft.py
index bf215790a89d..7675a15a1264 100644
--- a/tools/testing/selftests/kselftest/ksft.py
+++ b/tools/testing/selftests/kselftest/ksft.py
@@ -27,6 +27,9 @@  def set_plan(num_tests):
 
 
 def print_cnts():
+    if ksft_cnt['skip'] > 0:
+        print("# Skipped tests detected. Consider enabling relevant config options to improve coverage.")
+
     print(
         f"# Totals: pass:{ksft_cnt['pass']} fail:{ksft_cnt['fail']} xfail:0 xpass:0 skip:{ksft_cnt['skip']} error:0"
     )
diff --git a/tools/testing/selftests/kselftest/ktap_helpers.sh b/tools/testing/selftests/kselftest/ktap_helpers.sh
index 79a125eb24c2..a4211221ccd6 100644
--- a/tools/testing/selftests/kselftest/ktap_helpers.sh
+++ b/tools/testing/selftests/kselftest/ktap_helpers.sh
@@ -107,5 +107,9 @@  ktap_finished() {
 }
 
 ktap_print_totals() {
+	if [ "$KTAP_CNT_SKIP" -gt 0 ]; then
+		echo "# Skipped tests detected. " \
+			"Consider enabling relevant config options to improve coverage."
+	fi
 	echo "# Totals: pass:$KTAP_CNT_PASS fail:$KTAP_CNT_FAIL xfail:0 xpass:0 skip:$KTAP_CNT_SKIP error:0"
 }