]> git.puffer.fish Git - mirror/frr.git/commitdiff
tests: Check if attributes are reapplied for aggregate routes with route-maps 15257/head
authorDonatas Abraitis <donatas@opensourcerouting.org>
Tue, 30 Jan 2024 13:54:04 +0000 (15:54 +0200)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Tue, 30 Jan 2024 13:54:04 +0000 (15:54 +0200)
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
tests/topotests/bgp_aggregate_address_route_map/test_bgp_aggregate-address_route-map.py

index cec06920cb8b3a7e1f919a18e3e9f9a935ad31c7..eeac7146b1fa49106596814804443ceee2430746 100644 (file)
@@ -74,7 +74,8 @@ def test_bgp_maximum_prefix_invalid():
     if tgen.routers_have_failure():
         pytest.skip(tgen.errors)
 
-    router = tgen.gears["r2"]
+    r1 = tgen.gears["r1"]
+    r2 = tgen.gears["r2"]
 
     def _bgp_converge(router):
         output = json.loads(router.vtysh_cmd("show ip bgp neighbor 192.168.255.1 json"))
@@ -86,22 +87,30 @@ def test_bgp_maximum_prefix_invalid():
         }
         return topotest.json_cmp(output, expected)
 
-    def _bgp_aggregate_address_has_metric(router):
+    def _bgp_aggregate_address_has_metric(router, metric):
         output = json.loads(router.vtysh_cmd("show ip bgp 172.16.255.0/24 json"))
-        expected = {"paths": [{"metric": 123}]}
+        expected = {"paths": [{"metric": metric}]}
         return topotest.json_cmp(output, expected)
 
-    test_func = functools.partial(_bgp_converge, router)
-    success, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
-
-    assert result is None, 'Failed to see bgp convergence in "{}"'.format(router)
-
-    test_func = functools.partial(_bgp_aggregate_address_has_metric, router)
-    success, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
-
-    assert (
-        result is None
-    ), 'Failed to see applied metric for aggregated prefix in "{}"'.format(router)
+    test_func = functools.partial(_bgp_converge, r2)
+    _, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
+    assert result is None, "Failed to see bgp convergence in r2"
+
+    test_func = functools.partial(_bgp_aggregate_address_has_metric, r2, 123)
+    _, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
+    assert result is None, "Failed to see applied metric for aggregated prefix in r2"
+
+    r1.vtysh_cmd(
+        """
+    configure terminal
+     route-map aggr-rmap permit 10
+      set metric 666
+    """
+    )
+
+    test_func = functools.partial(_bgp_aggregate_address_has_metric, r2, 666)
+    _, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
+    assert result is None, "Failed to see applied metric for aggregated prefix in r2"
 
 
 if __name__ == "__main__":