]> git.puffer.fish Git - mirror/frr.git/commitdiff
topogen: implement router check method
authorRafael Zalamena <rzalamena@gmail.com>
Wed, 12 Jul 2017 14:38:31 +0000 (11:38 -0300)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 28 Nov 2018 01:22:11 +0000 (20:22 -0500)
Use a standard function to do 'router running checks' instead of having
to duplicate the code in every test.

tests/topotests/lib/topogen.py

index 20f0eda39e08873bd0763106819e56200380e1e4..758ebcf2bfb6ed420bf552fbf59d2ef51c74dfed 100644 (file)
@@ -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)
 #