Commit f04f008259 for frr
commit f04f008259b685f8a8a74633729b26746fb8fd14
Author: Donald Sharp <sharpd@nvidia.com>
Date: Thu Oct 22 13:02:04 2026 -0400
tests: Use check_ping instead of insisting on on drops
Under a heavily loaded ci system, running ping and expecting
no packet drops is a recipe for the test to fail. If a ping
works that is good enough.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
diff --git a/tests/topotests/bgp_evpn_rt5/test_bgp_evpn.py b/tests/topotests/bgp_evpn_rt5/test_bgp_evpn.py
index 415a2afd17..daaa97540a 100644
--- a/tests/topotests/bgp_evpn_rt5/test_bgp_evpn.py
+++ b/tests/topotests/bgp_evpn_rt5/test_bgp_evpn.py
@@ -28,6 +28,7 @@ sys.path.append(os.path.join(CWD, "../"))
# pylint: disable=C0413
# Import topogen and topotest helpers
from lib import topotest
+from lib.checkping import check_ping
from lib.bgp import get_bgp_summary_json, verify_bgp_rib
from lib.common_config import (
apply_raw_config,
@@ -157,11 +158,6 @@ def _test_evpn_ping_router(
"""
internal function to check ping between r1 and r2
"""
- if pingrouter.name == "r1":
- command = "ip netns exec vrf-{0} ping".format(source_vrf)
- else:
- command = "ping -I vrf-{0}".format(source_vrf)
-
dst_router_id = dst_router.name[1:]
dst_ips = []
@@ -176,19 +172,21 @@ def _test_evpn_ping_router(
pingrouter.name, dst_router.name, source_vrf, dst_vrf, ip
)
)
- output = pingrouter.run("{0} {1} -f -c 1000".format(command, ip))
- logger.info(output)
- if "1000 packets transmitted, 1000 received" not in output:
- assertmsg = "expected ping from {0}(vrf-{2}) to {1}(vrf-{3}, {4}) should be ok".format(
+ # check_ping auto-detects whether vrf-X is a netns (r1) or a real
+ # VRF device (r2) and retries until a ping succeeds.
+ check_ping(
+ pingrouter.name,
+ ip,
+ True,
+ count=30,
+ wait=3,
+ vrf="vrf-{}".format(source_vrf),
+ )
+ logger.info(
+ "Check Ping from {0}(vrf-{2}) to {1}(vrf-{3}, {4}) OK".format(
pingrouter.name, dst_router.name, source_vrf, dst_vrf, ip
)
- assert 0, assertmsg
- else:
- logger.info(
- "Check Ping from {0}(vrf-{2}) to {1}(vrf-{3}, {4}) OK".format(
- pingrouter.name, dst_router.name, source_vrf, dst_vrf, ip
- )
- )
+ )
def test_protocols_convergence():