Skip to content

Commit 7442d09

Browse files
committed
selftests/pidfd: test extended attribute support
Test that extended attributes are permanent. Link: https://lore.kernel.org/20250618-work-pidfs-persistent-v2-14-98f3456fd552@kernel.org Reviewed-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com> Signed-off-by: Christian Brauner <brauner@kernel.org>
1 parent 49fba37 commit 7442d09

1 file changed

Lines changed: 35 additions & 0 deletions

File tree

tools/testing/selftests/pidfd/pidfd_xattr_test.c

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,4 +94,39 @@ TEST_F(pidfs_xattr, set_get_list_xattr_multiple)
9494
}
9595
}
9696

97+
TEST_F(pidfs_xattr, set_get_list_xattr_persistent)
98+
{
99+
int ret;
100+
char buf[32];
101+
char list[PATH_MAX] = {};
102+
103+
ret = fsetxattr(self->child_pidfd, "trusted.persistent", "persistent value", strlen("persistent value"), 0);
104+
ASSERT_EQ(ret, 0);
105+
106+
memset(buf, 0, sizeof(buf));
107+
ret = fgetxattr(self->child_pidfd, "trusted.persistent", buf, sizeof(buf));
108+
ASSERT_EQ(ret, strlen("persistent value"));
109+
ASSERT_EQ(strcmp(buf, "persistent value"), 0);
110+
111+
ret = flistxattr(self->child_pidfd, list, sizeof(list));
112+
ASSERT_GT(ret, 0);
113+
ASSERT_EQ(strcmp(list, "trusted.persistent"), 0)
114+
115+
ASSERT_EQ(close(self->child_pidfd), 0);
116+
self->child_pidfd = -EBADF;
117+
sleep(2);
118+
119+
self->child_pidfd = sys_pidfd_open(self->child_pid, 0);
120+
ASSERT_GE(self->child_pidfd, 0);
121+
122+
memset(buf, 0, sizeof(buf));
123+
ret = fgetxattr(self->child_pidfd, "trusted.persistent", buf, sizeof(buf));
124+
ASSERT_EQ(ret, strlen("persistent value"));
125+
ASSERT_EQ(strcmp(buf, "persistent value"), 0);
126+
127+
ret = flistxattr(self->child_pidfd, list, sizeof(list));
128+
ASSERT_GT(ret, 0);
129+
ASSERT_EQ(strcmp(list, "trusted.persistent"), 0);
130+
}
131+
97132
TEST_HARNESS_MAIN

0 commit comments

Comments
 (0)