2.10. remote_test module

class remote_test.RemoteClass(cls, *args, **kwargs)

Bases: multiprocessing.context.Process

This class can wrap around and adapt the interface of another class, and then delegate its execution to a newly forked child process. Usage:

# Create a remotely executed instance of MyClass object = RemoteClass(MyClass, arg1=’foo’, arg2=’bar’) object.start_remote() # Access the object normally as if it was an instance of your class. object.my_attribute = 20 print object.my_attribute print object.my_method(object.my_attribute) object.my_attribute.nested_attribute = ‘test’ # If you need the value of a remote attribute, use .get_remote_value method. This method is automatically called when needed in the context of a remotely executed class. E.g.: if (object.my_attribute.get_remote_value() > 20):

object.my_attribute2 = object.my_attribute

# Destroy the instance object.quit_remote() object.terminate()

CALL = 1
DEFAULT_TIMEOUT = 2
GET = 0
PIPE_CHILD = 1
PIPE_PARENT = 0
QUIT = 5
REPR = 3
SETATTR = 2
STR = 4
get_remote_value()

Get value of a remotely held object

quit_remote()

Quit remote execution

run()

Create instance of the wrapped class and execute operations on it as requested by the parent process.

set_request_timeout(timeout)

Change request timeout

start_remote()

Start remote execution

class remote_test.RemoteClassAttr(remote, attr)

Bases: object

Wrapper around attribute of a remotely executed class.

get_remote_value()
path_to_str()
class remote_test.RemoteVppTestCase

Bases: framework.VppTestCase

Re-use VppTestCase to create remote VPP segment

In your test case:

@classmethod def setUpClass(cls):

# fork new process before client connects to VPP cls.remote_test = RemoteClass(RemoteVppTestCase)

# start remote process cls.remote_test.start_remote()

# set up your test case super(MyTestCase, cls).setUpClass()

# set up remote test cls.remote_test.setUpClass(cls.tempdir)

@classmethod def tearDownClass(cls):

# tear down remote test cls.remote_test.tearDownClass()

# stop remote process cls.remote_test.quit_remote()

# tear down your test case super(MyTestCase, cls).tearDownClass()

emptyTest()

Do nothing

setTestFunctionInfo(name, doc)

Store the name and documentation string of currently executed test in the main VPP for logging purposes.

classmethod setUpClass(tempdir)

Perform class setup before running the testcase Remove shared memory files, start vpp and connect the vpp-api

classmethod tearDownClass()

Perform final cleanup after running all tests in this test-case

class remote_test.SerializableClassCopy

Bases: object

Empty class used as a basis for a serializable copy of another class.