From: Rafael Zalamena Date: Wed, 12 Jul 2017 14:38:31 +0000 (-0300) Subject: topogen: implement router check method X-Git-Tag: frr-7.1-dev~151^2~278 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=78ed61230c9d212f5a1c876c1942a3d15c4e1b7c;p=mirror%2Ffrr.git topogen: implement router check method Use a standard function to do 'router running checks' instead of having to duplicate the code in every test. --- diff --git a/tests/topotests/lib/topogen.py b/tests/topotests/lib/topogen.py index 20f0eda39e..758ebcf2bf 100644 --- a/tests/topotests/lib/topogen.py +++ b/tests/topotests/lib/topogen.py @@ -322,6 +322,10 @@ class Topogen(object): def is_memleak_enabled(self): "Returns `True` if memory leak report is enable, otherwise `False`." + # On router failure we can't run the memory leak test + if self.routers_have_failure(): + return False + memleak_file = (os.environ.get('TOPOTESTS_CHECK_MEMLEAK') or self.config.get(self.CONFIG_SECTION, 'memleak_path')) if memleak_file is None: @@ -355,6 +359,24 @@ class Topogen(object): "Returns whether errors exist or not." return len(self.errors) > 0 + def routers_have_failure(self): + "Runs an assertion to make sure that all routers are running." + if self.has_errors(): + return True + + errors = '' + router_list = self.routers().values() + for router in router_list: + result = router.check_router_running() + if result != '': + errors += result + '\n' + + if errors != '': + self.set_error(errors, 'router_error') + assert errors != '', errors + return True + return False + # # Topology gears (equipment) #