]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftests/nolibc: explicitly handle ENOSYS from ptrace()
authorThomas Weißschuh <linux@weissschuh.net>
Sun, 4 Jan 2026 19:05:26 +0000 (20:05 +0100)
committerThomas Weißschuh <linux@weissschuh.net>
Tue, 7 Apr 2026 07:28:32 +0000 (09:28 +0200)
The automatic ENOSYS handling in EXPECT_SYSER() is about to be removed.
ptrace() will return legitimately return ENOSYS on qemu-user, so handle
it explicitly.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Acked-by: Willy Tarreau <w@1wt.eu>
Link: https://patch.msgid.link/20260406-nolibc-no-skip-enosys-v1-1-c046b1ac7d73@weissschuh.net/
tools/testing/selftests/nolibc/nolibc-test.c

index bb13f9f9aa7c21cf00b7aec3419f8a058e7c992b..81cd9f917799cd6418e38b7a9c0b89e56c4266fc 100644 (file)
@@ -1510,7 +1510,7 @@ int run_syscall(int min, int max)
                CASE_TEST(readv_zero);        EXPECT_SYSZR(1, readv(0, NULL, 0)); break;
                CASE_TEST(writev_badf);       EXPECT_SYSER(1, writev(-1, &iov_one, 1), -1, EBADF); break;
                CASE_TEST(writev_zero);       EXPECT_SYSZR(1, writev(1, NULL, 0)); break;
-               CASE_TEST(ptrace);            EXPECT_SYSER(1, ptrace(PTRACE_CONT, getpid(), NULL, NULL), -1, ESRCH); break;
+               CASE_TEST(ptrace);            tmp = ptrace(PTRACE_CONT, getpid(), NULL, NULL); EXPECT_SYSER(tmp != -1 && errno != ENOSYS, tmp, -1, EFAULT); break;
                CASE_TEST(syscall_noargs);    EXPECT_SYSEQ(1, syscall(__NR_getpid), getpid()); break;
                CASE_TEST(syscall_args);      EXPECT_SYSER(1, syscall(__NR_statx, 0, NULL, 0, 0, NULL), -1, EFAULT); break;
                CASE_TEST(_syscall_noargs);   EXPECT_SYSEQ(is_nolibc, _syscall(__NR_getpid), getpid()); break;