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 <jgrajcia@cisco.com>
This commit is contained in:

committed by
Paul Vinciguerra

parent
b1edf37bd5
commit
7db35de508
@ -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 """
|
||||
|
@ -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)
|
||||
|
Reference in New Issue
Block a user