Skip to content

Commit 4c7b2ec

Browse files
committed
selftests: fix mntns iteration selftests
Now that we changed permission checking make sure that we reflect that in the selftests. Link: https://patch.msgid.link/[email protected] Fixes: 9d87b10 ("selftests: add tests for mntns iteration") Reviewed-by: Jeff Layton <[email protected]> Cc: [email protected] # v6.14+ Signed-off-by: Christian Brauner <[email protected]>
1 parent 8d76afe commit 4c7b2ec

1 file changed

Lines changed: 15 additions & 10 deletions

File tree

tools/testing/selftests/filesystems/nsfs/iterate_mntns.c

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,20 @@ FIXTURE(iterate_mount_namespaces) {
3737
__u64 mnt_ns_id[MNT_NS_COUNT];
3838
};
3939

40+
static inline bool mntns_in_list(__u64 *mnt_ns_id, struct mnt_ns_info *info)
41+
{
42+
for (int i = 0; i < MNT_NS_COUNT; i++) {
43+
if (mnt_ns_id[i] == info->mnt_ns_id)
44+
return true;
45+
}
46+
return false;
47+
}
48+
4049
FIXTURE_SETUP(iterate_mount_namespaces)
4150
{
4251
for (int i = 0; i < MNT_NS_COUNT; i++)
4352
self->fd_mnt_ns[i] = -EBADF;
4453

45-
/*
46-
* Creating a new user namespace let's us guarantee that we only see
47-
* mount namespaces that we did actually create.
48-
*/
49-
ASSERT_EQ(unshare(CLONE_NEWUSER), 0);
50-
5154
for (int i = 0; i < MNT_NS_COUNT; i++) {
5255
struct mnt_ns_info info = {};
5356

@@ -75,13 +78,15 @@ TEST_F(iterate_mount_namespaces, iterate_all_forward)
7578
fd_mnt_ns_cur = fcntl(self->fd_mnt_ns[0], F_DUPFD_CLOEXEC);
7679
ASSERT_GE(fd_mnt_ns_cur, 0);
7780

78-
for (;; count++) {
81+
for (;;) {
7982
struct mnt_ns_info info = {};
8083
int fd_mnt_ns_next;
8184

8285
fd_mnt_ns_next = ioctl(fd_mnt_ns_cur, NS_MNT_GET_NEXT, &info);
8386
if (fd_mnt_ns_next < 0 && errno == ENOENT)
8487
break;
88+
if (mntns_in_list(self->mnt_ns_id, &info))
89+
count++;
8590
ASSERT_GE(fd_mnt_ns_next, 0);
8691
ASSERT_EQ(close(fd_mnt_ns_cur), 0);
8792
fd_mnt_ns_cur = fd_mnt_ns_next;
@@ -96,13 +101,15 @@ TEST_F(iterate_mount_namespaces, iterate_all_backwards)
96101
fd_mnt_ns_cur = fcntl(self->fd_mnt_ns[MNT_NS_LAST_INDEX], F_DUPFD_CLOEXEC);
97102
ASSERT_GE(fd_mnt_ns_cur, 0);
98103

99-
for (;; count++) {
104+
for (;;) {
100105
struct mnt_ns_info info = {};
101106
int fd_mnt_ns_prev;
102107

103108
fd_mnt_ns_prev = ioctl(fd_mnt_ns_cur, NS_MNT_GET_PREV, &info);
104109
if (fd_mnt_ns_prev < 0 && errno == ENOENT)
105110
break;
111+
if (mntns_in_list(self->mnt_ns_id, &info))
112+
count++;
106113
ASSERT_GE(fd_mnt_ns_prev, 0);
107114
ASSERT_EQ(close(fd_mnt_ns_cur), 0);
108115
fd_mnt_ns_cur = fd_mnt_ns_prev;
@@ -125,7 +132,6 @@ TEST_F(iterate_mount_namespaces, iterate_forward)
125132
ASSERT_GE(fd_mnt_ns_next, 0);
126133
ASSERT_EQ(close(fd_mnt_ns_cur), 0);
127134
fd_mnt_ns_cur = fd_mnt_ns_next;
128-
ASSERT_EQ(info.mnt_ns_id, self->mnt_ns_id[i]);
129135
}
130136
}
131137

@@ -144,7 +150,6 @@ TEST_F(iterate_mount_namespaces, iterate_backward)
144150
ASSERT_GE(fd_mnt_ns_prev, 0);
145151
ASSERT_EQ(close(fd_mnt_ns_cur), 0);
146152
fd_mnt_ns_cur = fd_mnt_ns_prev;
147-
ASSERT_EQ(info.mnt_ns_id, self->mnt_ns_id[i]);
148153
}
149154
}
150155

0 commit comments

Comments
 (0)