Linux-kselftest Archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next] selftests: avoid using SKIP(exit()) in harness fixure setup
@ 2024-03-04 23:36 Jakub Kicinski
  2024-03-05  0:49 ` Kees Cook
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Jakub Kicinski @ 2024-03-04 23:36 UTC (permalink / raw
  To: davem
  Cc: netdev, edumazet, pabeni, Jakub Kicinski, Mark Brown,
	ivan.orlov0322, perex, tiwai, shuah, jglisse, akpm, keescook,
	linux-sound, linux-kselftest, linux-mm

selftest harness uses various exit codes to signal test
results. Avoid calling exit() directly, otherwise tests
may get broken by harness refactoring (like the commit
under Fixes). SKIP() will instruct the harness that the
test shouldn't run, it used to not be the case, but that
has been fixed. So just return, no need to exit.

Note that for hmm-tests this actually changes the result
from pass to skip. Which seems fair, the test is skipped,
after all.

Reported-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/all/05f7bf89-04a5-4b65-bf59-c19456aeb1f0@sirena.org.uk
Fixes: a724707976b0 ("selftests: kselftest_harness: use KSFT_* exit codes")
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
This needs to go to net-next because that's where the breaking
patch was (mis?)-applied.

CC: ivan.orlov0322@gmail.com
CC: perex@perex.cz
CC: tiwai@suse.com
CC: broonie@kernel.org
CC: shuah@kernel.org
CC: jglisse@redhat.com
CC: akpm@linux-foundation.org
CC: keescook@chromium.org
CC: linux-sound@vger.kernel.org
CC: linux-kselftest@vger.kernel.org
CC: linux-mm@kvack.org
---
 tools/testing/selftests/alsa/test-pcmtest-driver.c | 4 ++--
 tools/testing/selftests/mm/hmm-tests.c             | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/tools/testing/selftests/alsa/test-pcmtest-driver.c b/tools/testing/selftests/alsa/test-pcmtest-driver.c
index a52ecd43dbe3..ca81afa4ee90 100644
--- a/tools/testing/selftests/alsa/test-pcmtest-driver.c
+++ b/tools/testing/selftests/alsa/test-pcmtest-driver.c
@@ -127,11 +127,11 @@ FIXTURE_SETUP(pcmtest) {
 	int err;
 
 	if (geteuid())
-		SKIP(exit(-1), "This test needs root to run!");
+		SKIP(return, "This test needs root to run!");
 
 	err = read_patterns();
 	if (err)
-		SKIP(exit(-1), "Can't read patterns. Probably, module isn't loaded");
+		SKIP(return, "Can't read patterns. Probably, module isn't loaded");
 
 	card_name = malloc(127);
 	ASSERT_NE(card_name, NULL);
diff --git a/tools/testing/selftests/mm/hmm-tests.c b/tools/testing/selftests/mm/hmm-tests.c
index 20294553a5dd..d2cfc9b494a0 100644
--- a/tools/testing/selftests/mm/hmm-tests.c
+++ b/tools/testing/selftests/mm/hmm-tests.c
@@ -138,7 +138,7 @@ FIXTURE_SETUP(hmm)
 
 	self->fd = hmm_open(variant->device_number);
 	if (self->fd < 0 && hmm_is_coherent_type(variant->device_number))
-		SKIP(exit(0), "DEVICE_COHERENT not available");
+		SKIP(return, "DEVICE_COHERENT not available");
 	ASSERT_GE(self->fd, 0);
 }
 
@@ -149,7 +149,7 @@ FIXTURE_SETUP(hmm2)
 
 	self->fd0 = hmm_open(variant->device_number0);
 	if (self->fd0 < 0 && hmm_is_coherent_type(variant->device_number0))
-		SKIP(exit(0), "DEVICE_COHERENT not available");
+		SKIP(return, "DEVICE_COHERENT not available");
 	ASSERT_GE(self->fd0, 0);
 	self->fd1 = hmm_open(variant->device_number1);
 	ASSERT_GE(self->fd1, 0);
-- 
2.44.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH net-next] selftests: avoid using SKIP(exit()) in harness fixure setup
  2024-03-04 23:36 [PATCH net-next] selftests: avoid using SKIP(exit()) in harness fixure setup Jakub Kicinski
@ 2024-03-05  0:49 ` Kees Cook
  2024-03-05 15:32 ` Mark Brown
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Kees Cook @ 2024-03-05  0:49 UTC (permalink / raw
  To: Jakub Kicinski
  Cc: davem, netdev, edumazet, pabeni, Mark Brown, ivan.orlov0322,
	perex, tiwai, shuah, jglisse, akpm, linux-sound, linux-kselftest,
	linux-mm

On Mon, Mar 04, 2024 at 03:36:20PM -0800, Jakub Kicinski wrote:
> selftest harness uses various exit codes to signal test
> results. Avoid calling exit() directly, otherwise tests
> may get broken by harness refactoring (like the commit
> under Fixes). SKIP() will instruct the harness that the
> test shouldn't run, it used to not be the case, but that
> has been fixed. So just return, no need to exit.
> 
> Note that for hmm-tests this actually changes the result
> from pass to skip. Which seems fair, the test is skipped,
> after all.
> 
> Reported-by: Mark Brown <broonie@kernel.org>
> Link: https://lore.kernel.org/all/05f7bf89-04a5-4b65-bf59-c19456aeb1f0@sirena.org.uk
> Fixes: a724707976b0 ("selftests: kselftest_harness: use KSFT_* exit codes")
> Signed-off-by: Jakub Kicinski <kuba@kernel.org>

Reviewed-by: Kees Cook <keescook@chromium.org>

-- 
Kees Cook

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH net-next] selftests: avoid using SKIP(exit()) in harness fixure setup
  2024-03-04 23:36 [PATCH net-next] selftests: avoid using SKIP(exit()) in harness fixure setup Jakub Kicinski
  2024-03-05  0:49 ` Kees Cook
@ 2024-03-05 15:32 ` Mark Brown
  2024-03-05 15:54 ` Przemek Kitszel
  2024-03-06  3:40 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 5+ messages in thread
From: Mark Brown @ 2024-03-05 15:32 UTC (permalink / raw
  To: Jakub Kicinski
  Cc: davem, netdev, edumazet, pabeni, ivan.orlov0322, perex, tiwai,
	shuah, jglisse, akpm, keescook, linux-sound, linux-kselftest,
	linux-mm

[-- Attachment #1: Type: text/plain, Size: 692 bytes --]

On Mon, Mar 04, 2024 at 03:36:20PM -0800, Jakub Kicinski wrote:
> selftest harness uses various exit codes to signal test
> results. Avoid calling exit() directly, otherwise tests
> may get broken by harness refactoring (like the commit
> under Fixes). SKIP() will instruct the harness that the
> test shouldn't run, it used to not be the case, but that
> has been fixed. So just return, no need to exit.
> 
> Note that for hmm-tests this actually changes the result
> from pass to skip. Which seems fair, the test is skipped,
> after all.

Reviewed-by: Mark Brown <broonie@kernel.org>
Tested-by: Mark Brown <broonie@kernel.org>

This fixes at least the pcmtest-driver suite.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH net-next] selftests: avoid using SKIP(exit()) in harness fixure setup
  2024-03-04 23:36 [PATCH net-next] selftests: avoid using SKIP(exit()) in harness fixure setup Jakub Kicinski
  2024-03-05  0:49 ` Kees Cook
  2024-03-05 15:32 ` Mark Brown
@ 2024-03-05 15:54 ` Przemek Kitszel
  2024-03-06  3:40 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 5+ messages in thread
From: Przemek Kitszel @ 2024-03-05 15:54 UTC (permalink / raw
  To: Jakub Kicinski, davem
  Cc: netdev, edumazet, pabeni, Mark Brown, ivan.orlov0322, perex,
	tiwai, shuah, jglisse, akpm, keescook, linux-sound,
	linux-kselftest, linux-mm

On 3/5/24 00:36, Jakub Kicinski wrote:
> selftest harness uses various exit codes to signal test
> results. Avoid calling exit() directly, otherwise tests
> may get broken by harness refactoring (like the commit
> under Fixes). SKIP() will instruct the harness that the
> test shouldn't run, it used to not be the case, but that
> has been fixed. So just return, no need to exit.
> 
> Note that for hmm-tests this actually changes the result
> from pass to skip. Which seems fair, the test is skipped,
> after all.
> 
> Reported-by: Mark Brown <broonie@kernel.org>
> Link: https://lore.kernel.org/all/05f7bf89-04a5-4b65-bf59-c19456aeb1f0@sirena.org.uk
> Fixes: a724707976b0 ("selftests: kselftest_harness: use KSFT_* exit codes")

I believe that the next patch of the linked series is a culprit,
but that does not mandate a next revision in my eyes

> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
> ---
> This needs to go to net-next because that's where the breaking
> patch was (mis?)-applied.
> 
> CC: ivan.orlov0322@gmail.com
> CC: perex@perex.cz
> CC: tiwai@suse.com
> CC: broonie@kernel.org
> CC: shuah@kernel.org
> CC: jglisse@redhat.com
> CC: akpm@linux-foundation.org
> CC: keescook@chromium.org
> CC: linux-sound@vger.kernel.org
> CC: linux-kselftest@vger.kernel.org
> CC: linux-mm@kvack.org
> ---
>   tools/testing/selftests/alsa/test-pcmtest-driver.c | 4 ++--
>   tools/testing/selftests/mm/hmm-tests.c             | 4 ++--
>   2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/tools/testing/selftests/alsa/test-pcmtest-driver.c b/tools/testing/selftests/alsa/test-pcmtest-driver.c
> index a52ecd43dbe3..ca81afa4ee90 100644
> --- a/tools/testing/selftests/alsa/test-pcmtest-driver.c
> +++ b/tools/testing/selftests/alsa/test-pcmtest-driver.c
> @@ -127,11 +127,11 @@ FIXTURE_SETUP(pcmtest) {
>   	int err;
>   
>   	if (geteuid())
> -		SKIP(exit(-1), "This test needs root to run!");
> +		SKIP(return, "This test needs root to run!");
>   
>   	err = read_patterns();
>   	if (err)
> -		SKIP(exit(-1), "Can't read patterns. Probably, module isn't loaded");
> +		SKIP(return, "Can't read patterns. Probably, module isn't loaded");
>   
>   	card_name = malloc(127);
>   	ASSERT_NE(card_name, NULL);
> diff --git a/tools/testing/selftests/mm/hmm-tests.c b/tools/testing/selftests/mm/hmm-tests.c
> index 20294553a5dd..d2cfc9b494a0 100644
> --- a/tools/testing/selftests/mm/hmm-tests.c
> +++ b/tools/testing/selftests/mm/hmm-tests.c
> @@ -138,7 +138,7 @@ FIXTURE_SETUP(hmm)
>   
>   	self->fd = hmm_open(variant->device_number);
>   	if (self->fd < 0 && hmm_is_coherent_type(variant->device_number))
> -		SKIP(exit(0), "DEVICE_COHERENT not available");
> +		SKIP(return, "DEVICE_COHERENT not available");
>   	ASSERT_GE(self->fd, 0);
>   }
>   
> @@ -149,7 +149,7 @@ FIXTURE_SETUP(hmm2)
>   
>   	self->fd0 = hmm_open(variant->device_number0);
>   	if (self->fd0 < 0 && hmm_is_coherent_type(variant->device_number0))
> -		SKIP(exit(0), "DEVICE_COHERENT not available");
> +		SKIP(return, "DEVICE_COHERENT not available");
>   	ASSERT_GE(self->fd0, 0);
>   	self->fd1 = hmm_open(variant->device_number1);
>   	ASSERT_GE(self->fd1, 0);

Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
- that's totally what mandates vfork() introduced in recent refactor

(Sorry for pointing the same in the Link:-ed thread, it was just
newer/higher in my email client)

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH net-next] selftests: avoid using SKIP(exit()) in harness fixure setup
  2024-03-04 23:36 [PATCH net-next] selftests: avoid using SKIP(exit()) in harness fixure setup Jakub Kicinski
                   ` (2 preceding siblings ...)
  2024-03-05 15:54 ` Przemek Kitszel
@ 2024-03-06  3:40 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 5+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-03-06  3:40 UTC (permalink / raw
  To: Jakub Kicinski
  Cc: davem, netdev, edumazet, pabeni, broonie, ivan.orlov0322, perex,
	tiwai, shuah, jglisse, akpm, keescook, linux-sound,
	linux-kselftest, linux-mm

Hello:

This patch was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Mon,  4 Mar 2024 15:36:20 -0800 you wrote:
> selftest harness uses various exit codes to signal test
> results. Avoid calling exit() directly, otherwise tests
> may get broken by harness refactoring (like the commit
> under Fixes). SKIP() will instruct the harness that the
> test shouldn't run, it used to not be the case, but that
> has been fixed. So just return, no need to exit.
> 
> [...]

Here is the summary with links:
  - [net-next] selftests: avoid using SKIP(exit()) in harness fixure setup
    https://git.kernel.org/netdev/net-next/c/e3350ba4a5b7

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-03-06  3:40 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-04 23:36 [PATCH net-next] selftests: avoid using SKIP(exit()) in harness fixure setup Jakub Kicinski
2024-03-05  0:49 ` Kees Cook
2024-03-05 15:32 ` Mark Brown
2024-03-05 15:54 ` Przemek Kitszel
2024-03-06  3:40 ` patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).