Skip to content

Commit bce2642

Browse files
committed
MCS
1 parent 61fe9b4 commit bce2642

1 file changed

Lines changed: 50 additions & 2 deletions

File tree

tools/run_tests/run_interop_tests.py

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -784,6 +784,8 @@ def __str__(self):
784784

785785
_LANGUAGES_FOR_ALTS_TEST_CASES = ["java", "go", "c++", "python"]
786786

787+
_LANGUAGES_FOR_MCS_TEST_CASE = ["java", "go", "c++", "python"]
788+
787789
_SERVERS_FOR_ALTS_TEST_CASES = ["java", "go", "c++", "python"]
788790

789791
_TRANSPORT_SECURITY_OPTIONS = ["tls", "alts", "insecure"]
@@ -1072,6 +1074,10 @@ def cloud_to_cloud_jobspec(
10721074
interop_only_options += [
10731075
'--service_config_json=\'{"loadBalancingConfig":[{"test_backend_metrics_load_balancer":{}}]}\''
10741076
]
1077+
else if test_case == 'mcs':
1078+
interop_only_options += [
1079+
'--service_config_json=\'{"loadBalancingConfig:[{"connection_scaling":{"max_connections_per_subchannel": 2}}]"}\''
1080+
]
10751081

10761082
common_options = [
10771083
"--test_case=%s" % client_test_case,
@@ -1133,7 +1139,7 @@ def cloud_to_cloud_jobspec(
11331139

11341140

11351141
def server_jobspec(
1136-
language, docker_image, transport_security="tls", manual_cmd_log=None
1142+
language, docker_image, transport_security="tls", manual_cmd_log=None, use_mcs=False
11371143
):
11381144
"""Create jobspec for running a server"""
11391145
container_name = dockerjob.random_name(
@@ -1145,13 +1151,15 @@ def server_jobspec(
11451151
elif transport_security == "alts":
11461152
server_cmd += ["--use_tls=false", "--use_alts=true"]
11471153
elif transport_security == "insecure":
1148-
server_cmd += ["--use_tls=false"]
1154+
server_cmd += ["--use_tls=false"]
11491155
else:
11501156
print(
11511157
"Invalid transport security option %s in server_jobspec."
11521158
% transport_security
11531159
)
11541160
sys.exit(1)
1161+
if use_mcs:
1162+
server_cmd += ["--use_mcs=true"]
11551163
cmdline = bash_cmdline(language.server_cmd(server_cmd))
11561164
environ = language.global_env()
11571165
docker_args = ["--name=%s" % container_name]
@@ -1431,6 +1439,14 @@ def aggregate_http2_results(stdout):
14311439
nargs="?",
14321440
help="Upload test results to a specified BQ table.",
14331441
)
1442+
argp.add_argument(
1443+
"--mcs",
1444+
default=False,
1445+
action="store_const",
1446+
const=True,
1447+
help="Enable MCS testing",
1448+
)
1449+
14341450
args = argp.parse_args()
14351451

14361452
servers = set(
@@ -1799,6 +1815,38 @@ def aggregate_http2_results(stdout):
17991815
)
18001816
jobs.append(test_job)
18011817

1818+
if args.mcs:
1819+
languages_for_mcs = set(
1820+
_LANGUAGES[l]
1821+
for l in _LANGUAGES_WITH_HTTP2_CLIENTS_FOR_HTTP2_SERVER_TEST_CASES
1822+
if "all" in args.language or l in args.language
1823+
)
1824+
if len(languages_for_mcs) > 0:
1825+
mcs_server_jobspec = server_jobspec(
1826+
'java',
1827+
docker_images.get('java'),
1828+
args.transport_security,
1829+
manual_cmd_log=server_manual_cmd_log,
1830+
use_mcs=True,
1831+
)
1832+
mcs_server_job = dockerjob.DockerJob(mcs_server_jobspec)
1833+
jobs.append(mcs_server_job)
1834+
1835+
for language in languages_for_mcs:
1836+
test_job = cloud_to_cloud_jobspec(
1837+
language,
1838+
'mcs',
1839+
'java',
1840+
'localhost',
1841+
mcs_server_job.mapped_port(_DEFAULT_SERVER_PORT),
1842+
docker_image=docker_images.get(str(language)),
1843+
transport_security=args.transport_security,
1844+
manual_cmd_log=client_manual_cmd_log,
1845+
)
1846+
jobs.append(test_job)
1847+
else:
1848+
print('MCS tests will be skipped since noen of the supported client languages for MCS testcases was specified')
1849+
18021850
if not jobs:
18031851
print("No jobs to run.")
18041852
for image in six.itervalues(docker_images):

0 commit comments

Comments
 (0)