diff options
Diffstat (limited to 'tools/run_tests/run_interop_tests.py')
-rwxr-xr-x | tools/run_tests/run_interop_tests.py | 70 |
1 files changed, 41 insertions, 29 deletions
diff --git a/tools/run_tests/run_interop_tests.py b/tools/run_tests/run_interop_tests.py index 53df3347a0..b47dc1e8f2 100755 --- a/tools/run_tests/run_interop_tests.py +++ b/tools/run_tests/run_interop_tests.py @@ -468,6 +468,9 @@ _HTTP2_TEST_CASES = ['tls', 'framing'] _HTTP2_BADSERVER_TEST_CASES = ['rst_after_header', 'rst_after_data', 'rst_during_data', 'goaway', 'ping', 'max_streams'] +# TODO: Add python once the tests are fixed. +_LANGUAGES_FOR_HTTP2_BADSERVER_TESTS = ['java'] + DOCKER_WORKDIR_ROOT = '/var/local/git/grpc' def docker_run_cmdline(cmdline, image, docker_args=[], cwd=None, environ=None): @@ -830,8 +833,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 +847,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) @@ -885,7 +895,6 @@ try: spec = server_jobspec(http2InteropServer, docker_images.get(lang)) job = dockerjob.DockerJob(spec) server_jobs[lang] = job - server_addresses[lang] = ('localhost', _DEFAULT_SERVER_PORT) jobs = [] if args.cloud_to_prod: @@ -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: @@ -962,16 +970,16 @@ try: insecure=args.insecure) jobs.append(test_job) - if args.http2_badserver_interop: - for language in languages: - for test_case in _HTTP2_BADSERVER_TEST_CASES: - test_job = cloud_to_cloud_jobspec(language, - test_case, - server_name, - server_host, - server_port, - docker_image=docker_images.get(str(language))) - jobs.append(test_job) + if args.http2_badserver_interop: + for language in languages_http2_badserver_interop: + for test_case in _HTTP2_BADSERVER_TEST_CASES: + test_job = cloud_to_cloud_jobspec(language, + test_case, + str(http2InteropServer), + 'localhost', + _DEFAULT_SERVER_PORT, + docker_image=docker_images.get(str(language))) + jobs.append(test_job) if not jobs: print('No jobs to run.') @@ -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) |