[PATCH] selftests/seccomp: fix negative_ENOSYS tracer tests on arm32

Terry Tritton posted 1 patch 7 months, 1 week ago
tools/testing/selftests/seccomp/seccomp_bpf.c | 6 ------
1 file changed, 6 deletions(-)
[PATCH] selftests/seccomp: fix negative_ENOSYS tracer tests on arm32
Posted by Terry Tritton 7 months, 1 week ago
TRACE_syscall.ptrace.negative_ENOSYS and TRACE_syscall.seccomp.negative_ENOSYS
on arm32 are being reported as failures instead of skipping.

The teardown_trace_fixture function sets the test to KSFT_FAIL in case of a
non 0 return value from the tracer process.
Due to _metadata now being shared between the forked processes the tracer is
returning the KSFT_SKIP value set by the tracee which is non 0.

Remove the setting of the _metadata.exit_code in teardown_trace_fixture.

Fixes: 24cf65a62266 ("selftests/harness: Share _metadata between forked processes")
Signed-off-by: Terry Tritton <terry.tritton@linaro.org>
---
 tools/testing/selftests/seccomp/seccomp_bpf.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/tools/testing/selftests/seccomp/seccomp_bpf.c b/tools/testing/selftests/seccomp/seccomp_bpf.c
index b2f76a52215a..c43a6f8f8cd5 100644
--- a/tools/testing/selftests/seccomp/seccomp_bpf.c
+++ b/tools/testing/selftests/seccomp/seccomp_bpf.c
@@ -1629,14 +1629,8 @@ void teardown_trace_fixture(struct __test_metadata *_metadata,
 {
 	if (tracer) {
 		int status;
-		/*
-		 * Extract the exit code from the other process and
-		 * adopt it for ourselves in case its asserts failed.
-		 */
 		ASSERT_EQ(0, kill(tracer, SIGUSR1));
 		ASSERT_EQ(tracer, waitpid(tracer, &status, 0));
-		if (WEXITSTATUS(status))
-			_metadata->exit_code = KSFT_FAIL;
 	}
 }
 
-- 
2.39.5
Re: [PATCH] selftests/seccomp: fix negative_ENOSYS tracer tests on arm32
Posted by Kees Cook 7 months, 1 week ago
On Fri, 09 May 2025 12:56:22 +0100, Terry Tritton wrote:
> TRACE_syscall.ptrace.negative_ENOSYS and TRACE_syscall.seccomp.negative_ENOSYS
> on arm32 are being reported as failures instead of skipping.
> 
> The teardown_trace_fixture function sets the test to KSFT_FAIL in case of a
> non 0 return value from the tracer process.
> Due to _metadata now being shared between the forked processes the tracer is
> returning the KSFT_SKIP value set by the tracee which is non 0.
> 
> [...]

Ooh yes, nice catch!

Applied to for-next/seccomp, thanks!

[1/1] selftests/seccomp: fix negative_ENOSYS tracer tests on arm32
      https://git.kernel.org/kees/c/73989c998814

Take care,

-- 
Kees Cook