X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Fremote_test.py;h=9c825ccf755e0de1f17c8458864e2c0cc78534a9;hb=053204ab039d34a990ff0e14c32ce3b294fcce0e;hp=092d3f8d2e7b33b058db2af602bce01a69d2c47e;hpb=097fa66b986f06281f603767d321ab13ab6c88c3;p=vpp.git diff --git a/test/remote_test.py b/test/remote_test.py index 092d3f8d2e7..9c825ccf755 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -3,14 +3,13 @@ import inspect import os import unittest +from framework import VppTestCase from multiprocessing import Process, Pipe from pickle import dumps - import six from six import moves - -from framework import VppTestCase -from aenum import Enum +import sys +from aenum import IntEnum, IntFlag class SerializableClassCopy(object): @@ -59,12 +58,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 +132,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 +151,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: @@ -274,7 +269,7 @@ class RemoteClass(Process): if type(obj) is tuple: rv = tuple(rv) return rv - elif (isinstance(obj, Enum)): + elif (isinstance(obj, IntEnum) or isinstance(obj, IntFlag)): return obj.value else: return self._make_obj_serializable(obj) @@ -305,7 +300,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 """