diff options
author | 2018-02-28 13:00:04 -0800 | |
---|---|---|
committer | 2018-02-28 13:00:04 -0800 | |
commit | 718c8341ca8dcad17d93dc9e20c289c48b7ece34 (patch) | |
tree | 0a1b19d4c150373b860a5c236528030c150f4494 /test/core/end2end/gen_build_yaml.py | |
parent | 0fc97adc9ee41d517ee49ec8e3a8338b793fba7e (diff) |
Retry support.
Diffstat (limited to 'test/core/end2end/gen_build_yaml.py')
-rwxr-xr-x | test/core/end2end/gen_build_yaml.py | 116 |
1 files changed, 89 insertions, 27 deletions
diff --git a/test/core/end2end/gen_build_yaml.py b/test/core/end2end/gen_build_yaml.py index e7cf97b2d0..4e20b0b334 100755 --- a/test/core/end2end/gen_build_yaml.py +++ b/test/core/end2end/gen_build_yaml.py @@ -24,15 +24,24 @@ import hashlib FixtureOptions = collections.namedtuple( 'FixtureOptions', - 'fullstack includes_proxy dns_resolver name_resolution secure platforms ci_mac tracing exclude_configs exclude_iomgrs large_writes enables_compression supports_compression is_inproc is_http2 supports_proxy_auth supports_write_buffering') + 'fullstack includes_proxy dns_resolver name_resolution secure platforms ci_mac tracing exclude_configs exclude_iomgrs large_writes enables_compression supports_compression is_inproc is_http2 supports_proxy_auth supports_write_buffering client_channel') default_unsecure_fixture_options = FixtureOptions( - True, False, True, True, False, ['windows', 'linux', 'mac', 'posix'], True, False, [], [], True, False, True, False, True, False, True) -socketpair_unsecure_fixture_options = default_unsecure_fixture_options._replace(fullstack=False, dns_resolver=False) -default_secure_fixture_options = default_unsecure_fixture_options._replace(secure=True) -uds_fixture_options = default_unsecure_fixture_options._replace(dns_resolver=False, platforms=['linux', 'mac', 'posix'], exclude_iomgrs=['uv']) + True, False, True, True, False, ['windows', 'linux', 'mac', 'posix'], + True, False, [], [], True, False, True, False, True, False, True, True) +socketpair_unsecure_fixture_options = default_unsecure_fixture_options._replace( + fullstack=False, dns_resolver=False, client_channel=False) +default_secure_fixture_options = default_unsecure_fixture_options._replace( + secure=True) +uds_fixture_options = default_unsecure_fixture_options._replace( + dns_resolver=False, platforms=['linux', 'mac', 'posix'], + exclude_iomgrs=['uv']) fd_unsecure_fixture_options = default_unsecure_fixture_options._replace( - dns_resolver=False, fullstack=False, platforms=['linux', 'mac', 'posix'], exclude_iomgrs=['uv']) -inproc_fixture_options = default_unsecure_fixture_options._replace(dns_resolver=False, fullstack=False, name_resolution=False, supports_compression=False, is_inproc=True, is_http2=False, supports_write_buffering=False) + dns_resolver=False, fullstack=False, platforms=['linux', 'mac', 'posix'], + exclude_iomgrs=['uv'], client_channel=False) +inproc_fixture_options = default_unsecure_fixture_options._replace( + dns_resolver=False, fullstack=False, name_resolution=False, + supports_compression=False, is_inproc=True, is_http2=False, + supports_write_buffering=False, client_channel=False) # maps fixture name to whether it requires the security library END2END_FIXTURES = { @@ -68,9 +77,12 @@ END2END_FIXTURES = { TestOptions = collections.namedtuple( 'TestOptions', - 'needs_fullstack needs_dns needs_names proxyable secure traceable cpu_cost exclude_iomgrs large_writes flaky allows_compression needs_compression exclude_inproc needs_http2 needs_proxy_auth needs_write_buffering') -default_test_options = TestOptions(False, False, False, True, False, True, 1.0, [], False, False, True, False, False, False, False, False) -connectivity_test_options = default_test_options._replace(needs_fullstack=True) + 'needs_fullstack needs_dns needs_names proxyable secure traceable cpu_cost exclude_iomgrs large_writes flaky allows_compression needs_compression exclude_inproc needs_http2 needs_proxy_auth needs_write_buffering needs_client_channel') +default_test_options = TestOptions( + False, False, False, True, False, True, 1.0, [], False, False, True, + False, False, False, False, False, False) +connectivity_test_options = default_test_options._replace( + needs_fullstack=True) LOWCPU = 0.1 @@ -80,9 +92,8 @@ END2END_TESTS = { 'bad_hostname': default_test_options._replace(needs_names=True), 'bad_ping': connectivity_test_options._replace(proxyable=False), 'binary_metadata': default_test_options._replace(cpu_cost=LOWCPU), - 'resource_quota_server': default_test_options._replace(large_writes=True, - proxyable=False, - allows_compression=False), + 'resource_quota_server': default_test_options._replace( + large_writes=True, proxyable=False, allows_compression=False), 'call_creds': default_test_options._replace(secure=True), 'cancel_after_accept': default_test_options._replace(cpu_cost=LOWCPU), 'cancel_after_client_done': default_test_options._replace(cpu_cost=LOWCPU), @@ -91,18 +102,21 @@ END2END_TESTS = { 'cancel_before_invoke': default_test_options._replace(cpu_cost=LOWCPU), 'cancel_in_a_vacuum': default_test_options._replace(cpu_cost=LOWCPU), 'cancel_with_status': default_test_options._replace(cpu_cost=LOWCPU), - 'compressed_payload': default_test_options._replace(proxyable=False,needs_compression=True), + 'compressed_payload': default_test_options._replace(proxyable=False, + needs_compression=True), 'connectivity': connectivity_test_options._replace(needs_names=True, proxyable=False, cpu_cost=LOWCPU, exclude_iomgrs=['uv']), - 'default_host': default_test_options._replace(needs_fullstack=True, - needs_dns=True,needs_names=True), - 'disappearing_server': connectivity_test_options._replace(flaky=True,needs_names=True), + 'default_host': default_test_options._replace( + needs_fullstack=True, needs_dns=True, needs_names=True), + 'disappearing_server': connectivity_test_options._replace(flaky=True, + needs_names=True), 'empty_batch': default_test_options._replace(cpu_cost=LOWCPU), 'filter_causes_close': default_test_options._replace(cpu_cost=LOWCPU), 'filter_call_init_fails': default_test_options, 'filter_latency': default_test_options._replace(cpu_cost=LOWCPU), 'filter_status_code': default_test_options._replace(cpu_cost=LOWCPU), - 'graceful_server_shutdown': default_test_options._replace(cpu_cost=LOWCPU,exclude_inproc=True), + 'graceful_server_shutdown': default_test_options._replace( + cpu_cost=LOWCPU, exclude_inproc=True), 'hpack_size': default_test_options._replace(proxyable=False, traceable=False, cpu_cost=LOWCPU), @@ -127,30 +141,75 @@ END2END_TESTS = { 'payload': default_test_options, 'load_reporting_hook': default_test_options, 'ping_pong_streaming': default_test_options._replace(cpu_cost=LOWCPU), - 'ping': connectivity_test_options._replace(proxyable=False, cpu_cost=LOWCPU), + 'ping': connectivity_test_options._replace(proxyable=False, + cpu_cost=LOWCPU), 'proxy_auth': default_test_options._replace(needs_proxy_auth=True), 'registered_call': default_test_options, 'request_with_flags': default_test_options._replace( proxyable=False, cpu_cost=LOWCPU), 'request_with_payload': default_test_options._replace(cpu_cost=LOWCPU), + # TODO(roth): Remove proxyable=False for all retry tests once we + # have a way for the proxy to propagate the fact that trailing + # metadata is available when initial metadata is returned. + # See https://github.com/grpc/grpc/issues/14467 for context. + 'retry': default_test_options._replace(cpu_cost=LOWCPU, + needs_client_channel=True, + proxyable=False), + 'retry_cancellation': default_test_options._replace( + cpu_cost=LOWCPU, needs_client_channel=True, proxyable=False), + 'retry_disabled': default_test_options._replace(cpu_cost=LOWCPU, + needs_client_channel=True, + proxyable=False), + 'retry_exceeds_buffer_size_in_initial_batch': default_test_options._replace( + cpu_cost=LOWCPU, needs_client_channel=True, proxyable=False), + 'retry_exceeds_buffer_size_in_subsequent_batch': + default_test_options._replace(cpu_cost=LOWCPU, + needs_client_channel=True, + proxyable=False), + 'retry_non_retriable_status': default_test_options._replace( + cpu_cost=LOWCPU, needs_client_channel=True, proxyable=False), + 'retry_recv_initial_metadata': default_test_options._replace( + cpu_cost=LOWCPU, needs_client_channel=True, proxyable=False), + 'retry_recv_message': default_test_options._replace( + cpu_cost=LOWCPU, needs_client_channel=True, proxyable=False), + 'retry_server_pushback_delay': default_test_options._replace( + cpu_cost=LOWCPU, needs_client_channel=True, proxyable=False), + 'retry_server_pushback_disabled': default_test_options._replace( + cpu_cost=LOWCPU, needs_client_channel=True, proxyable=False), + 'retry_streaming': default_test_options._replace(cpu_cost=LOWCPU, + needs_client_channel=True, + proxyable=False), + 'retry_streaming_after_commit': default_test_options._replace( + cpu_cost=LOWCPU, needs_client_channel=True, proxyable=False), + 'retry_streaming_succeeds_before_replay_finished': + default_test_options._replace(cpu_cost=LOWCPU, + needs_client_channel=True, + proxyable=False), + 'retry_throttled': default_test_options._replace(cpu_cost=LOWCPU, + needs_client_channel=True, + proxyable=False), + 'retry_too_many_attempts': default_test_options._replace( + cpu_cost=LOWCPU, needs_client_channel=True, proxyable=False), 'server_finishes_request': default_test_options._replace(cpu_cost=LOWCPU), 'shutdown_finishes_calls': default_test_options._replace(cpu_cost=LOWCPU), 'shutdown_finishes_tags': default_test_options._replace(cpu_cost=LOWCPU), 'simple_cacheable_request': default_test_options._replace(cpu_cost=LOWCPU), - 'stream_compression_compressed_payload': default_test_options._replace(proxyable=False, - exclude_inproc=True), - 'stream_compression_payload': default_test_options._replace(exclude_inproc=True), - 'stream_compression_ping_pong_streaming': default_test_options._replace(exclude_inproc=True), + 'stream_compression_compressed_payload': default_test_options._replace( + proxyable=False, exclude_inproc=True), + 'stream_compression_payload': default_test_options._replace( + exclude_inproc=True), + 'stream_compression_ping_pong_streaming': default_test_options._replace( + exclude_inproc=True), 'simple_delayed_request': connectivity_test_options, 'simple_metadata': default_test_options, 'simple_request': default_test_options, 'streaming_error_response': default_test_options._replace(cpu_cost=LOWCPU), 'trailing_metadata': default_test_options, 'workaround_cronet_compression': default_test_options, - 'write_buffering': default_test_options._replace(cpu_cost=LOWCPU, - needs_write_buffering=True), - 'write_buffering_at_end': default_test_options._replace(cpu_cost=LOWCPU, - needs_write_buffering=True), + 'write_buffering': default_test_options._replace( + cpu_cost=LOWCPU, needs_write_buffering=True), + 'write_buffering_at_end': default_test_options._replace( + cpu_cost=LOWCPU, needs_write_buffering=True), } @@ -191,6 +250,9 @@ def compatible(f, t): if END2END_TESTS[t].needs_write_buffering: if not END2END_FIXTURES[f].supports_write_buffering: return False + if END2END_TESTS[t].needs_client_channel: + if not END2END_FIXTURES[f].client_channel: + return False return True |