Hi Christian,
I am looking at tools/testing/selftests/clone3/clone3_set_tid.c as part of a patch to clean up the uses of 'return ksft_exit_...();' throughout the selftests (as they call exit() so they do not return) and I noticed that it seems to always pass even when there may have been an error?
if (waitpid(ns_pid, &status, 0) < 0) { ksft_print_msg("Child returned %s\n", strerror(errno)); ret = -errno; goto out; }
... out: ret = 0;
return !ret ? ksft_exit_pass() : ksft_exit_fail(); }
Should the ret and out label positions be switched? Alternatively, it seems like ret and out do not have that many uses, perhaps it would just be better to call the ksft_exit_...() directly in their respective paths? I am not going to touch it as part of my patch but I felt it was worth reporting since it appears to have been there since the introduction of this test in commit 41585bbeeef9 ("selftests: add tests for clone3() with *set_tid").
Cheers, Nathan
On Wed, Apr 17, 2024 at 08:22:22AM -0700, Nathan Chancellor wrote:
Hi Christian,
I am looking at tools/testing/selftests/clone3/clone3_set_tid.c as part of a patch to clean up the uses of 'return ksft_exit_...();' throughout the selftests (as they call exit() so they do not return) and I noticed that it seems to always pass even when there may have been an error?
if (waitpid(ns_pid, &status, 0) < 0) { ksft_print_msg("Child returned %s\n", strerror(errno)); ret = -errno; goto out; } ...
out: ret = 0;
return !ret ? ksft_exit_pass() : ksft_exit_fail();
}
Should the ret and out label positions be switched? Alternatively, it seems like ret and out do not have that many uses, perhaps it would just be better to call the ksft_exit_...() directly in their respective paths? I am not going to touch it as part of my patch but I felt it was worth reporting since it appears to have been there since the introduction of this test in commit 41585bbeeef9 ("selftests: add tests for clone3() with *set_tid").
Uh, good point. Let me Cc the original author.
linux-kselftest-mirror@lists.linaro.org