From f13a242c762dffcd5f61f7d8bb279ddaa4069364 Mon Sep 17 00:00:00 2001 From: Renato Westphal Date: Tue, 15 Aug 2017 16:31:20 -0300 Subject: [PATCH] ldp_vpls_topo1: don't use pytest.mark.skipif This feature from pytest can not be used to detect runtime errors. Also, remove test_router_running() since all tests should actually check if all daemons are up and running. Signed-off-by: Renato Westphal --- .../ldp-vpls-topo1/test_ldp_vpls_topo1.py | 55 +++++++++++-------- 1 file changed, 32 insertions(+), 23 deletions(-) diff --git a/tests/topotests/ldp-vpls-topo1/test_ldp_vpls_topo1.py b/tests/topotests/ldp-vpls-topo1/test_ldp_vpls_topo1.py index 3d54ddfde0..e6ab03a928 100755 --- a/tests/topotests/ldp-vpls-topo1/test_ldp_vpls_topo1.py +++ b/tests/topotests/ldp-vpls-topo1/test_ldp_vpls_topo1.py @@ -80,8 +80,6 @@ from lib.topolog import logger # Required to instantiate the topology builder class. from mininet.topo import Topo -fatal_error = "" - class TemplateTopo(Topo): "Test topology builder" def build(self, *_args, **_opts): @@ -174,80 +172,91 @@ def router_compare_json_output(rname, command, reference): result, diff = topotest.run_and_expect(test_func, None, count=20, wait=3) assert result, '"{}" JSON output mismatches the expected result'.format(rname) -def test_router_running(): - global fatal_error - - logger.info("Test: check if FRR is running on each Router node") - - tgen = get_topogen() - sleep(5) - - # Make sure that all daemons are running - for router in ['ce1', 'ce2', 'ce3', 'r1', 'r2', 'r3']: - fatal_error = tgen.net[router].checkRouterRunning() - assert fatal_error == "", fatal_error - -@pytest.mark.skipif(fatal_error != "", reason="fatal error") def test_ospf_convergence(): logger.info("Test: check OSPF adjacencies") tgen = get_topogen() + # Skip if previous fatal error condition is raised + if tgen.routers_have_failure(): + pytest.skip(tgen.errors) + for rname in ['r1', 'r2', 'r3']: router_compare_json_output(rname, "show ip ospf neighbor json", "show_ip_ospf_neighbor.ref") -@pytest.mark.skipif(fatal_error != "", reason="fatal error") def test_rib(): logger.info("Test: verify RIB") tgen = get_topogen() + # Skip if previous fatal error condition is raised + if tgen.routers_have_failure(): + pytest.skip(tgen.errors) + for rname in ['r1', 'r2', 'r3']: router_compare_json_output(rname, "show ip route json", "show_ip_route.ref") -@pytest.mark.skipif(fatal_error != "", reason="fatal error") def test_ldp_adjacencies(): logger.info("Test: verify LDP adjacencies") tgen = get_topogen() + # Skip if previous fatal error condition is raised + if tgen.routers_have_failure(): + pytest.skip(tgen.errors) + for rname in ['r1', 'r2', 'r3']: router_compare_json_output(rname, "show mpls ldp discovery json", "show_ldp_discovery.ref") -@pytest.mark.skipif(fatal_error != "", reason="fatal error") def test_ldp_neighbors(): logger.info("Test: verify LDP neighbors") tgen = get_topogen() + # Skip if previous fatal error condition is raised + if tgen.routers_have_failure(): + pytest.skip(tgen.errors) + for rname in ['r1', 'r2', 'r3']: router_compare_json_output(rname, "show mpls ldp neighbor json", "show_ldp_neighbor.ref") -@pytest.mark.skipif(fatal_error != "", reason="fatal error") def test_ldp_bindings(): logger.info("Test: verify LDP bindings") tgen = get_topogen() + # Skip if previous fatal error condition is raised + if tgen.routers_have_failure(): + pytest.skip(tgen.errors) + for rname in ['r1', 'r2', 'r3']: router_compare_json_output(rname, "show mpls ldp binding json", "show_ldp_binding.ref") -@pytest.mark.skipif(fatal_error != "", reason="fatal error") def test_ldp_pwid_bindings(): logger.info("Test: verify LDP PW-ID bindings") tgen = get_topogen() + # Skip if previous fatal error condition is raised + if tgen.routers_have_failure(): + pytest.skip(tgen.errors) + for rname in ['r1', 'r2', 'r3']: router_compare_json_output(rname, "show l2vpn atom binding json", "show_l2vpn_binding.ref") -@pytest.mark.skipif(fatal_error != "", reason="fatal error") def test_ldp_pseudowires(): logger.info("Test: verify LDP pseudowires") tgen = get_topogen() + # Skip if previous fatal error condition is raised + if tgen.routers_have_failure(): + pytest.skip(tgen.errors) + for rname in ['r1', 'r2', 'r3']: router_compare_json_output(rname, "show l2vpn atom vc json", "show_l2vpn_vc.ref") -@pytest.mark.skipif(fatal_error != "", reason="fatal error") def test_ldp_pseudowires_after_link_down(): logger.info("Test: verify LDP pseudowires after r1-r2 link goes down") tgen = get_topogen() + # Skip if previous fatal error condition is raised + if tgen.routers_have_failure(): + pytest.skip(tgen.errors) + # Shut down r1-r2 link */ tgen = get_topogen() tgen.gears['r1'].peer_link_enable('r1-eth1', False) -- 2.39.5