Skip to content

Commit 285cffb

Browse files
Geliang TangMartin KaFai Lau
authored andcommitted
selftests/bpf: Use log_err in open_netns/close_netns
ASSERT helpers defined in test_progs.h shouldn't be used in public functions like open_netns() and close_netns(). Since they depend on test__fail() which defined in test_progs.c. Public functions may be used not only in test_progs.c, but in other tests like test_sock_addr.c in the next commit. This patch uses log_err() to replace ASSERT helpers in open_netns() and close_netns() in network_helpers.c to decouple dependencies, then uses ASSERT_OK_PTR() to check the return values of all open_netns(). Signed-off-by: Geliang Tang <[email protected]> Link: https://lore.kernel.org/r/d1dad22b2ff4909af3f8bfd0667d046e235303cb.1713868264.git.tanggeliang@kylinos.cn Signed-off-by: Martin KaFai Lau <[email protected]>
1 parent 151f744 commit 285cffb

File tree

6 files changed

+39
-6
lines changed

6 files changed

+39
-6
lines changed

tools/testing/selftests/bpf/network_helpers.c

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -459,22 +459,30 @@ struct nstoken *open_netns(const char *name)
459459
struct nstoken *token;
460460

461461
token = calloc(1, sizeof(struct nstoken));
462-
if (!ASSERT_OK_PTR(token, "malloc token"))
462+
if (!token) {
463+
log_err("Failed to malloc token");
463464
return NULL;
465+
}
464466

465467
token->orig_netns_fd = open("/proc/self/ns/net", O_RDONLY);
466-
if (!ASSERT_GE(token->orig_netns_fd, 0, "open /proc/self/ns/net"))
468+
if (token->orig_netns_fd == -1) {
469+
log_err("Failed to open(/proc/self/ns/net)");
467470
goto fail;
471+
}
468472

469473
snprintf(nspath, sizeof(nspath), "%s/%s", "/var/run/netns", name);
470474
nsfd = open(nspath, O_RDONLY | O_CLOEXEC);
471-
if (!ASSERT_GE(nsfd, 0, "open netns fd"))
475+
if (nsfd == -1) {
476+
log_err("Failed to open(%s)", nspath);
472477
goto fail;
478+
}
473479

474480
err = setns(nsfd, CLONE_NEWNET);
475481
close(nsfd);
476-
if (!ASSERT_OK(err, "setns"))
482+
if (err) {
483+
log_err("Failed to setns(nsfd)");
477484
goto fail;
485+
}
478486

479487
return token;
480488
fail:
@@ -489,7 +497,8 @@ void close_netns(struct nstoken *token)
489497
if (!token)
490498
return;
491499

492-
ASSERT_OK(setns(token->orig_netns_fd, CLONE_NEWNET), "setns");
500+
if (setns(token->orig_netns_fd, CLONE_NEWNET))
501+
log_err("Failed to setns(orig_netns_fd)");
493502
close(token->orig_netns_fd);
494503
free(token);
495504
}

tools/testing/selftests/bpf/prog_tests/empty_skb.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ void test_empty_skb(void)
9494

9595
SYS(out, "ip netns add empty_skb");
9696
tok = open_netns("empty_skb");
97+
if (!ASSERT_OK_PTR(tok, "setns"))
98+
goto out;
9799
SYS(out, "ip link add veth0 type veth peer veth1");
98100
SYS(out, "ip link set dev veth0 up");
99101
SYS(out, "ip link set dev veth1 up");

tools/testing/selftests/bpf/prog_tests/ip_check_defrag.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ static int attach(struct ip_check_defrag *skel, bool ipv6)
8888
int err = -1;
8989

9090
nstoken = open_netns(NS1);
91+
if (!ASSERT_OK_PTR(nstoken, "setns"))
92+
goto out;
9193

9294
skel->links.defrag = bpf_program__attach_netfilter(skel->progs.defrag, &opts);
9395
if (!ASSERT_OK_PTR(skel->links.defrag, "program attach"))

tools/testing/selftests/bpf/prog_tests/tc_redirect.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -530,7 +530,7 @@ static int wait_netstamp_needed_key(void)
530530
__u64 tstamp = 0;
531531

532532
nstoken = open_netns(NS_DST);
533-
if (!nstoken)
533+
if (!ASSERT_OK_PTR(nstoken, "setns dst"))
534534
return -1;
535535

536536
srv_fd = start_server(AF_INET6, SOCK_DGRAM, "::1", 0, 0);

tools/testing/selftests/bpf/prog_tests/test_tunnel.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -612,6 +612,8 @@ static void test_ipip_tunnel(enum ipip_encap encap)
612612

613613
/* ping from at_ns0 namespace test */
614614
nstoken = open_netns("at_ns0");
615+
if (!ASSERT_OK_PTR(nstoken, "setns"))
616+
goto done;
615617
err = test_ping(AF_INET, IP4_ADDR_TUNL_DEV1);
616618
if (!ASSERT_OK(err, "test_ping"))
617619
goto done;
@@ -666,6 +668,8 @@ static void test_xfrm_tunnel(void)
666668

667669
/* ping from at_ns0 namespace test */
668670
nstoken = open_netns("at_ns0");
671+
if (!ASSERT_OK_PTR(nstoken, "setns"))
672+
goto done;
669673
err = test_ping(AF_INET, IP4_ADDR_TUNL_DEV1);
670674
close_netns(nstoken);
671675
if (!ASSERT_OK(err, "test_ping"))

tools/testing/selftests/bpf/prog_tests/xdp_metadata.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,8 @@ void test_xdp_metadata(void)
384384
SYS(out, "ip netns add " RX_NETNS_NAME);
385385

386386
tok = open_netns(TX_NETNS_NAME);
387+
if (!ASSERT_OK_PTR(tok, "setns"))
388+
goto out;
387389
SYS(out, "ip link add numtxqueues 1 numrxqueues 1 " TX_NAME
388390
" type veth peer " RX_NAME " numtxqueues 1 numrxqueues 1");
389391
SYS(out, "ip link set " RX_NAME " netns " RX_NETNS_NAME);
@@ -400,6 +402,8 @@ void test_xdp_metadata(void)
400402
SYS(out, "ip -4 neigh add " RX_ADDR " lladdr " RX_MAC " dev " TX_NAME_VLAN);
401403

402404
switch_ns_to_rx(&tok);
405+
if (!ASSERT_OK_PTR(tok, "setns rx"))
406+
goto out;
403407

404408
SYS(out, "ip link set dev " RX_NAME " address " RX_MAC);
405409
SYS(out, "ip link set dev " RX_NAME " up");
@@ -449,6 +453,8 @@ void test_xdp_metadata(void)
449453
goto out;
450454

451455
switch_ns_to_tx(&tok);
456+
if (!ASSERT_OK_PTR(tok, "setns tx"))
457+
goto out;
452458

453459
/* Setup separate AF_XDP for TX interface nad send packet to the RX socket. */
454460
tx_ifindex = if_nametoindex(TX_NAME);
@@ -461,20 +467,26 @@ void test_xdp_metadata(void)
461467
goto out;
462468

463469
switch_ns_to_rx(&tok);
470+
if (!ASSERT_OK_PTR(tok, "setns rx"))
471+
goto out;
464472

465473
/* Verify packet sent from AF_XDP has proper metadata. */
466474
if (!ASSERT_GE(verify_xsk_metadata(&rx_xsk, true), 0,
467475
"verify_xsk_metadata"))
468476
goto out;
469477

470478
switch_ns_to_tx(&tok);
479+
if (!ASSERT_OK_PTR(tok, "setns tx"))
480+
goto out;
471481
complete_tx(&tx_xsk);
472482

473483
/* Now check metadata of packet, generated with network stack */
474484
if (!ASSERT_GE(generate_packet_inet(), 0, "generate UDP packet"))
475485
goto out;
476486

477487
switch_ns_to_rx(&tok);
488+
if (!ASSERT_OK_PTR(tok, "setns rx"))
489+
goto out;
478490

479491
if (!ASSERT_GE(verify_xsk_metadata(&rx_xsk, false), 0,
480492
"verify_xsk_metadata"))
@@ -498,13 +510,17 @@ void test_xdp_metadata(void)
498510
goto out;
499511

500512
switch_ns_to_tx(&tok);
513+
if (!ASSERT_OK_PTR(tok, "setns tx"))
514+
goto out;
501515

502516
/* Send packet to trigger . */
503517
if (!ASSERT_GE(generate_packet(&tx_xsk, AF_XDP_CONSUMER_PORT), 0,
504518
"generate freplace packet"))
505519
goto out;
506520

507521
switch_ns_to_rx(&tok);
522+
if (!ASSERT_OK_PTR(tok, "setns rx"))
523+
goto out;
508524

509525
while (!retries--) {
510526
if (bpf_obj2->bss->called)

0 commit comments

Comments
 (0)