tests: Set community for conditionally advertised routes

Just to make sure we don't crash bgpd with double-free if an existing route
already exists.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 8eba97d395)
This commit is contained in:
Donatas Abraitis 2023-11-21 10:38:12 +02:00 committed by Mergify
parent e4687579d5
commit 40e7bb378c
2 changed files with 21 additions and 0 deletions

View File

@ -36,4 +36,5 @@ route-map exist-map permit 10
!
route-map advertise-map permit 10
match ip address prefix-list advertise
set community 65000:1
!

View File

@ -54,6 +54,7 @@ def test_bgp_conditional_advertisements_static_route():
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
r1 = tgen.gears["r1"]
r2 = tgen.gears["r2"]
def _bgp_converge():
@ -112,6 +113,25 @@ def test_bgp_conditional_advertisements_static_route():
_, result = topotest.run_and_expect(test_func, None, count=30, wait=1)
assert result is None, "10.10.10.2/32 is not advertised after prefix-list update"
def _bgp_check_received_routes():
output = json.loads(r1.vtysh_cmd("show bgp ipv4 unicast 10.10.10.1/32 json"))
expected = {
"paths": [
{
"community": {
"string": "65000:1",
}
}
]
}
return topotest.json_cmp(output, expected)
test_func = functools.partial(
_bgp_check_received_routes,
)
_, result = topotest.run_and_expect(test_func, None, count=30, wait=1)
assert result is None, "10.10.10.1/32 does not have 65000:1 community attached"
if __name__ == "__main__":
args = ["-s"] + sys.argv[1:]