mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-15 13:27: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"]
|
||||
r4 = tgen.gears["r4"]
|
||||
|
||||
def _bgp_check_advertised_routes(prefix_num):
|
||||
output = json.loads(
|
||||
r3.vtysh_cmd(
|
||||
"show bgp ipv4 labeled-unicast neighbors 192.168.34.4 advertised-routes json"
|
||||
)
|
||||
)
|
||||
def _bgp_check_received_routes(pfxcount):
|
||||
output = json.loads(r4.vtysh_cmd("show bgp ipv4 labeled-unicast summary json"))
|
||||
expected = {
|
||||
"advertisedRoutes": {
|
||||
"10.0.0.1/32": {
|
||||
"appliedStatusSymbols": {
|
||||
"*": True,
|
||||
">": True,
|
||||
"=": True,
|
||||
"peers": {
|
||||
"192.168.34.3": {
|
||||
"pfxRcd": pfxcount,
|
||||
"state": "Established",
|
||||
}
|
||||
}
|
||||
},
|
||||
"totalPrefixCounter": prefix_num,
|
||||
}
|
||||
return topotest.json_cmp(output, expected)
|
||||
|
||||
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)
|
||||
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)
|
||||
|
||||
test_func = functools.partial(_bgp_check_received_routes)
|
||||
_, 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)"
|
||||
), "Failed to receive labeled-unicast with addpath (multipath=2)"
|
||||
|
||||
step("Enable BGP session for R5")
|
||||
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)
|
||||
assert (
|
||||
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")
|
||||
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)
|
||||
assert (
|
||||
result is None
|
||||
), "Failed to advertise labeled-unicast with addpath (multipath)"
|
||||
), "Failed to receive labeled-unicast with addpath (multipath=2)"
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
Loading…
Reference in New Issue
Block a user