tests: fix memif tests 12/20312/2
authorJakub Grajciar <jgrajcia@cisco.com>
Tue, 25 Jun 2019 08:22:11 +0000 (10:22 +0200)
committerPaul Vinciguerra <pvinci@vinciconsulting.com>
Wed, 26 Jun 2019 10:10:05 +0000 (10:10 +0000)
remote_test.py - Remove 'ret' arg from _remote_exec(), so that the function
                 always reads the reply from the pipe. (fix unmatched request/reply)

memif_test.py - Don't register VppIpRoute to VppObjectRegistry.

Type: fix

Change-Id: I8a51e7ffd68df5f379534f5ddd5ec9367a89be32
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
test/remote_test.py
test/test_memif.py

index 092d3f8..cd2e46f 100644 (file)
@@ -59,12 +59,11 @@ class RemoteClassAttr(object):
                 return
         self._path.append(attr)
         self._remote._remote_exec(RemoteClass.SETATTR, self.path_to_str(),
-                                  True, value=val)
+                                  value=val)
 
     def __call__(self, *args, **kwargs):
-        ret = True if 'vapi' in self.path_to_str() else False
         return self._remote._remote_exec(RemoteClass.CALL, self.path_to_str(),
-                                         ret, *args, **kwargs)
+                                         *args, **kwargs)
 
 
 class RemoteClass(Process):
@@ -134,7 +133,7 @@ class RemoteClass(Process):
                 return
         setattr(RemoteClassAttr(self, None), attr, val)
 
-    def _remote_exec(self, op, path=None, ret=True, *args, **kwargs):
+    def _remote_exec(self, op, path=None, *args, **kwargs):
         """
         Execute given operation on a given, possibly nested, member remotely.
         """
@@ -153,12 +152,9 @@ class RemoteClass(Process):
         args = self._make_serializable(args)
         kwargs = self._make_serializable(kwargs)
         self._pipe[RemoteClass.PIPE_PARENT].send((op, path, args, kwargs))
-        if not ret:
-            # no return value expected
-            return None
         timeout = self._timeout
         # adjust timeout specifically for the .sleep method
-        if path.split('.')[-1] == 'sleep':
+        if path is not None and path.split('.')[-1] == 'sleep':
             if args and isinstance(args[0], (long, int)):
                 timeout += args[0]
             elif 'timeout' in kwargs:
@@ -305,7 +301,7 @@ class RemoteClass(Process):
 
     def quit_remote(self):
         """ Quit remote execution """
-        self._remote_exec(RemoteClass.QUIT, None, False)
+        self._remote_exec(RemoteClass.QUIT, None)
 
     def get_remote_value(self):
         """ Get value of a remotely held object """
index c41d0aa..07181af 100644 (file)
@@ -12,7 +12,6 @@ from vpp_memif import MEMIF_MODE, MEMIF_ROLE, remove_all_memif_vpp_config, \
 from vpp_ip_route import VppIpRoute, VppRoutePath
 
 
-@unittest.skipIf(True, "doesn't work with VppEnums")
 class TestMemif(VppTestCase):
     """ Memif Test Case """
 
@@ -250,8 +249,11 @@ class TestMemif(VppTestCase):
         self.assertTrue(remote_memif.wait_for_link_up(5))
 
         # add routing to remote vpp
-        VppIpRoute(self.remote_test, self.pg0._local_ip4_subnet, 24,
-                   [VppRoutePath(memif.ip4_addr, 0xffffffff)]).add_vpp_config()
+        route = VppIpRoute(self.remote_test, self.pg0._local_ip4_subnet, 24,
+                   [VppRoutePath(memif.ip4_addr, 0xffffffff)],
+                   register=False)
+
+        route.add_vpp_config()
 
         # create ICMP echo-request from local pg to remote memif
         packet_num = 10
@@ -266,6 +268,8 @@ class TestMemif(VppTestCase):
             self._verify_icmp(self.pg0, remote_memif, c, seq)
             seq += 1
 
+        route.remove_vpp_config()
+
 
 if __name__ == '__main__':
     unittest.main(testRunner=VppTestRunner)