From ddab988cceba6e149221b137efe51d39feb60edd Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Thu, 19 Dec 2024 18:24:06 +0200 Subject: [PATCH] tests: Check if we received a DECENT amount of prefixes/paths Signed-off-by: Donatas Abraitis --- .../test_bgp_addpath_best_selected.py | 89 +++++++++---------- 1 file changed, 40 insertions(+), 49 deletions(-) diff --git a/tests/topotests/bgp_addpath_best_selected/test_bgp_addpath_best_selected.py b/tests/topotests/bgp_addpath_best_selected/test_bgp_addpath_best_selected.py index 3d17a2b709..e58b53728b 100644 --- a/tests/topotests/bgp_addpath_best_selected/test_bgp_addpath_best_selected.py +++ b/tests/topotests/bgp_addpath_best_selected/test_bgp_addpath_best_selected.py @@ -73,7 +73,9 @@ def test_bgp_addpath_best_selected(): if tgen.routers_have_failure(): pytest.skip(tgen.errors) + r1 = tgen.gears["r1"] r2 = tgen.gears["r2"] + r7 = tgen.gears["r7"] def _bgp_converge(): output = json.loads(r2.vtysh_cmd("show bgp ipv4 unicast 172.16.16.254/32 json")) @@ -111,78 +113,67 @@ def test_bgp_addpath_best_selected(): _, result = topotest.run_and_expect(test_func, None, count=30, wait=1) assert result is None, "Can't converge initially" - def check_bgp_advertised_routes_to_r1(): + def r1_check_bgp_received_routes_from_r2(): output = json.loads( - r2.vtysh_cmd( - "show bgp ipv4 neighbors 192.168.1.1 advertised-routes detail json" - ) + r1.vtysh_cmd("show bgp ipv4 neighbors 192.168.1.2 routes json") ) expected = { - "advertisedRoutes": { - "172.16.16.254/32": { - "paths": [ - { - "aspath": { - "string": "65005", - } - }, - { - "aspath": { - "string": "65006", - } - }, - ] - } + "routes": { + "172.16.16.254/32": [ + { + "valid": True, + "path": "65002 65005", + }, + { + "valid": True, + "path": "65002 65006", + }, + ] }, - "totalPrefixCounter": 2, + "totalRoutes": 1, + "totalPaths": 2, } return topotest.json_cmp(output, expected) - test_func = functools.partial(check_bgp_advertised_routes_to_r1) + test_func = functools.partial(r1_check_bgp_received_routes_from_r2) _, result = topotest.run_and_expect(test_func, None, count=30, wait=1) assert ( result is None - ), "Received more/less Add-Path best paths, but should be only 1+1 (real best path)" + ), "Received more/less Add-Path best paths, but should be ONLY 1+1 (real best path)" - def check_bgp_advertised_routes_to_r7(): + def r7_check_bgp_received_routes_from_r2(): output = json.loads( - r2.vtysh_cmd( - "show bgp ipv4 neighbors 192.168.7.7 advertised-routes detail json" - ) + r7.vtysh_cmd("show bgp ipv4 neighbors 192.168.7.2 routes json") ) expected = { - "advertisedRoutes": { - "172.16.16.254/32": { - "paths": [ - { - "aspath": { - "string": "65004", - } - }, - { - "aspath": { - "string": "65005", - } - }, - { - "aspath": { - "string": "65006", - } - }, - ] - } + "routes": { + "172.16.16.254/32": [ + { + "valid": True, + "path": "65002 65004", + }, + { + "valid": True, + "path": "65002 65005", + }, + { + "valid": True, + "path": "65002 65006", + }, + ] }, - "totalPrefixCounter": 3, + "totalRoutes": 1, + "totalPaths": 3, } return topotest.json_cmp(output, expected) - test_func = functools.partial(check_bgp_advertised_routes_to_r7) + test_func = functools.partial(r7_check_bgp_received_routes_from_r2) _, result = topotest.run_and_expect(test_func, None, count=30, wait=1) assert ( result is None - ), "Received more/less Add-Path best paths, but should be only 2+1 (real best path)" + ), "Received more/less Add-Path best paths, but should be ONLY 2+1 (real best path)" if __name__ == "__main__": -- 2.39.5