]> git.puffer.fish Git - matthieu/frr.git/commitdiff
topogen: add error functions
authorRafael Zalamena <rzalamena@gmail.com>
Tue, 11 Jul 2017 14:10:59 +0000 (11:10 -0300)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 28 Nov 2018 01:22:11 +0000 (20:22 -0500)
Store errors and error code in topogen so other tests can look up for
failures and skip tests.

tests/topotests/lib/topogen.py

index cc139bc83c737695c2b54e81627a558338193f95..87b8b6d0356b06f043232fc77ae030e20b62ba73 100644 (file)
@@ -96,6 +96,7 @@ class Topogen(object):
         self.routern = 1
         self.switchn = 1
         self.modname = modname
+        self.errors = {}
         self._init_topo(cls)
         logger.info('loading topology: {}'.format(self.modname))
 
@@ -293,6 +294,19 @@ class Topogen(object):
         for router in router_list:
             router.report_memory_leaks(self.modname)
 
+    def set_error(self, message, code=None):
+        "Sets an error message and signal other tests to skip."
+        logger.error(message)
+
+        # If no code is defined use a sequential number
+        if code is None:
+            code = len(self.errors)
+
+        self.errors[code] = message
+
+    def has_errors(self):
+        "Returns whether errors exist or not."
+        return len(self.errors) > 0
 
 #
 # Topology gears (equipment)