]> git.puffer.fish Git - mirror/frr.git/commitdiff
tests: Make bgp_snmp_mplsl3vpn be more forgiving
authorDonald Sharp <sharpd@nvidia.com>
Fri, 8 Jul 2022 20:35:51 +0000 (16:35 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Tue, 19 Jul 2022 17:54:10 +0000 (13:54 -0400)
I rarely get this failure:
@classname: bgp_snmp_mplsl3vpn.test_bgp_snmp_mplsvpn
@name: test_pe1_converge_evpn
@time: 44.875
@message: AssertionError: BGP SNMP does not seem to be running
assert False
 +  where False = <bound method SnmpTester.test_oid of <lib.snmptest.SnmpTester object at 0x7fa8562eb4f0>>('bgpVersion', '10')
 +    where <bound method SnmpTester.test_oid of <lib.snmptest.SnmpTester object at 0x7fa8562eb4f0>> = <lib.snmptest.SnmpTester object at 0x7fa8562eb4f0>.test_oid
        "Wait for protocol convergence"
        tgen = get_topogen()

        r1 = tgen.gears["r1"]
        r1_snmp = SnmpTester(r1, "10.1.1.1", "public", "2c")

        assertmsg = "BGP SNMP does not seem to be running"
>       assert r1_snmp.test_oid("bgpVersion", "10"), assertmsg
E       AssertionError: BGP SNMP does not seem to be running
E       assert False
E        +  where False = <bound method SnmpTester.test_oid of <lib.snmptest.SnmpTester object at 0x7fa8562eb4f0>>('bgpVersion', '10')
E        +    where <bound method SnmpTester.test_oid of <lib.snmptest.SnmpTester object at 0x7fa8562eb4f0>> = <lib.snmptest.SnmpTester object at 0x7fa8562eb4f0>.test_oid

Under heavy system load a quick test before BGP can fully come up can result in a failed
test.  Add some extra time for snmp to come up properly.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
tests/topotests/bgp_snmp_mplsl3vpn/test_bgp_snmp_mplsvpn.py

index d612ad2c9470a3e7dd05efed737f0cd82cb9a303..bc53dfb469bc361bafb841c151e6fe518c8e7c6e 100755 (executable)
@@ -38,6 +38,7 @@ sys.path.append(os.path.join(CWD, "../"))
 # Import topogen and topotest helpers
 from lib.topogen import Topogen, TopoRouter, get_topogen
 from lib.snmptest import SnmpTester
+from lib import topotest
 
 # Required to instantiate the topology builder class.
 
@@ -239,10 +240,18 @@ def test_pe1_converge_evpn():
     tgen = get_topogen()
 
     r1 = tgen.gears["r1"]
-    r1_snmp = SnmpTester(r1, "10.1.1.1", "public", "2c")
 
+    def _convergence():
+        r1 = tgen.gears["r1"]
+        r1_snmp = SnmpTester(r1, "10.1.1.1", "public", "2c")
+
+        return r1_snmp.test_oid("bgpVersion", "10")
+
+    _, result = topotest.run_and_expect(_convergence, True, count=20, wait=1)
     assertmsg = "BGP SNMP does not seem to be running"
-    assert r1_snmp.test_oid("bgpVersion", "10"), assertmsg
+    assert result, assertmsg
+
+    r1_snmp = SnmpTester(r1, "10.1.1.1", "public", "2c")
     count = 0
     passed = False
     while count < 125: