On Fri, Feb 17, 2023 at 04:26:07PM +0800, Hangbin Liu wrote: > The current mptcp test is run in init netns. If the user or default > system config disabled mptcp, the test will fail. Let's run the mptcp > test in a dedicated netns to avoid none kernel default mptcp setting. > > Suggested-by: Martin KaFai Lau <martin.lau@xxxxxxxxx> Reviewed-by: Larysa Zaremba <larysa.zaremba@xxxxxxxxx> > Signed-off-by: Hangbin Liu <liuhangbin@xxxxxxxxx> > --- > .../testing/selftests/bpf/prog_tests/mptcp.c | 24 +++++++++++++++++++ > 1 file changed, 24 insertions(+) > > diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c > index 59f08d6d1d53..8a4ed9510ec7 100644 > --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c > +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c > @@ -7,6 +7,16 @@ > #include "network_helpers.h" > #include "mptcp_sock.skel.h" > > +#define SYS(fmt, ...) \ > + ({ \ > + char cmd[1024]; \ > + snprintf(cmd, sizeof(cmd), fmt, ##__VA_ARGS__); \ > + if (!ASSERT_OK(system(cmd), cmd)) \ > + goto cmd_fail; \ > + }) > + > +#define NS_TEST "mptcp_ns" > + > #ifndef TCP_CA_NAME_MAX > #define TCP_CA_NAME_MAX 16 > #endif > @@ -138,12 +148,20 @@ static int run_test(int cgroup_fd, int server_fd, bool is_mptcp) > > static void test_base(void) > { > + struct nstoken *nstoken = NULL; > int server_fd, cgroup_fd; > > cgroup_fd = test__join_cgroup("/mptcp"); > if (!ASSERT_GE(cgroup_fd, 0, "test__join_cgroup")) > return; > > + SYS("ip netns add %s", NS_TEST); > + SYS("ip -net %s link set dev lo up", NS_TEST); > + > + nstoken = open_netns(NS_TEST); > + if (!ASSERT_OK_PTR(nstoken, "open_netns")) > + goto cmd_fail; > + > /* without MPTCP */ > server_fd = start_server(AF_INET, SOCK_STREAM, NULL, 0, 0); > if (!ASSERT_GE(server_fd, 0, "start_server")) > @@ -163,6 +181,12 @@ static void test_base(void) > > close(server_fd); > > +cmd_fail: > + if (nstoken) > + close_netns(nstoken); > + > + system("ip netns del " NS_TEST " >& /dev/null"); > + > close_cgroup_fd: > close(cgroup_fd); > } > -- > 2.38.1 >