make test: reset object registry if vpp dies 95/5595/4
authorKlement Sekera <ksekera@cisco.com>
Thu, 2 Mar 2017 10:29:19 +0000 (11:29 +0100)
committerDamjan Marion <dmarion.lists@gmail.com>
Mon, 6 Mar 2017 16:17:21 +0000 (16:17 +0000)
Change-Id: If0e30837e07a21f3912676f5147cb242d3d2b235
Signed-off-by: Klement Sekera <ksekera@cisco.com>
test/framework.py
test/vpp_object.py

index b9a09de..b7e6b4a 100644 (file)
@@ -352,6 +352,8 @@ class VppTestCase(unittest.TestCase):
             os.rename(tmp_api_trace, vpp_api_trace_log)
             self.logger.info(self.vapi.ppcli("api trace dump %s" %
                                              vpp_api_trace_log))
+        else:
+            self.registry.unregister_all(self.logger)
 
     def setUp(self):
         """ Clear trace before running each test"""
index 61a96ec..a1cf42f 100644 (file)
@@ -50,6 +50,12 @@ class VppObjectRegistry(object):
         else:
             logger.debug("REG: duplicate add, ignoring (%s)" % obj)
 
+    def unregister_all(self, logger):
+        """ Remove all object registrations from registry. """
+        logger.debug("REG: removing all object registrations")
+        self._object_registry = []
+        self._object_dict = dict()
+
     def remove_vpp_config(self, logger):
         """
         Remove configuration (if present) from vpp and then remove all objects
@@ -72,8 +78,7 @@ class VppObjectRegistry(object):
         for obj in self._object_registry:
             if obj.query_vpp_config():
                 failed.append(obj)
-        self._object_registry = []
-        self._object_dict = dict()
+        self.unregister_all(logger)
         if failed:
             logger.error("REG: Couldn't remove configuration for object(s):")
             for obj in failed: