mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-11 08:29:16 +00:00
Merge pull request #4969 from ton31337/feature/rewrite_bgp_aggregate-address_route-map_test
tests: Improve bgp_aggregate-address_route-map test
This commit is contained in:
commit
921308a535
@ -39,6 +39,7 @@ import sys
|
|||||||
import json
|
import json
|
||||||
import time
|
import time
|
||||||
import pytest
|
import pytest
|
||||||
|
import functools
|
||||||
|
|
||||||
CWD = os.path.dirname(os.path.realpath(__file__))
|
CWD = os.path.dirname(os.path.realpath(__file__))
|
||||||
sys.path.append(os.path.join(CWD, '../'))
|
sys.path.append(os.path.join(CWD, '../'))
|
||||||
@ -88,21 +89,42 @@ def test_bgp_maximum_prefix_invalid():
|
|||||||
if tgen.routers_have_failure():
|
if tgen.routers_have_failure():
|
||||||
pytest.skip(tgen.errors)
|
pytest.skip(tgen.errors)
|
||||||
|
|
||||||
|
router = tgen.gears['r2']
|
||||||
|
|
||||||
def _bgp_converge(router):
|
def _bgp_converge(router):
|
||||||
while True:
|
output = json.loads(router.vtysh_cmd("show ip bgp neighbor 192.168.255.1 json"))
|
||||||
output = json.loads(tgen.gears[router].vtysh_cmd("show ip bgp neighbor 192.168.255.1 json"))
|
expected = {
|
||||||
if output['192.168.255.1']['bgpState'] == 'Established':
|
'192.168.255.1': {
|
||||||
if output['192.168.255.1']['addressFamilyInfo']['ipv4Unicast']['acceptedPrefixCounter'] == 3:
|
'bgpState': 'Established',
|
||||||
return True
|
'addressFamilyInfo': {
|
||||||
|
'ipv4Unicast': {
|
||||||
|
'acceptedPrefixCounter': 3
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return topotest.json_cmp(output, expected)
|
||||||
|
|
||||||
def _bgp_aggregate_address_has_metric(router):
|
def _bgp_aggregate_address_has_metric(router):
|
||||||
output = json.loads(tgen.gears[router].vtysh_cmd("show ip bgp 172.16.255.0/24 json"))
|
output = json.loads(router.vtysh_cmd("show ip bgp 172.16.255.0/24 json"))
|
||||||
if output['paths'][0]['med'] == 123:
|
expected = {
|
||||||
return True
|
'paths': [
|
||||||
return False
|
{
|
||||||
|
'med': 123
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
return topotest.json_cmp(output, expected)
|
||||||
|
|
||||||
if _bgp_converge('r2'):
|
test_func = functools.partial(_bgp_converge, router)
|
||||||
assert _bgp_aggregate_address_has_metric('r2') == True
|
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)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
args = ["-s"] + sys.argv[1:]
|
args = ["-s"] + sys.argv[1:]
|
||||||
|
Loading…
Reference in New Issue
Block a user