Re: [PATCH -next] selftests/landlock: Fix selftest ptrace_test run fail

From: limin
Date: Tue Nov 29 2022 - 07:02:24 EST


cat /proc/cmdline

BOOT_IMAGE=/vmlinuz-6.1.0-next-20221116 root=UUID=a65b3a79-dc02-4728-8a0c-5cf24f4ae08b ro systemd.unified_cgroup_hierarchy=1 cgroup_no_v1=all


On 2022/11/29 19:03, Mickaël Salaün wrote:
I tested with next-20221116 and all tests are OK. Could you share your kernel configuration with a link? What is the content of /proc/cmdline?

On 29/11/2022 02:42, limin wrote:
I run test on Linux ubuntu2204 6.1.0-next-20221116

I did't use yama.

you can reproduce by this step:

cd kernel_src

cd tools/testing/selftests/landlock/
make
./ptrace_test




On 2022/11/29 3:44, Mickaël Salaün wrote:
This patch changes the test semantic and then cannot work on my test
environment. On which kernel did you run test? Do you use Yama or
something similar?

On 28/11/2022 03:04, limin wrote:
Tests PTRACE_ATTACH and PTRACE_MODE_READ on the parent,
trace parent return -1 when child== 0
How to reproduce warning:
$ make -C tools/testing/selftests TARGETS=landlock run_tests

Signed-off-by: limin <limin100@xxxxxxxxxx>
---
   tools/testing/selftests/landlock/ptrace_test.c | 5 ++---
   1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/landlock/ptrace_test.c
b/tools/testing/selftests/landlock/ptrace_test.c
index c28ef98ff3ac..88c4dc63eea0 100644
--- a/tools/testing/selftests/landlock/ptrace_test.c
+++ b/tools/testing/selftests/landlock/ptrace_test.c
@@ -267,12 +267,11 @@ TEST_F(hierarchy, trace)
           /* Tests PTRACE_ATTACH and PTRACE_MODE_READ on the parent. */
           err_proc_read = test_ptrace_read(parent);
           ret = ptrace(PTRACE_ATTACH, parent, NULL, 0);
+        EXPECT_EQ(-1, ret);
+        EXPECT_EQ(EPERM, errno);
           if (variant->domain_child) {
-            EXPECT_EQ(-1, ret);
-            EXPECT_EQ(EPERM, errno);
               EXPECT_EQ(EACCES, err_proc_read);
           } else {
-            EXPECT_EQ(0, ret);
               EXPECT_EQ(0, err_proc_read);
           }
           if (ret == 0) {