selftests/namespaces: seventh listns() test

Test listns() with multiple namespace types filter.

Link: https://patch.msgid.link/20251029-work-namespace-nstree-listns-v4-45-2e6f823ebdc0@kernel.org
Tested-by: syzbot@syzkaller.appspotmail.com
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
Christian Brauner 2025-10-29 13:20:58 +01:00
parent bc8da67e0e
commit 6aeca1dd49
No known key found for this signature in database
GPG Key ID: 91C61BC06578DCA2
1 changed files with 31 additions and 0 deletions

View File

@ -446,4 +446,35 @@ TEST(listns_specific_userns)
waitpid(pid, &status, 0);
}
/*
* Test listns() with multiple namespace types filter.
*/
TEST(listns_multiple_types)
{
struct ns_id_req req = {
.size = sizeof(req),
.spare = 0,
.ns_id = 0,
.ns_type = CLONE_NEWNET | CLONE_NEWUTS, /* Network and UTS */
.spare2 = 0,
.user_ns_id = 0,
};
__u64 ns_ids[100];
ssize_t ret;
ret = sys_listns(&req, ns_ids, ARRAY_SIZE(ns_ids), 0);
if (ret < 0) {
if (errno == ENOSYS)
SKIP(return, "listns() not supported");
TH_LOG("listns failed: %s (errno=%d)", strerror(errno), errno);
ASSERT_TRUE(false);
}
ASSERT_GE(ret, 0);
TH_LOG("Found %zd active network/UTS namespaces", ret);
for (ssize_t i = 0; i < ret; i++)
TH_LOG(" [%zd] ns_id: %llu", i, (unsigned long long)ns_ids[i]);
}
TEST_HARNESS_MAIN