summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtests/topotests/all-protocol-startup/test_all_protocol_startup.py29
-rwxr-xr-xtests/topotests/bgp_multi_vrf_topo2/test_bgp_multi_vrf_topo2.py1
-rwxr-xr-xtests/topotests/evpn_type5_test_topo1/test_evpn_type5_chaos_topo1.py1
-rwxr-xr-xtests/topotests/evpn_type5_test_topo1/test_evpn_type5_topo1.py1
-rw-r--r--tests/topotests/lib/topogen.py25
5 files changed, 46 insertions, 11 deletions
diff --git a/tests/topotests/all-protocol-startup/test_all_protocol_startup.py b/tests/topotests/all-protocol-startup/test_all_protocol_startup.py
index 4602b039a6..8525838d96 100755
--- a/tests/topotests/all-protocol-startup/test_all_protocol_startup.py
+++ b/tests/topotests/all-protocol-startup/test_all_protocol_startup.py
@@ -263,6 +263,22 @@ def test_error_messages_daemons():
if log:
error_logs += "r%s LDPd StdErr Output:\n" % i
error_logs += log
+
+ log = net['r1'].getStdErr('nhrpd')
+ if log:
+ error_logs += "r%s NHRPd StdErr Output:\n" % i
+ error_logs += log
+
+ log = net['r1'].getStdErr('babeld')
+ if log:
+ error_logs += "r%s BABELd StdErr Output:\n" % i
+ error_logs += log
+
+ log = net['r1'].getStdErr('pbrd')
+ if log:
+ error_logs += "r%s PBRd StdErr Output:\n" % i
+ error_logs += log
+
log = net['r%s' % i].getStdErr('zebra')
if log:
error_logs += "r%s Zebra StdErr Output:\n"
@@ -1182,6 +1198,19 @@ def test_shutdown_check_stderr():
log = net['r1'].getStdErr('bgpd')
if log:
print("\nBGPd StdErr Log:\n" + log)
+
+ log = net['r1'].getStdErr('nhrpd')
+ if log:
+ print("\nNHRPd StdErr Log:\n" + log)
+
+ log = net['r1'].getStdErr('pbrd')
+ if log:
+ print("\nPBRd StdErr Log:\n" + log)
+
+ log = net['r1'].getStdErr('babeld')
+ if log:
+ print("\nBABELd StdErr Log:\n" + log)
+
if (net['r1'].daemon_available('ldpd')):
log = net['r1'].getStdErr('ldpd')
if log:
diff --git a/tests/topotests/bgp_multi_vrf_topo2/test_bgp_multi_vrf_topo2.py b/tests/topotests/bgp_multi_vrf_topo2/test_bgp_multi_vrf_topo2.py
index 27c4430a52..c36e66a60e 100755
--- a/tests/topotests/bgp_multi_vrf_topo2/test_bgp_multi_vrf_topo2.py
+++ b/tests/topotests/bgp_multi_vrf_topo2/test_bgp_multi_vrf_topo2.py
@@ -70,7 +70,6 @@ from lib.common_config import (
create_route_maps,
shutdown_bringup_interface,
start_router_daemons,
- kill_router_daemons,
create_static_routes,
create_vrf_cfg,
create_interfaces_cfg,
diff --git a/tests/topotests/evpn_type5_test_topo1/test_evpn_type5_chaos_topo1.py b/tests/topotests/evpn_type5_test_topo1/test_evpn_type5_chaos_topo1.py
index 941593e51f..e913105e43 100755
--- a/tests/topotests/evpn_type5_test_topo1/test_evpn_type5_chaos_topo1.py
+++ b/tests/topotests/evpn_type5_test_topo1/test_evpn_type5_chaos_topo1.py
@@ -62,7 +62,6 @@ from lib.common_config import (
verify_rib,
step,
start_router_daemons,
- kill_router_daemons,
create_static_routes,
create_vrf_cfg,
create_route_maps,
diff --git a/tests/topotests/evpn_type5_test_topo1/test_evpn_type5_topo1.py b/tests/topotests/evpn_type5_test_topo1/test_evpn_type5_topo1.py
index 8892d13eff..9e385823fc 100755
--- a/tests/topotests/evpn_type5_test_topo1/test_evpn_type5_topo1.py
+++ b/tests/topotests/evpn_type5_test_topo1/test_evpn_type5_topo1.py
@@ -68,7 +68,6 @@ from lib.common_config import (
create_route_maps,
verify_cli_json,
start_router_daemons,
- kill_router_daemons,
create_static_routes,
stop_router,
start_router,
diff --git a/tests/topotests/lib/topogen.py b/tests/topotests/lib/topogen.py
index 37b9715010..a6cc5280ec 100644
--- a/tests/topotests/lib/topogen.py
+++ b/tests/topotests/lib/topogen.py
@@ -335,9 +335,7 @@ class Topogen(object):
logger.info("stopping topology: {}".format(self.modname))
errors = ""
for gear in self.gears.values():
- gear.stop(False, False)
- for gear in self.gears.values():
- errors += gear.stop(True, False)
+ errors += gear.stop()
if len(errors) > 0:
assert "Errors found post shutdown - details follow:" == 0, errors
@@ -703,14 +701,26 @@ class TopoRouter(TopoGear):
return result
- def stop(self, wait=True, assertOnError=True):
+ def __stop_internal(self, wait=True, assertOnError=True):
"""
- Stop router:
+ Stop router, private internal version
* Kill daemons
"""
- self.logger.debug("stopping")
+ self.logger.debug("stopping: wait {}, assert {}".format(
+ wait, assertOnError))
return self.tgen.net[self.name].stopRouter(wait, assertOnError)
+
+ def stop(self):
+ """
+ Stop router cleanly:
+ * Signal daemons twice, once without waiting, and then a second time
+ with a wait to ensure the daemons exit cleanly
+ """
+ self.logger.debug("stopping")
+ self.__stop_internal(False, False)
+ return self.__stop_internal()
+
def startDaemons(self, daemons):
"""
Start Daemons: to start specific daemon(user defined daemon only)
@@ -819,8 +829,7 @@ class TopoRouter(TopoGear):
if memleak_file is None:
return
- self.stop(False, False)
- self.stop(wait=True)
+ self.stop()
self.logger.info("running memory leak report")
self.tgen.net[self.name].report_memory_leaks(memleak_file, testname)