From 7db35de508f4ce1f04eb7e28e454829c66f7635a Mon Sep 17 00:00:00 2001 From: Jakub Grajciar Date: Tue, 25 Jun 2019 10:22:11 +0200 Subject: [PATCH] tests: fix memif tests 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 --- test/remote_test.py | 14 +++++--------- test/test_memif.py | 10 +++++++--- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/test/remote_test.py b/test/remote_test.py index 092d3f8d2e7..cd2e46fe219 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -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 """ diff --git a/test/test_memif.py b/test/test_memif.py index c41d0aac983..07181afd6f1 100644 --- a/test/test_memif.py +++ b/test/test_memif.py @@ -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) -- 2.16.6