mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-15 01:37:53 +00:00
tests: Check received routes count for labeled-unicast with addpath
Test failed time to time, let's try this way:
```
$ for x in $(seq 1 20); do cp test_bgp_labeled_unicast_addpath.py test_$x.py; done
$ sudo pytest -s -n 20
```
Ran 10 times using this pattern, no failure 🤷
Before this change, we checked advertised routes, and at some point `=` was
missing from the output, but advertised correctly. Receiving router gets as
much routes as expected to receive.
I reversed checking received routes, not advertised.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
This commit is contained in:
parent
6baf6b184c
commit
9db7ed2fc9
@ -82,53 +82,23 @@ def test_bgp_addpath_labeled_unicast():
|
|||||||
r3 = tgen.gears["r3"]
|
r3 = tgen.gears["r3"]
|
||||||
r4 = tgen.gears["r4"]
|
r4 = tgen.gears["r4"]
|
||||||
|
|
||||||
def _bgp_check_advertised_routes(prefix_num):
|
def _bgp_check_received_routes(pfxcount):
|
||||||
output = json.loads(
|
output = json.loads(r4.vtysh_cmd("show bgp ipv4 labeled-unicast summary json"))
|
||||||
r3.vtysh_cmd(
|
|
||||||
"show bgp ipv4 labeled-unicast neighbors 192.168.34.4 advertised-routes json"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
expected = {
|
expected = {
|
||||||
"advertisedRoutes": {
|
"peers": {
|
||||||
"10.0.0.1/32": {
|
"192.168.34.3": {
|
||||||
"appliedStatusSymbols": {
|
"pfxRcd": pfxcount,
|
||||||
"*": True,
|
"state": "Established",
|
||||||
">": True,
|
|
||||||
"=": True,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"totalPrefixCounter": prefix_num,
|
|
||||||
}
|
|
||||||
return topotest.json_cmp(output, expected)
|
|
||||||
|
|
||||||
test_func = functools.partial(_bgp_check_advertised_routes, 2)
|
|
||||||
_, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5)
|
|
||||||
assert (
|
|
||||||
result is None
|
|
||||||
), "Failed to advertise labeled-unicast with addpath (multipath)"
|
|
||||||
|
|
||||||
def _bgp_check_received_routes():
|
|
||||||
output = json.loads(r4.vtysh_cmd("show bgp ipv4 labeled-unicast json"))
|
|
||||||
expected = {
|
|
||||||
"routes": {
|
|
||||||
"10.0.0.1/32": [
|
|
||||||
{
|
|
||||||
"valid": True,
|
|
||||||
"path": "65003 65001",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"valid": True,
|
|
||||||
"path": "65003 65002",
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return topotest.json_cmp(output, expected)
|
return topotest.json_cmp(output, expected)
|
||||||
|
|
||||||
test_func = functools.partial(_bgp_check_received_routes)
|
test_func = functools.partial(_bgp_check_received_routes, 2)
|
||||||
_, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5)
|
_, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5)
|
||||||
assert result is None, "Failed to receive labeled-unicast with addpath (multipath)"
|
assert (
|
||||||
|
result is None
|
||||||
|
), "Failed to receive labeled-unicast with addpath (multipath=2)"
|
||||||
|
|
||||||
step("Enable BGP session for R5")
|
step("Enable BGP session for R5")
|
||||||
r3.vtysh_cmd(
|
r3.vtysh_cmd(
|
||||||
@ -139,11 +109,11 @@ def test_bgp_addpath_labeled_unicast():
|
|||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
|
|
||||||
test_func = functools.partial(_bgp_check_advertised_routes, 3)
|
test_func = functools.partial(_bgp_check_received_routes, 3)
|
||||||
_, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5)
|
_, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5)
|
||||||
assert (
|
assert (
|
||||||
result is None
|
result is None
|
||||||
), "Failed to advertise labeled-unicast with addpath (multipath)"
|
), "Failed to receive labeled-unicast with addpath (multipath=3)"
|
||||||
|
|
||||||
step("Disable BGP session for R5")
|
step("Disable BGP session for R5")
|
||||||
r3.vtysh_cmd(
|
r3.vtysh_cmd(
|
||||||
@ -154,11 +124,11 @@ def test_bgp_addpath_labeled_unicast():
|
|||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
|
|
||||||
test_func = functools.partial(_bgp_check_advertised_routes, 2)
|
test_func = functools.partial(_bgp_check_received_routes, 2)
|
||||||
_, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5)
|
_, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5)
|
||||||
assert (
|
assert (
|
||||||
result is None
|
result is None
|
||||||
), "Failed to advertise labeled-unicast with addpath (multipath)"
|
), "Failed to receive labeled-unicast with addpath (multipath=2)"
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
Loading…
Reference in New Issue
Block a user