THRIFT-3531 Create cross lang feature test for string and container read length limit
This closes #780
diff --git a/test/crossrunner/collect.py b/test/crossrunner/collect.py
index 455189c..f92b9e2 100644
--- a/test/crossrunner/collect.py
+++ b/test/crossrunner/collect.py
@@ -44,6 +44,7 @@
'workdir', # work directory where command is executed
'command', # test command
'extra_args', # args appended to command after other args are appended
+ 'remote_args', # args added to the other side of the program
'join_args', # whether args should be passed as single concatenated string
'env', # additional environmental variable
]
diff --git a/test/crossrunner/test.py b/test/crossrunner/test.py
index 49ba7d3..bb81c4f 100644
--- a/test/crossrunner/test.py
+++ b/test/crossrunner/test.py
@@ -31,7 +31,7 @@
class TestProgram(object):
def __init__(self, kind, name, protocol, transport, socket, workdir, command, env=None,
- extra_args=[], join_args=False, **kwargs):
+ extra_args=[], extra_args2=[], join_args=False, **kwargs):
self.kind = kind
self.name = name
self.protocol = protocol
@@ -46,6 +46,7 @@
else:
self.env = os.environ
self._extra_args = extra_args
+ self._extra_args2 = extra_args2
self._join_args = join_args
def _fix_cmd_path(self, cmd):
@@ -69,7 +70,7 @@
def build_command(self, port):
cmd = copy.copy(self._base_command)
- args = []
+ args = self._extra_args2
args.append('--protocol=' + self.protocol)
args.append('--transport=' + self.transport)
socket_args = self._socket_args(self.socket, port)
@@ -94,8 +95,12 @@
self.protocol = kwargs['protocol']
self.transport = kwargs['transport']
self.socket = kwargs['socket']
- self.server = TestProgram('server', **self._fix_workdir(merge_dict(self._config, server)))
- self.client = TestProgram('client', **self._fix_workdir(merge_dict(self._config, client)))
+ srv_dict = self._fix_workdir(merge_dict(self._config, server))
+ cli_dict = self._fix_workdir(merge_dict(self._config, client))
+ cli_dict['extra_args2'] = srv_dict.pop('remote_args', [])
+ srv_dict['extra_args2'] = cli_dict.pop('remote_args', [])
+ self.server = TestProgram('server', **srv_dict)
+ self.client = TestProgram('client', **cli_dict)
self.delay = delay
self.timeout = timeout
self._name = None