|
|
|
@ -468,6 +468,8 @@ _HTTP2_TEST_CASES = ['tls', 'framing'] |
|
|
|
|
_HTTP2_BADSERVER_TEST_CASES = ['rst_after_header', 'rst_after_data', 'rst_during_data', |
|
|
|
|
'goaway', 'ping', 'max_streams'] |
|
|
|
|
|
|
|
|
|
_LANGUAGES_FOR_HTTP2_BADSERVER_TESTS = ['java', 'python'] |
|
|
|
|
|
|
|
|
|
DOCKER_WORKDIR_ROOT = '/var/local/git/grpc' |
|
|
|
|
|
|
|
|
|
def docker_run_cmdline(cmdline, image, docker_args=[], cwd=None, environ=None): |
|
|
|
@ -830,8 +832,13 @@ if not args.use_docker and servers: |
|
|
|
|
|
|
|
|
|
languages = set(_LANGUAGES[l] |
|
|
|
|
for l in itertools.chain.from_iterable( |
|
|
|
|
_LANGUAGES.iterkeys() if x == 'all' else [x] |
|
|
|
|
for x in args.language)) |
|
|
|
|
_LANGUAGES.iterkeys() if x == 'all' else [x] |
|
|
|
|
for x in args.language)) |
|
|
|
|
|
|
|
|
|
languages_http2_badserver_interop = set() |
|
|
|
|
if args.http2_badserver_interop: |
|
|
|
|
languages_http2_badserver_interop = set( |
|
|
|
|
_LANGUAGES[l] for l in _LANGUAGES_FOR_HTTP2_BADSERVER_TESTS) |
|
|
|
|
|
|
|
|
|
http2Interop = Http2Client() if args.http2_interop else None |
|
|
|
|
http2InteropServer = Http2Server() if args.http2_badserver_interop else None |
|
|
|
@ -839,8 +846,10 @@ http2InteropServer = Http2Server() if args.http2_badserver_interop else None |
|
|
|
|
docker_images={} |
|
|
|
|
if args.use_docker: |
|
|
|
|
# languages for which to build docker images |
|
|
|
|
languages_to_build = set(_LANGUAGES[k] for k in set([str(l) for l in languages] + |
|
|
|
|
[s for s in servers])) |
|
|
|
|
languages_to_build = set( |
|
|
|
|
_LANGUAGES[k] for k in set([str(l) for l in languages] + [s for s in servers])) |
|
|
|
|
languages_to_build = languages_to_build | languages_http2_badserver_interop |
|
|
|
|
|
|
|
|
|
if args.http2_interop: |
|
|
|
|
languages_to_build.add(http2Interop) |
|
|
|
|
|
|
|
|
@ -934,19 +943,18 @@ try: |
|
|
|
|
skip_server = [] # test cases unimplemented by server |
|
|
|
|
if server_language: |
|
|
|
|
skip_server = server_language.unimplemented_test_cases_server() |
|
|
|
|
if not args.http2_badserver_interop: |
|
|
|
|
for language in languages: |
|
|
|
|
for test_case in _TEST_CASES: |
|
|
|
|
if not test_case in language.unimplemented_test_cases(): |
|
|
|
|
if not test_case in skip_server: |
|
|
|
|
test_job = cloud_to_cloud_jobspec(language, |
|
|
|
|
test_case, |
|
|
|
|
server_name, |
|
|
|
|
server_host, |
|
|
|
|
server_port, |
|
|
|
|
docker_image=docker_images.get(str(language)), |
|
|
|
|
insecure=args.insecure) |
|
|
|
|
jobs.append(test_job) |
|
|
|
|
for language in languages: |
|
|
|
|
for test_case in _TEST_CASES: |
|
|
|
|
if not test_case in language.unimplemented_test_cases(): |
|
|
|
|
if not test_case in skip_server: |
|
|
|
|
test_job = cloud_to_cloud_jobspec(language, |
|
|
|
|
test_case, |
|
|
|
|
server_name, |
|
|
|
|
server_host, |
|
|
|
|
server_port, |
|
|
|
|
docker_image=docker_images.get(str(language)), |
|
|
|
|
insecure=args.insecure) |
|
|
|
|
jobs.append(test_job) |
|
|
|
|
|
|
|
|
|
if args.http2_interop: |
|
|
|
|
for test_case in _HTTP2_TEST_CASES: |
|
|
|
@ -963,7 +971,7 @@ try: |
|
|
|
|
jobs.append(test_job) |
|
|
|
|
|
|
|
|
|
if args.http2_badserver_interop: |
|
|
|
|
for language in languages: |
|
|
|
|
for language in languages_http2_badserver_interop: |
|
|
|
|
for test_case in _HTTP2_BADSERVER_TEST_CASES: |
|
|
|
|
test_job = cloud_to_cloud_jobspec(language, |
|
|
|
|
test_case, |
|
|
|
@ -992,9 +1000,13 @@ try: |
|
|
|
|
if "http2" in name: |
|
|
|
|
job[0].http2results = aggregate_http2_results(job[0].message) |
|
|
|
|
|
|
|
|
|
http2_badserver_test_cases = ( |
|
|
|
|
_HTTP2_BADSERVER_TEST_CASES if args.http2_badserver_interop else []) |
|
|
|
|
|
|
|
|
|
report_utils.render_interop_html_report( |
|
|
|
|
set([str(l) for l in languages]), servers, _TEST_CASES, _AUTH_TEST_CASES, |
|
|
|
|
_HTTP2_TEST_CASES, resultset, num_failures, |
|
|
|
|
_HTTP2_TEST_CASES, http2_badserver_test_cases, |
|
|
|
|
_LANGUAGES_FOR_HTTP2_BADSERVER_TESTS, resultset, num_failures, |
|
|
|
|
args.cloud_to_prod_auth or args.cloud_to_prod, args.prod_servers, |
|
|
|
|
args.http2_interop) |
|
|
|
|
|
|
|
|
|