selftests/bpf: ns_current_pid_tgid: Use test_progs's ns_ feature
authorBastien Curutchet (eBPF Foundation) <bastien.curutchet@bootlin.com>
Wed, 19 Feb 2025 14:53:03 +0000 (15:53 +0100)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 19 Feb 2025 17:46:02 +0000 (09:46 -0800)
Two subtests use the test_in_netns() function to run the test in a
dedicated network namespace. This can now be done directly through the
test_progs framework with a test name starting with 'ns_'.

Replace the use of test_in_netns() by test_ns_* calls.

Signed-off-by: Bastien Curutchet (eBPF Foundation) <bastien.curutchet@bootlin.com>
Link: https://lore.kernel.org/r/20250219-b4-tc_links-v2-4-14504db136b7@bootlin.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/prog_tests/ns_current_pid_tgid.c

index 78020ece6a29c3bec4600f4fd6fe88fdbd2a768b..99c953f2be21581f8362f6c9217d395c06e7b5b4 100644 (file)
@@ -200,25 +200,6 @@ static void test_ns_current_pid_tgid_new_ns(int (*fn)(void *), void *arg)
                return;
 }
 
-static void test_in_netns(int (*fn)(void *), void *arg)
-{
-       struct nstoken *nstoken = NULL;
-
-       SYS(cleanup, "ip netns add ns_current_pid_tgid");
-       SYS(cleanup, "ip -net ns_current_pid_tgid link set dev lo up");
-
-       nstoken = open_netns("ns_current_pid_tgid");
-       if (!ASSERT_OK_PTR(nstoken, "open_netns"))
-               goto cleanup;
-
-       test_ns_current_pid_tgid_new_ns(fn, arg);
-
-cleanup:
-       if (nstoken)
-               close_netns(nstoken);
-       SYS_NOFAIL("ip netns del ns_current_pid_tgid");
-}
-
 /* TODO: use a different tracepoint */
 void serial_test_current_pid_tgid(void)
 {
@@ -226,15 +207,21 @@ void serial_test_current_pid_tgid(void)
                test_current_pid_tgid_tp(NULL);
        if (test__start_subtest("new_ns_tp"))
                test_ns_current_pid_tgid_new_ns(test_current_pid_tgid_tp, NULL);
-       if (test__start_subtest("new_ns_cgrp")) {
-               int cgroup_fd = -1;
-
-               cgroup_fd = test__join_cgroup("/sock_addr");
-               if (ASSERT_GE(cgroup_fd, 0, "join_cgroup")) {
-                       test_in_netns(test_current_pid_tgid_cgrp, &cgroup_fd);
-                       close(cgroup_fd);
-               }
+}
+
+void test_ns_current_pid_tgid_cgrp(void)
+{
+       int cgroup_fd = test__join_cgroup("/sock_addr");
+
+       if (ASSERT_OK_FD(cgroup_fd, "join_cgroup")) {
+               test_ns_current_pid_tgid_new_ns(test_current_pid_tgid_cgrp, &cgroup_fd);
+               close(cgroup_fd);
        }
-       if (test__start_subtest("new_ns_sk_msg"))
-               test_in_netns(test_current_pid_tgid_sk_msg, NULL);
 }
+
+void test_ns_current_pid_tgid_sk_msg(void)
+{
+       test_ns_current_pid_tgid_new_ns(test_current_pid_tgid_sk_msg, NULL);
+}
+
+