]> git.puffer.fish Git - matthieu/frr.git/commitdiff
tests: Improve `bgp_maximum_prefix_invalid_update` test case
authorDonatas Abraitis <donatas@opensourcerouting.org>
Wed, 30 Nov 2022 15:22:43 +0000 (17:22 +0200)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Wed, 30 Nov 2022 15:22:43 +0000 (17:22 +0200)
Drop `grep'ing` stuff, and check JSON data if notification was send or not.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
tests/topotests/bgp_maximum_prefix_invalid_update/test_bgp_maximum_prefix_invalid_update.py

index f402c41974f596830b564a46bcf680ca0958b7e6..ee68ecd7b6ecf63c11d4f994a91a0da8bdfd78d0 100644 (file)
@@ -87,34 +87,19 @@ def test_bgp_maximum_prefix_invalid():
 
     r2 = tgen.gears["r2"]
 
-    def _bgp_converge():
+    def _bgp_parsing_nlri():
         output = json.loads(r2.vtysh_cmd("show ip bgp neighbor 192.168.255.1 json"))
         expected = {
             "192.168.255.1": {
-                "connectionsEstablished": 1,
-                "connectionsDropped": 1,
+                "lastNotificationReason": "Cease/Maximum Number of Prefixes Reached",
+                "lastResetDueTo": "BGP Notification send",
             }
         }
         return topotest.json_cmp(output, expected)
 
-    test_func = functools.partial(_bgp_converge)
+    test_func = functools.partial(_bgp_parsing_nlri)
     _, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
-    assert result is None, "Can't converge initially"
-
-    def _bgp_parsing_nlri():
-        cmd_max_exceeded = (
-            'grep "%MAXPFXEXCEED: No. of IPv4 Unicast prefix received" bgpd.log'
-        )
-        cmdt_error_parsing_nlri = 'grep "Error parsing NLRI" bgpd.log'
-        output_max_exceeded = r2.run(cmd_max_exceeded)
-        output_error_parsing_nlri = r2.run(cmdt_error_parsing_nlri)
-
-        if len(output_max_exceeded) > 0:
-            if len(output_error_parsing_nlri) > 0:
-                return False
-        return True
-
-    assert _bgp_parsing_nlri() == True
+    assert result is None, "Didn't send NOTIFICATION when hitting maximum-prefix"
 
 
 if __name__ == "__main__":