From c2435c67f4a431d6ad9e52a7c8aa7ad2105f5b19 Mon Sep 17 00:00:00 2001 From: Louis Scalbert Date: Tue, 6 Jun 2023 17:00:18 +0200 Subject: [PATCH] topotests: cosmetic changes to bgp_vpnv4_noretain Cosmetic changes to bgp_vpnv4_noretain to prepare the next commit. Signed-off-by: Louis Scalbert --- ...filtered.json => ipv4_vpn_routes_all.json} | 0 ...on => ipv4_vpn_routes_no_retain_init.json} | 0 .../test_bgp_vpnv4_noretain.py | 59 ++++++++----------- 3 files changed, 24 insertions(+), 35 deletions(-) rename tests/topotests/bgp_vpnv4_noretain/r1/{ipv4_vpn_routes_unfiltered.json => ipv4_vpn_routes_all.json} (100%) rename tests/topotests/bgp_vpnv4_noretain/r1/{ipv4_vpn_routes.json => ipv4_vpn_routes_no_retain_init.json} (100%) diff --git a/tests/topotests/bgp_vpnv4_noretain/r1/ipv4_vpn_routes_unfiltered.json b/tests/topotests/bgp_vpnv4_noretain/r1/ipv4_vpn_routes_all.json similarity index 100% rename from tests/topotests/bgp_vpnv4_noretain/r1/ipv4_vpn_routes_unfiltered.json rename to tests/topotests/bgp_vpnv4_noretain/r1/ipv4_vpn_routes_all.json diff --git a/tests/topotests/bgp_vpnv4_noretain/r1/ipv4_vpn_routes.json b/tests/topotests/bgp_vpnv4_noretain/r1/ipv4_vpn_routes_no_retain_init.json similarity index 100% rename from tests/topotests/bgp_vpnv4_noretain/r1/ipv4_vpn_routes.json rename to tests/topotests/bgp_vpnv4_noretain/r1/ipv4_vpn_routes_no_retain_init.json diff --git a/tests/topotests/bgp_vpnv4_noretain/test_bgp_vpnv4_noretain.py b/tests/topotests/bgp_vpnv4_noretain/test_bgp_vpnv4_noretain.py index 9b8ae4b7e3..af6e47ab78 100644 --- a/tests/topotests/bgp_vpnv4_noretain/test_bgp_vpnv4_noretain.py +++ b/tests/topotests/bgp_vpnv4_noretain/test_bgp_vpnv4_noretain.py @@ -139,24 +139,15 @@ def router_json_cmp_exact_filter(router, cmd, expected): return topotest.json_cmp(json_output, expected, exact=True) -def test_bgp_no_retain(): - """ - Check bgp no retain route-target all on r1 - """ - +def check_show_bgp_ipv4_vpn(rname, json_file): tgen = get_topogen() if tgen.routers_have_failure(): pytest.skip(tgen.errors) + router = tgen.gears[rname] - # Check IPv4 VPN routing tables on r1 - logger.info("Checking VPNv4 routes for convergence on r1") - router = tgen.gears["r1"] - json_file = "{}/{}/ipv4_vpn_routes.json".format(CWD, router.name) - if not os.path.isfile(json_file): - logger.info("skipping file {}".format(json_file)) - assert 0, "{} file not found".format(json_file) - return + logger.info("Checking VPNv4 routes for convergence on {}".format(rname)) + json_file = "{}/{}/{}".format(CWD, router.name, json_file) expected = json.loads(open(json_file).read()) test_func = partial( router_json_cmp_exact_filter, @@ -169,37 +160,35 @@ def test_bgp_no_retain(): assert result is None, assertmsg -def test_bgp_retain(): +def test_bgp_no_retain_step1(): + """ + Check bgp no retain route-target all on r1 + """ + + rname = "r1" + check_show_bgp_ipv4_vpn(rname, "ipv4_vpn_routes_no_retain_init.json") + + +def test_bgp_retain_step2(): """ Apply and check bgp retain route-target all on r1 """ + rname = "r1" + cfg = """ +configure +router bgp 65500 + address-family ipv4 vpn + bgp retain route-target all +""" tgen = get_topogen() if tgen.routers_have_failure(): pytest.skip(tgen.errors) - # Check IPv4 VPN routing tables on r1 - logger.info("Checking VPNv4 routes on r1 after bgp no retain") - router = tgen.gears["r1"] - router.vtysh_cmd( - "configure\nrouter bgp 65500\naddress-family ipv4 vpn\nbgp retain route-target all\n" - ) - json_file = "{}/{}/ipv4_vpn_routes_unfiltered.json".format(CWD, router.name) - if not os.path.isfile(json_file): - logger.info("skipping file {}".format(json_file)) - assert 0, "{} file not found".format(json_file) - return + router = tgen.gears[rname] + router.vtysh_cmd(cfg) - expected = json.loads(open(json_file).read()) - test_func = partial( - router_json_cmp_exact_filter, - router, - "show bgp ipv4 vpn json", - expected, - ) - _, result = topotest.run_and_expect(test_func, None, count=10, wait=0.5) - assertmsg = '"{}" JSON output mismatches'.format(router.name) - assert result is None, assertmsg + check_show_bgp_ipv4_vpn(rname, "ipv4_vpn_routes_all.json") def test_memory_leak(): -- 2.39.5