Add two netns helpers for mptcp tests: create_netns() and
cleanup_netns(). Use them in test_base().

These new helpers will be re-used in the following commits introducing
new tests.

Signed-off-by: Geliang Tang <geliang.t...@suse.com>
Reviewed-by: Matthieu Baerts <matthieu.bae...@tessares.net>
---
 .../testing/selftests/bpf/prog_tests/mptcp.c  | 35 ++++++++++++-------
 1 file changed, 23 insertions(+), 12 deletions(-)

diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c 
b/tools/testing/selftests/bpf/prog_tests/mptcp.c
index 4ccca3d39a8f..4407bd5c9e9a 100644
--- a/tools/testing/selftests/bpf/prog_tests/mptcp.c
+++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c
@@ -22,6 +22,26 @@ struct mptcp_storage {
        char ca_name[TCP_CA_NAME_MAX];
 };
 
+static struct nstoken *create_netns(void)
+{
+       srand(time(NULL));
+       snprintf(NS_TEST, sizeof(NS_TEST), "mptcp_ns_%d", rand());
+       SYS(fail, "ip netns add %s", NS_TEST);
+       SYS(fail, "ip -net %s link set dev lo up", NS_TEST);
+
+       return open_netns(NS_TEST);
+fail:
+       return NULL;
+}
+
+static void cleanup_netns(struct nstoken *nstoken)
+{
+       if (nstoken)
+               close_netns(nstoken);
+
+       SYS_NOFAIL("ip netns del %s &> /dev/null", NS_TEST);
+}
+
 static int verify_tsk(int map_fd, int client_fd)
 {
        int err, cfd = client_fd;
@@ -147,13 +167,8 @@ static void test_base(void)
        if (!ASSERT_GE(cgroup_fd, 0, "test__join_cgroup"))
                return;
 
-       srand(time(NULL));
-       snprintf(NS_TEST, sizeof(NS_TEST), "mptcp_ns_%d", rand());
-       SYS(fail, "ip netns add %s", NS_TEST);
-       SYS(fail, "ip -net %s link set dev lo up", NS_TEST);
-
-       nstoken = open_netns(NS_TEST);
-       if (!ASSERT_OK_PTR(nstoken, "open_netns"))
+       nstoken = create_netns();
+       if (!ASSERT_OK_PTR(nstoken, "create_netns"))
                goto fail;
 
        /* without MPTCP */
@@ -176,11 +191,7 @@ static void test_base(void)
        close(server_fd);
 
 fail:
-       if (nstoken)
-               close_netns(nstoken);
-
-       SYS_NOFAIL("ip netns del " NS_TEST " &> /dev/null");
-
+       cleanup_netns(nstoken);
        close(cgroup_fd);
 }
 
-- 
2.35.3


Reply via email to