mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
selftests/namespaces: ninth listns() test
Test error cases for listns(). Link: https://patch.msgid.link/20251029-work-namespace-nstree-listns-v4-47-2e6f823ebdc0@kernel.org Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
@@ -627,4 +627,53 @@ TEST(listns_hierarchical_visibility)
|
||||
waitpid(pid, &status, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Test error cases for listns().
|
||||
*/
|
||||
TEST(listns_error_cases)
|
||||
{
|
||||
struct ns_id_req req = {
|
||||
.size = sizeof(req),
|
||||
.spare = 0,
|
||||
.ns_id = 0,
|
||||
.ns_type = 0,
|
||||
.spare2 = 0,
|
||||
.user_ns_id = 0,
|
||||
};
|
||||
__u64 ns_ids[10];
|
||||
int ret;
|
||||
|
||||
/* Test with invalid flags */
|
||||
ret = sys_listns(&req, ns_ids, ARRAY_SIZE(ns_ids), 0xFFFF);
|
||||
if (errno == ENOSYS) {
|
||||
/* listns() not supported, skip this check */
|
||||
} else {
|
||||
ASSERT_LT(ret, 0);
|
||||
ASSERT_EQ(errno, EINVAL);
|
||||
}
|
||||
|
||||
/* Test with NULL ns_ids array */
|
||||
ret = sys_listns(&req, NULL, 10, 0);
|
||||
ASSERT_LT(ret, 0);
|
||||
|
||||
/* Test with invalid spare field */
|
||||
req.spare = 1;
|
||||
ret = sys_listns(&req, ns_ids, ARRAY_SIZE(ns_ids), 0);
|
||||
if (errno == ENOSYS) {
|
||||
/* listns() not supported, skip this check */
|
||||
} else {
|
||||
ASSERT_LT(ret, 0);
|
||||
ASSERT_EQ(errno, EINVAL);
|
||||
}
|
||||
req.spare = 0;
|
||||
|
||||
/* Test with huge nr_ns_ids */
|
||||
ret = sys_listns(&req, ns_ids, 2000000, 0);
|
||||
if (errno == ENOSYS) {
|
||||
/* listns() not supported, skip this check */
|
||||
} else {
|
||||
ASSERT_LT(ret, 0);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_HARNESS_MAIN
|
||||
|
||||
Reference in New Issue
Block a user