selftests: avoid using SKIP(exit()) in harness fixure setup
authorJakub Kicinski <kuba@kernel.org>
Mon, 4 Mar 2024 23:36:20 +0000 (15:36 -0800)
committerJakub Kicinski <kuba@kernel.org>
Wed, 6 Mar 2024 03:25:36 +0000 (19:25 -0800)
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")
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Mark Brown <broonie@kernel.org>
Tested-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Link: https://lore.kernel.org/r/20240304233621.646054-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/alsa/test-pcmtest-driver.c
tools/testing/selftests/mm/hmm-tests.c

index a52ecd4..ca81afa 100644 (file)
@@ -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);
index 2029455..d2cfc9b 100644 (file)
@@ -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);