Skip to content

Commit

Permalink
tests: Check if attributes are reapplied for aggregate routes with ro…
Browse files Browse the repository at this point in the history
…ute-maps

Signed-off-by: Donatas Abraitis <[email protected]>
  • Loading branch information
ton31337 committed Jan 30, 2024
1 parent ee1986f commit 9aed577
Showing 1 changed file with 23 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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"))
Expand All @@ -86,22 +87,30 @@ def _bgp_converge(router):
}
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__":
Expand Down

0 comments on commit 9aed577

Please sign in to comment.