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:
Donatas Abraitis 2023-03-30 16:50:15 +03:00
parent 6baf6b184c
commit 9db7ed2fc9

View File

@ -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)
_, 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)
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 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")
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__":