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 a52ecd43dbe30f81aec81aa8b384c85023e94350..ca81afa4ee90c0560eb1aca30f8089eb1eef97e5 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 20294553a5dd7a965efb2472925d1b03ab53d442..d2cfc9b494a0ee9c2eab5f90923f6edb88655eb3 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);