diff options
105 files changed, 9064 insertions, 1694 deletions
@@ -1077,6 +1077,35 @@ chttp2_fullstack_with_poll_server_finishes_request_test: $(BINDIR)/$(CONFIG)/cht chttp2_fullstack_with_poll_simple_delayed_request_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_delayed_request_test chttp2_fullstack_with_poll_simple_request_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_test chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test +chttp2_fullstack_with_proxy_bad_hostname_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_bad_hostname_test +chttp2_fullstack_with_proxy_cancel_after_accept_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_test +chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test +chttp2_fullstack_with_proxy_cancel_after_invoke_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_invoke_test +chttp2_fullstack_with_proxy_cancel_before_invoke_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_before_invoke_test +chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test +chttp2_fullstack_with_proxy_census_simple_request_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_census_simple_request_test +chttp2_fullstack_with_proxy_default_host_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_default_host_test +chttp2_fullstack_with_proxy_disappearing_server_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_disappearing_server_test +chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test +chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test +chttp2_fullstack_with_proxy_empty_batch_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_empty_batch_test +chttp2_fullstack_with_proxy_graceful_server_shutdown_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_graceful_server_shutdown_test +chttp2_fullstack_with_proxy_invoke_large_request_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_invoke_large_request_test +chttp2_fullstack_with_proxy_max_message_length_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_max_message_length_test +chttp2_fullstack_with_proxy_no_op_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_no_op_test +chttp2_fullstack_with_proxy_ping_pong_streaming_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_ping_pong_streaming_test +chttp2_fullstack_with_proxy_registered_call_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_registered_call_test +chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test +chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test +chttp2_fullstack_with_proxy_request_response_with_payload_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_test +chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test +chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test +chttp2_fullstack_with_proxy_request_with_large_metadata_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_large_metadata_test +chttp2_fullstack_with_proxy_request_with_payload_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_payload_test +chttp2_fullstack_with_proxy_server_finishes_request_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_server_finishes_request_test +chttp2_fullstack_with_proxy_simple_delayed_request_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_delayed_request_test +chttp2_fullstack_with_proxy_simple_request_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_test +chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test chttp2_simple_ssl_fullstack_bad_hostname_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_bad_hostname_test chttp2_simple_ssl_fullstack_cancel_after_accept_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_after_accept_test chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test @@ -1143,6 +1172,35 @@ chttp2_simple_ssl_fullstack_with_poll_server_finishes_request_test: $(BINDIR)/$( chttp2_simple_ssl_fullstack_with_poll_simple_delayed_request_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_simple_delayed_request_test chttp2_simple_ssl_fullstack_with_poll_simple_request_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_simple_request_test chttp2_simple_ssl_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test +chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test +chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test +chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test +chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test +chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test +chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test +chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test +chttp2_simple_ssl_fullstack_with_proxy_default_host_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_default_host_test +chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test +chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test +chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test +chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test +chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test +chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test +chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test +chttp2_simple_ssl_fullstack_with_proxy_no_op_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_no_op_test +chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test +chttp2_simple_ssl_fullstack_with_proxy_registered_call_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_registered_call_test +chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test +chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test +chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test +chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test +chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test +chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test +chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test +chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test +chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test +chttp2_simple_ssl_fullstack_with_proxy_simple_request_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_request_test +chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test: $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test @@ -1421,6 +1479,34 @@ chttp2_fullstack_with_poll_server_finishes_request_unsecure_test: $(BINDIR)/$(CO chttp2_fullstack_with_poll_simple_delayed_request_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_delayed_request_unsecure_test chttp2_fullstack_with_poll_simple_request_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_unsecure_test chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_unsecure_test +chttp2_fullstack_with_proxy_bad_hostname_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_bad_hostname_unsecure_test +chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test +chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test +chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test +chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test +chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test +chttp2_fullstack_with_proxy_census_simple_request_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_census_simple_request_unsecure_test +chttp2_fullstack_with_proxy_default_host_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_default_host_unsecure_test +chttp2_fullstack_with_proxy_disappearing_server_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_disappearing_server_unsecure_test +chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test +chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test +chttp2_fullstack_with_proxy_empty_batch_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_empty_batch_unsecure_test +chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test +chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test +chttp2_fullstack_with_proxy_max_message_length_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_max_message_length_unsecure_test +chttp2_fullstack_with_proxy_no_op_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_no_op_unsecure_test +chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test +chttp2_fullstack_with_proxy_registered_call_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_registered_call_unsecure_test +chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test +chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test +chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test +chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test +chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test +chttp2_fullstack_with_proxy_request_with_payload_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_payload_unsecure_test +chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test +chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test +chttp2_fullstack_with_proxy_simple_request_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_unsecure_test +chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test chttp2_socket_pair_bad_hostname_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_socket_pair_bad_hostname_unsecure_test chttp2_socket_pair_cancel_after_accept_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_unsecure_test chttp2_socket_pair_cancel_after_accept_and_writes_closed_unsecure_test: $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_and_writes_closed_unsecure_test @@ -1590,7 +1676,7 @@ plugins: $(PROTOC_PLUGINS) privatelibs: privatelibs_c privatelibs_cxx -privatelibs_c: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fake_security.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_compression.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_uds_posix.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_uds_posix_with_poll.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_poll.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_poll.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_socket_pair.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_socket_pair_with_grpc_trace.a $(LIBDIR)/$(CONFIG)/libend2end_test_bad_hostname.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_and_writes_closed.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_invoke.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_before_invoke.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_in_a_vacuum.a $(LIBDIR)/$(CONFIG)/libend2end_test_census_simple_request.a $(LIBDIR)/$(CONFIG)/libend2end_test_channel_connectivity.a $(LIBDIR)/$(CONFIG)/libend2end_test_default_host.a $(LIBDIR)/$(CONFIG)/libend2end_test_disappearing_server.a $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_tags.a $(LIBDIR)/$(CONFIG)/libend2end_test_empty_batch.a $(LIBDIR)/$(CONFIG)/libend2end_test_graceful_server_shutdown.a $(LIBDIR)/$(CONFIG)/libend2end_test_invoke_large_request.a $(LIBDIR)/$(CONFIG)/libend2end_test_max_concurrent_streams.a $(LIBDIR)/$(CONFIG)/libend2end_test_max_message_length.a $(LIBDIR)/$(CONFIG)/libend2end_test_no_op.a $(LIBDIR)/$(CONFIG)/libend2end_test_ping_pong_streaming.a $(LIBDIR)/$(CONFIG)/libend2end_test_registered_call.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_binary_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload_and_call_creds.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_trailing_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_compressed_payload.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_flags.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_large_metadata.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_payload.a $(LIBDIR)/$(CONFIG)/libend2end_test_server_finishes_request.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_delayed_request.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request_with_high_initial_sequence_number.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a +privatelibs_c: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fake_security.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_compression.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_uds_posix.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_uds_posix_with_poll.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_poll.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_poll.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_socket_pair.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_socket_pair_with_grpc_trace.a $(LIBDIR)/$(CONFIG)/libend2end_test_bad_hostname.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_and_writes_closed.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_invoke.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_before_invoke.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_in_a_vacuum.a $(LIBDIR)/$(CONFIG)/libend2end_test_census_simple_request.a $(LIBDIR)/$(CONFIG)/libend2end_test_channel_connectivity.a $(LIBDIR)/$(CONFIG)/libend2end_test_default_host.a $(LIBDIR)/$(CONFIG)/libend2end_test_disappearing_server.a $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_tags.a $(LIBDIR)/$(CONFIG)/libend2end_test_empty_batch.a $(LIBDIR)/$(CONFIG)/libend2end_test_graceful_server_shutdown.a $(LIBDIR)/$(CONFIG)/libend2end_test_invoke_large_request.a $(LIBDIR)/$(CONFIG)/libend2end_test_max_concurrent_streams.a $(LIBDIR)/$(CONFIG)/libend2end_test_max_message_length.a $(LIBDIR)/$(CONFIG)/libend2end_test_no_op.a $(LIBDIR)/$(CONFIG)/libend2end_test_ping_pong_streaming.a $(LIBDIR)/$(CONFIG)/libend2end_test_registered_call.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_binary_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload_and_call_creds.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_trailing_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_compressed_payload.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_flags.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_large_metadata.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_payload.a $(LIBDIR)/$(CONFIG)/libend2end_test_server_finishes_request.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_delayed_request.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request_with_high_initial_sequence_number.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a pc_gpr: $(LIBDIR)/$(CONFIG)/pkgconfig/gpr.pc pc_c: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc.pc @@ -1605,7 +1691,7 @@ privatelibs_cxx: $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG buildtests: buildtests_c buildtests_cxx -buildtests_c: privatelibs_c $(BINDIR)/$(CONFIG)/alarm_heap_test $(BINDIR)/$(CONFIG)/alarm_list_test $(BINDIR)/$(CONFIG)/alarm_test $(BINDIR)/$(CONFIG)/alpn_test $(BINDIR)/$(CONFIG)/bin_encoder_test $(BINDIR)/$(CONFIG)/chttp2_status_conversion_test $(BINDIR)/$(CONFIG)/chttp2_stream_encoder_test $(BINDIR)/$(CONFIG)/chttp2_stream_map_test $(BINDIR)/$(CONFIG)/dualstack_socket_test $(BINDIR)/$(CONFIG)/fd_conservation_posix_test $(BINDIR)/$(CONFIG)/fd_posix_test $(BINDIR)/$(CONFIG)/fling_client $(BINDIR)/$(CONFIG)/fling_server $(BINDIR)/$(CONFIG)/fling_stream_test $(BINDIR)/$(CONFIG)/fling_test $(BINDIR)/$(CONFIG)/gpr_cancellable_test $(BINDIR)/$(CONFIG)/gpr_cmdline_test $(BINDIR)/$(CONFIG)/gpr_env_test $(BINDIR)/$(CONFIG)/gpr_file_test $(BINDIR)/$(CONFIG)/gpr_histogram_test $(BINDIR)/$(CONFIG)/gpr_host_port_test $(BINDIR)/$(CONFIG)/gpr_log_test $(BINDIR)/$(CONFIG)/gpr_slice_buffer_test $(BINDIR)/$(CONFIG)/gpr_slice_test $(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test $(BINDIR)/$(CONFIG)/gpr_string_test $(BINDIR)/$(CONFIG)/gpr_sync_test $(BINDIR)/$(CONFIG)/gpr_thd_test $(BINDIR)/$(CONFIG)/gpr_time_test $(BINDIR)/$(CONFIG)/gpr_tls_test $(BINDIR)/$(CONFIG)/gpr_useful_test $(BINDIR)/$(CONFIG)/grpc_auth_context_test $(BINDIR)/$(CONFIG)/grpc_base64_test $(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test $(BINDIR)/$(CONFIG)/grpc_channel_stack_test $(BINDIR)/$(CONFIG)/grpc_completion_queue_test $(BINDIR)/$(CONFIG)/grpc_credentials_test $(BINDIR)/$(CONFIG)/grpc_json_token_test $(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test $(BINDIR)/$(CONFIG)/grpc_security_connector_test $(BINDIR)/$(CONFIG)/grpc_stream_op_test $(BINDIR)/$(CONFIG)/hpack_parser_test $(BINDIR)/$(CONFIG)/hpack_table_test $(BINDIR)/$(CONFIG)/httpcli_format_request_test $(BINDIR)/$(CONFIG)/httpcli_parser_test $(BINDIR)/$(CONFIG)/httpcli_test $(BINDIR)/$(CONFIG)/json_rewrite $(BINDIR)/$(CONFIG)/json_rewrite_test $(BINDIR)/$(CONFIG)/json_test $(BINDIR)/$(CONFIG)/lame_client_test $(BINDIR)/$(CONFIG)/message_compress_test $(BINDIR)/$(CONFIG)/multi_init_test $(BINDIR)/$(CONFIG)/multiple_server_queues_test $(BINDIR)/$(CONFIG)/murmur_hash_test $(BINDIR)/$(CONFIG)/no_server_test $(BINDIR)/$(CONFIG)/resolve_address_test $(BINDIR)/$(CONFIG)/secure_endpoint_test $(BINDIR)/$(CONFIG)/sockaddr_utils_test $(BINDIR)/$(CONFIG)/tcp_client_posix_test $(BINDIR)/$(CONFIG)/tcp_posix_test $(BINDIR)/$(CONFIG)/tcp_server_posix_test $(BINDIR)/$(CONFIG)/time_averaged_stats_test $(BINDIR)/$(CONFIG)/timeout_encoding_test $(BINDIR)/$(CONFIG)/timers_test $(BINDIR)/$(CONFIG)/transport_metadata_test $(BINDIR)/$(CONFIG)/transport_security_test $(BINDIR)/$(CONFIG)/uri_parser_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_default_host_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_default_host_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_default_host_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_default_host_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_default_host_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_no_op_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_default_host_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_no_op_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_default_host_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_no_op_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_no_op_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_no_op_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_no_op_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_channel_connectivity_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_default_host_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_channel_connectivity_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_default_host_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_channel_connectivity_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_channel_connectivity_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_channel_connectivity_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_default_host_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test $(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test +buildtests_c: privatelibs_c $(BINDIR)/$(CONFIG)/alarm_heap_test $(BINDIR)/$(CONFIG)/alarm_list_test $(BINDIR)/$(CONFIG)/alarm_test $(BINDIR)/$(CONFIG)/alpn_test $(BINDIR)/$(CONFIG)/bin_encoder_test $(BINDIR)/$(CONFIG)/chttp2_status_conversion_test $(BINDIR)/$(CONFIG)/chttp2_stream_encoder_test $(BINDIR)/$(CONFIG)/chttp2_stream_map_test $(BINDIR)/$(CONFIG)/dualstack_socket_test $(BINDIR)/$(CONFIG)/fd_conservation_posix_test $(BINDIR)/$(CONFIG)/fd_posix_test $(BINDIR)/$(CONFIG)/fling_client $(BINDIR)/$(CONFIG)/fling_server $(BINDIR)/$(CONFIG)/fling_stream_test $(BINDIR)/$(CONFIG)/fling_test $(BINDIR)/$(CONFIG)/gpr_cancellable_test $(BINDIR)/$(CONFIG)/gpr_cmdline_test $(BINDIR)/$(CONFIG)/gpr_env_test $(BINDIR)/$(CONFIG)/gpr_file_test $(BINDIR)/$(CONFIG)/gpr_histogram_test $(BINDIR)/$(CONFIG)/gpr_host_port_test $(BINDIR)/$(CONFIG)/gpr_log_test $(BINDIR)/$(CONFIG)/gpr_slice_buffer_test $(BINDIR)/$(CONFIG)/gpr_slice_test $(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test $(BINDIR)/$(CONFIG)/gpr_string_test $(BINDIR)/$(CONFIG)/gpr_sync_test $(BINDIR)/$(CONFIG)/gpr_thd_test $(BINDIR)/$(CONFIG)/gpr_time_test $(BINDIR)/$(CONFIG)/gpr_tls_test $(BINDIR)/$(CONFIG)/gpr_useful_test $(BINDIR)/$(CONFIG)/grpc_auth_context_test $(BINDIR)/$(CONFIG)/grpc_base64_test $(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test $(BINDIR)/$(CONFIG)/grpc_channel_stack_test $(BINDIR)/$(CONFIG)/grpc_completion_queue_test $(BINDIR)/$(CONFIG)/grpc_credentials_test $(BINDIR)/$(CONFIG)/grpc_json_token_test $(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test $(BINDIR)/$(CONFIG)/grpc_security_connector_test $(BINDIR)/$(CONFIG)/grpc_stream_op_test $(BINDIR)/$(CONFIG)/hpack_parser_test $(BINDIR)/$(CONFIG)/hpack_table_test $(BINDIR)/$(CONFIG)/httpcli_format_request_test $(BINDIR)/$(CONFIG)/httpcli_parser_test $(BINDIR)/$(CONFIG)/httpcli_test $(BINDIR)/$(CONFIG)/json_rewrite $(BINDIR)/$(CONFIG)/json_rewrite_test $(BINDIR)/$(CONFIG)/json_test $(BINDIR)/$(CONFIG)/lame_client_test $(BINDIR)/$(CONFIG)/message_compress_test $(BINDIR)/$(CONFIG)/multi_init_test $(BINDIR)/$(CONFIG)/multiple_server_queues_test $(BINDIR)/$(CONFIG)/murmur_hash_test $(BINDIR)/$(CONFIG)/no_server_test $(BINDIR)/$(CONFIG)/resolve_address_test $(BINDIR)/$(CONFIG)/secure_endpoint_test $(BINDIR)/$(CONFIG)/sockaddr_utils_test $(BINDIR)/$(CONFIG)/tcp_client_posix_test $(BINDIR)/$(CONFIG)/tcp_posix_test $(BINDIR)/$(CONFIG)/tcp_server_posix_test $(BINDIR)/$(CONFIG)/time_averaged_stats_test $(BINDIR)/$(CONFIG)/timeout_encoding_test $(BINDIR)/$(CONFIG)/timers_test $(BINDIR)/$(CONFIG)/transport_metadata_test $(BINDIR)/$(CONFIG)/transport_security_test $(BINDIR)/$(CONFIG)/uri_parser_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_default_host_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_default_host_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_default_host_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_default_host_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_default_host_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_default_host_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_no_op_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_default_host_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_no_op_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_default_host_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_no_op_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_default_host_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_no_op_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_no_op_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_no_op_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_no_op_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_channel_connectivity_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_default_host_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_channel_connectivity_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_default_host_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_channel_connectivity_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_channel_connectivity_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_channel_connectivity_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_default_host_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_default_host_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test $(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test buildtests_cxx: privatelibs_cxx $(BINDIR)/$(CONFIG)/async_end2end_test $(BINDIR)/$(CONFIG)/async_streaming_ping_pong_test $(BINDIR)/$(CONFIG)/async_unary_ping_pong_test $(BINDIR)/$(CONFIG)/auth_property_iterator_test $(BINDIR)/$(CONFIG)/channel_arguments_test $(BINDIR)/$(CONFIG)/cli_call_test $(BINDIR)/$(CONFIG)/client_crash_test $(BINDIR)/$(CONFIG)/client_crash_test_server $(BINDIR)/$(CONFIG)/credentials_test $(BINDIR)/$(CONFIG)/cxx_byte_buffer_test $(BINDIR)/$(CONFIG)/cxx_slice_test $(BINDIR)/$(CONFIG)/cxx_time_test $(BINDIR)/$(CONFIG)/dynamic_thread_pool_test $(BINDIR)/$(CONFIG)/end2end_test $(BINDIR)/$(CONFIG)/fixed_size_thread_pool_test $(BINDIR)/$(CONFIG)/generic_end2end_test $(BINDIR)/$(CONFIG)/grpc_cli $(BINDIR)/$(CONFIG)/interop_client $(BINDIR)/$(CONFIG)/interop_server $(BINDIR)/$(CONFIG)/interop_test $(BINDIR)/$(CONFIG)/mock_test $(BINDIR)/$(CONFIG)/qps_interarrival_test $(BINDIR)/$(CONFIG)/qps_openloop_test $(BINDIR)/$(CONFIG)/qps_test $(BINDIR)/$(CONFIG)/reconnect_interop_client $(BINDIR)/$(CONFIG)/reconnect_interop_server $(BINDIR)/$(CONFIG)/secure_auth_context_test $(BINDIR)/$(CONFIG)/server_crash_test $(BINDIR)/$(CONFIG)/server_crash_test_client $(BINDIR)/$(CONFIG)/status_test $(BINDIR)/$(CONFIG)/sync_streaming_ping_pong_test $(BINDIR)/$(CONFIG)/sync_unary_ping_pong_test $(BINDIR)/$(CONFIG)/thread_stress_test @@ -2134,6 +2220,64 @@ test_c: buildtests_c $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_test || ( echo test chttp2_fullstack_with_poll_simple_request_test failed ; exit 1 ) $(E) "[RUN] Testing chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test" $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test || ( echo test chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_bad_hostname_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_bad_hostname_test || ( echo test chttp2_fullstack_with_proxy_bad_hostname_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_cancel_after_accept_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_test || ( echo test chttp2_fullstack_with_proxy_cancel_after_accept_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_cancel_after_invoke_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_invoke_test || ( echo test chttp2_fullstack_with_proxy_cancel_after_invoke_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_cancel_before_invoke_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_before_invoke_test || ( echo test chttp2_fullstack_with_proxy_cancel_before_invoke_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test || ( echo test chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_census_simple_request_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_census_simple_request_test || ( echo test chttp2_fullstack_with_proxy_census_simple_request_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_default_host_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_default_host_test || ( echo test chttp2_fullstack_with_proxy_default_host_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_disappearing_server_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_disappearing_server_test || ( echo test chttp2_fullstack_with_proxy_disappearing_server_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test || ( echo test chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test || ( echo test chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_empty_batch_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_empty_batch_test || ( echo test chttp2_fullstack_with_proxy_empty_batch_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_graceful_server_shutdown_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_graceful_server_shutdown_test || ( echo test chttp2_fullstack_with_proxy_graceful_server_shutdown_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_invoke_large_request_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_invoke_large_request_test || ( echo test chttp2_fullstack_with_proxy_invoke_large_request_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_max_message_length_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_max_message_length_test || ( echo test chttp2_fullstack_with_proxy_max_message_length_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_no_op_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_no_op_test || ( echo test chttp2_fullstack_with_proxy_no_op_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_ping_pong_streaming_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_ping_pong_streaming_test || ( echo test chttp2_fullstack_with_proxy_ping_pong_streaming_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_registered_call_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_registered_call_test || ( echo test chttp2_fullstack_with_proxy_registered_call_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test || ( echo test chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test || ( echo test chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_request_response_with_payload_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_test || ( echo test chttp2_fullstack_with_proxy_request_response_with_payload_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test || ( echo test chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test || ( echo test chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_request_with_large_metadata_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_large_metadata_test || ( echo test chttp2_fullstack_with_proxy_request_with_large_metadata_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_request_with_payload_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_payload_test || ( echo test chttp2_fullstack_with_proxy_request_with_payload_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_server_finishes_request_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_server_finishes_request_test || ( echo test chttp2_fullstack_with_proxy_server_finishes_request_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_simple_delayed_request_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_delayed_request_test || ( echo test chttp2_fullstack_with_proxy_simple_delayed_request_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_simple_request_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_test || ( echo test chttp2_fullstack_with_proxy_simple_request_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test || ( echo test chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test failed ; exit 1 ) $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_bad_hostname_test" $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_bad_hostname_test || ( echo test chttp2_simple_ssl_fullstack_bad_hostname_test failed ; exit 1 ) $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_cancel_after_accept_test" @@ -2266,6 +2410,64 @@ test_c: buildtests_c $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_simple_request_test || ( echo test chttp2_simple_ssl_fullstack_with_poll_simple_request_test failed ; exit 1 ) $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test" $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test || ( echo test chttp2_simple_ssl_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_default_host_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_default_host_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_default_host_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_no_op_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_no_op_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_no_op_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_registered_call_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_registered_call_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_registered_call_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_simple_request_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_request_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_simple_request_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test || ( echo test chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test failed ; exit 1 ) $(E) "[RUN] Testing chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test" $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test failed ; exit 1 ) $(E) "[RUN] Testing chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test" @@ -2822,6 +3024,62 @@ test_c: buildtests_c $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_unsecure_test || ( echo test chttp2_fullstack_with_poll_simple_request_unsecure_test failed ; exit 1 ) $(E) "[RUN] Testing chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_unsecure_test" $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_unsecure_test || ( echo test chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_bad_hostname_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_bad_hostname_unsecure_test || ( echo test chttp2_fullstack_with_proxy_bad_hostname_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test || ( echo test chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test || ( echo test chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test || ( echo test chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test || ( echo test chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test || ( echo test chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_census_simple_request_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_census_simple_request_unsecure_test || ( echo test chttp2_fullstack_with_proxy_census_simple_request_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_default_host_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_default_host_unsecure_test || ( echo test chttp2_fullstack_with_proxy_default_host_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_disappearing_server_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_disappearing_server_unsecure_test || ( echo test chttp2_fullstack_with_proxy_disappearing_server_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test || ( echo test chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test || ( echo test chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_empty_batch_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_empty_batch_unsecure_test || ( echo test chttp2_fullstack_with_proxy_empty_batch_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test || ( echo test chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test || ( echo test chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_max_message_length_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_max_message_length_unsecure_test || ( echo test chttp2_fullstack_with_proxy_max_message_length_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_no_op_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_no_op_unsecure_test || ( echo test chttp2_fullstack_with_proxy_no_op_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test || ( echo test chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_registered_call_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_registered_call_unsecure_test || ( echo test chttp2_fullstack_with_proxy_registered_call_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test || ( echo test chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test || ( echo test chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test || ( echo test chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test || ( echo test chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test || ( echo test chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_request_with_payload_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_payload_unsecure_test || ( echo test chttp2_fullstack_with_proxy_request_with_payload_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test || ( echo test chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test || ( echo test chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_simple_request_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_unsecure_test || ( echo test chttp2_fullstack_with_proxy_simple_request_unsecure_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test || ( echo test chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test failed ; exit 1 ) $(E) "[RUN] Testing chttp2_socket_pair_bad_hostname_unsecure_test" $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_bad_hostname_unsecure_test || ( echo test chttp2_socket_pair_bad_hostname_unsecure_test failed ; exit 1 ) $(E) "[RUN] Testing chttp2_socket_pair_cancel_after_accept_unsecure_test" @@ -3912,6 +4170,7 @@ LIBGRPC_TEST_UTIL_SRC = \ test/core/end2end/data/server1_key.c \ test/core/end2end/data/test_root_cert.c \ test/core/end2end/cq_verifier.c \ + test/core/end2end/fixtures/proxy.c \ test/core/iomgr/endpoint_tests.c \ test/core/security/oauth2_utils.c \ test/core/util/grpc_profiler.c \ @@ -3957,6 +4216,7 @@ endif LIBGRPC_TEST_UTIL_UNSECURE_SRC = \ test/core/end2end/cq_verifier.c \ + test/core/end2end/fixtures/proxy.c \ test/core/iomgr/endpoint_tests.c \ test/core/security/oauth2_utils.c \ test/core/util/grpc_profiler.c \ @@ -5125,6 +5385,29 @@ ifneq ($(NO_DEPS),true) endif +LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_WITH_PROXY_SRC = \ + test/core/end2end/fixtures/chttp2_fullstack_with_proxy.c \ + + +LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_WITH_PROXY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_WITH_PROXY_SRC)))) + +$(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a: $(ZLIB_DEP) $(LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_WITH_PROXY_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a + $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_WITH_PROXY_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a +endif + + + + +ifneq ($(NO_DEPS),true) +-include $(LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_WITH_PROXY_OBJS:.o=.dep) +endif + + LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_SRC = \ test/core/end2end/fixtures/chttp2_simple_ssl_fullstack.c \ @@ -5199,6 +5482,43 @@ endif endif +LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_WITH_PROXY_SRC = \ + test/core/end2end/fixtures/chttp2_simple_ssl_fullstack_with_proxy.c \ + + +LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_WITH_PROXY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_WITH_PROXY_SRC)))) + +ifeq ($(NO_SECURE),true) + +# You can't build secure libraries if you don't have OpenSSL. + +$(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a: openssl_dep_error + + +else + + +$(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_WITH_PROXY_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a + $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_WITH_PROXY_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a +endif + + + + +endif + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_WITH_PROXY_OBJS:.o=.dep) +endif +endif + + LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SRC = \ test/core/end2end/fixtures/chttp2_simple_ssl_with_oauth2_fullstack.c \ @@ -13457,6 +13777,528 @@ ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_bad_hostname_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_bad_hostname_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_bad_hostname.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_bad_hostname.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_bad_hostname_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_and_writes_closed.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_and_writes_closed.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_invoke_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_invoke_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_invoke.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_invoke.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_invoke_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_before_invoke_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_before_invoke_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_before_invoke.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_before_invoke.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_before_invoke_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_in_a_vacuum.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_in_a_vacuum.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_census_simple_request_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_census_simple_request_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_census_simple_request.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_census_simple_request.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_census_simple_request_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_default_host_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_default_host_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_default_host.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_default_host.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_default_host_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_disappearing_server_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_disappearing_server_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_disappearing_server.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_disappearing_server.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_disappearing_server_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_tags.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_tags.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_empty_batch_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_empty_batch_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_empty_batch.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_empty_batch.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_empty_batch_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_graceful_server_shutdown_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_graceful_server_shutdown_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_graceful_server_shutdown.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_graceful_server_shutdown.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_graceful_server_shutdown_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_invoke_large_request_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_invoke_large_request_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_invoke_large_request.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_invoke_large_request.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_invoke_large_request_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_max_message_length_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_max_message_length_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_max_message_length.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_max_message_length.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_max_message_length_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_no_op_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_no_op_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_no_op.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_no_op.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_no_op_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_ping_pong_streaming_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_ping_pong_streaming_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_ping_pong_streaming.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_ping_pong_streaming.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_ping_pong_streaming_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_registered_call_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_registered_call_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_registered_call.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_registered_call.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_registered_call_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_binary_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_binary_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload_and_call_creds.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload_and_call_creds.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_trailing_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_trailing_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_large_metadata_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_large_metadata_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_large_metadata.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_large_metadata.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_large_metadata_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_payload_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_payload_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_payload.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_payload.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_payload_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_server_finishes_request_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_server_finishes_request_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_server_finishes_request.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_server_finishes_request.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_server_finishes_request_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_delayed_request_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_delayed_request_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_delayed_request.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_delayed_request.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_delayed_request_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request_with_high_initial_sequence_number.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request_with_high_initial_sequence_number.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_bad_hostname_test: openssl_dep_error else @@ -14645,6 +15487,528 @@ ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_bad_hostname.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_bad_hostname.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_and_writes_closed.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_and_writes_closed.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_invoke.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_invoke.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_before_invoke.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_before_invoke.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_in_a_vacuum.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_in_a_vacuum.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_census_simple_request.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_census_simple_request.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_default_host_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_default_host_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_default_host.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_default_host.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_default_host_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_disappearing_server.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_disappearing_server.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_tags.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_tags.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_empty_batch.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_empty_batch.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_graceful_server_shutdown.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_graceful_server_shutdown.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_invoke_large_request.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_invoke_large_request.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_max_message_length.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_max_message_length.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_no_op_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_no_op_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_no_op.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_no_op.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_no_op_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_ping_pong_streaming.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_ping_pong_streaming.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_registered_call_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_registered_call_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_registered_call.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_registered_call.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_registered_call_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_binary_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_binary_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload_and_call_creds.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload_and_call_creds.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_trailing_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_trailing_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_large_metadata.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_large_metadata.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_payload.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_payload.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_server_finishes_request.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_server_finishes_request.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_delayed_request.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_delayed_request.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_request_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_request_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_request_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test: openssl_dep_error + +else + +$(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request_with_high_initial_sequence_number.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request_with_high_initial_sequence_number.a $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test + +endif + + + + +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test: openssl_dep_error else @@ -18065,6 +19429,230 @@ $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_with_high_initial_ +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_bad_hostname_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_bad_hostname.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_bad_hostname.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_bad_hostname_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_and_writes_closed.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_and_writes_closed.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_invoke.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_invoke.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_before_invoke.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_before_invoke.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_in_a_vacuum.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_in_a_vacuum.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_census_simple_request_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_census_simple_request.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_census_simple_request.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_census_simple_request_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_default_host_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_default_host.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_default_host.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_default_host_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_disappearing_server_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_disappearing_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_disappearing_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_disappearing_server_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_tags.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_tags.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_empty_batch_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_empty_batch.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_empty_batch.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_empty_batch_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_graceful_server_shutdown.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_graceful_server_shutdown.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_invoke_large_request.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_invoke_large_request.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_max_message_length_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_max_message_length.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_max_message_length.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_max_message_length_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_no_op_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_no_op.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_no_op.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_no_op_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_ping_pong_streaming.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_ping_pong_streaming.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_registered_call_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_registered_call.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_registered_call.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_registered_call_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_binary_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_binary_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_trailing_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_trailing_metadata_and_payload.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_large_metadata.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_large_metadata.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_payload_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_payload.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_payload.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_payload_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_server_finishes_request.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_server_finishes_request.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_delayed_request.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_delayed_request.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_unsecure_test + + + + +$(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request_with_high_initial_sequence_number.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_with_proxy.a $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request_with_high_initial_sequence_number.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test + + + + $(BINDIR)/$(CONFIG)/chttp2_socket_pair_bad_hostname_unsecure_test: $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_socket_pair.a $(LIBDIR)/$(CONFIG)/libend2end_test_bad_hostname.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` @@ -18819,6 +20407,7 @@ test/core/end2end/data/test_root_cert.c: $(OPENSSL_DEP) test/core/end2end/fixtures/chttp2_fake_security.c: $(OPENSSL_DEP) test/core/end2end/fixtures/chttp2_simple_ssl_fullstack.c: $(OPENSSL_DEP) test/core/end2end/fixtures/chttp2_simple_ssl_fullstack_with_poll.c: $(OPENSSL_DEP) +test/core/end2end/fixtures/chttp2_simple_ssl_fullstack_with_proxy.c: $(OPENSSL_DEP) test/core/end2end/fixtures/chttp2_simple_ssl_with_oauth2_fullstack.c: $(OPENSSL_DEP) test/core/end2end/tests/request_response_with_payload_and_call_creds.c: $(OPENSSL_DEP) test/core/util/reconnect_server.c: $(OPENSSL_DEP) diff --git a/build.json b/build.json index 516e2f19c0..e0f768882b 100644 --- a/build.json +++ b/build.json @@ -330,6 +330,7 @@ "name": "grpc_test_util_base", "headers": [ "test/core/end2end/cq_verifier.h", + "test/core/end2end/fixtures/proxy.h", "test/core/iomgr/endpoint_tests.h", "test/core/security/oauth2_utils.h", "test/core/util/grpc_profiler.h", @@ -339,6 +340,7 @@ ], "src": [ "test/core/end2end/cq_verifier.c", + "test/core/end2end/fixtures/proxy.c", "test/core/iomgr/endpoint_tests.c", "test/core/security/oauth2_utils.c", "test/core/util/grpc_profiler.c", @@ -983,6 +985,8 @@ "gpr" ], "platforms": [ + "mac", + "linux", "posix" ] }, @@ -1000,6 +1004,8 @@ "gpr" ], "platforms": [ + "mac", + "linux", "posix" ] }, @@ -1017,6 +1023,8 @@ "gpr" ], "platforms": [ + "mac", + "linux", "posix" ] }, @@ -1064,6 +1072,8 @@ "gpr" ], "platforms": [ + "mac", + "linux", "posix" ] }, @@ -1081,6 +1091,8 @@ "gpr" ], "platforms": [ + "mac", + "linux", "posix" ] }, @@ -1554,6 +1566,8 @@ "gpr" ], "platforms": [ + "mac", + "linux", "posix" ] }, @@ -1750,6 +1764,8 @@ "gpr" ], "platforms": [ + "mac", + "linux", "posix" ] }, @@ -1767,6 +1783,8 @@ "gpr" ], "platforms": [ + "mac", + "linux", "posix" ] }, @@ -1784,6 +1802,8 @@ "gpr" ], "platforms": [ + "mac", + "linux", "posix" ] }, @@ -1904,6 +1924,8 @@ "gpr" ], "platforms": [ + "mac", + "linux", "posix" ] }, @@ -1924,6 +1946,8 @@ "gpr" ], "platforms": [ + "mac", + "linux", "posix" ] }, @@ -1985,6 +2009,8 @@ "gpr" ], "platforms": [ + "mac", + "linux", "posix" ] }, @@ -2226,6 +2252,8 @@ "grpc++_test_config" ], "platforms": [ + "mac", + "linux", "posix" ] }, @@ -2247,6 +2275,8 @@ "grpc++_test_config" ], "platforms": [ + "mac", + "linux", "posix" ] }, @@ -2264,6 +2294,8 @@ "gpr" ], "platforms": [ + "mac", + "linux", "posix" ] }, @@ -2371,6 +2403,8 @@ "gpr" ], "platforms": [ + "mac", + "linux", "posix" ] }, @@ -2392,6 +2426,8 @@ "grpc++_test_config" ], "platforms": [ + "mac", + "linux", "posix" ] }, @@ -2413,6 +2449,8 @@ "grpc++_test_config" ], "platforms": [ + "mac", + "linux", "posix" ] }, @@ -2510,6 +2548,8 @@ "gpr" ], "platforms": [ + "mac", + "linux", "posix" ] }, @@ -2562,6 +2602,8 @@ "gpr" ], "platforms": [ + "mac", + "linux", "posix" ] }, @@ -2582,6 +2624,8 @@ "gpr" ], "platforms": [ + "mac", + "linux", "posix" ] }, diff --git a/doc/interop-test-descriptions.md b/doc/interop-test-descriptions.md index 065e107c24..84ceaa3081 100644 --- a/doc/interop-test-descriptions.md +++ b/doc/interop-test-descriptions.md @@ -55,7 +55,7 @@ Server features: Procedure: 1. Client calls EmptyCall with the default Empty message -Asserts: +Client asserts: * call was successful * response is non-null @@ -84,7 +84,7 @@ Procedure: } ``` -Asserts: +Client asserts: * call was successful * response payload type is COMPRESSABLE * response payload body is 314159 bytes in size @@ -110,6 +110,7 @@ Procedure: } } ``` + 3. Client then sends: ``` @@ -119,6 +120,7 @@ Procedure: } } ``` + 4. Client then sends: ``` @@ -128,6 +130,7 @@ Procedure: } } ``` + 5. Client then sends: ``` @@ -137,9 +140,10 @@ Procedure: } } ``` - 6. Client halfCloses -Asserts: + 6. Client half-closes + +Client asserts: * call was successful * response aggregated_payload_size is 74922 @@ -172,7 +176,7 @@ Procedure: } ``` -Asserts: +Client asserts: * call was successful * exactly four responses * response payloads are COMPRESSABLE @@ -202,6 +206,7 @@ Procedure: } } ``` + 2. After getting a reply, it sends: ``` @@ -215,6 +220,7 @@ Procedure: } } ``` + 3. After getting a reply, it sends: ``` @@ -228,6 +234,7 @@ Procedure: } } ``` + 4. After getting a reply, it sends: ``` @@ -242,7 +249,9 @@ Procedure: } ``` -Asserts: + 5. After getting a reply, client half-closes + +Client asserts: * call was successful * exactly four responses * response payloads are COMPRESSABLE @@ -261,7 +270,7 @@ Server features: Procedure: 1. Client calls FullDuplexCall and then half-closes -Asserts: +Client asserts: * call was successful * exactly zero responses @@ -300,7 +309,7 @@ Procedure: } ``` -Asserts: +Client asserts: * call was successful * received SimpleResponse.username equals the value of `--default_service_account` flag * received SimpleResponse.oauth_scope is in `--oauth_scope` @@ -328,7 +337,7 @@ Server features: * [Echo OAuth Scope][] Procedure: - 1. Client configures the channel to use ServiceAccountCredentials. + 1. Client configures the channel to use ServiceAccountCredentials 2. Client calls UnaryCall with: ``` @@ -343,7 +352,7 @@ Procedure: } ``` -Asserts: +Client asserts: * call was successful * received SimpleResponse.username is in the json key file read from `--service_account_key_file` @@ -370,7 +379,7 @@ Server features: * [Echo OAuth Scope][] Procedure: - 1. Client configures the channel to use JWTTokenCredentials. + 1. Client configures the channel to use JWTTokenCredentials 2. Client calls UnaryCall with: ``` @@ -384,7 +393,7 @@ Procedure: } ``` -Asserts: +Client asserts: * call was successful * received SimpleResponse.username is in the json key file read from `--service_account_key_file` @@ -422,7 +431,7 @@ Server features: Procedure: 1. Client uses the auth library to obtain an authorization token - 2. Client configures the channel to use AccessTokenCredentials with the access token obtained in step 1. + 2. Client configures the channel to use AccessTokenCredentials with the access token obtained in step 1 3. Client calls UnaryCall with the following message ``` @@ -431,8 +440,8 @@ Procedure: fill_oauth_scope: true } ``` - -Asserts: + +Client asserts: * call was successful * received SimpleResponse.username is in the json key file used by the auth library to obtain the authorization token @@ -464,10 +473,10 @@ Server features: Procedure: 1. Client uses the auth library to obtain an authorization token - 2. Client configures the channel with just SSL credentials. + 2. Client configures the channel with just SSL credentials 3. Client calls UnaryCall, setting per-call credentials to - AccessTokenCredentials with the access token obtained in step 1. The request is - the following message + AccessTokenCredentials with the access token obtained in step 1. The request + is the following message ``` { @@ -475,8 +484,8 @@ Procedure: fill_oauth_scope: true } ``` - -Asserts: + +Client asserts: * call was successful * received SimpleResponse.username is in the json key file used by the auth library to obtain the authorization token @@ -496,8 +505,14 @@ Server features: * [Echo Metadata][] Procedure: - 1. While sending custom metadata (ascii + binary) in the header, client calls - UnaryCall with: + 1. The client attaches custom metadata with the following keys and values: + + ``` + key: "x-grpc-test-echo-initial", value: "test_initial_metadata_value" + key: "x-grpc-test-echo-trailing-bin", value: 0xababab + ``` + + to a UnaryCall with request: ``` { @@ -508,23 +523,41 @@ Procedure: } } ``` -The client attaches custom metadata with the following keys and values: + + 2. The client attaches custom metadata with the following keys and values: + ``` key: "x-grpc-test-echo-initial", value: "test_initial_metadata_value" key: "x-grpc-test-echo-trailing-bin", value: 0xababab ``` - 2. Client repeats step 1. with FullDuplexCall instead of UnaryCall. -Asserts: + to a FullDuplexCall with request: + + ``` + { + response_type: COMPRESSABLE + response_size: 314159 + payload:{ + body: 271828 bytes of zeros + } + } + ``` + + and then half-closes + +Client asserts: * call was successful -* metadata with key `"x-grpc-test-echo-initial"` and value `"test_initial_metadata_value"`is received in the initial metadata. -* metadata with key `"x-grpc-test-echo-trailing-bin"` and value `0xababab` is received in the trailing metadata. +* metadata with key `"x-grpc-test-echo-initial"` and value + `"test_initial_metadata_value"`is received in the initial metadata for calls + in Procedure steps 1 and 2. +* metadata with key `"x-grpc-test-echo-trailing-bin"` and value `0xababab` is + received in the trailing metadata for calls in Procedure steps 1 and 2. ### status_code_and_message -This test verifies unary calls succeed in sending messages, and propagates back +This test verifies unary calls succeed in sending messages, and propagate back status code and message sent along with the messages. Server features: @@ -543,12 +576,26 @@ Procedure: } } ``` -2. Client repeats step 1. with FullDuplexCall instead of UnaryCall. + 2. Client calls FullDuplexCall with: + + ``` + { + response_status:{ + code: 2 + message: "test status message" + } + } + ``` + + and then half-closes -Asserts: -* received status code is the same with sent code -* received status message is the same with sent message + +Client asserts: +* received status code is the same as the sent code for both Procedure steps 1 + and 2 +* received status message is the same as the sent message for both Procedure + steps 1 and 2 ### unimplemented_method @@ -556,15 +603,19 @@ Status: Ready for implementation. Blocking beta. This test verifies calling unimplemented RPC method returns the UNIMPLEMENTED status code. +Server features: +N/A + Procedure: -* Client calls `grpc.testing.UnimplementedService/UnimplementedCall` with an empty request (defined as `grpc.testing.Empty`): +* Client calls `grpc.testing.UnimplementedService/UnimplementedCall` with an + empty request (defined as `grpc.testing.Empty`): ``` { } ``` -Asserts: +Client asserts: * received status code is 12 (UNIMPLEMENTED) * received status message is empty or null/unset @@ -580,7 +631,7 @@ Procedure: 1. Client starts StreamingInputCall 2. Client immediately cancels request -Asserts: +Client asserts: * Call completed with status CANCELLED ### cancel_after_first_response @@ -606,9 +657,10 @@ Procedure: } } ``` + 2. After receiving a response, client cancels request -Asserts: +Client asserts: * Call completed with status CANCELLED ### timeout_on_sleeping_server @@ -620,7 +672,8 @@ Server features: * [FullDuplexCall][] Procedure: - 1. Client calls FullDuplexCall with the following request and sets its timeout to 1ms. + 1. Client calls FullDuplexCall with the following request and sets its timeout + to 1ms ``` { @@ -630,7 +683,9 @@ Procedure: } ``` -Asserts: + 2. Client waits + +Client asserts: * Call completed with status DEADLINE_EXCEEDED. ### concurrent_large_unary diff --git a/include/grpc++/client_context.h b/include/grpc++/client_context.h index 10c967d85b..34945f3282 100644 --- a/include/grpc++/client_context.h +++ b/include/grpc++/client_context.h @@ -39,6 +39,7 @@ #include <string> #include <grpc/compression.h> +#include <grpc/grpc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> #include <grpc++/auth_context.h> @@ -46,8 +47,6 @@ #include <grpc++/status.h> #include <grpc++/time.h> -struct grpc_call; -struct grpc_completion_queue; struct census_context; namespace grpc { @@ -70,12 +69,68 @@ template <class R, class W> class ClientAsyncReaderWriter; template <class R> class ClientAsyncResponseReader; +class ServerContext; + +class PropagationOptions { + public: + PropagationOptions() : propagate_(GRPC_PROPAGATE_DEFAULTS) {} + + PropagationOptions& enable_deadline_propagation() { + propagate_ |= GRPC_PROPAGATE_DEADLINE; + return *this; + } + + PropagationOptions& disable_deadline_propagation() { + propagate_ &= ~GRPC_PROPAGATE_DEADLINE; + return *this; + } + + PropagationOptions& enable_census_stats_propagation() { + propagate_ |= GRPC_PROPAGATE_CENSUS_STATS_CONTEXT; + return *this; + } + + PropagationOptions& disable_census_stats_propagation() { + propagate_ &= ~GRPC_PROPAGATE_CENSUS_STATS_CONTEXT; + return *this; + } + + PropagationOptions& enable_census_tracing_propagation() { + propagate_ |= GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT; + return *this; + } + + PropagationOptions& disable_census_tracing_propagation() { + propagate_ &= ~GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT; + return *this; + } + + PropagationOptions& enable_cancellation_propagation() { + propagate_ |= GRPC_PROPAGATE_CANCELLATION; + return *this; + } + + PropagationOptions& disable_cancellation_propagation() { + propagate_ &= ~GRPC_PROPAGATE_CANCELLATION; + return *this; + } + + gpr_uint32 c_bitmask() const { return propagate_; } + + private: + gpr_uint32 propagate_; +}; class ClientContext { public: ClientContext(); ~ClientContext(); + /// Create a new ClientContext that propagates some or all of its attributes + static std::unique_ptr<ClientContext> FromServerContext( + const ServerContext& server_context, + PropagationOptions options = PropagationOptions()); + void AddMetadata(const grpc::string& meta_key, const grpc::string& meta_value); @@ -181,6 +236,9 @@ class ClientContext { std::multimap<grpc::string, grpc::string> recv_initial_metadata_; std::multimap<grpc::string, grpc::string> trailing_metadata_; + grpc_call* propagate_from_call_; + PropagationOptions propagation_options_; + grpc_compression_algorithm compression_algorithm_; }; diff --git a/include/grpc++/server_context.h b/include/grpc++/server_context.h index 23273f43e6..4f7fc54ef1 100644 --- a/include/grpc++/server_context.h +++ b/include/grpc++/server_context.h @@ -50,6 +50,7 @@ struct census_context; namespace grpc { +class ClientContext; template <class W, class R> class ServerAsyncReader; template <class W> @@ -158,6 +159,7 @@ class ServerContext { friend class ServerStreamingHandler; template <class ServiceType, class RequestType, class ResponseType> friend class BidiStreamingHandler; + friend class ::grpc::ClientContext; // Prevent copying. ServerContext(const ServerContext&); diff --git a/include/grpc/grpc.h b/include/grpc/grpc.h index 15556a6d5c..bf340e81ca 100644 --- a/include/grpc/grpc.h +++ b/include/grpc/grpc.h @@ -177,6 +177,8 @@ typedef enum grpc_call_error { GRPC_CALL_ERROR_INVALID_FLAGS, /** invalid metadata was passed to this call */ GRPC_CALL_ERROR_INVALID_METADATA, + /** invalid message was passed to this call */ + GRPC_CALL_ERROR_INVALID_MESSAGE, /** completion queue for notification has not been registered with the server */ GRPC_CALL_ERROR_NOT_SERVER_COMPLETION_QUEUE @@ -308,8 +310,8 @@ typedef struct grpc_op { value, or reuse it in a future op. */ grpc_metadata_array *recv_initial_metadata; /** ownership of the byte buffer is moved to the caller; the caller must - call - grpc_byte_buffer_destroy on this value, or reuse it in a future op. */ + call grpc_byte_buffer_destroy on this value, or reuse it in a future op. + */ grpc_byte_buffer **recv_message; struct { /** ownership of the array is with the caller, but ownership of the @@ -351,6 +353,26 @@ typedef struct grpc_op { } data; } grpc_op; +/* Propagation bits: this can be bitwise or-ed to form propagation_mask for + * grpc_call */ +/** Propagate deadline */ +#define GRPC_PROPAGATE_DEADLINE ((gpr_uint32)1) +/** Propagate census context */ +#define GRPC_PROPAGATE_CENSUS_STATS_CONTEXT ((gpr_uint32)2) +#define GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT ((gpr_uint32)4) +/** Propagate cancellation */ +#define GRPC_PROPAGATE_CANCELLATION ((gpr_uint32)8) + +/* Default propagation mask: clients of the core API are encouraged to encode + deltas from this in their implementations... ie write: + GRPC_PROPAGATE_DEFAULTS & ~GRPC_PROPAGATE_DEADLINE to disable deadline + propagation. Doing so gives flexibility in the future to define new + propagation types that are default inherited or not. */ +#define GRPC_PROPAGATE_DEFAULTS \ + ((gpr_uint32)(( \ + 0xffff | GRPC_PROPAGATE_DEADLINE | GRPC_PROPAGATE_CENSUS_STATS_CONTEXT | \ + GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT | GRPC_PROPAGATE_CANCELLATION))) + /** Initialize the grpc library. It is not safe to call any other grpc functions before calling this. @@ -430,8 +452,13 @@ void grpc_channel_watch_connectivity_state( /** Create a call given a grpc_channel, in order to call 'method'. All completions are sent to 'completion_queue'. 'method' and 'host' need only - live through the invocation of this function. */ + live through the invocation of this function. + If parent_call is non-NULL, it must be a server-side call. It will be used + to propagate properties from the server call to this new client call. + */ grpc_call *grpc_channel_create_call(grpc_channel *channel, + grpc_call *parent_call, + gpr_uint32 propagation_mask, grpc_completion_queue *completion_queue, const char *method, const char *host, gpr_timespec deadline); @@ -442,8 +469,9 @@ void *grpc_channel_register_call(grpc_channel *channel, const char *method, /** Create a call given a handle returned from grpc_channel_register_call */ grpc_call *grpc_channel_create_registered_call( - grpc_channel *channel, grpc_completion_queue *completion_queue, - void *registered_call_handle, gpr_timespec deadline); + grpc_channel *channel, grpc_call *parent_call, gpr_uint32 propagation_mask, + grpc_completion_queue *completion_queue, void *registered_call_handle, + gpr_timespec deadline); /** Start a batch of operations defined in the array ops; when complete, post a completion of type 'tag' to the completion queue bound to the call. diff --git a/src/compiler/csharp_generator.cc b/src/compiler/csharp_generator.cc index e0c1bcda19..9432bdda96 100644 --- a/src/compiler/csharp_generator.cc +++ b/src/compiler/csharp_generator.cc @@ -246,6 +246,8 @@ void GenerateStaticMethodField(Printer* out, const MethodDescriptor *method) { out->Indent(); out->Print("$methodtype$,\n", "methodtype", GetCSharpMethodType(GetMethodType(method))); + out->Print("$servicenamefield$,\n", "servicenamefield", + GetServiceNameFieldName()); out->Print("\"$methodname$\",\n", "methodname", method->name()); out->Print("$requestmarshaller$,\n", "requestmarshaller", GetMarshallerFieldName(method->input_type())); @@ -273,6 +275,13 @@ void GenerateClientInterface(Printer* out, const ServiceDescriptor *service) { "methodname", method->name(), "request", GetClassName(method->input_type()), "response", GetClassName(method->output_type())); + + // overload taking CallOptions as a param + out->Print( + "$response$ $methodname$($request$ request, CallOptions options);\n", + "methodname", method->name(), "request", + GetClassName(method->input_type()), "response", + GetClassName(method->output_type())); } std::string method_name = method->name(); @@ -284,6 +293,13 @@ void GenerateClientInterface(Printer* out, const ServiceDescriptor *service) { "methodname", method_name, "request_maybe", GetMethodRequestParamMaybe(method), "returntype", GetMethodReturnTypeClient(method)); + + // overload taking CallOptions as a param + out->Print( + "$returntype$ $methodname$($request_maybe$CallOptions options);\n", + "methodname", method_name, "request_maybe", + GetMethodRequestParamMaybe(method), "returntype", + GetMethodReturnTypeClient(method)); } out->Outdent(); out->Print("}\n"); @@ -340,10 +356,23 @@ void GenerateClientStub(Printer* out, const ServiceDescriptor *service) { GetClassName(method->output_type())); out->Print("{\n"); out->Indent(); - out->Print("var call = CreateCall($servicenamefield$, $methodfield$, headers, deadline);\n", - "servicenamefield", GetServiceNameFieldName(), "methodfield", - GetMethodFieldName(method)); - out->Print("return Calls.BlockingUnaryCall(call, request, cancellationToken);\n"); + out->Print("var call = CreateCall($methodfield$, new CallOptions(headers, deadline, cancellationToken));\n", + "methodfield", GetMethodFieldName(method)); + out->Print("return Calls.BlockingUnaryCall(call, request);\n"); + out->Outdent(); + out->Print("}\n"); + + // overload taking CallOptions as a param + out->Print( + "public $response$ $methodname$($request$ request, CallOptions options)\n", + "methodname", method->name(), "request", + GetClassName(method->input_type()), "response", + GetClassName(method->output_type())); + out->Print("{\n"); + out->Indent(); + out->Print("var call = CreateCall($methodfield$, options);\n", + "methodfield", GetMethodFieldName(method)); + out->Print("return Calls.BlockingUnaryCall(call, request);\n"); out->Outdent(); out->Print("}\n"); } @@ -359,26 +388,55 @@ void GenerateClientStub(Printer* out, const ServiceDescriptor *service) { GetMethodReturnTypeClient(method)); out->Print("{\n"); out->Indent(); - out->Print("var call = CreateCall($servicenamefield$, $methodfield$, headers, deadline);\n", - "servicenamefield", GetServiceNameFieldName(), "methodfield", - GetMethodFieldName(method)); + out->Print("var call = CreateCall($methodfield$, new CallOptions(headers, deadline, cancellationToken));\n", + "methodfield", GetMethodFieldName(method)); switch (GetMethodType(method)) { case METHODTYPE_NO_STREAMING: - out->Print("return Calls.AsyncUnaryCall(call, request, cancellationToken);\n"); + out->Print("return Calls.AsyncUnaryCall(call, request);\n"); break; case METHODTYPE_CLIENT_STREAMING: - out->Print("return Calls.AsyncClientStreamingCall(call, cancellationToken);\n"); + out->Print("return Calls.AsyncClientStreamingCall(call);\n"); break; case METHODTYPE_SERVER_STREAMING: out->Print( - "return Calls.AsyncServerStreamingCall(call, request, cancellationToken);\n"); + "return Calls.AsyncServerStreamingCall(call, request);\n"); break; case METHODTYPE_BIDI_STREAMING: - out->Print("return Calls.AsyncDuplexStreamingCall(call, cancellationToken);\n"); + out->Print("return Calls.AsyncDuplexStreamingCall(call);\n"); break; default: GOOGLE_LOG(FATAL)<< "Can't get here."; - } + } + out->Outdent(); + out->Print("}\n"); + + // overload taking CallOptions as a param + out->Print( + "public $returntype$ $methodname$($request_maybe$CallOptions options)\n", + "methodname", method_name, "request_maybe", + GetMethodRequestParamMaybe(method), "returntype", + GetMethodReturnTypeClient(method)); + out->Print("{\n"); + out->Indent(); + out->Print("var call = CreateCall($methodfield$, options);\n", + "methodfield", GetMethodFieldName(method)); + switch (GetMethodType(method)) { + case METHODTYPE_NO_STREAMING: + out->Print("return Calls.AsyncUnaryCall(call, request);\n"); + break; + case METHODTYPE_CLIENT_STREAMING: + out->Print("return Calls.AsyncClientStreamingCall(call);\n"); + break; + case METHODTYPE_SERVER_STREAMING: + out->Print( + "return Calls.AsyncServerStreamingCall(call, request);\n"); + break; + case METHODTYPE_BIDI_STREAMING: + out->Print("return Calls.AsyncDuplexStreamingCall(call);\n"); + break; + default: + GOOGLE_LOG(FATAL)<< "Can't get here."; + } out->Outdent(); out->Print("}\n"); } diff --git a/src/core/channel/client_channel.c b/src/core/channel/client_channel.c index 2cfca399b6..2ee260b799 100644 --- a/src/core/channel/client_channel.c +++ b/src/core/channel/client_channel.c @@ -56,6 +56,8 @@ typedef struct { grpc_mdctx *mdctx; /** resolver for this channel */ grpc_resolver *resolver; + /** have we started resolving this channel */ + int started_resolving; /** master channel - the grpc_channel instance that ultimately owns this channel_data via its channel stack. We occasionally use this to bump the refcount on the master channel @@ -398,6 +400,12 @@ static void perform_transport_stream_op(grpc_call_element *elem, } else if (chand->resolver != NULL) { calld->state = CALL_WAITING_FOR_CONFIG; add_to_lb_policy_wait_queue_locked_state_config(elem); + if (!chand->started_resolving && chand->resolver != NULL) { + chand->started_resolving = 1; + grpc_resolver_next(chand->resolver, + &chand->incoming_configuration, + &chand->on_config_changed); + } gpr_mu_unlock(&chand->mu_config); gpr_mu_unlock(&calld->mu_state); } else { @@ -690,12 +698,18 @@ void grpc_client_channel_set_resolver(grpc_channel_stack *channel_stack, /* post construction initialization: set the transport setup pointer */ grpc_channel_element *elem = grpc_channel_stack_last_element(channel_stack); channel_data *chand = elem->channel_data; + gpr_mu_lock(&chand->mu_config); GPR_ASSERT(!chand->resolver); chand->resolver = resolver; GRPC_CHANNEL_INTERNAL_REF(chand->master, "resolver"); GRPC_RESOLVER_REF(resolver, "channel"); - grpc_resolver_next(resolver, &chand->incoming_configuration, - &chand->on_config_changed); + if (chand->waiting_for_config_closures != NULL || + chand->exit_idle_when_lb_policy_arrives) { + chand->started_resolving = 1; + grpc_resolver_next(resolver, &chand->incoming_configuration, + &chand->on_config_changed); + } + gpr_mu_unlock(&chand->mu_config); } grpc_connectivity_state grpc_client_channel_check_connectivity_state( @@ -709,6 +723,11 @@ grpc_connectivity_state grpc_client_channel_check_connectivity_state( grpc_lb_policy_exit_idle(chand->lb_policy); } else { chand->exit_idle_when_lb_policy_arrives = 1; + if (!chand->started_resolving && chand->resolver != NULL) { + chand->started_resolving = 1; + grpc_resolver_next(chand->resolver, &chand->incoming_configuration, + &chand->on_config_changed); + } } } gpr_mu_unlock(&chand->mu_config); diff --git a/src/core/surface/call.c b/src/core/surface/call.c index 327a096ffb..d3e66e9c4c 100644 --- a/src/core/surface/call.c +++ b/src/core/surface/call.c @@ -143,6 +143,8 @@ typedef enum { struct grpc_call { grpc_completion_queue *cq; grpc_channel *channel; + grpc_call *parent; + grpc_call *first_child; grpc_mdctx *metadata_context; /* TODO(ctiller): share with cq if possible? */ gpr_mu mu; @@ -176,6 +178,8 @@ struct grpc_call { gpr_uint8 cancel_alarm; /** bitmask of allocated completion events in completions */ gpr_uint8 allocated_completions; + /** flag indicating that cancellation is inherited */ + gpr_uint8 cancellation_is_inherited; /* flags with bits corresponding to write states allowing us to determine what was sent */ @@ -267,6 +271,11 @@ struct grpc_call { /** completion events - for completion queue use */ grpc_cq_completion completions[MAX_CONCURRENT_COMPLETIONS]; + + /** siblings: children of the same parent form a list, and this list is protected under + parent->mu */ + grpc_call *sibling_next; + grpc_call *sibling_prev; }; #define CALL_STACK_FROM_CALL(call) ((grpc_call_stack *)((call) + 1)) @@ -290,7 +299,9 @@ static void finished_loose_op(void *call, int success); static void lock(grpc_call *call); static void unlock(grpc_call *call); -grpc_call *grpc_call_create(grpc_channel *channel, grpc_completion_queue *cq, +grpc_call *grpc_call_create(grpc_channel *channel, grpc_call *parent_call, + gpr_uint32 propagation_mask, + grpc_completion_queue *cq, const void *server_transport_data, grpc_mdelem **add_initial_metadata, size_t add_initial_metadata_count, @@ -306,9 +317,10 @@ grpc_call *grpc_call_create(grpc_channel *channel, grpc_completion_queue *cq, gpr_mu_init(&call->completion_mu); call->channel = channel; call->cq = cq; - if (cq) { + if (cq != NULL) { GRPC_CQ_INTERNAL_REF(cq, "bind"); } + call->parent = parent_call; call->is_client = server_transport_data == NULL; for (i = 0; i < GRPC_IOREQ_OP_COUNT; i++) { call->request_set[i] = REQSET_EMPTY; @@ -347,6 +359,46 @@ grpc_call *grpc_call_create(grpc_channel *channel, grpc_completion_queue *cq, } grpc_call_stack_init(channel_stack, server_transport_data, initial_op_ptr, CALL_STACK_FROM_CALL(call)); + if (parent_call != NULL) { + GRPC_CALL_INTERNAL_REF(parent_call, "child"); + GPR_ASSERT(call->is_client); + GPR_ASSERT(!parent_call->is_client); + + gpr_mu_lock(&parent_call->mu); + + if (propagation_mask & GRPC_PROPAGATE_DEADLINE) { + send_deadline = gpr_time_min( + gpr_convert_clock_type(send_deadline, + parent_call->send_deadline.clock_type), + parent_call->send_deadline); + } + /* for now GRPC_PROPAGATE_TRACING_CONTEXT *MUST* be passed with + * GRPC_PROPAGATE_STATS_CONTEXT */ + /* TODO(ctiller): This should change to use the appropriate census start_op + * call. */ + if (propagation_mask & GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT) { + GPR_ASSERT(propagation_mask & GRPC_PROPAGATE_CENSUS_STATS_CONTEXT); + grpc_call_context_set(call, GRPC_CONTEXT_TRACING, + parent_call->context[GRPC_CONTEXT_TRACING].value, + NULL); + } else { + GPR_ASSERT(propagation_mask & GRPC_PROPAGATE_CENSUS_STATS_CONTEXT); + } + if (propagation_mask & GRPC_PROPAGATE_CANCELLATION) { + call->cancellation_is_inherited = 1; + } + + if (parent_call->first_child == NULL) { + parent_call->first_child = call; + call->sibling_next = call->sibling_prev = call; + } else { + call->sibling_next = parent_call->first_child; + call->sibling_prev = parent_call->first_child->sibling_prev; + call->sibling_next->sibling_prev = call->sibling_prev->sibling_next = call; + } + + gpr_mu_unlock(&parent_call->mu); + } if (gpr_time_cmp(send_deadline, gpr_inf_future(send_deadline.clock_type)) != 0) { set_deadline_alarm(call, send_deadline); @@ -404,6 +456,20 @@ void grpc_call_internal_ref(grpc_call *c) { static void destroy_call(void *call, int ignored_success) { size_t i; grpc_call *c = call; + grpc_call *parent = c->parent; + if (parent) { + gpr_mu_lock(&parent->mu); + if (call == parent->first_child) { + parent->first_child = c->sibling_next; + if (c == parent->first_child) { + parent->first_child = NULL; + } + c->sibling_prev->sibling_next = c->sibling_next; + c->sibling_next->sibling_prev = c->sibling_prev; + } + gpr_mu_unlock(&parent->mu); + GRPC_CALL_INTERNAL_UNREF(parent, "child", 1); + } grpc_call_stack_destroy(CALL_STACK_FROM_CALL(c)); GRPC_CHANNEL_INTERNAL_UNREF(c->channel, "call"); gpr_mu_destroy(&c->mu); @@ -870,6 +936,8 @@ static int add_slice_to_message(grpc_call *call, gpr_slice slice) { static void call_on_done_recv(void *pc, int success) { grpc_call *call = pc; + grpc_call *child_call; + grpc_call *next_child_call; size_t i; GRPC_TIMER_BEGIN(GRPC_PTAG_CALL_ON_DONE_RECV, 0); lock(call); @@ -903,6 +971,19 @@ static void call_on_done_recv(void *pc, int success) { GPR_ASSERT(call->read_state <= READ_STATE_STREAM_CLOSED); call->read_state = READ_STATE_STREAM_CLOSED; call->cancel_alarm |= call->have_alarm; + /* propagate cancellation to any interested children */ + child_call = call->first_child; + if (child_call != NULL) { + do { + next_child_call = child_call->sibling_next; + if (child_call->cancellation_is_inherited) { + GRPC_CALL_INTERNAL_REF(child_call, "propagate_cancel"); + grpc_call_cancel(child_call); + GRPC_CALL_INTERNAL_UNREF(child_call, "propagate_cancel", 0); + } + child_call = next_child_call; + } while (child_call != call->first_child); + } GRPC_CALL_INTERNAL_UNREF(call, "closed", 0); } finish_read_ops(call); @@ -1283,9 +1364,9 @@ static void set_deadline_alarm(grpc_call *call, gpr_timespec deadline) { } GRPC_CALL_INTERNAL_REF(call, "alarm"); call->have_alarm = 1; - grpc_alarm_init(&call->alarm, - gpr_convert_clock_type(deadline, GPR_CLOCK_MONOTONIC), - call_alarm, call, gpr_now(GPR_CLOCK_MONOTONIC)); + call->send_deadline = gpr_convert_clock_type(deadline, GPR_CLOCK_MONOTONIC); + grpc_alarm_init(&call->alarm, call->send_deadline, call_alarm, call, + gpr_now(GPR_CLOCK_MONOTONIC)); } /* we offset status by a small amount when storing it into transport metadata @@ -1377,7 +1458,8 @@ static void recv_metadata(grpc_call *call, grpc_metadata_batch *md) { } } if (gpr_time_cmp(md->deadline, gpr_inf_future(md->deadline.clock_type)) != - 0) { + 0 && + !call->is_client) { set_deadline_alarm(call, md->deadline); } if (!is_trailing) { @@ -1465,6 +1547,9 @@ grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops, if (!are_write_flags_valid(op->flags)) { return GRPC_CALL_ERROR_INVALID_FLAGS; } + if (op->data.send_message == NULL) { + return GRPC_CALL_ERROR_INVALID_MESSAGE; + } req = &reqs[out++]; req->op = GRPC_IOREQ_SEND_MESSAGE; req->data.send_message = op->data.send_message; @@ -1514,6 +1599,7 @@ grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops, req = &reqs[out++]; req->op = GRPC_IOREQ_RECV_INITIAL_METADATA; req->data.recv_metadata = op->data.recv_initial_metadata; + req->data.recv_metadata->count = 0; req->flags = op->flags; break; case GRPC_OP_RECV_MESSAGE: @@ -1545,6 +1631,7 @@ grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops, req->op = GRPC_IOREQ_RECV_TRAILING_METADATA; req->data.recv_metadata = op->data.recv_status_on_client.trailing_metadata; + req->data.recv_metadata->count = 0; req = &reqs[out++]; req->op = GRPC_IOREQ_RECV_CLOSE; finish_func = finish_batch_with_close; diff --git a/src/core/surface/call.h b/src/core/surface/call.h index 265638d519..75bdbce980 100644 --- a/src/core/surface/call.h +++ b/src/core/surface/call.h @@ -85,7 +85,9 @@ typedef struct { typedef void (*grpc_ioreq_completion_func)(grpc_call *call, int success, void *user_data); -grpc_call *grpc_call_create(grpc_channel *channel, grpc_completion_queue *cq, +grpc_call *grpc_call_create(grpc_channel *channel, grpc_call *parent_call, + gpr_uint32 propagation_mask, + grpc_completion_queue *cq, const void *server_transport_data, grpc_mdelem **add_initial_metadata, size_t add_initial_metadata_count, diff --git a/src/core/surface/channel.c b/src/core/surface/channel.c index 688a586e18..8692aa3903 100644 --- a/src/core/surface/channel.c +++ b/src/core/surface/channel.c @@ -146,7 +146,8 @@ char *grpc_channel_get_target(grpc_channel *channel) { } static grpc_call *grpc_channel_create_call_internal( - grpc_channel *channel, grpc_completion_queue *cq, grpc_mdelem *path_mdelem, + grpc_channel *channel, grpc_call *parent_call, gpr_uint32 propagation_mask, + grpc_completion_queue *cq, grpc_mdelem *path_mdelem, grpc_mdelem *authority_mdelem, gpr_timespec deadline) { grpc_mdelem *send_metadata[2]; int num_metadata = 0; @@ -158,16 +159,18 @@ static grpc_call *grpc_channel_create_call_internal( send_metadata[num_metadata++] = authority_mdelem; } - return grpc_call_create(channel, cq, NULL, send_metadata, - num_metadata, deadline); + return grpc_call_create(channel, parent_call, propagation_mask, cq, NULL, + send_metadata, num_metadata, deadline); } grpc_call *grpc_channel_create_call(grpc_channel *channel, + grpc_call *parent_call, + gpr_uint32 propagation_mask, grpc_completion_queue *cq, const char *method, const char *host, gpr_timespec deadline) { return grpc_channel_create_call_internal( - channel, cq, + channel, parent_call, propagation_mask, cq, grpc_mdelem_from_metadata_strings( channel->metadata_context, GRPC_MDSTR_REF(channel->path_string), grpc_mdstr_from_string(channel->metadata_context, method, 0)), @@ -195,11 +198,13 @@ void *grpc_channel_register_call(grpc_channel *channel, const char *method, } grpc_call *grpc_channel_create_registered_call( - grpc_channel *channel, grpc_completion_queue *completion_queue, - void *registered_call_handle, gpr_timespec deadline) { + grpc_channel *channel, grpc_call *parent_call, gpr_uint32 propagation_mask, + grpc_completion_queue *completion_queue, void *registered_call_handle, + gpr_timespec deadline) { registered_call *rc = registered_call_handle; return grpc_channel_create_call_internal( - channel, completion_queue, GRPC_MDELEM_REF(rc->path), + channel, parent_call, propagation_mask, completion_queue, + GRPC_MDELEM_REF(rc->path), rc->authority ? GRPC_MDELEM_REF(rc->authority) : NULL, deadline); } diff --git a/src/core/surface/completion_queue.c b/src/core/surface/completion_queue.c index 00429fac19..36d69cfe5f 100644 --- a/src/core/surface/completion_queue.c +++ b/src/core/surface/completion_queue.c @@ -114,6 +114,11 @@ void grpc_cq_internal_unref(grpc_completion_queue *cc) { } void grpc_cq_begin_op(grpc_completion_queue *cc) { +#ifndef NDEBUG + gpr_mu_lock(GRPC_POLLSET_MU(&cc->pollset)); + GPR_ASSERT(!cc->shutdown_called); + gpr_mu_unlock(GRPC_POLLSET_MU(&cc->pollset)); +#endif gpr_ref(&cc->pending_events); } diff --git a/src/core/surface/server.c b/src/core/surface/server.c index 29d893db71..cd1dc589e1 100644 --- a/src/core/surface/server.c +++ b/src/core/surface/server.c @@ -644,8 +644,8 @@ static void accept_stream(void *cd, grpc_transport *transport, const void *transport_server_data) { channel_data *chand = cd; /* create a call */ - grpc_call_create(chand->channel, NULL, transport_server_data, NULL, 0, - gpr_inf_future(GPR_CLOCK_REALTIME)); + grpc_call_create(chand->channel, NULL, 0, NULL, transport_server_data, NULL, + 0, gpr_inf_future(GPR_CLOCK_MONOTONIC)); } static void channel_connectivity_changed(void *cd, int iomgr_status_ignored) { diff --git a/src/cpp/client/channel.cc b/src/cpp/client/channel.cc index ee143d68a0..5f54e7fcc1 100644 --- a/src/cpp/client/channel.cc +++ b/src/cpp/client/channel.cc @@ -61,16 +61,18 @@ Channel::~Channel() { grpc_channel_destroy(c_channel_); } Call Channel::CreateCall(const RpcMethod& method, ClientContext* context, CompletionQueue* cq) { const char* host_str = host_.empty() ? NULL : host_.c_str(); - auto c_call = - method.channel_tag() && context->authority().empty() - ? grpc_channel_create_registered_call(c_channel_, cq->cq(), - method.channel_tag(), - context->raw_deadline()) - : grpc_channel_create_call(c_channel_, cq->cq(), method.name(), - context->authority().empty() - ? host_str - : context->authority().c_str(), - context->raw_deadline()); + auto c_call = method.channel_tag() && context->authority().empty() + ? grpc_channel_create_registered_call( + c_channel_, context->propagate_from_call_, + context->propagation_options_.c_bitmask(), cq->cq(), + method.channel_tag(), context->raw_deadline()) + : grpc_channel_create_call( + c_channel_, context->propagate_from_call_, + context->propagation_options_.c_bitmask(), cq->cq(), + method.name(), context->authority().empty() + ? host_str + : context->authority().c_str(), + context->raw_deadline()); grpc_census_call_set_context(c_call, context->census_context()); GRPC_TIMER_MARK(GRPC_PTAG_CPP_CALL_CREATED, c_call); context->set_call(c_call, shared_from_this()); diff --git a/src/cpp/client/client_context.cc b/src/cpp/client/client_context.cc index c38d0c1df6..1ed2d38961 100644 --- a/src/cpp/client/client_context.cc +++ b/src/cpp/client/client_context.cc @@ -37,6 +37,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/string_util.h> #include <grpc++/credentials.h> +#include <grpc++/server_context.h> #include <grpc++/time.h> #include "src/core/channel/compress_filter.h" @@ -48,7 +49,8 @@ ClientContext::ClientContext() : initial_metadata_received_(false), call_(nullptr), cq_(nullptr), - deadline_(gpr_inf_future(GPR_CLOCK_REALTIME)) {} + deadline_(gpr_inf_future(GPR_CLOCK_REALTIME)), + propagate_from_call_(nullptr) {} ClientContext::~ClientContext() { if (call_) { @@ -64,6 +66,14 @@ ClientContext::~ClientContext() { } } +std::unique_ptr<ClientContext> ClientContext::FromServerContext( + const ServerContext& context, PropagationOptions options) { + std::unique_ptr<ClientContext> ctx(new ClientContext); + ctx->propagate_from_call_ = context.call_; + ctx->propagation_options_ = options; + return ctx; +} + void ClientContext::AddMetadata(const grpc::string& meta_key, const grpc::string& meta_value) { send_initial_metadata_.insert(std::make_pair(meta_key, meta_value)); diff --git a/src/csharp/Grpc.Core.Tests/ClientServerTest.cs b/src/csharp/Grpc.Core.Tests/ClientServerTest.cs index bf7cc3fbf3..64ea21800f 100644 --- a/src/csharp/Grpc.Core.Tests/ClientServerTest.cs +++ b/src/csharp/Grpc.Core.Tests/ClientServerTest.cs @@ -46,23 +46,26 @@ namespace Grpc.Core.Tests public class ClientServerTest { const string Host = "127.0.0.1"; - const string ServiceName = "/tests.Test"; + const string ServiceName = "tests.Test"; static readonly Method<string, string> EchoMethod = new Method<string, string>( MethodType.Unary, - "/tests.Test/Echo", + ServiceName, + "Echo", Marshallers.StringMarshaller, Marshallers.StringMarshaller); static readonly Method<string, string> ConcatAndEchoMethod = new Method<string, string>( MethodType.ClientStreaming, - "/tests.Test/ConcatAndEcho", + ServiceName, + "ConcatAndEcho", Marshallers.StringMarshaller, Marshallers.StringMarshaller); static readonly Method<string, string> NonexistentMethod = new Method<string, string>( MethodType.Unary, - "/tests.Test/NonexistentMethod", + ServiceName, + "NonexistentMethod", Marshallers.StringMarshaller, Marshallers.StringMarshaller); @@ -102,17 +105,17 @@ namespace Grpc.Core.Tests [Test] public void UnaryCall() { - var internalCall = new Call<string, string>(ServiceName, EchoMethod, channel, Metadata.Empty); - Assert.AreEqual("ABC", Calls.BlockingUnaryCall(internalCall, "ABC", CancellationToken.None)); + var callDetails = new CallInvocationDetails<string, string>(channel, EchoMethod, new CallOptions()); + Assert.AreEqual("ABC", Calls.BlockingUnaryCall(callDetails, "ABC")); } [Test] public void UnaryCall_ServerHandlerThrows() { - var internalCall = new Call<string, string>(ServiceName, EchoMethod, channel, Metadata.Empty); + var callDetails = new CallInvocationDetails<string, string>(channel, EchoMethod, new CallOptions()); try { - Calls.BlockingUnaryCall(internalCall, "THROW", CancellationToken.None); + Calls.BlockingUnaryCall(callDetails, "THROW"); Assert.Fail(); } catch (RpcException e) @@ -124,10 +127,10 @@ namespace Grpc.Core.Tests [Test] public void UnaryCall_ServerHandlerThrowsRpcException() { - var internalCall = new Call<string, string>(ServiceName, EchoMethod, channel, Metadata.Empty); + var callDetails = new CallInvocationDetails<string, string>(channel, EchoMethod, new CallOptions()); try { - Calls.BlockingUnaryCall(internalCall, "THROW_UNAUTHENTICATED", CancellationToken.None); + Calls.BlockingUnaryCall(callDetails, "THROW_UNAUTHENTICATED"); Assert.Fail(); } catch (RpcException e) @@ -139,10 +142,10 @@ namespace Grpc.Core.Tests [Test] public void UnaryCall_ServerHandlerSetsStatus() { - var internalCall = new Call<string, string>(ServiceName, EchoMethod, channel, Metadata.Empty); + var callDetails = new CallInvocationDetails<string, string>(channel, EchoMethod, new CallOptions()); try { - Calls.BlockingUnaryCall(internalCall, "SET_UNAUTHENTICATED", CancellationToken.None); + Calls.BlockingUnaryCall(callDetails, "SET_UNAUTHENTICATED"); Assert.Fail(); } catch (RpcException e) @@ -152,20 +155,20 @@ namespace Grpc.Core.Tests } [Test] - public void AsyncUnaryCall() + public async Task AsyncUnaryCall() { - var internalCall = new Call<string, string>(ServiceName, EchoMethod, channel, Metadata.Empty); - var result = Calls.AsyncUnaryCall(internalCall, "ABC", CancellationToken.None).ResponseAsync.Result; + var callDetails = new CallInvocationDetails<string, string>(channel, EchoMethod, new CallOptions()); + var result = await Calls.AsyncUnaryCall(callDetails, "ABC"); Assert.AreEqual("ABC", result); } [Test] public async Task AsyncUnaryCall_ServerHandlerThrows() { - var internalCall = new Call<string, string>(ServiceName, EchoMethod, channel, Metadata.Empty); + var callDetails = new CallInvocationDetails<string, string>(channel, EchoMethod, new CallOptions()); try { - await Calls.AsyncUnaryCall(internalCall, "THROW", CancellationToken.None); + await Calls.AsyncUnaryCall(callDetails, "THROW"); Assert.Fail(); } catch (RpcException e) @@ -177,8 +180,8 @@ namespace Grpc.Core.Tests [Test] public async Task ClientStreamingCall() { - var internalCall = new Call<string, string>(ServiceName, ConcatAndEchoMethod, channel, Metadata.Empty); - var call = Calls.AsyncClientStreamingCall(internalCall, CancellationToken.None); + var callDetails = new CallInvocationDetails<string, string>(channel, ConcatAndEchoMethod, new CallOptions()); + var call = Calls.AsyncClientStreamingCall(callDetails); await call.RequestStream.WriteAll(new string[] { "A", "B", "C" }); Assert.AreEqual("ABC", await call.ResponseAsync); @@ -187,10 +190,9 @@ namespace Grpc.Core.Tests [Test] public async Task ClientStreamingCall_CancelAfterBegin() { - var internalCall = new Call<string, string>(ServiceName, ConcatAndEchoMethod, channel, Metadata.Empty); - var cts = new CancellationTokenSource(); - var call = Calls.AsyncClientStreamingCall(internalCall, cts.Token); + var callDetails = new CallInvocationDetails<string, string>(channel, ConcatAndEchoMethod, new CallOptions(cancellationToken: cts.Token)); + var call = Calls.AsyncClientStreamingCall(callDetails); // TODO(jtattermusch): we need this to ensure call has been initiated once we cancel it. await Task.Delay(1000); @@ -214,8 +216,8 @@ namespace Grpc.Core.Tests new Metadata.Entry("ascii-header", "abcdefg"), new Metadata.Entry("binary-header-bin", new byte[] { 1, 2, 3, 0, 0xff }), }; - var internalCall = new Call<string, string>(ServiceName, EchoMethod, channel, headers); - var call = Calls.AsyncUnaryCall(internalCall, "ABC", CancellationToken.None); + var callDetails = new CallInvocationDetails<string, string>(channel, EchoMethod, new CallOptions(headers: headers)); + var call = Calls.AsyncUnaryCall(callDetails, "ABC"); Assert.AreEqual("ABC", call.ResponseAsync.Result); @@ -235,25 +237,25 @@ namespace Grpc.Core.Tests { channel.Dispose(); - var internalCall = new Call<string, string>(ServiceName, EchoMethod, channel, Metadata.Empty); - Assert.Throws(typeof(ObjectDisposedException), () => Calls.BlockingUnaryCall(internalCall, "ABC", CancellationToken.None)); + var callDetails = new CallInvocationDetails<string, string>(channel, EchoMethod, new CallOptions()); + Assert.Throws(typeof(ObjectDisposedException), () => Calls.BlockingUnaryCall(callDetails, "ABC")); } [Test] public void UnaryCallPerformance() { - var internalCall = new Call<string, string>(ServiceName, EchoMethod, channel, Metadata.Empty); + var callDetails = new CallInvocationDetails<string, string>(channel, EchoMethod, new CallOptions()); BenchmarkUtil.RunBenchmark(100, 100, - () => { Calls.BlockingUnaryCall(internalCall, "ABC", default(CancellationToken)); }); + () => { Calls.BlockingUnaryCall(callDetails, "ABC"); }); } [Test] public void UnknownMethodHandler() { - var internalCall = new Call<string, string>(ServiceName, NonexistentMethod, channel, Metadata.Empty); + var callDetails = new CallInvocationDetails<string, string>(channel, NonexistentMethod, new CallOptions()); try { - Calls.BlockingUnaryCall(internalCall, "ABC", default(CancellationToken)); + Calls.BlockingUnaryCall(callDetails, "ABC"); Assert.Fail(); } catch (RpcException e) @@ -265,16 +267,16 @@ namespace Grpc.Core.Tests [Test] public void UserAgentStringPresent() { - var internalCall = new Call<string, string>(ServiceName, EchoMethod, channel, Metadata.Empty); - string userAgent = Calls.BlockingUnaryCall(internalCall, "RETURN-USER-AGENT", CancellationToken.None); + var callDetails = new CallInvocationDetails<string, string>(channel, EchoMethod, new CallOptions()); + string userAgent = Calls.BlockingUnaryCall(callDetails, "RETURN-USER-AGENT"); Assert.IsTrue(userAgent.StartsWith("grpc-csharp/")); } [Test] public void PeerInfoPresent() { - var internalCall = new Call<string, string>(ServiceName, EchoMethod, channel, Metadata.Empty); - string peer = Calls.BlockingUnaryCall(internalCall, "RETURN-PEER", CancellationToken.None); + var callDetails = new CallInvocationDetails<string, string>(channel, EchoMethod, new CallOptions()); + string peer = Calls.BlockingUnaryCall(callDetails, "RETURN-PEER"); Assert.IsTrue(peer.Contains(Host)); } @@ -286,8 +288,8 @@ namespace Grpc.Core.Tests var stateChangedTask = channel.WaitForStateChangedAsync(channel.State); - var internalCall = new Call<string, string>(ServiceName, EchoMethod, channel, Metadata.Empty); - await Calls.AsyncUnaryCall(internalCall, "abc", CancellationToken.None); + var callDetails = new CallInvocationDetails<string, string>(channel, EchoMethod, new CallOptions()); + await Calls.AsyncUnaryCall(callDetails, "abc"); await stateChangedTask; Assert.AreEqual(ChannelState.Ready, channel.State); diff --git a/src/csharp/Grpc.Core.Tests/TimeoutsTest.cs b/src/csharp/Grpc.Core.Tests/TimeoutsTest.cs index d84801fbac..fc395b0acd 100644 --- a/src/csharp/Grpc.Core.Tests/TimeoutsTest.cs +++ b/src/csharp/Grpc.Core.Tests/TimeoutsTest.cs @@ -49,11 +49,12 @@ namespace Grpc.Core.Tests public class TimeoutsTest { const string Host = "localhost"; - const string ServiceName = "/tests.Test"; + const string ServiceName = "tests.Test"; static readonly Method<string, string> TestMethod = new Method<string, string>( MethodType.Unary, - "/tests.Test/Test", + ServiceName, + "Test", Marshallers.StringMarshaller, Marshallers.StringMarshaller); @@ -98,12 +99,12 @@ namespace Grpc.Core.Tests public void InfiniteDeadline() { // no deadline specified, check server sees infinite deadline - var internalCall = new Call<string, string>(ServiceName, TestMethod, channel, Metadata.Empty); - Assert.AreEqual("DATETIME_MAXVALUE", Calls.BlockingUnaryCall(internalCall, "RETURN_DEADLINE", CancellationToken.None)); + var callDetails = new CallInvocationDetails<string, string>(channel, TestMethod, new CallOptions()); + Assert.AreEqual("DATETIME_MAXVALUE", Calls.BlockingUnaryCall(callDetails, "RETURN_DEADLINE")); // DateTime.MaxValue deadline specified, check server sees infinite deadline - var internalCall2 = new Call<string, string>(ServiceName, TestMethod, channel, Metadata.Empty, DateTime.MaxValue); - Assert.AreEqual("DATETIME_MAXVALUE", Calls.BlockingUnaryCall(internalCall2, "RETURN_DEADLINE", CancellationToken.None)); + var callDetails2 = new CallInvocationDetails<string, string>(channel, TestMethod, new CallOptions()); + Assert.AreEqual("DATETIME_MAXVALUE", Calls.BlockingUnaryCall(callDetails2, "RETURN_DEADLINE")); } [Test] @@ -112,9 +113,9 @@ namespace Grpc.Core.Tests var remainingTimeClient = TimeSpan.FromDays(7); var deadline = DateTime.UtcNow + remainingTimeClient; Thread.Sleep(1000); - var internalCall = new Call<string, string>(ServiceName, TestMethod, channel, Metadata.Empty, deadline); + var callDetails = new CallInvocationDetails<string, string>(channel, TestMethod, new CallOptions(deadline: deadline)); - var serverDeadlineTicksString = Calls.BlockingUnaryCall(internalCall, "RETURN_DEADLINE", CancellationToken.None); + var serverDeadlineTicksString = Calls.BlockingUnaryCall(callDetails, "RETURN_DEADLINE"); var serverDeadline = new DateTime(long.Parse(serverDeadlineTicksString), DateTimeKind.Utc); // A fairly relaxed check that the deadline set by client and deadline seen by server @@ -126,12 +127,11 @@ namespace Grpc.Core.Tests [Test] public void DeadlineInThePast() { - var deadline = DateTime.MinValue; - var internalCall = new Call<string, string>(ServiceName, TestMethod, channel, Metadata.Empty, deadline); + var callDetails = new CallInvocationDetails<string, string>(channel, TestMethod, new CallOptions(deadline: DateTime.MinValue)); try { - Calls.BlockingUnaryCall(internalCall, "TIMEOUT", CancellationToken.None); + Calls.BlockingUnaryCall(callDetails, "TIMEOUT"); Assert.Fail(); } catch (RpcException e) @@ -145,11 +145,11 @@ namespace Grpc.Core.Tests public void DeadlineExceededStatusOnTimeout() { var deadline = DateTime.UtcNow.Add(TimeSpan.FromSeconds(5)); - var internalCall = new Call<string, string>(ServiceName, TestMethod, channel, Metadata.Empty, deadline); + var callDetails = new CallInvocationDetails<string, string>(channel, TestMethod, new CallOptions(deadline: deadline)); try { - Calls.BlockingUnaryCall(internalCall, "TIMEOUT", CancellationToken.None); + Calls.BlockingUnaryCall(callDetails, "TIMEOUT"); Assert.Fail(); } catch (RpcException e) @@ -163,11 +163,11 @@ namespace Grpc.Core.Tests public void ServerReceivesCancellationOnTimeout() { var deadline = DateTime.UtcNow.Add(TimeSpan.FromSeconds(5)); - var internalCall = new Call<string, string>(ServiceName, TestMethod, channel, Metadata.Empty, deadline); + var callDetails = new CallInvocationDetails<string, string>(channel, TestMethod, new CallOptions(deadline: deadline)); try { - Calls.BlockingUnaryCall(internalCall, "CHECK_CANCELLATION_RECEIVED", CancellationToken.None); + Calls.BlockingUnaryCall(callDetails, "CHECK_CANCELLATION_RECEIVED"); Assert.Fail(); } catch (RpcException e) diff --git a/src/csharp/Grpc.Core/Call.cs b/src/csharp/Grpc.Core/CallInvocationDetails.cs index 94c5e26082..eb23a3a209 100644 --- a/src/csharp/Grpc.Core/Call.cs +++ b/src/csharp/Grpc.Core/CallInvocationDetails.cs @@ -38,30 +38,30 @@ using Grpc.Core.Utils; namespace Grpc.Core { /// <summary> - /// Abstraction of a call to be invoked on a client. + /// Details about a client-side call to be invoked. /// </summary> - public class Call<TRequest, TResponse> + public class CallInvocationDetails<TRequest, TResponse> { - readonly string name; + readonly Channel channel; + readonly string method; + readonly string host; readonly Marshaller<TRequest> requestMarshaller; readonly Marshaller<TResponse> responseMarshaller; - readonly Channel channel; - readonly Metadata headers; - readonly DateTime deadline; + readonly CallOptions options; - public Call(string serviceName, Method<TRequest, TResponse> method, Channel channel, Metadata headers) - : this(serviceName, method, channel, headers, DateTime.MaxValue) + public CallInvocationDetails(Channel channel, Method<TRequest, TResponse> method, CallOptions options) : + this(channel, method.FullName, null, method.RequestMarshaller, method.ResponseMarshaller, options) { } - public Call(string serviceName, Method<TRequest, TResponse> method, Channel channel, Metadata headers, DateTime deadline) + public CallInvocationDetails(Channel channel, string method, string host, Marshaller<TRequest> requestMarshaller, Marshaller<TResponse> responseMarshaller, CallOptions options) { - this.name = method.GetFullName(serviceName); - this.requestMarshaller = method.RequestMarshaller; - this.responseMarshaller = method.ResponseMarshaller; this.channel = Preconditions.CheckNotNull(channel); - this.headers = Preconditions.CheckNotNull(headers); - this.deadline = deadline; + this.method = Preconditions.CheckNotNull(method); + this.host = host; + this.requestMarshaller = Preconditions.CheckNotNull(requestMarshaller); + this.responseMarshaller = Preconditions.CheckNotNull(responseMarshaller); + this.options = Preconditions.CheckNotNull(options); } public Channel Channel @@ -72,49 +72,43 @@ namespace Grpc.Core } } - /// <summary> - /// Full methods name including the service name. - /// </summary> - public string Name + public string Method { get { - return name; + return this.method; } } - /// <summary> - /// Headers to send at the beginning of the call. - /// </summary> - public Metadata Headers + public string Host { get { - return headers; + return this.host; } } - public DateTime Deadline + public Marshaller<TRequest> RequestMarshaller { get { - return this.deadline; + return this.requestMarshaller; } } - public Marshaller<TRequest> RequestMarshaller + public Marshaller<TResponse> ResponseMarshaller { get { - return requestMarshaller; + return this.responseMarshaller; } } - - public Marshaller<TResponse> ResponseMarshaller + + public CallOptions Options { get { - return responseMarshaller; + return options; } } } diff --git a/src/csharp/Grpc.Core/CallOptions.cs b/src/csharp/Grpc.Core/CallOptions.cs new file mode 100644 index 0000000000..8e9739335f --- /dev/null +++ b/src/csharp/Grpc.Core/CallOptions.cs @@ -0,0 +1,89 @@ +#region Copyright notice and license + +// Copyright 2015, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#endregion + +using System; +using System.Threading; + +using Grpc.Core.Internal; +using Grpc.Core.Utils; + +namespace Grpc.Core +{ + /// <summary> + /// Options for calls made by client. + /// </summary> + public class CallOptions + { + readonly Metadata headers; + readonly DateTime deadline; + readonly CancellationToken cancellationToken; + + /// <summary> + /// Creates a new instance of <c>CallOptions</c>. + /// </summary> + /// <param name="headers">Headers to be sent with the call.</param> + /// <param name="deadline">Deadline for the call to finish. null means no deadline.</param> + /// <param name="cancellationToken">Can be used to request cancellation of the call.</param> + public CallOptions(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) + { + // TODO(jtattermusch): consider only creating metadata object once it's really needed. + this.headers = headers != null ? headers : new Metadata(); + this.deadline = deadline.HasValue ? deadline.Value : DateTime.MaxValue; + this.cancellationToken = cancellationToken; + } + + /// <summary> + /// Headers to send at the beginning of the call. + /// </summary> + public Metadata Headers + { + get { return headers; } + } + + /// <summary> + /// Call deadline. + /// </summary> + public DateTime Deadline + { + get { return deadline; } + } + + /// <summary> + /// Token that can be used for cancelling the call. + /// </summary> + public CancellationToken CancellationToken + { + get { return cancellationToken; } + } + } +} diff --git a/src/csharp/Grpc.Core/Calls.cs b/src/csharp/Grpc.Core/Calls.cs index 054fc27491..00a8cabf82 100644 --- a/src/csharp/Grpc.Core/Calls.cs +++ b/src/csharp/Grpc.Core/Calls.cs @@ -43,70 +43,52 @@ namespace Grpc.Core /// </summary> public static class Calls { - public static TResponse BlockingUnaryCall<TRequest, TResponse>(Call<TRequest, TResponse> call, TRequest req, CancellationToken token) + public static TResponse BlockingUnaryCall<TRequest, TResponse>(CallInvocationDetails<TRequest, TResponse> call, TRequest req) where TRequest : class where TResponse : class { - var asyncCall = new AsyncCall<TRequest, TResponse>(call.RequestMarshaller.Serializer, call.ResponseMarshaller.Deserializer); - // TODO(jtattermusch): this gives a race that cancellation can be requested before the call even starts. - RegisterCancellationCallback(asyncCall, token); - return asyncCall.UnaryCall(call.Channel, call.Name, req, call.Headers, call.Deadline); + var asyncCall = new AsyncCall<TRequest, TResponse>(call); + return asyncCall.UnaryCall(req); } - public static AsyncUnaryCall<TResponse> AsyncUnaryCall<TRequest, TResponse>(Call<TRequest, TResponse> call, TRequest req, CancellationToken token) + public static AsyncUnaryCall<TResponse> AsyncUnaryCall<TRequest, TResponse>(CallInvocationDetails<TRequest, TResponse> call, TRequest req) where TRequest : class where TResponse : class { - var asyncCall = new AsyncCall<TRequest, TResponse>(call.RequestMarshaller.Serializer, call.ResponseMarshaller.Deserializer); - asyncCall.Initialize(call.Channel, call.Channel.CompletionQueue, call.Name, Timespec.FromDateTime(call.Deadline)); - var asyncResult = asyncCall.UnaryCallAsync(req, call.Headers, call.Deadline); - RegisterCancellationCallback(asyncCall, token); + var asyncCall = new AsyncCall<TRequest, TResponse>(call); + var asyncResult = asyncCall.UnaryCallAsync(req); return new AsyncUnaryCall<TResponse>(asyncResult, asyncCall.GetStatus, asyncCall.GetTrailers, asyncCall.Cancel); } - public static AsyncServerStreamingCall<TResponse> AsyncServerStreamingCall<TRequest, TResponse>(Call<TRequest, TResponse> call, TRequest req, CancellationToken token) + public static AsyncServerStreamingCall<TResponse> AsyncServerStreamingCall<TRequest, TResponse>(CallInvocationDetails<TRequest, TResponse> call, TRequest req) where TRequest : class where TResponse : class { - var asyncCall = new AsyncCall<TRequest, TResponse>(call.RequestMarshaller.Serializer, call.ResponseMarshaller.Deserializer); - asyncCall.Initialize(call.Channel, call.Channel.CompletionQueue, call.Name, Timespec.FromDateTime(call.Deadline)); - asyncCall.StartServerStreamingCall(req, call.Headers, call.Deadline); - RegisterCancellationCallback(asyncCall, token); + var asyncCall = new AsyncCall<TRequest, TResponse>(call); + asyncCall.StartServerStreamingCall(req); var responseStream = new ClientResponseStream<TRequest, TResponse>(asyncCall); return new AsyncServerStreamingCall<TResponse>(responseStream, asyncCall.GetStatus, asyncCall.GetTrailers, asyncCall.Cancel); } - public static AsyncClientStreamingCall<TRequest, TResponse> AsyncClientStreamingCall<TRequest, TResponse>(Call<TRequest, TResponse> call, CancellationToken token) + public static AsyncClientStreamingCall<TRequest, TResponse> AsyncClientStreamingCall<TRequest, TResponse>(CallInvocationDetails<TRequest, TResponse> call) where TRequest : class where TResponse : class { - var asyncCall = new AsyncCall<TRequest, TResponse>(call.RequestMarshaller.Serializer, call.ResponseMarshaller.Deserializer); - asyncCall.Initialize(call.Channel, call.Channel.CompletionQueue, call.Name, Timespec.FromDateTime(call.Deadline)); - var resultTask = asyncCall.ClientStreamingCallAsync(call.Headers, call.Deadline); - RegisterCancellationCallback(asyncCall, token); + var asyncCall = new AsyncCall<TRequest, TResponse>(call); + var resultTask = asyncCall.ClientStreamingCallAsync(); var requestStream = new ClientRequestStream<TRequest, TResponse>(asyncCall); return new AsyncClientStreamingCall<TRequest, TResponse>(requestStream, resultTask, asyncCall.GetStatus, asyncCall.GetTrailers, asyncCall.Cancel); } - public static AsyncDuplexStreamingCall<TRequest, TResponse> AsyncDuplexStreamingCall<TRequest, TResponse>(Call<TRequest, TResponse> call, CancellationToken token) + public static AsyncDuplexStreamingCall<TRequest, TResponse> AsyncDuplexStreamingCall<TRequest, TResponse>(CallInvocationDetails<TRequest, TResponse> call) where TRequest : class where TResponse : class { - var asyncCall = new AsyncCall<TRequest, TResponse>(call.RequestMarshaller.Serializer, call.ResponseMarshaller.Deserializer); - asyncCall.Initialize(call.Channel, call.Channel.CompletionQueue, call.Name, Timespec.FromDateTime(call.Deadline)); - asyncCall.StartDuplexStreamingCall(call.Headers, call.Deadline); - RegisterCancellationCallback(asyncCall, token); + var asyncCall = new AsyncCall<TRequest, TResponse>(call); + asyncCall.StartDuplexStreamingCall(); var requestStream = new ClientRequestStream<TRequest, TResponse>(asyncCall); var responseStream = new ClientResponseStream<TRequest, TResponse>(asyncCall); return new AsyncDuplexStreamingCall<TRequest, TResponse>(requestStream, responseStream, asyncCall.GetStatus, asyncCall.GetTrailers, asyncCall.Cancel); } - - private static void RegisterCancellationCallback<TRequest, TResponse>(AsyncCall<TRequest, TResponse> asyncCall, CancellationToken token) - { - if (token.CanBeCanceled) - { - token.Register(() => asyncCall.Cancel()); - } - } } } diff --git a/src/csharp/Grpc.Core/Channel.cs b/src/csharp/Grpc.Core/Channel.cs index 0b69610443..9273ea4582 100644 --- a/src/csharp/Grpc.Core/Channel.cs +++ b/src/csharp/Grpc.Core/Channel.cs @@ -178,22 +178,6 @@ namespace Grpc.Core } } - internal CompletionQueueSafeHandle CompletionQueue - { - get - { - return this.environment.CompletionQueue; - } - } - - internal CompletionRegistry CompletionRegistry - { - get - { - return this.environment.CompletionRegistry; - } - } - internal GrpcEnvironment Environment { get diff --git a/src/csharp/Grpc.Core/ClientBase.cs b/src/csharp/Grpc.Core/ClientBase.cs index fd3473128a..88494bb4ac 100644 --- a/src/csharp/Grpc.Core/ClientBase.cs +++ b/src/csharp/Grpc.Core/ClientBase.cs @@ -76,19 +76,17 @@ namespace Grpc.Core /// <summary> /// Creates a new call to given method. /// </summary> - protected Call<TRequest, TResponse> CreateCall<TRequest, TResponse>(string serviceName, Method<TRequest, TResponse> method, Metadata metadata, DateTime? deadline) + protected CallInvocationDetails<TRequest, TResponse> CreateCall<TRequest, TResponse>(Method<TRequest, TResponse> method, CallOptions options) where TRequest : class where TResponse : class { var interceptor = HeaderInterceptor; if (interceptor != null) { - metadata = metadata ?? new Metadata(); - interceptor(metadata); - metadata.Freeze(); + interceptor(options.Headers); + options.Headers.Freeze(); } - return new Call<TRequest, TResponse>(serviceName, method, channel, - metadata ?? Metadata.Empty, deadline ?? DateTime.MaxValue); + return new CallInvocationDetails<TRequest, TResponse>(channel, method, options); } } } diff --git a/src/csharp/Grpc.Core/Grpc.Core.csproj b/src/csharp/Grpc.Core/Grpc.Core.csproj index 17add77164..52defd1965 100644 --- a/src/csharp/Grpc.Core/Grpc.Core.csproj +++ b/src/csharp/Grpc.Core/Grpc.Core.csproj @@ -57,7 +57,6 @@ <Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="RpcException.cs" /> <Compile Include="Calls.cs" /> - <Compile Include="Call.cs" /> <Compile Include="AsyncClientStreamingCall.cs" /> <Compile Include="GrpcEnvironment.cs" /> <Compile Include="Status.cs" /> @@ -114,6 +113,8 @@ <Compile Include="Logging\ConsoleLogger.cs" /> <Compile Include="Internal\NativeLogRedirector.cs" /> <Compile Include="ChannelState.cs" /> + <Compile Include="CallInvocationDetails.cs" /> + <Compile Include="CallOptions.cs" /> </ItemGroup> <ItemGroup> <None Include="Grpc.Core.nuspec" /> diff --git a/src/csharp/Grpc.Core/Internal/AsyncCall.cs b/src/csharp/Grpc.Core/Internal/AsyncCall.cs index 48f466460f..414b5c4282 100644 --- a/src/csharp/Grpc.Core/Internal/AsyncCall.cs +++ b/src/csharp/Grpc.Core/Internal/AsyncCall.cs @@ -50,7 +50,7 @@ namespace Grpc.Core.Internal { static readonly ILogger Logger = GrpcEnvironment.Logger.ForType<AsyncCall<TRequest, TResponse>>(); - Channel channel; + readonly CallInvocationDetails<TRequest, TResponse> callDetails; // Completion of a pending unary response if not null. TaskCompletionSource<TResponse> unaryResponseTcs; @@ -60,26 +60,18 @@ namespace Grpc.Core.Internal bool readObserverCompleted; // True if readObserver has already been completed. - public AsyncCall(Func<TRequest, byte[]> serializer, Func<byte[], TResponse> deserializer) : base(serializer, deserializer) + public AsyncCall(CallInvocationDetails<TRequest, TResponse> callDetails) + : base(callDetails.RequestMarshaller.Serializer, callDetails.ResponseMarshaller.Deserializer) { - } - - public void Initialize(Channel channel, CompletionQueueSafeHandle cq, string methodName, Timespec deadline) - { - this.channel = channel; - var call = channel.Handle.CreateCall(channel.CompletionRegistry, cq, methodName, null, deadline); - channel.Environment.DebugStats.ActiveClientCalls.Increment(); - InitializeInternal(call); + this.callDetails = callDetails; } // TODO: this method is not Async, so it shouldn't be in AsyncCall class, but // it is reusing fair amount of code in this class, so we are leaving it here. - // TODO: for other calls, you need to call Initialize, this methods calls initialize - // on its own, so there's a usage inconsistency. /// <summary> /// Blocking unary request - unary response call. /// </summary> - public TResponse UnaryCall(Channel channel, string methodName, TRequest msg, Metadata headers, DateTime deadline) + public TResponse UnaryCall(TRequest msg) { using (CompletionQueueSafeHandle cq = CompletionQueueSafeHandle.Create()) { @@ -89,13 +81,15 @@ namespace Grpc.Core.Internal lock (myLock) { - Initialize(channel, cq, methodName, Timespec.FromDateTime(deadline)); + Preconditions.CheckState(!started); started = true; + Initialize(cq); + halfcloseRequested = true; readingDone = true; } - using (var metadataArray = MetadataArraySafeHandle.Create(headers)) + using (var metadataArray = MetadataArraySafeHandle.Create(callDetails.Options.Headers)) { using (var ctx = BatchContextSafeHandle.Create()) { @@ -129,20 +123,22 @@ namespace Grpc.Core.Internal /// <summary> /// Starts a unary request - unary response call. /// </summary> - public Task<TResponse> UnaryCallAsync(TRequest msg, Metadata headers, DateTime deadline) + public Task<TResponse> UnaryCallAsync(TRequest msg) { lock (myLock) { - Preconditions.CheckNotNull(call); - + Preconditions.CheckState(!started); started = true; + + Initialize(callDetails.Channel.Environment.CompletionQueue); + halfcloseRequested = true; readingDone = true; byte[] payload = UnsafeSerialize(msg); unaryResponseTcs = new TaskCompletionSource<TResponse>(); - using (var metadataArray = MetadataArraySafeHandle.Create(headers)) + using (var metadataArray = MetadataArraySafeHandle.Create(callDetails.Options.Headers)) { call.StartUnary(payload, HandleUnaryResponse, metadataArray); } @@ -154,17 +150,19 @@ namespace Grpc.Core.Internal /// Starts a streamed request - unary response call. /// Use StartSendMessage and StartSendCloseFromClient to stream requests. /// </summary> - public Task<TResponse> ClientStreamingCallAsync(Metadata headers, DateTime deadline) + public Task<TResponse> ClientStreamingCallAsync() { lock (myLock) { - Preconditions.CheckNotNull(call); - + Preconditions.CheckState(!started); started = true; + + Initialize(callDetails.Channel.Environment.CompletionQueue); + readingDone = true; unaryResponseTcs = new TaskCompletionSource<TResponse>(); - using (var metadataArray = MetadataArraySafeHandle.Create(headers)) + using (var metadataArray = MetadataArraySafeHandle.Create(callDetails.Options.Headers)) { call.StartClientStreaming(HandleUnaryResponse, metadataArray); } @@ -176,19 +174,21 @@ namespace Grpc.Core.Internal /// <summary> /// Starts a unary request - streamed response call. /// </summary> - public void StartServerStreamingCall(TRequest msg, Metadata headers, DateTime deadline) + public void StartServerStreamingCall(TRequest msg) { lock (myLock) { - Preconditions.CheckNotNull(call); - + Preconditions.CheckState(!started); started = true; + + Initialize(callDetails.Channel.Environment.CompletionQueue); + halfcloseRequested = true; halfclosed = true; // halfclose not confirmed yet, but it will be once finishedHandler is called. byte[] payload = UnsafeSerialize(msg); - using (var metadataArray = MetadataArraySafeHandle.Create(headers)) + using (var metadataArray = MetadataArraySafeHandle.Create(callDetails.Options.Headers)) { call.StartServerStreaming(payload, HandleFinished, metadataArray); } @@ -199,15 +199,16 @@ namespace Grpc.Core.Internal /// Starts a streaming request - streaming response call. /// Use StartSendMessage and StartSendCloseFromClient to stream requests. /// </summary> - public void StartDuplexStreamingCall(Metadata headers, DateTime deadline) + public void StartDuplexStreamingCall() { lock (myLock) { - Preconditions.CheckNotNull(call); - + Preconditions.CheckState(!started); started = true; - using (var metadataArray = MetadataArraySafeHandle.Create(headers)) + Initialize(callDetails.Channel.Environment.CompletionQueue); + + using (var metadataArray = MetadataArraySafeHandle.Create(callDetails.Options.Headers)) { call.StartDuplexStreaming(HandleFinished, metadataArray); } @@ -309,7 +310,26 @@ namespace Grpc.Core.Internal protected override void OnReleaseResources() { - channel.Environment.DebugStats.ActiveClientCalls.Decrement(); + callDetails.Channel.Environment.DebugStats.ActiveClientCalls.Decrement(); + } + + private void Initialize(CompletionQueueSafeHandle cq) + { + var call = callDetails.Channel.Handle.CreateCall(callDetails.Channel.Environment.CompletionRegistry, cq, + callDetails.Method, callDetails.Host, Timespec.FromDateTime(callDetails.Options.Deadline)); + callDetails.Channel.Environment.DebugStats.ActiveClientCalls.Increment(); + InitializeInternal(call); + RegisterCancellationCallback(); + } + + // Make sure that once cancellationToken for this call is cancelled, Cancel() will be called. + private void RegisterCancellationCallback() + { + var token = callDetails.Options.CancellationToken; + if (token.CanBeCanceled) + { + token.Register(() => this.Cancel()); + } } /// <summary> diff --git a/src/csharp/Grpc.Core/Method.cs b/src/csharp/Grpc.Core/Method.cs index 77d36191c3..cc047ac9f8 100644 --- a/src/csharp/Grpc.Core/Method.cs +++ b/src/csharp/Grpc.Core/Method.cs @@ -53,16 +53,20 @@ namespace Grpc.Core public class Method<TRequest, TResponse> { readonly MethodType type; + readonly string serviceName; readonly string name; readonly Marshaller<TRequest> requestMarshaller; readonly Marshaller<TResponse> responseMarshaller; + readonly string fullName; - public Method(MethodType type, string name, Marshaller<TRequest> requestMarshaller, Marshaller<TResponse> responseMarshaller) + public Method(MethodType type, string serviceName, string name, Marshaller<TRequest> requestMarshaller, Marshaller<TResponse> responseMarshaller) { this.type = type; - this.name = name; - this.requestMarshaller = requestMarshaller; - this.responseMarshaller = responseMarshaller; + this.serviceName = Preconditions.CheckNotNull(serviceName); + this.name = Preconditions.CheckNotNull(name); + this.requestMarshaller = Preconditions.CheckNotNull(requestMarshaller); + this.responseMarshaller = Preconditions.CheckNotNull(responseMarshaller); + this.fullName = GetFullName(serviceName); } public MethodType Type @@ -72,6 +76,14 @@ namespace Grpc.Core return this.type; } } + + public string ServiceName + { + get + { + return this.serviceName; + } + } public string Name { @@ -97,6 +109,14 @@ namespace Grpc.Core } } + public string FullName + { + get + { + return this.fullName; + } + } + /// <summary> /// Gets full name of the method including the service name. /// </summary> diff --git a/src/csharp/Grpc.Core/ServerCallContext.cs b/src/csharp/Grpc.Core/ServerCallContext.cs index 0c48adaea5..032b1390db 100644 --- a/src/csharp/Grpc.Core/ServerCallContext.cs +++ b/src/csharp/Grpc.Core/ServerCallContext.cs @@ -65,7 +65,7 @@ namespace Grpc.Core this.cancellationToken = cancellationToken; } - /// <summary> Name of method called in this RPC. </summary> + /// <summary>Name of method called in this RPC.</summary> public string Method { get @@ -74,7 +74,7 @@ namespace Grpc.Core } } - /// <summary> Name of host called in this RPC. </summary> + /// <summary>Name of host called in this RPC.</summary> public string Host { get @@ -83,7 +83,7 @@ namespace Grpc.Core } } - /// <summary> Address of the remote endpoint in URI format. </summary> + /// <summary>Address of the remote endpoint in URI format.</summary> public string Peer { get @@ -92,7 +92,7 @@ namespace Grpc.Core } } - /// <summary> Deadline for this RPC. </summary> + /// <summary>Deadline for this RPC.</summary> public DateTime Deadline { get @@ -101,7 +101,7 @@ namespace Grpc.Core } } - /// <summary> Initial metadata sent by client. </summary> + /// <summary>Initial metadata sent by client.</summary> public Metadata RequestHeaders { get @@ -110,8 +110,7 @@ namespace Grpc.Core } } - // TODO(jtattermusch): support signalling cancellation. - /// <summary> Cancellation token signals when call is cancelled. </summary> + ///<summary>Cancellation token signals when call is cancelled.</summary> public CancellationToken CancellationToken { get @@ -120,7 +119,7 @@ namespace Grpc.Core } } - /// <summary> Trailers to send back to client after RPC finishes.</summary> + /// <summary>Trailers to send back to client after RPC finishes.</summary> public Metadata ResponseTrailers { get diff --git a/src/csharp/Grpc.Examples/MathGrpc.cs b/src/csharp/Grpc.Examples/MathGrpc.cs index 67827e7b4f..4941ff35f7 100644 --- a/src/csharp/Grpc.Examples/MathGrpc.cs +++ b/src/csharp/Grpc.Examples/MathGrpc.cs @@ -19,24 +19,28 @@ namespace math { static readonly Method<global::math.DivArgs, global::math.DivReply> __Method_Div = new Method<global::math.DivArgs, global::math.DivReply>( MethodType.Unary, + __ServiceName, "Div", __Marshaller_DivArgs, __Marshaller_DivReply); static readonly Method<global::math.DivArgs, global::math.DivReply> __Method_DivMany = new Method<global::math.DivArgs, global::math.DivReply>( MethodType.DuplexStreaming, + __ServiceName, "DivMany", __Marshaller_DivArgs, __Marshaller_DivReply); static readonly Method<global::math.FibArgs, global::math.Num> __Method_Fib = new Method<global::math.FibArgs, global::math.Num>( MethodType.ServerStreaming, + __ServiceName, "Fib", __Marshaller_FibArgs, __Marshaller_Num); static readonly Method<global::math.Num, global::math.Num> __Method_Sum = new Method<global::math.Num, global::math.Num>( MethodType.ClientStreaming, + __ServiceName, "Sum", __Marshaller_Num, __Marshaller_Num); @@ -45,10 +49,15 @@ namespace math { public interface IMathClient { global::math.DivReply Div(global::math.DivArgs request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + global::math.DivReply Div(global::math.DivArgs request, CallOptions options); AsyncUnaryCall<global::math.DivReply> DivAsync(global::math.DivArgs request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + AsyncUnaryCall<global::math.DivReply> DivAsync(global::math.DivArgs request, CallOptions options); AsyncDuplexStreamingCall<global::math.DivArgs, global::math.DivReply> DivMany(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + AsyncDuplexStreamingCall<global::math.DivArgs, global::math.DivReply> DivMany(CallOptions options); AsyncServerStreamingCall<global::math.Num> Fib(global::math.FibArgs request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + AsyncServerStreamingCall<global::math.Num> Fib(global::math.FibArgs request, CallOptions options); AsyncClientStreamingCall<global::math.Num, global::math.Num> Sum(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + AsyncClientStreamingCall<global::math.Num, global::math.Num> Sum(CallOptions options); } // server-side interface @@ -68,28 +77,53 @@ namespace math { } public global::math.DivReply Div(global::math.DivArgs request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { - var call = CreateCall(__ServiceName, __Method_Div, headers, deadline); - return Calls.BlockingUnaryCall(call, request, cancellationToken); + var call = CreateCall(__Method_Div, new CallOptions(headers, deadline, cancellationToken)); + return Calls.BlockingUnaryCall(call, request); + } + public global::math.DivReply Div(global::math.DivArgs request, CallOptions options) + { + var call = CreateCall(__Method_Div, options); + return Calls.BlockingUnaryCall(call, request); } public AsyncUnaryCall<global::math.DivReply> DivAsync(global::math.DivArgs request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { - var call = CreateCall(__ServiceName, __Method_Div, headers, deadline); - return Calls.AsyncUnaryCall(call, request, cancellationToken); + var call = CreateCall(__Method_Div, new CallOptions(headers, deadline, cancellationToken)); + return Calls.AsyncUnaryCall(call, request); + } + public AsyncUnaryCall<global::math.DivReply> DivAsync(global::math.DivArgs request, CallOptions options) + { + var call = CreateCall(__Method_Div, options); + return Calls.AsyncUnaryCall(call, request); } public AsyncDuplexStreamingCall<global::math.DivArgs, global::math.DivReply> DivMany(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { - var call = CreateCall(__ServiceName, __Method_DivMany, headers, deadline); - return Calls.AsyncDuplexStreamingCall(call, cancellationToken); + var call = CreateCall(__Method_DivMany, new CallOptions(headers, deadline, cancellationToken)); + return Calls.AsyncDuplexStreamingCall(call); + } + public AsyncDuplexStreamingCall<global::math.DivArgs, global::math.DivReply> DivMany(CallOptions options) + { + var call = CreateCall(__Method_DivMany, options); + return Calls.AsyncDuplexStreamingCall(call); } public AsyncServerStreamingCall<global::math.Num> Fib(global::math.FibArgs request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { - var call = CreateCall(__ServiceName, __Method_Fib, headers, deadline); - return Calls.AsyncServerStreamingCall(call, request, cancellationToken); + var call = CreateCall(__Method_Fib, new CallOptions(headers, deadline, cancellationToken)); + return Calls.AsyncServerStreamingCall(call, request); + } + public AsyncServerStreamingCall<global::math.Num> Fib(global::math.FibArgs request, CallOptions options) + { + var call = CreateCall(__Method_Fib, options); + return Calls.AsyncServerStreamingCall(call, request); } public AsyncClientStreamingCall<global::math.Num, global::math.Num> Sum(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { - var call = CreateCall(__ServiceName, __Method_Sum, headers, deadline); - return Calls.AsyncClientStreamingCall(call, cancellationToken); + var call = CreateCall(__Method_Sum, new CallOptions(headers, deadline, cancellationToken)); + return Calls.AsyncClientStreamingCall(call); + } + public AsyncClientStreamingCall<global::math.Num, global::math.Num> Sum(CallOptions options) + { + var call = CreateCall(__Method_Sum, options); + return Calls.AsyncClientStreamingCall(call); } } diff --git a/src/csharp/Grpc.HealthCheck/HealthGrpc.cs b/src/csharp/Grpc.HealthCheck/HealthGrpc.cs index 892cdb3f04..0dabc91f7c 100644 --- a/src/csharp/Grpc.HealthCheck/HealthGrpc.cs +++ b/src/csharp/Grpc.HealthCheck/HealthGrpc.cs @@ -17,6 +17,7 @@ namespace Grpc.Health.V1Alpha { static readonly Method<global::Grpc.Health.V1Alpha.HealthCheckRequest, global::Grpc.Health.V1Alpha.HealthCheckResponse> __Method_Check = new Method<global::Grpc.Health.V1Alpha.HealthCheckRequest, global::Grpc.Health.V1Alpha.HealthCheckResponse>( MethodType.Unary, + __ServiceName, "Check", __Marshaller_HealthCheckRequest, __Marshaller_HealthCheckResponse); @@ -25,7 +26,9 @@ namespace Grpc.Health.V1Alpha { public interface IHealthClient { global::Grpc.Health.V1Alpha.HealthCheckResponse Check(global::Grpc.Health.V1Alpha.HealthCheckRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + global::Grpc.Health.V1Alpha.HealthCheckResponse Check(global::Grpc.Health.V1Alpha.HealthCheckRequest request, CallOptions options); AsyncUnaryCall<global::Grpc.Health.V1Alpha.HealthCheckResponse> CheckAsync(global::Grpc.Health.V1Alpha.HealthCheckRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + AsyncUnaryCall<global::Grpc.Health.V1Alpha.HealthCheckResponse> CheckAsync(global::Grpc.Health.V1Alpha.HealthCheckRequest request, CallOptions options); } // server-side interface @@ -42,13 +45,23 @@ namespace Grpc.Health.V1Alpha { } public global::Grpc.Health.V1Alpha.HealthCheckResponse Check(global::Grpc.Health.V1Alpha.HealthCheckRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { - var call = CreateCall(__ServiceName, __Method_Check, headers, deadline); - return Calls.BlockingUnaryCall(call, request, cancellationToken); + var call = CreateCall(__Method_Check, new CallOptions(headers, deadline, cancellationToken)); + return Calls.BlockingUnaryCall(call, request); + } + public global::Grpc.Health.V1Alpha.HealthCheckResponse Check(global::Grpc.Health.V1Alpha.HealthCheckRequest request, CallOptions options) + { + var call = CreateCall(__Method_Check, options); + return Calls.BlockingUnaryCall(call, request); } public AsyncUnaryCall<global::Grpc.Health.V1Alpha.HealthCheckResponse> CheckAsync(global::Grpc.Health.V1Alpha.HealthCheckRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { - var call = CreateCall(__ServiceName, __Method_Check, headers, deadline); - return Calls.AsyncUnaryCall(call, request, cancellationToken); + var call = CreateCall(__Method_Check, new CallOptions(headers, deadline, cancellationToken)); + return Calls.AsyncUnaryCall(call, request); + } + public AsyncUnaryCall<global::Grpc.Health.V1Alpha.HealthCheckResponse> CheckAsync(global::Grpc.Health.V1Alpha.HealthCheckRequest request, CallOptions options) + { + var call = CreateCall(__Method_Check, options); + return Calls.AsyncUnaryCall(call, request); } } diff --git a/src/csharp/Grpc.IntegrationTesting/TestGrpc.cs b/src/csharp/Grpc.IntegrationTesting/TestGrpc.cs index ddcd0c2958..697acb53d8 100644 --- a/src/csharp/Grpc.IntegrationTesting/TestGrpc.cs +++ b/src/csharp/Grpc.IntegrationTesting/TestGrpc.cs @@ -22,36 +22,42 @@ namespace grpc.testing { static readonly Method<global::grpc.testing.Empty, global::grpc.testing.Empty> __Method_EmptyCall = new Method<global::grpc.testing.Empty, global::grpc.testing.Empty>( MethodType.Unary, + __ServiceName, "EmptyCall", __Marshaller_Empty, __Marshaller_Empty); static readonly Method<global::grpc.testing.SimpleRequest, global::grpc.testing.SimpleResponse> __Method_UnaryCall = new Method<global::grpc.testing.SimpleRequest, global::grpc.testing.SimpleResponse>( MethodType.Unary, + __ServiceName, "UnaryCall", __Marshaller_SimpleRequest, __Marshaller_SimpleResponse); static readonly Method<global::grpc.testing.StreamingOutputCallRequest, global::grpc.testing.StreamingOutputCallResponse> __Method_StreamingOutputCall = new Method<global::grpc.testing.StreamingOutputCallRequest, global::grpc.testing.StreamingOutputCallResponse>( MethodType.ServerStreaming, + __ServiceName, "StreamingOutputCall", __Marshaller_StreamingOutputCallRequest, __Marshaller_StreamingOutputCallResponse); static readonly Method<global::grpc.testing.StreamingInputCallRequest, global::grpc.testing.StreamingInputCallResponse> __Method_StreamingInputCall = new Method<global::grpc.testing.StreamingInputCallRequest, global::grpc.testing.StreamingInputCallResponse>( MethodType.ClientStreaming, + __ServiceName, "StreamingInputCall", __Marshaller_StreamingInputCallRequest, __Marshaller_StreamingInputCallResponse); static readonly Method<global::grpc.testing.StreamingOutputCallRequest, global::grpc.testing.StreamingOutputCallResponse> __Method_FullDuplexCall = new Method<global::grpc.testing.StreamingOutputCallRequest, global::grpc.testing.StreamingOutputCallResponse>( MethodType.DuplexStreaming, + __ServiceName, "FullDuplexCall", __Marshaller_StreamingOutputCallRequest, __Marshaller_StreamingOutputCallResponse); static readonly Method<global::grpc.testing.StreamingOutputCallRequest, global::grpc.testing.StreamingOutputCallResponse> __Method_HalfDuplexCall = new Method<global::grpc.testing.StreamingOutputCallRequest, global::grpc.testing.StreamingOutputCallResponse>( MethodType.DuplexStreaming, + __ServiceName, "HalfDuplexCall", __Marshaller_StreamingOutputCallRequest, __Marshaller_StreamingOutputCallResponse); @@ -60,13 +66,21 @@ namespace grpc.testing { public interface ITestServiceClient { global::grpc.testing.Empty EmptyCall(global::grpc.testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + global::grpc.testing.Empty EmptyCall(global::grpc.testing.Empty request, CallOptions options); AsyncUnaryCall<global::grpc.testing.Empty> EmptyCallAsync(global::grpc.testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + AsyncUnaryCall<global::grpc.testing.Empty> EmptyCallAsync(global::grpc.testing.Empty request, CallOptions options); global::grpc.testing.SimpleResponse UnaryCall(global::grpc.testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + global::grpc.testing.SimpleResponse UnaryCall(global::grpc.testing.SimpleRequest request, CallOptions options); AsyncUnaryCall<global::grpc.testing.SimpleResponse> UnaryCallAsync(global::grpc.testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + AsyncUnaryCall<global::grpc.testing.SimpleResponse> UnaryCallAsync(global::grpc.testing.SimpleRequest request, CallOptions options); AsyncServerStreamingCall<global::grpc.testing.StreamingOutputCallResponse> StreamingOutputCall(global::grpc.testing.StreamingOutputCallRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + AsyncServerStreamingCall<global::grpc.testing.StreamingOutputCallResponse> StreamingOutputCall(global::grpc.testing.StreamingOutputCallRequest request, CallOptions options); AsyncClientStreamingCall<global::grpc.testing.StreamingInputCallRequest, global::grpc.testing.StreamingInputCallResponse> StreamingInputCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + AsyncClientStreamingCall<global::grpc.testing.StreamingInputCallRequest, global::grpc.testing.StreamingInputCallResponse> StreamingInputCall(CallOptions options); AsyncDuplexStreamingCall<global::grpc.testing.StreamingOutputCallRequest, global::grpc.testing.StreamingOutputCallResponse> FullDuplexCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + AsyncDuplexStreamingCall<global::grpc.testing.StreamingOutputCallRequest, global::grpc.testing.StreamingOutputCallResponse> FullDuplexCall(CallOptions options); AsyncDuplexStreamingCall<global::grpc.testing.StreamingOutputCallRequest, global::grpc.testing.StreamingOutputCallResponse> HalfDuplexCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + AsyncDuplexStreamingCall<global::grpc.testing.StreamingOutputCallRequest, global::grpc.testing.StreamingOutputCallResponse> HalfDuplexCall(CallOptions options); } // server-side interface @@ -88,43 +102,83 @@ namespace grpc.testing { } public global::grpc.testing.Empty EmptyCall(global::grpc.testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { - var call = CreateCall(__ServiceName, __Method_EmptyCall, headers, deadline); - return Calls.BlockingUnaryCall(call, request, cancellationToken); + var call = CreateCall(__Method_EmptyCall, new CallOptions(headers, deadline, cancellationToken)); + return Calls.BlockingUnaryCall(call, request); + } + public global::grpc.testing.Empty EmptyCall(global::grpc.testing.Empty request, CallOptions options) + { + var call = CreateCall(__Method_EmptyCall, options); + return Calls.BlockingUnaryCall(call, request); } public AsyncUnaryCall<global::grpc.testing.Empty> EmptyCallAsync(global::grpc.testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { - var call = CreateCall(__ServiceName, __Method_EmptyCall, headers, deadline); - return Calls.AsyncUnaryCall(call, request, cancellationToken); + var call = CreateCall(__Method_EmptyCall, new CallOptions(headers, deadline, cancellationToken)); + return Calls.AsyncUnaryCall(call, request); + } + public AsyncUnaryCall<global::grpc.testing.Empty> EmptyCallAsync(global::grpc.testing.Empty request, CallOptions options) + { + var call = CreateCall(__Method_EmptyCall, options); + return Calls.AsyncUnaryCall(call, request); } public global::grpc.testing.SimpleResponse UnaryCall(global::grpc.testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { - var call = CreateCall(__ServiceName, __Method_UnaryCall, headers, deadline); - return Calls.BlockingUnaryCall(call, request, cancellationToken); + var call = CreateCall(__Method_UnaryCall, new CallOptions(headers, deadline, cancellationToken)); + return Calls.BlockingUnaryCall(call, request); + } + public global::grpc.testing.SimpleResponse UnaryCall(global::grpc.testing.SimpleRequest request, CallOptions options) + { + var call = CreateCall(__Method_UnaryCall, options); + return Calls.BlockingUnaryCall(call, request); } public AsyncUnaryCall<global::grpc.testing.SimpleResponse> UnaryCallAsync(global::grpc.testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { - var call = CreateCall(__ServiceName, __Method_UnaryCall, headers, deadline); - return Calls.AsyncUnaryCall(call, request, cancellationToken); + var call = CreateCall(__Method_UnaryCall, new CallOptions(headers, deadline, cancellationToken)); + return Calls.AsyncUnaryCall(call, request); + } + public AsyncUnaryCall<global::grpc.testing.SimpleResponse> UnaryCallAsync(global::grpc.testing.SimpleRequest request, CallOptions options) + { + var call = CreateCall(__Method_UnaryCall, options); + return Calls.AsyncUnaryCall(call, request); } public AsyncServerStreamingCall<global::grpc.testing.StreamingOutputCallResponse> StreamingOutputCall(global::grpc.testing.StreamingOutputCallRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { - var call = CreateCall(__ServiceName, __Method_StreamingOutputCall, headers, deadline); - return Calls.AsyncServerStreamingCall(call, request, cancellationToken); + var call = CreateCall(__Method_StreamingOutputCall, new CallOptions(headers, deadline, cancellationToken)); + return Calls.AsyncServerStreamingCall(call, request); + } + public AsyncServerStreamingCall<global::grpc.testing.StreamingOutputCallResponse> StreamingOutputCall(global::grpc.testing.StreamingOutputCallRequest request, CallOptions options) + { + var call = CreateCall(__Method_StreamingOutputCall, options); + return Calls.AsyncServerStreamingCall(call, request); } public AsyncClientStreamingCall<global::grpc.testing.StreamingInputCallRequest, global::grpc.testing.StreamingInputCallResponse> StreamingInputCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { - var call = CreateCall(__ServiceName, __Method_StreamingInputCall, headers, deadline); - return Calls.AsyncClientStreamingCall(call, cancellationToken); + var call = CreateCall(__Method_StreamingInputCall, new CallOptions(headers, deadline, cancellationToken)); + return Calls.AsyncClientStreamingCall(call); + } + public AsyncClientStreamingCall<global::grpc.testing.StreamingInputCallRequest, global::grpc.testing.StreamingInputCallResponse> StreamingInputCall(CallOptions options) + { + var call = CreateCall(__Method_StreamingInputCall, options); + return Calls.AsyncClientStreamingCall(call); } public AsyncDuplexStreamingCall<global::grpc.testing.StreamingOutputCallRequest, global::grpc.testing.StreamingOutputCallResponse> FullDuplexCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { - var call = CreateCall(__ServiceName, __Method_FullDuplexCall, headers, deadline); - return Calls.AsyncDuplexStreamingCall(call, cancellationToken); + var call = CreateCall(__Method_FullDuplexCall, new CallOptions(headers, deadline, cancellationToken)); + return Calls.AsyncDuplexStreamingCall(call); + } + public AsyncDuplexStreamingCall<global::grpc.testing.StreamingOutputCallRequest, global::grpc.testing.StreamingOutputCallResponse> FullDuplexCall(CallOptions options) + { + var call = CreateCall(__Method_FullDuplexCall, options); + return Calls.AsyncDuplexStreamingCall(call); } public AsyncDuplexStreamingCall<global::grpc.testing.StreamingOutputCallRequest, global::grpc.testing.StreamingOutputCallResponse> HalfDuplexCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { - var call = CreateCall(__ServiceName, __Method_HalfDuplexCall, headers, deadline); - return Calls.AsyncDuplexStreamingCall(call, cancellationToken); + var call = CreateCall(__Method_HalfDuplexCall, new CallOptions(headers, deadline, cancellationToken)); + return Calls.AsyncDuplexStreamingCall(call); + } + public AsyncDuplexStreamingCall<global::grpc.testing.StreamingOutputCallRequest, global::grpc.testing.StreamingOutputCallResponse> HalfDuplexCall(CallOptions options) + { + var call = CreateCall(__Method_HalfDuplexCall, options); + return Calls.AsyncDuplexStreamingCall(call); } } diff --git a/src/csharp/ext/grpc_csharp_ext.c b/src/csharp/ext/grpc_csharp_ext.c index 37864a62a5..048887bc12 100644 --- a/src/csharp/ext/grpc_csharp_ext.c +++ b/src/csharp/ext/grpc_csharp_ext.c @@ -379,7 +379,8 @@ GPR_EXPORT grpc_call *GPR_CALLTYPE grpcsharp_channel_create_call(grpc_channel *channel, grpc_completion_queue *cq, const char *method, const char *host, gpr_timespec deadline) { - return grpc_channel_create_call(channel, cq, method, host, deadline); + return grpc_channel_create_call(channel, NULL, GRPC_PROPAGATE_DEFAULTS, cq, + method, host, deadline); } GPR_EXPORT grpc_connectivity_state GPR_CALLTYPE diff --git a/src/node/ext/call.cc b/src/node/ext/call.cc index dc45c8d8ae..fe585a0d4f 100644 --- a/src/node/ext/call.cc +++ b/src/node/ext/call.cc @@ -511,8 +511,9 @@ NAN_METHOD(Call::New) { double deadline = args[2]->NumberValue(); grpc_channel *wrapped_channel = channel->GetWrappedChannel(); grpc_call *wrapped_call = grpc_channel_create_call( - wrapped_channel, CompletionQueueAsyncWorker::GetQueue(), *method, - channel->GetHost(), MillisecondsToTimespec(deadline)); + wrapped_channel, NULL, GRPC_PROPAGATE_DEFAULTS, + CompletionQueueAsyncWorker::GetQueue(), *method, channel->GetHost(), + MillisecondsToTimespec(deadline)); call = new Call(wrapped_call); args.This()->SetHiddenValue(NanNew("channel_"), channel_object); } diff --git a/src/objective-c/GRPCClient/GRPCCall+Tests.h b/src/objective-c/GRPCClient/GRPCCall+Tests.h new file mode 100644 index 0000000000..3d617b05d9 --- /dev/null +++ b/src/objective-c/GRPCClient/GRPCCall+Tests.h @@ -0,0 +1,45 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#import "GRPCCall.h" + +@interface GRPCCall (Tests) + +// Establish all SSL connections to the provided host using the passed SSL target name and the root +// certificates found in the file at |certsPath|. +// Must be called before any gRPC call to that host is made. ++ (void)useTestCertsPath:(NSString *)certsPath + testName:(NSString *)testName + forHost:(NSString *)host; + +@end diff --git a/src/objective-c/GRPCClient/GRPCCall+Tests.m b/src/objective-c/GRPCClient/GRPCCall+Tests.m new file mode 100644 index 0000000000..7c5b81d661 --- /dev/null +++ b/src/objective-c/GRPCClient/GRPCCall+Tests.m @@ -0,0 +1,47 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#import "GRPCCall+Tests.h" + +#import "private/GRPCHost.h" + +@implementation GRPCCall (Tests) ++ (void)useTestCertsPath:(NSString *)certsPath + testName:(NSString *)testName + forHost:(NSString *)host { + GRPCHost *hostConfig = [GRPCHost hostWithAddress:host]; + hostConfig.secure = YES; + hostConfig.pathToCertificates = certsPath; + hostConfig.hostNameOverride = testName; +} +@end diff --git a/src/objective-c/GRPCClient/GRPCCall.m b/src/objective-c/GRPCClient/GRPCCall.m index 9d9648ae28..5f7d74bca8 100644 --- a/src/objective-c/GRPCClient/GRPCCall.m +++ b/src/objective-c/GRPCClient/GRPCCall.m @@ -37,7 +37,6 @@ #include <grpc/support/time.h> #import <RxLibrary/GRXConcurrentWriteable.h> -#import "private/GRPCChannel.h" #import "private/GRPCWrappedCall.h" #import "private/NSData+GRPC.h" #import "private/NSDictionary+GRPC.h" @@ -70,8 +69,6 @@ NSString * const kGRPCStatusMetadataKey = @"io.grpc.StatusMetadataKey"; GRPCWrappedCall *_wrappedCall; dispatch_once_t _callAlreadyInvoked; - GRPCChannel *_channel; - // The C gRPC library has less guarantees on the ordering of events than we // do. Particularly, in the face of errors, there's no ordering guarantee at // all. This wrapper over our actual writeable ensures thread-safety and @@ -105,11 +102,10 @@ NSString * const kGRPCStatusMetadataKey = @"io.grpc.StatusMetadataKey"; format:@"The requests writer can't be already started."]; } if ((self = [super init])) { - _channel = [GRPCChannel channelToHost:host]; - - _wrappedCall = [[GRPCWrappedCall alloc] initWithChannel:_channel - path:path - host:host]; + _wrappedCall = [[GRPCWrappedCall alloc] initWithHost:host path:path]; + if (!_wrappedCall) { + return nil; + } // Serial queue to invoke the non-reentrant methods of the grpc_call object. _callQueue = dispatch_queue_create("org.grpc.call", NULL); diff --git a/src/objective-c/GRPCClient/private/GRPCChannel.h b/src/objective-c/GRPCClient/private/GRPCChannel.h index bc6a47d469..2a7b701576 100644 --- a/src/objective-c/GRPCClient/private/GRPCChannel.h +++ b/src/objective-c/GRPCClient/private/GRPCChannel.h @@ -35,17 +35,12 @@ struct grpc_channel; -// Each separate instance of this class represents at least one TCP -// connection to the provided host. To create a grpc_call, pass the -// value of the unmanagedChannel property to grpc_channel_create_call. -// Release this object when the call is finished. +// Each separate instance of this class represents at least one TCP connection to the provided host. +// Create them using one of the subclasses |GRPCSecureChannel| and |GRPCUnsecuredChannel|. @interface GRPCChannel : NSObject @property(nonatomic, readonly) struct grpc_channel *unmanagedChannel; -// Convenience constructor to allow for reuse of connections. -+ (instancetype)channelToHost:(NSString *)host; - -- (instancetype)initWithHost:(NSString *)host NS_DESIGNATED_INITIALIZER; - +// This initializer takes ownership of the passed channel, and will destroy it when this object is +// deallocated. It's illegal to pass the same grpc_channel to two different GRPCChannel objects. - (instancetype)initWithChannel:(struct grpc_channel *)unmanagedChannel NS_DESIGNATED_INITIALIZER; @end diff --git a/src/objective-c/GRPCClient/private/GRPCChannel.m b/src/objective-c/GRPCClient/private/GRPCChannel.m index af4326332f..4366e63320 100644 --- a/src/objective-c/GRPCClient/private/GRPCChannel.m +++ b/src/objective-c/GRPCClient/private/GRPCChannel.m @@ -35,53 +35,17 @@ #include <grpc/grpc.h> -#import "GRPCSecureChannel.h" -#import "GRPCUnsecuredChannel.h" - @implementation GRPCChannel -+ (instancetype)channelToHost:(NSString *)host { - // TODO(mlumish): Investigate whether a cache with strong links is a good idea - static NSMutableDictionary *channelCache; - static dispatch_once_t cacheInitialization; - dispatch_once(&cacheInitialization, ^{ - channelCache = [NSMutableDictionary dictionary]; - }); - GRPCChannel *channel = channelCache[host]; - if (!channel) { - channel = [[self alloc] initWithHost:host]; - channelCache[host] = channel; - } - return channel; -} - - (instancetype)init { - return [self initWithHost:nil]; + return [self initWithChannel:NULL]; } -- (instancetype)initWithHost:(NSString *)host { - if (![host rangeOfString:@"://"].length) { - // No scheme provided; assume https. - host = [@"https://" stringByAppendingString:host]; - } - NSURL *hostURL = [NSURL URLWithString:host]; - if (!hostURL) { - [NSException raise:NSInvalidArgumentException format:@"Invalid URL: %@", host]; +// Designated initializer +- (instancetype)initWithChannel:(grpc_channel *)unmanagedChannel { + if (!unmanagedChannel) { + return nil; } - if ([hostURL.scheme isEqualToString:@"https"]) { - host = [@[hostURL.host, hostURL.port ?: @443] componentsJoinedByString:@":"]; - return [[GRPCSecureChannel alloc] initWithHost:host]; - } - if ([hostURL.scheme isEqualToString:@"http"]) { - host = [@[hostURL.host, hostURL.port ?: @80] componentsJoinedByString:@":"]; - return [[GRPCUnsecuredChannel alloc] initWithHost:host]; - } - [NSException raise:NSInvalidArgumentException - format:@"URL scheme %@ isn't supported.", hostURL.scheme]; - return nil; // silence warning. -} - -- (instancetype)initWithChannel:(struct grpc_channel *)unmanagedChannel { if ((self = [super init])) { _unmanagedChannel = unmanagedChannel; } @@ -89,12 +53,8 @@ } - (void)dealloc { - // _unmanagedChannel is NULL when deallocating an object of the base class (because the - // initializer returns a different object). - if (_unmanagedChannel) { - // TODO(jcanizales): Be sure to add a test with a server that closes the connection prematurely, - // as in the past that made this call to crash. - grpc_channel_destroy(_unmanagedChannel); - } + // TODO(jcanizales): Be sure to add a test with a server that closes the connection prematurely, + // as in the past that made this call to crash. + grpc_channel_destroy(_unmanagedChannel); } @end diff --git a/src/objective-c/GRPCClient/private/GRPCCompletionQueue.m b/src/objective-c/GRPCClient/private/GRPCCompletionQueue.m index 12535c9616..696069c200 100644 --- a/src/objective-c/GRPCClient/private/GRPCCompletionQueue.m +++ b/src/objective-c/GRPCClient/private/GRPCCompletionQueue.m @@ -38,8 +38,6 @@ @implementation GRPCCompletionQueue + (instancetype)completionQueue { - // TODO(jcanizales): Reuse completion queues to consume only one thread, - // instead of one per call. return [[self alloc] init]; } diff --git a/src/objective-c/GRPCClient/private/GRPCHost.h b/src/objective-c/GRPCClient/private/GRPCHost.h new file mode 100644 index 0000000000..f0bbd53023 --- /dev/null +++ b/src/objective-c/GRPCClient/private/GRPCHost.h @@ -0,0 +1,58 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#import <Foundation/Foundation.h> + +@class GRPCCompletionQueue; +struct grpc_call; + +@interface GRPCHost : NSObject + +@property(nonatomic, readonly) NSString *address; + +// The following properties should only be modified for testing: + +@property(nonatomic, getter=isSecure) BOOL secure; + +@property(nonatomic, copy) NSString *pathToCertificates; +@property(nonatomic, copy) NSString *hostNameOverride; + +// Host objects initialized with the same address are the same. ++ (instancetype)hostWithAddress:(NSString *)address; +- (instancetype)initWithAddress:(NSString *)address NS_DESIGNATED_INITIALIZER; + +// Create a grpc_call object to the provided path on this host. +- (struct grpc_call *)unmanagedCallWithPath:(NSString *)path + completionQueue:(GRPCCompletionQueue *)queue; + +@end diff --git a/src/objective-c/GRPCClient/private/GRPCHost.m b/src/objective-c/GRPCClient/private/GRPCHost.m new file mode 100644 index 0000000000..5d9c48a524 --- /dev/null +++ b/src/objective-c/GRPCClient/private/GRPCHost.m @@ -0,0 +1,134 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#import "GRPCHost.h" + +#include <grpc/grpc.h> + +#import "GRPCChannel.h" +#import "GRPCCompletionQueue.h" +#import "GRPCSecureChannel.h" +#import "GRPCUnsecuredChannel.h" + +@interface GRPCHost () +// TODO(mlumish): Investigate whether caching channels with strong links is a good idea. +@property(nonatomic, strong) GRPCChannel *channel; +@end + +@implementation GRPCHost + ++ (instancetype)hostWithAddress:(NSString *)address { + return [[self alloc] initWithAddress:address]; +} + +- (instancetype)init { + return [self initWithAddress:nil]; +} + +// Default initializer. +- (instancetype)initWithAddress:(NSString *)address { + + // Verify and normalize the address, and decide whether to use SSL. + if (![address rangeOfString:@"://"].length) { + // No scheme provided; assume https. + address = [@"https://" stringByAppendingString:address]; + } + NSURL *hostURL = [NSURL URLWithString:address]; + if (!hostURL) { + [NSException raise:NSInvalidArgumentException format:@"Invalid URL: %@", address]; + } + NSString *scheme = hostURL.scheme; + if (![scheme isEqualToString:@"https"] && ![scheme isEqualToString:@"http"]) { + [NSException raise:NSInvalidArgumentException format:@"URL scheme %@ isn't supported.", scheme]; + } + // If the user didn't specify a port (hostURL.port is nil), provide a default one. + NSNumber *port = hostURL.port ?: [scheme isEqualToString:@"https"] ? @443 : @80; + address = [@[hostURL.host, port] componentsJoinedByString:@":"]; + + // Look up the GRPCHost in the cache. + static NSMutableDictionary *hostCache; + static dispatch_once_t cacheInitialization; + dispatch_once(&cacheInitialization, ^{ + hostCache = [NSMutableDictionary dictionary]; + }); + @synchronized(hostCache) { + GRPCHost *cachedHost = hostCache[address]; + if (cachedHost) { + // We could verify here that the cached host uses the same protocol that we're expecting. But + // creating non-SSL channels by adding "http://" to the address is going away (to make the use + // of insecure channels less subtle), so it's not worth it now. + return cachedHost; + } + + if ((self = [super init])) { + _address = address; + _secure = [scheme isEqualToString:@"https"]; + hostCache[address] = self; + } + return self; + } +} + +- (grpc_call *)unmanagedCallWithPath:(NSString *)path completionQueue:(GRPCCompletionQueue *)queue { + if (!queue || !path || !self.channel) { + return NULL; + } + return grpc_channel_create_call(self.channel.unmanagedChannel, + NULL, GRPC_PROPAGATE_DEFAULTS, + queue.unmanagedQueue, + path.UTF8String, + self.hostName.UTF8String, + gpr_inf_future(GPR_CLOCK_REALTIME)); +} + +- (GRPCChannel *)channel { + // Create it lazily, because we don't want to open a connection just because someone is + // configuring a host. + if (!_channel) { + if (_secure) { + _channel = [[GRPCSecureChannel alloc] initWithHost:_address + pathToCertificates:_pathToCertificates + hostNameOverride:_hostNameOverride]; + } else { + _channel = [[GRPCUnsecuredChannel alloc] initWithHost:_address]; + } + } + return _channel; +} + +- (NSString *)hostName { + // TODO(jcanizales): Default to nil instead of _address when Issue #2635 is clarified. + return _hostNameOverride ?: _address; +} + +@end diff --git a/src/objective-c/GRPCClient/private/GRPCSecureChannel.h b/src/objective-c/GRPCClient/private/GRPCSecureChannel.h index d34ceaea0c..74257eb058 100644 --- a/src/objective-c/GRPCClient/private/GRPCSecureChannel.h +++ b/src/objective-c/GRPCClient/private/GRPCSecureChannel.h @@ -31,8 +31,23 @@ * */ +#include <grpc/grpc.h> + #import "GRPCChannel.h" +struct grpc_credentials; + @interface GRPCSecureChannel : GRPCChannel +- (instancetype)initWithHost:(NSString *)host; + +// Only in tests shouldn't pathToCertificates or hostNameOverride be nil. Passing nil for +// pathToCertificates results in using the default root certificates distributed with the library. +- (instancetype)initWithHost:(NSString *)host + pathToCertificates:(NSString *)path + hostNameOverride:(NSString *)hostNameOverride; +// The passed arguments aren't required to be valid beyond the invocation of this initializer. +- (instancetype)initWithHost:(NSString *)host + credentials:(struct grpc_credentials *)credentials + args:(grpc_channel_args *)args NS_DESIGNATED_INITIALIZER; @end diff --git a/src/objective-c/GRPCClient/private/GRPCSecureChannel.m b/src/objective-c/GRPCClient/private/GRPCSecureChannel.m index 43a8bd539e..9b4b6768f8 100644 --- a/src/objective-c/GRPCClient/private/GRPCSecureChannel.m +++ b/src/objective-c/GRPCClient/private/GRPCSecureChannel.m @@ -33,28 +33,80 @@ #import "GRPCSecureChannel.h" -#import <grpc/grpc_security.h> +#include <grpc/grpc_security.h> + +// Returns NULL if the file at path couldn't be read. In that case, if errorPtr isn't NULL, +// *errorPtr will be an object describing what went wrong. +static grpc_credentials *CertificatesAtPath(NSString *path, NSError **errorPtr) { + NSString *certsContent = [NSString stringWithContentsOfFile:path + encoding:NSASCIIStringEncoding + error:errorPtr]; + if (!certsContent) { + // Passing NULL to grpc_ssl_credentials_create produces behavior we don't want, so return. + return NULL; + } + const char * asCString = [certsContent cStringUsingEncoding:NSASCIIStringEncoding]; + return grpc_ssl_credentials_create(asCString, NULL); +} @implementation GRPCSecureChannel - (instancetype)initWithHost:(NSString *)host { - static grpc_credentials *kCredentials; + return [self initWithHost:host pathToCertificates:nil hostNameOverride:nil]; +} + +- (instancetype)initWithHost:(NSString *)host + pathToCertificates:(NSString *)path + hostNameOverride:(NSString *)hostNameOverride { + // Load default SSL certificates once. + static grpc_credentials *kDefaultCertificates; static dispatch_once_t loading; dispatch_once(&loading, ^{ + NSString *defaultPath = @"gRPCCertificates.bundle/roots"; // .pem // Do not use NSBundle.mainBundle, as it's nil for tests of library projects. NSBundle *bundle = [NSBundle bundleForClass:self.class]; - NSString *certsPath = [bundle pathForResource:@"gRPCCertificates.bundle/roots" ofType:@"pem"]; - NSAssert(certsPath.length, - @"gRPCCertificates.bundle/roots.pem not found under %@. This file, with the root " - "certificates, is needed to establish TLS (HTTPS) connections.", bundle.bundlePath); - NSData *certsData = [NSData dataWithContentsOfFile:certsPath]; - NSAssert(certsData.length, @"No data read from %@", certsPath); - NSString *certsString = [[NSString alloc] initWithData:certsData encoding:NSUTF8StringEncoding]; - kCredentials = grpc_ssl_credentials_create(certsString.UTF8String, NULL); + NSString *path = [bundle pathForResource:defaultPath ofType:@"pem"]; + NSError *error; + kDefaultCertificates = CertificatesAtPath(path, &error); + NSAssert(kDefaultCertificates, @"Could not read %@/%@.pem. This file, with the root " + "certificates, is needed to establish secure (TLS) connections. Because the file is " + "distributed with the gRPC library, this error is usually a sign that the library " + "wasn't configured correctly for your project. Error: %@", + bundle.bundlePath, defaultPath, error); }); - return (self = [super initWithChannel:grpc_secure_channel_create(kCredentials, - host.UTF8String, - NULL)]); + + //TODO(jcanizales): Add NSError** parameter to the initializer. + grpc_credentials *certificates = path ? CertificatesAtPath(path, NULL) : kDefaultCertificates; + if (!certificates) { + return nil; + } + + // Ritual to pass the SSL host name override to the C library. + grpc_channel_args channelArgs; + grpc_arg nameOverrideArg; + channelArgs.num_args = 1; + channelArgs.args = &nameOverrideArg; + nameOverrideArg.type = GRPC_ARG_STRING; + nameOverrideArg.key = GRPC_SSL_TARGET_NAME_OVERRIDE_ARG; + // Cast const away. Hope C gRPC doesn't modify it! + nameOverrideArg.value.string = (char *) hostNameOverride.UTF8String; + grpc_channel_args *args = hostNameOverride ? &channelArgs : NULL; + + return [self initWithHost:host credentials:certificates args:args]; +} + +- (instancetype)initWithHost:(NSString *)host + credentials:(grpc_credentials *)credentials + args:(grpc_channel_args *)args { + return (self = + [super initWithChannel:grpc_secure_channel_create(credentials, host.UTF8String, args)]); +} + +// TODO(jcanizales): GRPCSecureChannel and GRPCUnsecuredChannel are just convenience initializers +// for GRPCChannel. Move them into GRPCChannel, which will make the following unnecessary. +- (instancetype)initWithChannel:(grpc_channel *)unmanagedChannel { + [NSException raise:NSInternalInconsistencyException format:@"use another initializer"]; + return [self initWithHost:nil]; // silence warnings } @end diff --git a/src/objective-c/GRPCClient/private/GRPCUnsecuredChannel.h b/src/objective-c/GRPCClient/private/GRPCUnsecuredChannel.h index 9d89cfb541..8528be44c0 100644 --- a/src/objective-c/GRPCClient/private/GRPCUnsecuredChannel.h +++ b/src/objective-c/GRPCClient/private/GRPCUnsecuredChannel.h @@ -34,5 +34,5 @@ #import "GRPCChannel.h" @interface GRPCUnsecuredChannel : GRPCChannel - +- (instancetype)initWithHost:(NSString *)host NS_DESIGNATED_INITIALIZER; @end diff --git a/src/objective-c/GRPCClient/private/GRPCUnsecuredChannel.m b/src/objective-c/GRPCClient/private/GRPCUnsecuredChannel.m index 8518f78c5b..070a529629 100644 --- a/src/objective-c/GRPCClient/private/GRPCUnsecuredChannel.m +++ b/src/objective-c/GRPCClient/private/GRPCUnsecuredChannel.m @@ -41,4 +41,10 @@ return (self = [super initWithChannel:grpc_insecure_channel_create(host.UTF8String, NULL)]); } +// TODO(jcanizales): GRPCSecureChannel and GRPCUnsecuredChannel are just convenience initializers +// for GRPCChannel. Move them into GRPCChannel, which will make the following unnecessary. +- (instancetype)initWithChannel:(grpc_channel *)unmanagedChannel { + [NSException raise:NSInternalInconsistencyException format:@"use the other initializer"]; + return [self initWithHost:nil]; // silence warnings +} @end diff --git a/src/objective-c/GRPCClient/private/GRPCWrappedCall.h b/src/objective-c/GRPCClient/private/GRPCWrappedCall.h index 18f8bb5531..da11cbb761 100644 --- a/src/objective-c/GRPCClient/private/GRPCWrappedCall.h +++ b/src/objective-c/GRPCClient/private/GRPCWrappedCall.h @@ -81,11 +81,12 @@ @end +#pragma mark GRPCWrappedCall + @interface GRPCWrappedCall : NSObject -- (instancetype)initWithChannel:(GRPCChannel *)channel - path:(NSString *)path - host:(NSString *)host NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithHost:(NSString *)host + path:(NSString *)path NS_DESIGNATED_INITIALIZER; - (void)startBatchWithOperations:(NSArray *)ops errorHandler:(void(^)())errorHandler; diff --git a/src/objective-c/GRPCClient/private/GRPCWrappedCall.m b/src/objective-c/GRPCClient/private/GRPCWrappedCall.m index 1db63df77f..951c051036 100644 --- a/src/objective-c/GRPCClient/private/GRPCWrappedCall.m +++ b/src/objective-c/GRPCClient/private/GRPCWrappedCall.m @@ -32,11 +32,14 @@ */ #import "GRPCWrappedCall.h" + #import <Foundation/Foundation.h> #include <grpc/grpc.h> #include <grpc/byte_buffer.h> #include <grpc/support/alloc.h> + #import "GRPCCompletionQueue.h" +#import "GRPCHost.h" #import "NSDictionary+GRPC.h" #import "NSData+GRPC.h" #import "NSError+GRPC.h" @@ -219,38 +222,36 @@ @end -@implementation GRPCWrappedCall{ - grpc_call *_call; +#pragma mark GRPCWrappedCall + +@implementation GRPCWrappedCall { GRPCCompletionQueue *_queue; + grpc_call *_call; } - (instancetype)init { - return [self initWithChannel:nil path:nil host:nil]; + return [self initWithHost:nil path:nil]; } -- (instancetype)initWithChannel:(GRPCChannel *)channel - path:(NSString *)path - host:(NSString *)host { - if (!channel || !path || !host) { +- (instancetype)initWithHost:(NSString *)host + path:(NSString *)path { + if (!path || !host) { [NSException raise:NSInvalidArgumentException - format:@"channel, method, and host cannot be nil."]; + format:@"path and host cannot be nil."]; } - + if (self = [super init]) { static dispatch_once_t initialization; dispatch_once(&initialization, ^{ grpc_init(); }); - + + // Each completion queue consumes one thread. There's a trade to be made between creating and + // consuming too many threads and having contention of multiple calls in a single completion + // queue. Currently we favor latency and use one per call. _queue = [GRPCCompletionQueue completionQueue]; - if (!_queue) { - return nil; - } - _call = grpc_channel_create_call(channel.unmanagedChannel, - _queue.unmanagedQueue, - path.UTF8String, - host.UTF8String, - gpr_inf_future(GPR_CLOCK_REALTIME)); + + _call = [[GRPCHost hostWithAddress:host] unmanagedCallWithPath:path completionQueue:_queue]; if (_call == NULL) { return nil; } @@ -299,4 +300,4 @@ grpc_call_destroy(_call); } -@end
\ No newline at end of file +@end diff --git a/src/objective-c/tests/InteropTests.h b/src/objective-c/tests/InteropTests.h new file mode 100644 index 0000000000..c675c8d241 --- /dev/null +++ b/src/objective-c/tests/InteropTests.h @@ -0,0 +1,44 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#import <XCTest/XCTest.h> + +// Implements tests as described here: +// https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptions.md + +@interface InteropTests : XCTestCase +// Returns @"http://localhost:5050". +// Override in a subclass to perform the same tests against a different address. +// For interop tests, use @"grpc-test.sandbox.google.com". ++ (NSString *)host; +@end diff --git a/src/objective-c/tests/InteropTests.m b/src/objective-c/tests/InteropTests.m index b473d73422..a6611d27be 100644 --- a/src/objective-c/tests/InteropTests.m +++ b/src/objective-c/tests/InteropTests.m @@ -31,10 +31,9 @@ * */ -#include <grpc/status.h> +#import "InteropTests.h" -#import <UIKit/UIKit.h> -#import <XCTest/XCTest.h> +#include <grpc/status.h> #import <ProtoRPC/ProtoRPC.h> #import <RemoteTest/Empty.pbobjc.h> @@ -76,21 +75,18 @@ } @end -@interface InteropTests : XCTestCase -@end - @implementation InteropTests { RMTTestService *_service; } -// grpc-test.sandbox.google.com ++ (NSString *)host { + return @"http://localhost:5050"; +} - (void)setUp { - _service = [[RMTTestService alloc] initWithHost:@"http://localhost:5050"]; + _service = [[RMTTestService alloc] initWithHost:self.class.host]; } -// Tests as described here: https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptions.md - - (void)testEmptyUnaryRPC { __weak XCTestExpectation *expectation = [self expectationWithDescription:@"EmptyUnary"]; diff --git a/src/objective-c/tests/InteropTestsLocalSSL.m b/src/objective-c/tests/InteropTestsLocalSSL.m new file mode 100644 index 0000000000..227ca79659 --- /dev/null +++ b/src/objective-c/tests/InteropTestsLocalSSL.m @@ -0,0 +1,62 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +// Repeat of the tests in InteropTests.m, but using SSL to communicate with the local server instead +// of cleartext. + +#import <GRPCClient/GRPCCall+Tests.h> + +#import "InteropTests.h" + +static NSString * const kLocalSSLHost = @"localhost:5051"; + +@interface InteropTestsLocalSSL : InteropTests +@end + +@implementation InteropTestsLocalSSL + ++ (NSString *)host { + return kLocalSSLHost; +} + +- (void)setUp { + // Register test server certificates and name. + NSBundle *bundle = [NSBundle bundleForClass:self.class]; + NSString *certsPath = [bundle pathForResource:@"TestCertificates.bundle/test-certificates" + ofType:@"pem"]; + [GRPCCall useTestCertsPath:certsPath testName:@"foo.test.google.fr" forHost:kLocalSSLHost]; + + [super setUp]; +} + +@end diff --git a/src/objective-c/tests/TestCertificates.bundle/test-certificates.pem b/src/objective-c/tests/TestCertificates.bundle/test-certificates.pem new file mode 100644 index 0000000000..6c8511a73c --- /dev/null +++ b/src/objective-c/tests/TestCertificates.bundle/test-certificates.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICSjCCAbOgAwIBAgIJAJHGGR4dGioHMA0GCSqGSIb3DQEBCwUAMFYxCzAJBgNV +BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX +aWRnaXRzIFB0eSBMdGQxDzANBgNVBAMTBnRlc3RjYTAeFw0xNDExMTEyMjMxMjla +Fw0yNDExMDgyMjMxMjlaMFYxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0 +YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxDzANBgNVBAMT +BnRlc3RjYTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwEDfBV5MYdlHVHJ7 ++L4nxrZy7mBfAVXpOc5vMYztssUI7mL2/iYujiIXM+weZYNTEpLdjyJdu7R5gGUu +g1jSVK/EPHfc74O7AyZU34PNIP4Sh33N+/A5YexrNgJlPY+E3GdVYi4ldWJjgkAd +Qah2PH5ACLrIIC6tRka9hcaBlIECAwEAAaMgMB4wDAYDVR0TBAUwAwEB/zAOBgNV +HQ8BAf8EBAMCAgQwDQYJKoZIhvcNAQELBQADgYEAHzC7jdYlzAVmddi/gdAeKPau +sPBG/C2HCWqHzpCUHcKuvMzDVkY/MP2o6JIW2DBbY64bO/FceExhjcykgaYtCH/m +oIU63+CFOTtR7otyQAWHqXa7q4SbCDlG7DyRFxqG0txPtGvy12lgldA2+RgcigQG +Dfcog5wrJytaQ6UA0wE= +-----END CERTIFICATE----- diff --git a/src/objective-c/tests/Tests.xcodeproj/project.pbxproj b/src/objective-c/tests/Tests.xcodeproj/project.pbxproj index f13fb8288b..af98aba9c0 100644 --- a/src/objective-c/tests/Tests.xcodeproj/project.pbxproj +++ b/src/objective-c/tests/Tests.xcodeproj/project.pbxproj @@ -13,6 +13,8 @@ 63423F511B151B77006CF63C /* RxLibraryUnitTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 63423F501B151B77006CF63C /* RxLibraryUnitTests.m */; }; 635697CD1B14FC11007A7283 /* Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 635697CC1B14FC11007A7283 /* Tests.m */; }; 635ED2EC1B1A3BC400FDE5C3 /* InteropTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 635ED2EB1B1A3BC400FDE5C3 /* InteropTests.m */; }; + 63E240CE1B6C4E2B005F3B0E /* InteropTestsLocalSSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 63E240CD1B6C4E2B005F3B0E /* InteropTestsLocalSSL.m */; }; + 63E240D01B6C63DC005F3B0E /* TestCertificates.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 63E240CF1B6C63DC005F3B0E /* TestCertificates.bundle */; }; 7D8A186224D39101F90230F6 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 35F2B6BF3BAE8F0DC4AFD76E /* libPods.a */; }; /* End PBXBuildFile section */ @@ -49,6 +51,9 @@ 635697CC1B14FC11007A7283 /* Tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Tests.m; sourceTree = "<group>"; }; 635697D81B14FC11007A7283 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 635ED2EB1B1A3BC400FDE5C3 /* InteropTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InteropTests.m; sourceTree = "<group>"; }; + 63E240CC1B6C4D3A005F3B0E /* InteropTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InteropTests.h; sourceTree = "<group>"; }; + 63E240CD1B6C4E2B005F3B0E /* InteropTestsLocalSSL.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InteropTestsLocalSSL.m; sourceTree = "<group>"; }; + 63E240CF1B6C63DC005F3B0E /* TestCertificates.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = TestCertificates.bundle; sourceTree = "<group>"; }; FF7B5489BCFE40111D768DD0 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = "<group>"; }; /* End PBXFileReference section */ @@ -93,6 +98,7 @@ isa = PBXGroup; children = ( 635697C91B14FC11007A7283 /* Tests */, + 63E240CF1B6C63DC005F3B0E /* TestCertificates.bundle */, 635697C81B14FC11007A7283 /* Products */, 51E4650F34F854F41FF053B3 /* Pods */, 136D535E19727099B941D7B1 /* Frameworks */, @@ -111,12 +117,14 @@ 635697C91B14FC11007A7283 /* Tests */ = { isa = PBXGroup; children = ( + 63E240CD1B6C4E2B005F3B0E /* InteropTestsLocalSSL.m */, 6312AE4D1B1BF49B00341DEE /* GRPCClientTests.m */, 63175DFE1B1B9FAF00027841 /* LocalClearTextTests.m */, 635ED2EB1B1A3BC400FDE5C3 /* InteropTests.m */, 63423F501B151B77006CF63C /* RxLibraryUnitTests.m */, 635697CC1B14FC11007A7283 /* Tests.m */, 635697D71B14FC11007A7283 /* Supporting Files */, + 63E240CC1B6C4D3A005F3B0E /* InteropTests.h */, ); name = Tests; sourceTree = SOURCE_ROOT; @@ -209,6 +217,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 63E240D01B6C63DC005F3B0E /* TestCertificates.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -254,6 +263,7 @@ files = ( 63175DFF1B1B9FAF00027841 /* LocalClearTextTests.m in Sources */, 63423F511B151B77006CF63C /* RxLibraryUnitTests.m in Sources */, + 63E240CE1B6C4E2B005F3B0E /* InteropTestsLocalSSL.m in Sources */, 6312AE4E1B1BF49B00341DEE /* GRPCClientTests.m in Sources */, 635ED2EC1B1A3BC400FDE5C3 /* InteropTests.m in Sources */, ); diff --git a/src/objective-c/tests/run_tests.sh b/src/objective-c/tests/run_tests.sh index b13c0f0633..7b133c1782 100755 --- a/src/objective-c/tests/run_tests.sh +++ b/src/objective-c/tests/run_tests.sh @@ -37,7 +37,8 @@ cd $(dirname $0) # Run the tests server. ../../../bins/$CONFIG/interop_server --port=5050 & -# Kill it when this script exits. +../../../bins/$CONFIG/interop_server --port=5051 --enable_ssl & +# Kill them when this script exits. trap 'kill -9 `jobs -p`' EXIT # xcodebuild is very verbose. We filter its output and tell Bash to fail if any diff --git a/src/php/ext/grpc/call.c b/src/php/ext/grpc/call.c index 1f76c7359d..01ec909b79 100644 --- a/src/php/ext/grpc/call.c +++ b/src/php/ext/grpc/call.c @@ -240,8 +240,8 @@ PHP_METHOD(Call, __construct) { (wrapped_grpc_timeval *)zend_object_store_get_object( deadline_obj TSRMLS_CC); call->wrapped = grpc_channel_create_call( - channel->wrapped, completion_queue, method, channel->target, - deadline->wrapped); + channel->wrapped, NULL, GRPC_PROPAGATE_DEFAULTS, completion_queue, method, + channel->target, deadline->wrapped); } /** diff --git a/src/python/grpcio/grpc/_adapter/_c/types/channel.c b/src/python/grpcio/grpc/_adapter/_c/types/channel.c index feb256cf00..963104742f 100644 --- a/src/python/grpcio/grpc/_adapter/_c/types/channel.c +++ b/src/python/grpcio/grpc/_adapter/_c/types/channel.c @@ -128,7 +128,7 @@ Call *pygrpc_Channel_create_call( } call = pygrpc_Call_new_empty(cq); call->c_call = grpc_channel_create_call( - self->c_chan, cq->c_cq, method, host, + self->c_chan, NULL, GRPC_PROPAGATE_DEFAULTS, cq->c_cq, method, host, pygrpc_cast_double_to_gpr_timespec(deadline)); return call; } diff --git a/src/ruby/ext/grpc/rb_channel.c b/src/ruby/ext/grpc/rb_channel.c index 0cb6fa2f80..a0663607c2 100644 --- a/src/ruby/ext/grpc/rb_channel.c +++ b/src/ruby/ext/grpc/rb_channel.c @@ -212,10 +212,10 @@ static VALUE grpc_rb_channel_create_call(VALUE self, VALUE cqueue, VALUE method, return Qnil; } - call = - grpc_channel_create_call(ch, cq, method_chars, host_chars, - grpc_rb_time_timeval(deadline, - /* absolute time */ 0)); + call = grpc_channel_create_call(ch, NULL, GRPC_PROPAGATE_DEFAULTS, cq, + method_chars, host_chars, + grpc_rb_time_timeval(deadline, + /* absolute time */ 0)); if (call == NULL) { rb_raise(rb_eRuntimeError, "cannot create call with method %s", method_chars); diff --git a/templates/tools/run_tests/tests.json.template b/templates/tools/run_tests/tests.json.template index 337858d9f1..d1ba5ed43c 100644 --- a/templates/tools/run_tests/tests.json.template +++ b/templates/tools/run_tests/tests.json.template @@ -4,7 +4,7 @@ import json ${json.dumps([{"name": tgt.name, "language": tgt.language, - "platforms": tgt.platforms, + "platforms": tgt.platforms, "flaky": tgt.flaky} for tgt in targets if tgt.get('run', True) and tgt.build == 'test'], diff --git a/test/core/end2end/dualstack_socket_test.c b/test/core/end2end/dualstack_socket_test.c index c98baeffda..48a88be525 100644 --- a/test/core/end2end/dualstack_socket_test.c +++ b/test/core/end2end/dualstack_socket_test.c @@ -131,8 +131,8 @@ void test_connect(const char *server_host, const char *client_host, int port, } /* Send a trivial request. */ - c = grpc_channel_create_call(client, cq, "/foo", "foo.test.google.fr", - deadline); + c = grpc_channel_create_call(client, NULL, GRPC_PROPAGATE_DEFAULTS, cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); op = ops; diff --git a/test/core/end2end/fixtures/chttp2_fullstack_compression.c b/test/core/end2end/fixtures/chttp2_fullstack_compression.c index 0ee24c01b5..a75075d1d4 100644 --- a/test/core/end2end/fixtures/chttp2_fullstack_compression.c +++ b/test/core/end2end/fixtures/chttp2_fullstack_compression.c @@ -53,8 +53,8 @@ typedef struct fullstack_compression_fixture_data { char *localaddr; - grpc_channel_args* client_args_compression; - grpc_channel_args* server_args_compression; + grpc_channel_args *client_args_compression; + grpc_channel_args *server_args_compression; } fullstack_compression_fixture_data; static grpc_end2end_test_fixture chttp2_create_fixture_fullstack_compression( @@ -75,7 +75,7 @@ static grpc_end2end_test_fixture chttp2_create_fixture_fullstack_compression( } void chttp2_init_client_fullstack_compression(grpc_end2end_test_fixture *f, - grpc_channel_args *client_args) { + grpc_channel_args *client_args) { fullstack_compression_fixture_data *ffd = f->fixture_data; if (ffd->client_args_compression != NULL) { grpc_channel_args_destroy(ffd->client_args_compression); @@ -87,7 +87,7 @@ void chttp2_init_client_fullstack_compression(grpc_end2end_test_fixture *f, } void chttp2_init_server_fullstack_compression(grpc_end2end_test_fixture *f, - grpc_channel_args *server_args) { + grpc_channel_args *server_args) { fullstack_compression_fixture_data *ffd = f->fixture_data; if (ffd->server_args_compression != NULL) { grpc_channel_args_destroy(ffd->server_args_compression); diff --git a/test/core/end2end/fixtures/chttp2_fullstack_with_proxy.c b/test/core/end2end/fixtures/chttp2_fullstack_with_proxy.c new file mode 100644 index 0000000000..248cc7d6e7 --- /dev/null +++ b/test/core/end2end/fixtures/chttp2_fullstack_with_proxy.c @@ -0,0 +1,132 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "test/core/end2end/end2end_tests.h" + +#include <string.h> + +#include "src/core/channel/client_channel.h" +#include "src/core/channel/connected_channel.h" +#include "src/core/channel/http_server_filter.h" +#include "src/core/surface/channel.h" +#include "src/core/surface/server.h" +#include "src/core/transport/chttp2_transport.h" +#include <grpc/support/alloc.h> +#include <grpc/support/host_port.h> +#include <grpc/support/log.h> +#include <grpc/support/sync.h> +#include <grpc/support/thd.h> +#include <grpc/support/useful.h> +#include "test/core/end2end/fixtures/proxy.h" +#include "test/core/util/port.h" +#include "test/core/util/test_config.h" + +typedef struct fullstack_fixture_data { + grpc_end2end_proxy *proxy; +} fullstack_fixture_data; + +static grpc_server *create_proxy_server(const char *port) { + grpc_server *s = grpc_server_create(NULL); + GPR_ASSERT(grpc_server_add_insecure_http2_port(s, port)); + return s; +} + +static grpc_channel *create_proxy_client(const char *target) { + return grpc_insecure_channel_create(target, NULL); +} + +static const grpc_end2end_proxy_def proxy_def = {create_proxy_server, + create_proxy_client}; + +static grpc_end2end_test_fixture chttp2_create_fixture_fullstack( + grpc_channel_args *client_args, grpc_channel_args *server_args) { + grpc_end2end_test_fixture f; + fullstack_fixture_data *ffd = gpr_malloc(sizeof(fullstack_fixture_data)); + memset(&f, 0, sizeof(f)); + + ffd->proxy = grpc_end2end_proxy_create(&proxy_def); + + f.fixture_data = ffd; + f.cq = grpc_completion_queue_create(); + + return f; +} + +void chttp2_init_client_fullstack(grpc_end2end_test_fixture *f, + grpc_channel_args *client_args) { + fullstack_fixture_data *ffd = f->fixture_data; + f->client = grpc_insecure_channel_create( + grpc_end2end_proxy_get_client_target(ffd->proxy), client_args); + GPR_ASSERT(f->client); +} + +void chttp2_init_server_fullstack(grpc_end2end_test_fixture *f, + grpc_channel_args *server_args) { + fullstack_fixture_data *ffd = f->fixture_data; + if (f->server) { + grpc_server_destroy(f->server); + } + f->server = grpc_server_create(server_args); + grpc_server_register_completion_queue(f->server, f->cq); + GPR_ASSERT(grpc_server_add_insecure_http2_port( + f->server, grpc_end2end_proxy_get_server_port(ffd->proxy))); + grpc_server_start(f->server); +} + +void chttp2_tear_down_fullstack(grpc_end2end_test_fixture *f) { + fullstack_fixture_data *ffd = f->fixture_data; + grpc_end2end_proxy_destroy(ffd->proxy); + gpr_free(ffd); +} + +/* All test configurations */ +static grpc_end2end_test_config configs[] = { + {"chttp2/fullstack+proxy", FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION, + chttp2_create_fixture_fullstack, chttp2_init_client_fullstack, + chttp2_init_server_fullstack, chttp2_tear_down_fullstack}, +}; + +int main(int argc, char **argv) { + size_t i; + + grpc_test_init(argc, argv); + grpc_init(); + + for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) { + grpc_end2end_tests(configs[i]); + } + + grpc_shutdown(); + + return 0; +} diff --git a/test/core/end2end/fixtures/chttp2_simple_ssl_fullstack_with_proxy.c b/test/core/end2end/fixtures/chttp2_simple_ssl_fullstack_with_proxy.c new file mode 100644 index 0000000000..46a64de6c5 --- /dev/null +++ b/test/core/end2end/fixtures/chttp2_simple_ssl_fullstack_with_proxy.c @@ -0,0 +1,193 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "test/core/end2end/end2end_tests.h" + +#include <stdio.h> +#include <string.h> + +#include "src/core/channel/channel_args.h" +#include "src/core/security/credentials.h" +#include "src/core/support/env.h" +#include "src/core/support/file.h" +#include "src/core/support/string.h" +#include <grpc/support/alloc.h> +#include <grpc/support/host_port.h> +#include <grpc/support/log.h> +#include "test/core/end2end/data/ssl_test_data.h" +#include "test/core/end2end/fixtures/proxy.h" +#include "test/core/util/test_config.h" +#include "test/core/util/port.h" + +typedef struct fullstack_secure_fixture_data { + grpc_end2end_proxy *proxy; +} fullstack_secure_fixture_data; + +static grpc_server *create_proxy_server(const char *port) { + grpc_server *s = grpc_server_create(NULL); + grpc_ssl_pem_key_cert_pair pem_cert_key_pair = {test_server1_key, + test_server1_cert}; + grpc_server_credentials *ssl_creds = + grpc_ssl_server_credentials_create(NULL, &pem_cert_key_pair, 1, 0); + GPR_ASSERT(grpc_server_add_secure_http2_port(s, port, ssl_creds)); + grpc_server_credentials_release(ssl_creds); + return s; +} + +static grpc_channel *create_proxy_client(const char *target) { + grpc_channel *channel; + grpc_credentials *ssl_creds = grpc_ssl_credentials_create(NULL, NULL); + grpc_arg ssl_name_override = {GRPC_ARG_STRING, + GRPC_SSL_TARGET_NAME_OVERRIDE_ARG, + {"foo.test.google.fr"}}; + grpc_channel_args client_args; + client_args.num_args = 1; + client_args.args = &ssl_name_override; + channel = grpc_secure_channel_create(ssl_creds, target, &client_args); + grpc_credentials_release(ssl_creds); + return channel; +} + +static const grpc_end2end_proxy_def proxy_def = {create_proxy_server, + create_proxy_client}; + +static grpc_end2end_test_fixture chttp2_create_fixture_secure_fullstack( + grpc_channel_args *client_args, grpc_channel_args *server_args) { + grpc_end2end_test_fixture f; + fullstack_secure_fixture_data *ffd = + gpr_malloc(sizeof(fullstack_secure_fixture_data)); + memset(&f, 0, sizeof(f)); + + ffd->proxy = grpc_end2end_proxy_create(&proxy_def); + + f.fixture_data = ffd; + f.cq = grpc_completion_queue_create(); + + return f; +} + +static void chttp2_init_client_secure_fullstack(grpc_end2end_test_fixture *f, + grpc_channel_args *client_args, + grpc_credentials *creds) { + fullstack_secure_fixture_data *ffd = f->fixture_data; + f->client = grpc_secure_channel_create( + creds, grpc_end2end_proxy_get_client_target(ffd->proxy), client_args); + GPR_ASSERT(f->client != NULL); + grpc_credentials_release(creds); +} + +static void chttp2_init_server_secure_fullstack( + grpc_end2end_test_fixture *f, grpc_channel_args *server_args, + grpc_server_credentials *server_creds) { + fullstack_secure_fixture_data *ffd = f->fixture_data; + if (f->server) { + grpc_server_destroy(f->server); + } + f->server = grpc_server_create(server_args); + grpc_server_register_completion_queue(f->server, f->cq); + GPR_ASSERT(grpc_server_add_secure_http2_port( + f->server, grpc_end2end_proxy_get_server_port(ffd->proxy), server_creds)); + grpc_server_credentials_release(server_creds); + grpc_server_start(f->server); +} + +void chttp2_tear_down_secure_fullstack(grpc_end2end_test_fixture *f) { + fullstack_secure_fixture_data *ffd = f->fixture_data; + grpc_end2end_proxy_destroy(ffd->proxy); + gpr_free(ffd); +} + +static void chttp2_init_client_simple_ssl_secure_fullstack( + grpc_end2end_test_fixture *f, grpc_channel_args *client_args) { + grpc_credentials *ssl_creds = grpc_ssl_credentials_create(NULL, NULL); + grpc_arg ssl_name_override = {GRPC_ARG_STRING, + GRPC_SSL_TARGET_NAME_OVERRIDE_ARG, + {"foo.test.google.fr"}}; + grpc_channel_args *new_client_args = + grpc_channel_args_copy_and_add(client_args, &ssl_name_override, 1); + chttp2_init_client_secure_fullstack(f, new_client_args, ssl_creds); + grpc_channel_args_destroy(new_client_args); +} + +static void chttp2_init_server_simple_ssl_secure_fullstack( + grpc_end2end_test_fixture *f, grpc_channel_args *server_args) { + grpc_ssl_pem_key_cert_pair pem_cert_key_pair = {test_server1_key, + test_server1_cert}; + grpc_server_credentials *ssl_creds = + grpc_ssl_server_credentials_create(NULL, &pem_cert_key_pair, 1, 0); + chttp2_init_server_secure_fullstack(f, server_args, ssl_creds); +} + +/* All test configurations */ + +static grpc_end2end_test_config configs[] = { + {"chttp2/simple_ssl_fullstack", + FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION | + FEATURE_MASK_SUPPORTS_HOSTNAME_VERIFICATION | + FEATURE_MASK_SUPPORTS_PER_CALL_CREDENTIALS, + chttp2_create_fixture_secure_fullstack, + chttp2_init_client_simple_ssl_secure_fullstack, + chttp2_init_server_simple_ssl_secure_fullstack, + chttp2_tear_down_secure_fullstack}, +}; + +int main(int argc, char **argv) { + size_t i; + FILE *roots_file; + size_t roots_size = strlen(test_root_cert); + char *roots_filename; + + grpc_test_init(argc, argv); + + /* Set the SSL roots env var. */ + roots_file = gpr_tmpfile("chttp2_simple_ssl_fullstack_test", &roots_filename); + GPR_ASSERT(roots_filename != NULL); + GPR_ASSERT(roots_file != NULL); + GPR_ASSERT(fwrite(test_root_cert, 1, roots_size, roots_file) == roots_size); + fclose(roots_file); + gpr_setenv(GRPC_DEFAULT_SSL_ROOTS_FILE_PATH_ENV_VAR, roots_filename); + + grpc_init(); + + for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) { + grpc_end2end_tests(configs[i]); + } + + grpc_shutdown(); + + /* Cleanup. */ + remove(roots_filename); + gpr_free(roots_filename); + + return 0; +} diff --git a/test/core/end2end/fixtures/chttp2_socket_pair_with_grpc_trace.c b/test/core/end2end/fixtures/chttp2_socket_pair_with_grpc_trace.c index c59628b959..6d2361b783 100644 --- a/test/core/end2end/fixtures/chttp2_socket_pair_with_grpc_trace.c +++ b/test/core/end2end/fixtures/chttp2_socket_pair_with_grpc_trace.c @@ -148,6 +148,7 @@ int main(int argc, char **argv) { /* force tracing on, with a value to force many code paths in trace.c to be taken */ gpr_setenv("GRPC_TRACE", "doesnt-exist,http,all"); + g_fixture_slowdown_factor = 10.0; grpc_test_init(argc, argv); grpc_init(); diff --git a/test/core/end2end/fixtures/proxy.c b/test/core/end2end/fixtures/proxy.c new file mode 100644 index 0000000000..e4f6263334 --- /dev/null +++ b/test/core/end2end/fixtures/proxy.c @@ -0,0 +1,430 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "test/core/end2end/fixtures/proxy.h" + +#include <string.h> + +#include <grpc/support/alloc.h> +#include <grpc/support/host_port.h> +#include <grpc/support/log.h> +#include <grpc/support/sync.h> +#include <grpc/support/thd.h> +#include <grpc/support/useful.h> + +#include "test/core/util/port.h" + +struct grpc_end2end_proxy { + gpr_thd_id thd; + char *proxy_port; + char *server_port; + grpc_completion_queue *cq; + grpc_server *server; + grpc_channel *client; + + int shutdown; + + /* requested call */ + grpc_call *new_call; + grpc_call_details new_call_details; + grpc_metadata_array new_call_metadata; +}; + +typedef struct { + void (*func)(void *arg, int success); + void *arg; +} closure; + +typedef struct { + gpr_refcount refs; + grpc_end2end_proxy *proxy; + + grpc_call *c2p; + grpc_call *p2s; + + grpc_metadata_array c2p_initial_metadata; + grpc_metadata_array p2s_initial_metadata; + + grpc_byte_buffer *c2p_msg; + grpc_byte_buffer *p2s_msg; + + grpc_metadata_array p2s_trailing_metadata; + grpc_status_code p2s_status; + char *p2s_status_details; + size_t p2s_status_details_capacity; + + int c2p_server_cancelled; +} proxy_call; + +static void thread_main(void *arg); +static void request_call(grpc_end2end_proxy *proxy); + +grpc_end2end_proxy *grpc_end2end_proxy_create( + const grpc_end2end_proxy_def *def) { + gpr_thd_options opt = gpr_thd_options_default(); + int proxy_port = grpc_pick_unused_port_or_die(); + int server_port = grpc_pick_unused_port_or_die(); + + grpc_end2end_proxy *proxy = gpr_malloc(sizeof(*proxy)); + memset(proxy, 0, sizeof(*proxy)); + + gpr_join_host_port(&proxy->proxy_port, "localhost", proxy_port); + gpr_join_host_port(&proxy->server_port, "localhost", server_port); + proxy->cq = grpc_completion_queue_create(); + proxy->server = def->create_server(proxy->proxy_port); + proxy->client = def->create_client(proxy->server_port); + + grpc_server_register_completion_queue(proxy->server, proxy->cq); + grpc_server_start(proxy->server); + + gpr_thd_options_set_joinable(&opt); + GPR_ASSERT(gpr_thd_new(&proxy->thd, thread_main, proxy, &opt)); + + request_call(proxy); + + return proxy; +} + +static closure *new_closure(void (*func)(void *arg, int success), void *arg) { + closure *cl = gpr_malloc(sizeof(*cl)); + cl->func = func; + cl->arg = arg; + return cl; +} + +static void shutdown_complete(void *arg, int success) { + grpc_end2end_proxy *proxy = arg; + proxy->shutdown = 1; + grpc_completion_queue_shutdown(proxy->cq); +} + +void grpc_end2end_proxy_destroy(grpc_end2end_proxy *proxy) { + grpc_server_shutdown_and_notify(proxy->server, proxy->cq, + new_closure(shutdown_complete, proxy)); + gpr_thd_join(proxy->thd); + gpr_free(proxy->proxy_port); + gpr_free(proxy->server_port); + grpc_server_destroy(proxy->server); + grpc_channel_destroy(proxy->client); + grpc_completion_queue_destroy(proxy->cq); + grpc_call_details_destroy(&proxy->new_call_details); + gpr_free(proxy); +} + +static void unrefpc(proxy_call *pc, const char *reason) { + gpr_log(GPR_DEBUG, "unref %p: %s %d -> %d", pc, reason, pc->refs.count, + pc->refs.count - 1); + if (gpr_unref(&pc->refs)) { + grpc_call_destroy(pc->c2p); + grpc_call_destroy(pc->p2s); + grpc_metadata_array_destroy(&pc->c2p_initial_metadata); + grpc_metadata_array_destroy(&pc->p2s_initial_metadata); + grpc_metadata_array_destroy(&pc->p2s_trailing_metadata); + gpr_free(pc->p2s_status_details); + gpr_free(pc); + } +} + +static void refpc(proxy_call *pc, const char *reason) { + gpr_log(GPR_DEBUG, "ref %p: %s %d -> %d", pc, reason, pc->refs.count, + pc->refs.count + 1); + gpr_ref(&pc->refs); +} + +static void on_c2p_sent_initial_metadata(void *arg, int success) { + proxy_call *pc = arg; + unrefpc(pc, "on_c2p_sent_initial_metadata"); +} + +static void on_p2s_recv_initial_metadata(void *arg, int success) { + proxy_call *pc = arg; + grpc_op op; + grpc_call_error err; + + if (!pc->proxy->shutdown) { + op.op = GRPC_OP_SEND_INITIAL_METADATA; + op.flags = 0; + op.data.send_initial_metadata.count = pc->p2s_initial_metadata.count; + op.data.send_initial_metadata.metadata = pc->p2s_initial_metadata.metadata; + refpc(pc, "on_c2p_sent_initial_metadata"); + err = grpc_call_start_batch(pc->c2p, &op, 1, + new_closure(on_c2p_sent_initial_metadata, pc)); + GPR_ASSERT(err == GRPC_CALL_OK); + } + + unrefpc(pc, "on_p2s_recv_initial_metadata"); +} + +static void on_p2s_sent_initial_metadata(void *arg, int success) { + proxy_call *pc = arg; + unrefpc(pc, "on_p2s_sent_initial_metadata"); +} + +static void on_c2p_recv_msg(void *arg, int success); + +static void on_p2s_sent_message(void *arg, int success) { + proxy_call *pc = arg; + grpc_op op; + grpc_call_error err; + + grpc_byte_buffer_destroy(pc->c2p_msg); + if (!pc->proxy->shutdown && success) { + op.op = GRPC_OP_RECV_MESSAGE; + op.flags = 0; + op.data.recv_message = &pc->c2p_msg; + refpc(pc, "on_c2p_recv_msg"); + err = grpc_call_start_batch(pc->c2p, &op, 1, + new_closure(on_c2p_recv_msg, pc)); + GPR_ASSERT(err == GRPC_CALL_OK); + } + + unrefpc(pc, "on_p2s_sent_message"); +} + +static void on_p2s_sent_close(void *arg, int success) { + proxy_call *pc = arg; + unrefpc(pc, "on_p2s_sent_close"); +} + +static void on_c2p_recv_msg(void *arg, int success) { + proxy_call *pc = arg; + grpc_op op; + grpc_call_error err; + + if (!pc->proxy->shutdown && success) { + if (pc->c2p_msg != NULL) { + op.op = GRPC_OP_SEND_MESSAGE; + op.flags = 0; + op.data.send_message = pc->c2p_msg; + refpc(pc, "on_p2s_sent_message"); + err = grpc_call_start_batch(pc->p2s, &op, 1, + new_closure(on_p2s_sent_message, pc)); + GPR_ASSERT(err == GRPC_CALL_OK); + } else { + op.op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; + op.flags = 0; + refpc(pc, "on_p2s_sent_close"); + err = grpc_call_start_batch(pc->p2s, &op, 1, + new_closure(on_p2s_sent_close, pc)); + GPR_ASSERT(err == GRPC_CALL_OK); + } + } + + unrefpc(pc, "on_c2p_recv_msg"); +} + +static void on_p2s_recv_msg(void *arg, int success); + +static void on_c2p_sent_message(void *arg, int success) { + proxy_call *pc = arg; + grpc_op op; + grpc_call_error err; + + grpc_byte_buffer_destroy(pc->p2s_msg); + if (!pc->proxy->shutdown && success) { + op.op = GRPC_OP_RECV_MESSAGE; + op.flags = 0; + op.data.recv_message = &pc->p2s_msg; + refpc(pc, "on_p2s_recv_msg"); + err = grpc_call_start_batch(pc->p2s, &op, 1, + new_closure(on_p2s_recv_msg, pc)); + GPR_ASSERT(err == GRPC_CALL_OK); + } + + unrefpc(pc, "on_c2p_sent_message"); +} + +static void on_p2s_recv_msg(void *arg, int success) { + proxy_call *pc = arg; + grpc_op op; + grpc_call_error err; + + if (!pc->proxy->shutdown && success && pc->p2s_msg) { + op.op = GRPC_OP_SEND_MESSAGE; + op.flags = 0; + op.data.send_message = pc->p2s_msg; + refpc(pc, "on_c2p_sent_message"); + err = grpc_call_start_batch(pc->c2p, &op, 1, + new_closure(on_c2p_sent_message, pc)); + GPR_ASSERT(err == GRPC_CALL_OK); + } + unrefpc(pc, "on_p2s_recv_msg"); +} + +static void on_c2p_sent_status(void *arg, int success) { + proxy_call *pc = arg; + unrefpc(pc, "on_c2p_sent_status"); +} + +static void on_p2s_status(void *arg, int success) { + proxy_call *pc = arg; + grpc_op op; + grpc_call_error err; + + if (!pc->proxy->shutdown) { + GPR_ASSERT(success); + op.op = GRPC_OP_SEND_STATUS_FROM_SERVER; + op.flags = 0; + op.data.send_status_from_server.trailing_metadata_count = + pc->p2s_trailing_metadata.count; + op.data.send_status_from_server.trailing_metadata = + pc->p2s_trailing_metadata.metadata; + op.data.send_status_from_server.status = pc->p2s_status; + op.data.send_status_from_server.status_details = pc->p2s_status_details; + refpc(pc, "on_c2p_sent_status"); + err = grpc_call_start_batch(pc->c2p, &op, 1, + new_closure(on_c2p_sent_status, pc)); + GPR_ASSERT(err == GRPC_CALL_OK); + } + + unrefpc(pc, "on_p2s_status"); +} + +static void on_c2p_closed(void *arg, int success) { + proxy_call *pc = arg; + unrefpc(pc, "on_c2p_closed"); +} + +static void on_new_call(void *arg, int success) { + grpc_end2end_proxy *proxy = arg; + grpc_call_error err; + + if (success) { + grpc_op op; + proxy_call *pc = gpr_malloc(sizeof(*pc)); + memset(pc, 0, sizeof(*pc)); + pc->proxy = proxy; + GPR_SWAP(grpc_metadata_array, pc->c2p_initial_metadata, + proxy->new_call_metadata); + pc->c2p = proxy->new_call; + pc->p2s = grpc_channel_create_call( + proxy->client, pc->c2p, GRPC_PROPAGATE_DEFAULTS, proxy->cq, + proxy->new_call_details.method, proxy->new_call_details.host, + proxy->new_call_details.deadline); + gpr_ref_init(&pc->refs, 1); + + op.flags = 0; + + op.op = GRPC_OP_RECV_INITIAL_METADATA; + op.data.recv_initial_metadata = &pc->p2s_initial_metadata; + refpc(pc, "on_p2s_recv_initial_metadata"); + err = grpc_call_start_batch(pc->p2s, &op, 1, + new_closure(on_p2s_recv_initial_metadata, pc)); + GPR_ASSERT(err == GRPC_CALL_OK); + + op.op = GRPC_OP_SEND_INITIAL_METADATA; + op.data.send_initial_metadata.count = pc->c2p_initial_metadata.count; + op.data.send_initial_metadata.metadata = pc->c2p_initial_metadata.metadata; + refpc(pc, "on_p2s_sent_initial_metadata"); + err = grpc_call_start_batch(pc->p2s, &op, 1, + new_closure(on_p2s_sent_initial_metadata, pc)); + GPR_ASSERT(err == GRPC_CALL_OK); + + op.op = GRPC_OP_RECV_MESSAGE; + op.data.recv_message = &pc->c2p_msg; + refpc(pc, "on_c2p_recv_msg"); + err = grpc_call_start_batch(pc->c2p, &op, 1, + new_closure(on_c2p_recv_msg, pc)); + GPR_ASSERT(err == GRPC_CALL_OK); + + op.op = GRPC_OP_RECV_MESSAGE; + op.data.recv_message = &pc->p2s_msg; + refpc(pc, "on_p2s_recv_msg"); + err = grpc_call_start_batch(pc->p2s, &op, 1, + new_closure(on_p2s_recv_msg, pc)); + GPR_ASSERT(err == GRPC_CALL_OK); + + op.op = GRPC_OP_RECV_STATUS_ON_CLIENT; + op.data.recv_status_on_client.trailing_metadata = + &pc->p2s_trailing_metadata; + op.data.recv_status_on_client.status = &pc->p2s_status; + op.data.recv_status_on_client.status_details = &pc->p2s_status_details; + op.data.recv_status_on_client.status_details_capacity = + &pc->p2s_status_details_capacity; + refpc(pc, "on_p2s_status"); + err = + grpc_call_start_batch(pc->p2s, &op, 1, new_closure(on_p2s_status, pc)); + GPR_ASSERT(err == GRPC_CALL_OK); + + op.op = GRPC_OP_RECV_CLOSE_ON_SERVER; + op.data.recv_close_on_server.cancelled = &pc->c2p_server_cancelled; + refpc(pc, "on_c2p_closed"); + err = + grpc_call_start_batch(pc->c2p, &op, 1, new_closure(on_c2p_closed, pc)); + GPR_ASSERT(err == GRPC_CALL_OK); + + request_call(proxy); + + unrefpc(pc, "init"); + } else { + GPR_ASSERT(proxy->new_call == NULL); + } +} + +static void request_call(grpc_end2end_proxy *proxy) { + proxy->new_call = NULL; + GPR_ASSERT(GRPC_CALL_OK == grpc_server_request_call( + proxy->server, &proxy->new_call, + &proxy->new_call_details, + &proxy->new_call_metadata, proxy->cq, + proxy->cq, new_closure(on_new_call, proxy))); +} + +static void thread_main(void *arg) { + grpc_end2end_proxy *proxy = arg; + closure *cl; + for (;;) { + grpc_event ev = grpc_completion_queue_next( + proxy->cq, gpr_inf_future(GPR_CLOCK_MONOTONIC)); + switch (ev.type) { + case GRPC_QUEUE_TIMEOUT: + gpr_log(GPR_ERROR, "Should never reach here"); + abort(); + case GRPC_QUEUE_SHUTDOWN: + return; + case GRPC_OP_COMPLETE: + cl = ev.tag; + cl->func(cl->arg, ev.success); + gpr_free(cl); + break; + } + } +} + +const char *grpc_end2end_proxy_get_client_target(grpc_end2end_proxy *proxy) { + return proxy->proxy_port; +} + +const char *grpc_end2end_proxy_get_server_port(grpc_end2end_proxy *proxy) { + return proxy->server_port; +} diff --git a/test/core/end2end/fixtures/proxy.h b/test/core/end2end/fixtures/proxy.h new file mode 100644 index 0000000000..c1cf01d39a --- /dev/null +++ b/test/core/end2end/fixtures/proxy.h @@ -0,0 +1,55 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_TEST_CORE_END2END_FIXTURES_PROXY_H +#define GRPC_TEST_CORE_END2END_FIXTURES_PROXY_H + +#include <grpc/grpc.h> + +/* proxy service for _with_proxy fixtures */ + +typedef struct grpc_end2end_proxy grpc_end2end_proxy; + +typedef struct grpc_end2end_proxy_def { + grpc_server *(*create_server)(const char *port); + grpc_channel *(*create_client)(const char *target); +} grpc_end2end_proxy_def; + +grpc_end2end_proxy *grpc_end2end_proxy_create( + const grpc_end2end_proxy_def *def); +void grpc_end2end_proxy_destroy(grpc_end2end_proxy *proxy); + +const char *grpc_end2end_proxy_get_client_target(grpc_end2end_proxy *proxy); +const char *grpc_end2end_proxy_get_server_port(grpc_end2end_proxy *proxy); + +#endif /* GRPC_TEST_CORE_END2END_FIXTURES_PROXY_H */ diff --git a/test/core/end2end/gen_build_json.py b/test/core/end2end/gen_build_json.py index 43ab09f57d..d1138abd78 100755 --- a/test/core/end2end/gen_build_json.py +++ b/test/core/end2end/gen_build_json.py @@ -36,30 +36,33 @@ import simplejson import collections -FixtureOptions = collections.namedtuple('FixtureOptions', 'fullstack dns_resolver secure platforms') -default_unsecure_fixture_options = FixtureOptions(True, True, False, ['windows', 'posix']) -socketpair_unsecure_fixture_options = FixtureOptions(False, False, False, ['windows', 'posix']) -default_secure_fixture_options = FixtureOptions(True, True, True, ['windows', 'posix']) +FixtureOptions = collections.namedtuple('FixtureOptions', 'fullstack includes_proxy dns_resolver secure platforms') +default_unsecure_fixture_options = FixtureOptions(True, False, True, False, ['windows', 'linux', 'mac', 'posix']) +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']) # maps fixture name to whether it requires the security library END2END_FIXTURES = { 'chttp2_fake_security': default_secure_fixture_options, - 'chttp2_fullstack_compression': default_unsecure_fixture_options, 'chttp2_fullstack': default_unsecure_fixture_options, - 'chttp2_fullstack_uds_posix': FixtureOptions(True, False, False, ['posix']), - 'chttp2_fullstack_uds_posix_with_poll': FixtureOptions(True, False, False, ['posix']), - 'chttp2_fullstack_with_poll': FixtureOptions(True, True, False, ['posix']), + 'chttp2_fullstack_compression': default_unsecure_fixture_options, + 'chttp2_fullstack_uds_posix': uds_fixture_options, + 'chttp2_fullstack_uds_posix_with_poll': uds_fixture_options._replace(platforms=['linux']), + 'chttp2_fullstack_with_poll': default_unsecure_fixture_options._replace(platforms=['linux']), + 'chttp2_fullstack_with_proxy': default_unsecure_fixture_options._replace(includes_proxy=True), 'chttp2_simple_ssl_fullstack': default_secure_fixture_options, - 'chttp2_simple_ssl_fullstack_with_poll': FixtureOptions(True, True, True, ['posix']), + 'chttp2_simple_ssl_fullstack_with_poll': default_secure_fixture_options._replace(platforms=['linux']), + 'chttp2_simple_ssl_fullstack_with_proxy': default_secure_fixture_options._replace(includes_proxy=True), 'chttp2_simple_ssl_with_oauth2_fullstack': default_secure_fixture_options, - 'chttp2_socket_pair_one_byte_at_a_time': socketpair_unsecure_fixture_options, 'chttp2_socket_pair': socketpair_unsecure_fixture_options, + 'chttp2_socket_pair_one_byte_at_a_time': socketpair_unsecure_fixture_options, 'chttp2_socket_pair_with_grpc_trace': socketpair_unsecure_fixture_options, } -TestOptions = collections.namedtuple('TestOptions', 'needs_fullstack needs_dns flaky secure') -default_test_options = TestOptions(False, False, False, False) -connectivity_test_options = TestOptions(True, False, False, False) +TestOptions = collections.namedtuple('TestOptions', 'needs_fullstack needs_dns proxyable flaky secure') +default_test_options = TestOptions(False, False, True, False, False) +connectivity_test_options = default_test_options._replace(needs_fullstack=True) # maps test names to options END2END_TESTS = { @@ -70,26 +73,26 @@ END2END_TESTS = { 'cancel_before_invoke': default_test_options, 'cancel_in_a_vacuum': default_test_options, 'census_simple_request': default_test_options, - 'channel_connectivity': connectivity_test_options, - 'default_host': TestOptions(True, True, False, False), + 'channel_connectivity': connectivity_test_options._replace(proxyable=False), + 'default_host': default_test_options._replace(needs_fullstack=True, needs_dns=True), 'disappearing_server': connectivity_test_options, 'early_server_shutdown_finishes_inflight_calls': default_test_options, 'early_server_shutdown_finishes_tags': default_test_options, 'empty_batch': default_test_options, 'graceful_server_shutdown': default_test_options, 'invoke_large_request': default_test_options, - 'max_concurrent_streams': default_test_options, + 'max_concurrent_streams': default_test_options._replace(proxyable=False), 'max_message_length': default_test_options, 'no_op': default_test_options, 'ping_pong_streaming': default_test_options, 'registered_call': default_test_options, 'request_response_with_binary_metadata_and_payload': default_test_options, 'request_response_with_metadata_and_payload': default_test_options, - 'request_response_with_payload_and_call_creds': TestOptions(needs_fullstack=False, needs_dns=False, flaky=False, secure=True), + 'request_response_with_payload_and_call_creds': default_test_options._replace(secure=True), 'request_response_with_payload': default_test_options, 'request_response_with_trailing_metadata_and_payload': default_test_options, - 'request_with_compressed_payload': default_test_options, - 'request_with_flags': default_test_options, + 'request_with_compressed_payload': default_test_options._replace(proxyable=False), + 'request_with_flags': default_test_options._replace(proxyable=False), 'request_with_large_metadata': default_test_options, 'request_with_payload': default_test_options, 'server_finishes_request': default_test_options, @@ -106,6 +109,9 @@ def compatible(f, t): if END2END_TESTS[t].needs_dns: if not END2END_FIXTURES[f].dns_resolver: return False + if not END2END_TESTS[t].proxyable: + if END2END_FIXTURES[f].includes_proxy: + return False return True @@ -132,7 +138,7 @@ def main(): 'language': 'c', 'secure': 'check' if END2END_FIXTURES[f].secure else 'no', 'src': ['test/core/end2end/fixtures/%s.c' % f], - 'platforms': [ 'posix' ] if f.endswith('_posix') else END2END_FIXTURES[f].platforms, + 'platforms': [ 'linux', 'mac', 'posix' ] if f.endswith('_posix') else END2END_FIXTURES[f].platforms, 'deps': sec_deps if END2END_FIXTURES[f].secure else unsec_deps, 'headers': ['test/core/end2end/end2end_tests.h'], } diff --git a/test/core/end2end/no_server_test.c b/test/core/end2end/no_server_test.c index 6f1133c009..6a5e12325d 100644 --- a/test/core/end2end/no_server_test.c +++ b/test/core/end2end/no_server_test.c @@ -62,7 +62,8 @@ int main(int argc, char **argv) { /* create a call, channel to a non existant server */ chan = grpc_insecure_channel_create("nonexistant:54321", NULL); - call = grpc_channel_create_call(chan, cq, "/Foo", "nonexistant", deadline); + call = grpc_channel_create_call(chan, NULL, GRPC_PROPAGATE_DEFAULTS, cq, + "/Foo", "nonexistant", deadline); op = ops; op->op = GRPC_OP_SEND_INITIAL_METADATA; diff --git a/test/core/end2end/tests/bad_hostname.c b/test/core/end2end/tests/bad_hostname.c index 2509ea06a0..198ba46cd2 100644 --- a/test/core/end2end/tests/bad_hostname.c +++ b/test/core/end2end/tests/bad_hostname.c @@ -113,8 +113,8 @@ static void simple_request_body(grpc_end2end_test_fixture f) { char *details = NULL; size_t details_capacity = 0; - c = grpc_channel_create_call(f.client, f.cq, "/foo", "slartibartfast.local", - deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "slartibartfast.local", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); diff --git a/test/core/end2end/tests/cancel_after_accept.c b/test/core/end2end/tests/cancel_after_accept.c index 1cc6b2d147..2e166b8412 100644 --- a/test/core/end2end/tests/cancel_after_accept.c +++ b/test/core/end2end/tests/cancel_after_accept.c @@ -126,8 +126,8 @@ static void test_cancel_after_accept(grpc_end2end_test_config config, grpc_raw_byte_buffer_create(&response_payload_slice, 1); int was_cancelled = 2; - c = grpc_channel_create_call(f.client, f.cq, "/foo", "foo.test.google.fr", - deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); @@ -192,8 +192,7 @@ static void test_cancel_after_accept(grpc_end2end_test_config config, cq_expect_completion(cqv, tag(1), 1); cq_verify(cqv); - GPR_ASSERT(status == mode.expect_status); - GPR_ASSERT(0 == strcmp(details, mode.expect_details)); + GPR_ASSERT(status == mode.expect_status || status == GRPC_STATUS_INTERNAL); GPR_ASSERT(was_cancelled == 1); grpc_metadata_array_destroy(&initial_metadata_recv); diff --git a/test/core/end2end/tests/cancel_after_accept_and_writes_closed.c b/test/core/end2end/tests/cancel_after_accept_and_writes_closed.c index 015d437543..171c1874cc 100644 --- a/test/core/end2end/tests/cancel_after_accept_and_writes_closed.c +++ b/test/core/end2end/tests/cancel_after_accept_and_writes_closed.c @@ -126,8 +126,8 @@ static void test_cancel_after_accept_and_writes_closed( grpc_raw_byte_buffer_create(&response_payload_slice, 1); int was_cancelled = 2; - c = grpc_channel_create_call(f.client, f.cq, "/foo", "foo.test.google.fr", - deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); @@ -195,8 +195,7 @@ static void test_cancel_after_accept_and_writes_closed( cq_expect_completion(cqv, tag(1), 1); cq_verify(cqv); - GPR_ASSERT(status == mode.expect_status); - GPR_ASSERT(0 == strcmp(details, mode.expect_details)); + GPR_ASSERT(status == mode.expect_status || status == GRPC_STATUS_INTERNAL); GPR_ASSERT(was_cancelled == 1); grpc_metadata_array_destroy(&initial_metadata_recv); diff --git a/test/core/end2end/tests/cancel_after_invoke.c b/test/core/end2end/tests/cancel_after_invoke.c index 414ec706ce..186cd44a43 100644 --- a/test/core/end2end/tests/cancel_after_invoke.c +++ b/test/core/end2end/tests/cancel_after_invoke.c @@ -121,8 +121,8 @@ static void test_cancel_after_invoke(grpc_end2end_test_config config, grpc_byte_buffer *request_payload = grpc_raw_byte_buffer_create(&request_payload_slice, 1); - c = grpc_channel_create_call(f.client, f.cq, "/foo", "foo.test.google.fr", - deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); @@ -164,8 +164,7 @@ static void test_cancel_after_invoke(grpc_end2end_test_config config, cq_expect_completion(cqv, tag(1), 1); cq_verify(cqv); - GPR_ASSERT(status == mode.expect_status); - GPR_ASSERT(0 == strcmp(details, mode.expect_details)); + GPR_ASSERT(status == mode.expect_status || status == GRPC_STATUS_INTERNAL); grpc_metadata_array_destroy(&initial_metadata_recv); grpc_metadata_array_destroy(&trailing_metadata_recv); diff --git a/test/core/end2end/tests/cancel_before_invoke.c b/test/core/end2end/tests/cancel_before_invoke.c index 3cfe56eca2..b511908b4f 100644 --- a/test/core/end2end/tests/cancel_before_invoke.c +++ b/test/core/end2end/tests/cancel_before_invoke.c @@ -119,8 +119,8 @@ static void test_cancel_before_invoke(grpc_end2end_test_config config, grpc_byte_buffer *request_payload = grpc_raw_byte_buffer_create(&request_payload_slice, 1); - c = grpc_channel_create_call(f.client, f.cq, "/foo", "foo.test.google.fr", - deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); GPR_ASSERT(GRPC_CALL_OK == grpc_call_cancel(c)); diff --git a/test/core/end2end/tests/cancel_in_a_vacuum.c b/test/core/end2end/tests/cancel_in_a_vacuum.c index 8bffc3f4d3..7645410184 100644 --- a/test/core/end2end/tests/cancel_in_a_vacuum.c +++ b/test/core/end2end/tests/cancel_in_a_vacuum.c @@ -107,8 +107,8 @@ static void test_cancel_in_a_vacuum(grpc_end2end_test_config config, gpr_timespec deadline = five_seconds_time(); cq_verifier *v_client = cq_verifier_create(f.cq); - c = grpc_channel_create_call(f.client, f.cq, "/foo", "foo.test.google.fr", - deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); GPR_ASSERT(GRPC_CALL_OK == mode.initiate_cancel(c)); diff --git a/test/core/end2end/tests/census_simple_request.c b/test/core/end2end/tests/census_simple_request.c index b414755cd1..2142dde921 100644 --- a/test/core/end2end/tests/census_simple_request.c +++ b/test/core/end2end/tests/census_simple_request.c @@ -111,8 +111,8 @@ static void test_body(grpc_end2end_test_fixture f) { size_t details_capacity = 0; int was_cancelled = 2; - c = grpc_channel_create_call(f.client, f.cq, "/foo", - "foo.test.google.fr:1234", deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr:1234", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); diff --git a/test/core/end2end/tests/default_host.c b/test/core/end2end/tests/default_host.c index 63ef4bcd35..920449f4fa 100644 --- a/test/core/end2end/tests/default_host.c +++ b/test/core/end2end/tests/default_host.c @@ -116,7 +116,8 @@ static void simple_request_body(grpc_end2end_test_fixture f) { int was_cancelled = 2; char *peer; - c = grpc_channel_create_call(f.client, f.cq, "/foo", NULL, deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", NULL, deadline); GPR_ASSERT(c); peer = grpc_call_get_peer(c); diff --git a/test/core/end2end/tests/disappearing_server.c b/test/core/end2end/tests/disappearing_server.c index a5fd74ee9a..94bed336e8 100644 --- a/test/core/end2end/tests/disappearing_server.c +++ b/test/core/end2end/tests/disappearing_server.c @@ -97,8 +97,8 @@ static void do_request_and_shutdown_server(grpc_end2end_test_fixture *f, size_t details_capacity = 0; int was_cancelled = 2; - c = grpc_channel_create_call(f->client, f->cq, "/foo", - "foo.test.google.fr:1234", deadline); + c = grpc_channel_create_call(f->client, NULL, GRPC_PROPAGATE_DEFAULTS, f->cq, + "/foo", "foo.test.google.fr:1234", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); diff --git a/test/core/end2end/tests/early_server_shutdown_finishes_inflight_calls.c b/test/core/end2end/tests/early_server_shutdown_finishes_inflight_calls.c index adc59b4e94..36cbe8067b 100644 --- a/test/core/end2end/tests/early_server_shutdown_finishes_inflight_calls.c +++ b/test/core/end2end/tests/early_server_shutdown_finishes_inflight_calls.c @@ -105,8 +105,8 @@ static void test_early_server_shutdown_finishes_inflight_calls( size_t details_capacity = 0; int was_cancelled = 2; - c = grpc_channel_create_call(f.client, f.cq, "/foo", "foo.test.google.fr", - deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); diff --git a/test/core/end2end/tests/empty_batch.c b/test/core/end2end/tests/empty_batch.c index db8458d3d9..138c6b07c5 100644 --- a/test/core/end2end/tests/empty_batch.c +++ b/test/core/end2end/tests/empty_batch.c @@ -105,8 +105,8 @@ static void empty_batch_body(grpc_end2end_test_fixture f) { cq_verifier *cqv = cq_verifier_create(f.cq); grpc_op *op = NULL; - c = grpc_channel_create_call(f.client, f.cq, "/foo", "foo.test.google.fr", - deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(c, op, 0, tag(1))); diff --git a/test/core/end2end/tests/graceful_server_shutdown.c b/test/core/end2end/tests/graceful_server_shutdown.c index 8c1889add9..23efa0304f 100644 --- a/test/core/end2end/tests/graceful_server_shutdown.c +++ b/test/core/end2end/tests/graceful_server_shutdown.c @@ -112,8 +112,8 @@ static void test_early_server_shutdown_finishes_inflight_calls( size_t details_capacity = 0; int was_cancelled = 2; - c = grpc_channel_create_call(f.client, f.cq, "/foo", "foo.test.google.fr", - deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); diff --git a/test/core/end2end/tests/invoke_large_request.c b/test/core/end2end/tests/invoke_large_request.c index 744a9ada57..e32645e2ba 100644 --- a/test/core/end2end/tests/invoke_large_request.c +++ b/test/core/end2end/tests/invoke_large_request.c @@ -128,8 +128,8 @@ static void test_invoke_large_request(grpc_end2end_test_config config) { size_t details_capacity = 0; int was_cancelled = 2; - c = grpc_channel_create_call(f.client, f.cq, "/foo", "foo.test.google.fr", - deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); diff --git a/test/core/end2end/tests/max_concurrent_streams.c b/test/core/end2end/tests/max_concurrent_streams.c index 1204c070af..049c028835 100644 --- a/test/core/end2end/tests/max_concurrent_streams.c +++ b/test/core/end2end/tests/max_concurrent_streams.c @@ -113,8 +113,8 @@ static void simple_request_body(grpc_end2end_test_fixture f) { size_t details_capacity = 0; int was_cancelled = 2; - c = grpc_channel_create_call(f.client, f.cq, "/foo", - "foo.test.google.fr:1234", deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr:1234", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); @@ -244,11 +244,11 @@ static void test_max_concurrent_streams(grpc_end2end_test_config config) { /* start two requests - ensuring that the second is not accepted until the first completes */ deadline = n_seconds_time(1000); - c1 = grpc_channel_create_call(f.client, f.cq, "/alpha", - "foo.test.google.fr:1234", deadline); + c1 = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/alpha", "foo.test.google.fr:1234", deadline); GPR_ASSERT(c1); - c2 = grpc_channel_create_call(f.client, f.cq, "/beta", - "foo.test.google.fr:1234", deadline); + c2 = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/beta", "foo.test.google.fr:1234", deadline); GPR_ASSERT(c2); GPR_ASSERT(GRPC_CALL_OK == grpc_server_request_call( diff --git a/test/core/end2end/tests/max_message_length.c b/test/core/end2end/tests/max_message_length.c index ea59a9385f..feea49c68f 100644 --- a/test/core/end2end/tests/max_message_length.c +++ b/test/core/end2end/tests/max_message_length.c @@ -128,8 +128,8 @@ static void test_max_message_length(grpc_end2end_test_config config) { f = begin_test(config, "test_max_message_length", NULL, &server_args); cqv = cq_verifier_create(f.cq); - c = grpc_channel_create_call(f.client, f.cq, "/foo", - "foo.test.google.fr:1234", + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr:1234", gpr_inf_future(GPR_CLOCK_REALTIME)); GPR_ASSERT(c); diff --git a/test/core/end2end/tests/ping_pong_streaming.c b/test/core/end2end/tests/ping_pong_streaming.c index 8a3ec96212..0ae611b518 100644 --- a/test/core/end2end/tests/ping_pong_streaming.c +++ b/test/core/end2end/tests/ping_pong_streaming.c @@ -124,8 +124,8 @@ static void test_pingpong_streaming(grpc_end2end_test_config config, gpr_slice request_payload_slice = gpr_slice_from_copied_string("hello world"); gpr_slice response_payload_slice = gpr_slice_from_copied_string("hello you"); - c = grpc_channel_create_call(f.client, f.cq, "/foo", - "foo.test.google.fr:1234", deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr:1234", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); diff --git a/test/core/end2end/tests/registered_call.c b/test/core/end2end/tests/registered_call.c index f44fd3a224..ffc4cd40a0 100644 --- a/test/core/end2end/tests/registered_call.c +++ b/test/core/end2end/tests/registered_call.c @@ -115,7 +115,8 @@ static void simple_request_body(grpc_end2end_test_fixture f, void *rc) { size_t details_capacity = 0; int was_cancelled = 2; - c = grpc_channel_create_registered_call(f.client, f.cq, rc, deadline); + c = grpc_channel_create_registered_call( + f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, rc, deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); diff --git a/test/core/end2end/tests/request_response_with_binary_metadata_and_payload.c b/test/core/end2end/tests/request_response_with_binary_metadata_and_payload.c index 8b8a11babe..600642e6a7 100644 --- a/test/core/end2end/tests/request_response_with_binary_metadata_and_payload.c +++ b/test/core/end2end/tests/request_response_with_binary_metadata_and_payload.c @@ -143,8 +143,8 @@ static void test_request_response_with_metadata_and_payload( size_t details_capacity = 0; int was_cancelled = 2; - c = grpc_channel_create_call(f.client, f.cq, "/foo", "foo.test.google.fr", - deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); diff --git a/test/core/end2end/tests/request_response_with_metadata_and_payload.c b/test/core/end2end/tests/request_response_with_metadata_and_payload.c index 9821d7852f..7e8cce10f4 100644 --- a/test/core/end2end/tests/request_response_with_metadata_and_payload.c +++ b/test/core/end2end/tests/request_response_with_metadata_and_payload.c @@ -129,8 +129,8 @@ static void test_request_response_with_metadata_and_payload( size_t details_capacity = 0; int was_cancelled = 2; - c = grpc_channel_create_call(f.client, f.cq, "/foo", "foo.test.google.fr", - deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); diff --git a/test/core/end2end/tests/request_response_with_payload.c b/test/core/end2end/tests/request_response_with_payload.c index 38d3432f94..55323895fb 100644 --- a/test/core/end2end/tests/request_response_with_payload.c +++ b/test/core/end2end/tests/request_response_with_payload.c @@ -121,8 +121,8 @@ static void request_response_with_payload(grpc_end2end_test_fixture f) { size_t details_capacity = 0; int was_cancelled = 2; - c = grpc_channel_create_call(f.client, f.cq, "/foo", "foo.test.google.fr", - deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); diff --git a/test/core/end2end/tests/request_response_with_payload_and_call_creds.c b/test/core/end2end/tests/request_response_with_payload_and_call_creds.c index b4ccaf8216..0ea7b30fc5 100644 --- a/test/core/end2end/tests/request_response_with_payload_and_call_creds.c +++ b/test/core/end2end/tests/request_response_with_payload_and_call_creds.c @@ -138,8 +138,8 @@ static void test_call_creds_failure(grpc_end2end_test_config config) { grpc_end2end_test_fixture f = begin_test(config, "test_call_creds_failure", 0); gpr_timespec deadline = five_seconds_time(); - c = grpc_channel_create_call(f.client, f.cq, "/foo", "foo.test.google.fr", - deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); /* Try with credentials unfit to be set on a call (channel creds). */ @@ -186,8 +186,8 @@ static void request_response_with_payload_and_call_creds( f = begin_test(config, test_name, 0); cqv = cq_verifier_create(f.cq); - c = grpc_channel_create_call(f.client, f.cq, "/foo", "foo.test.google.fr", - deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); creds = grpc_iam_credentials_create(iam_token, iam_selector); GPR_ASSERT(creds != NULL); diff --git a/test/core/end2end/tests/request_response_with_trailing_metadata_and_payload.c b/test/core/end2end/tests/request_response_with_trailing_metadata_and_payload.c index a5c0851d05..26be4ef643 100644 --- a/test/core/end2end/tests/request_response_with_trailing_metadata_and_payload.c +++ b/test/core/end2end/tests/request_response_with_trailing_metadata_and_payload.c @@ -131,8 +131,8 @@ static void test_request_response_with_metadata_and_payload( size_t details_capacity = 0; int was_cancelled = 2; - c = grpc_channel_create_call(f.client, f.cq, "/foo", "foo.test.google.fr", - deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); diff --git a/test/core/end2end/tests/request_with_compressed_payload.c b/test/core/end2end/tests/request_with_compressed_payload.c index 2599f796d2..5f7d83cb06 100644 --- a/test/core/end2end/tests/request_with_compressed_payload.c +++ b/test/core/end2end/tests/request_with_compressed_payload.c @@ -141,8 +141,8 @@ static void request_with_payload_template( f = begin_test(config, test_name, client_args, server_args); cqv = cq_verifier_create(f.cq); - c = grpc_channel_create_call(f.client, f.cq, "/foo", - "foo.test.google.fr", deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); diff --git a/test/core/end2end/tests/request_with_flags.c b/test/core/end2end/tests/request_with_flags.c index 0bfedca0ab..37c4825c8b 100644 --- a/test/core/end2end/tests/request_with_flags.c +++ b/test/core/end2end/tests/request_with_flags.c @@ -121,8 +121,8 @@ static void test_invoke_request_with_flags( size_t details_capacity = 0; grpc_call_error expectation; - c = grpc_channel_create_call(f.client, f.cq, "/foo", "foo.test.google.fr", - deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); diff --git a/test/core/end2end/tests/request_with_large_metadata.c b/test/core/end2end/tests/request_with_large_metadata.c index ad34c69774..9ea8273ab0 100644 --- a/test/core/end2end/tests/request_with_large_metadata.c +++ b/test/core/end2end/tests/request_with_large_metadata.c @@ -122,8 +122,8 @@ static void test_request_with_large_metadata(grpc_end2end_test_config config) { int was_cancelled = 2; const int large_size = 64 * 1024; - c = grpc_channel_create_call(f.client, f.cq, "/foo", "foo.test.google.fr", - deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); meta.key = "key"; diff --git a/test/core/end2end/tests/request_with_payload.c b/test/core/end2end/tests/request_with_payload.c index 8db6457830..6b5f173f01 100644 --- a/test/core/end2end/tests/request_with_payload.c +++ b/test/core/end2end/tests/request_with_payload.c @@ -120,8 +120,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { size_t details_capacity = 0; int was_cancelled = 2; - c = grpc_channel_create_call(f.client, f.cq, "/foo", "foo.test.google.fr", - deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); diff --git a/test/core/end2end/tests/server_finishes_request.c b/test/core/end2end/tests/server_finishes_request.c index 062a59aca2..661c099d93 100644 --- a/test/core/end2end/tests/server_finishes_request.c +++ b/test/core/end2end/tests/server_finishes_request.c @@ -115,8 +115,8 @@ static void simple_request_body(grpc_end2end_test_fixture f) { size_t details_capacity = 0; int was_cancelled = 2; - c = grpc_channel_create_call(f.client, f.cq, "/foo", - "foo.test.google.fr:1234", deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr:1234", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); diff --git a/test/core/end2end/tests/simple_delayed_request.c b/test/core/end2end/tests/simple_delayed_request.c index 034e974256..82d2bf9657 100644 --- a/test/core/end2end/tests/simple_delayed_request.c +++ b/test/core/end2end/tests/simple_delayed_request.c @@ -107,8 +107,8 @@ static void simple_delayed_request_body(grpc_end2end_test_config config, config.init_client(f, client_args); - c = grpc_channel_create_call(f->client, f->cq, "/foo", "foo.test.google.fr", - deadline); + c = grpc_channel_create_call(f->client, NULL, GRPC_PROPAGATE_DEFAULTS, f->cq, + "/foo", "foo.test.google.fr", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); diff --git a/test/core/end2end/tests/simple_request.c b/test/core/end2end/tests/simple_request.c index ca783afccd..d60a63e682 100644 --- a/test/core/end2end/tests/simple_request.c +++ b/test/core/end2end/tests/simple_request.c @@ -116,8 +116,8 @@ static void simple_request_body(grpc_end2end_test_fixture f) { int was_cancelled = 2; char *peer; - c = grpc_channel_create_call(f.client, f.cq, "/foo", - "foo.test.google.fr:1234", deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr:1234", deadline); GPR_ASSERT(c); peer = grpc_call_get_peer(c); diff --git a/test/core/end2end/tests/simple_request_with_high_initial_sequence_number.c b/test/core/end2end/tests/simple_request_with_high_initial_sequence_number.c index 2cd638cbb9..2244e22416 100644 --- a/test/core/end2end/tests/simple_request_with_high_initial_sequence_number.c +++ b/test/core/end2end/tests/simple_request_with_high_initial_sequence_number.c @@ -115,8 +115,8 @@ static void simple_request_body(grpc_end2end_test_fixture f) { size_t details_capacity = 0; int was_cancelled = 2; - c = grpc_channel_create_call(f.client, f.cq, "/foo", - "foo.test.google.fr:1234", deadline); + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr:1234", deadline); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); diff --git a/test/core/fling/client.c b/test/core/fling/client.c index 5647a16101..17b737c9dd 100644 --- a/test/core/fling/client.c +++ b/test/core/fling/client.c @@ -89,9 +89,9 @@ static void init_ping_pong_request(void) { } static void step_ping_pong_request(void) { - call = - grpc_channel_create_call(channel, cq, "/Reflector/reflectUnary", - "localhost", gpr_inf_future(GPR_CLOCK_REALTIME)); + call = grpc_channel_create_call(channel, NULL, GRPC_PROPAGATE_DEFAULTS, cq, + "/Reflector/reflectUnary", "localhost", + gpr_inf_future(GPR_CLOCK_REALTIME)); GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, op - ops, (void *)1)); grpc_completion_queue_next(cq, gpr_inf_future(GPR_CLOCK_REALTIME)); @@ -101,9 +101,9 @@ static void step_ping_pong_request(void) { } static void init_ping_pong_stream(void) { - call = - grpc_channel_create_call(channel, cq, "/Reflector/reflectStream", - "localhost", gpr_inf_future(GPR_CLOCK_REALTIME)); + call = grpc_channel_create_call(channel, NULL, GRPC_PROPAGATE_DEFAULTS, cq, + "/Reflector/reflectStream", "localhost", + gpr_inf_future(GPR_CLOCK_REALTIME)); stream_init_op.op = GRPC_OP_SEND_INITIAL_METADATA; stream_init_op.data.send_initial_metadata.count = 0; GPR_ASSERT(GRPC_CALL_OK == diff --git a/test/core/surface/lame_client_test.c b/test/core/surface/lame_client_test.c index 3a7a3a36ee..5e6c9ae15c 100644 --- a/test/core/surface/lame_client_test.c +++ b/test/core/surface/lame_client_test.c @@ -60,7 +60,8 @@ int main(int argc, char **argv) { chan = grpc_lame_client_channel_create("lampoon:national"); GPR_ASSERT(chan); cq = grpc_completion_queue_create(); - call = grpc_channel_create_call(chan, cq, "/Foo", "anywhere", + call = grpc_channel_create_call(chan, NULL, GRPC_PROPAGATE_DEFAULTS, cq, + "/Foo", "anywhere", GRPC_TIMEOUT_SECONDS_TO_DEADLINE(100)); GPR_ASSERT(call); cqv = cq_verifier_create(cq); diff --git a/test/core/util/test_config.c b/test/core/util/test_config.c index 225658f5e2..cadf88a7c6 100644 --- a/test/core/util/test_config.c +++ b/test/core/util/test_config.c @@ -38,6 +38,8 @@ #include <stdlib.h> #include <signal.h> +double g_fixture_slowdown_factor = 1.0; + #if GPR_GETPID_IN_UNISTD_H #include <unistd.h> static int seed(void) { return getpid(); } diff --git a/test/core/util/test_config.h b/test/core/util/test_config.h index 7028ade7b2..b2cc40bb47 100644 --- a/test/core/util/test_config.h +++ b/test/core/util/test_config.h @@ -48,8 +48,11 @@ extern "C" { #define GRPC_TEST_SLOWDOWN_MACHINE_FACTOR 1.0 #endif -#define GRPC_TEST_SLOWDOWN_FACTOR \ - (GRPC_TEST_SLOWDOWN_BUILD_FACTOR * GRPC_TEST_SLOWDOWN_MACHINE_FACTOR) +extern double g_fixture_slowdown_factor; + +#define GRPC_TEST_SLOWDOWN_FACTOR \ + (GRPC_TEST_SLOWDOWN_BUILD_FACTOR * GRPC_TEST_SLOWDOWN_MACHINE_FACTOR * \ + g_fixture_slowdown_factor) #define GRPC_TIMEOUT_SECONDS_TO_DEADLINE(x) \ gpr_time_add(gpr_now(GPR_CLOCK_MONOTONIC), \ diff --git a/test/cpp/end2end/end2end_test.cc b/test/cpp/end2end/end2end_test.cc index 3144ca4dc7..24d417d9e6 100644 --- a/test/cpp/end2end/end2end_test.cc +++ b/test/cpp/end2end/end2end_test.cc @@ -104,6 +104,22 @@ bool CheckIsLocalhost(const grpc::string& addr) { } // namespace +class Proxy : public ::grpc::cpp::test::util::TestService::Service { + public: + Proxy(std::shared_ptr<ChannelInterface> channel) + : stub_(grpc::cpp::test::util::TestService::NewStub(channel)) {} + + Status Echo(ServerContext* server_context, const EchoRequest* request, + EchoResponse* response) GRPC_OVERRIDE { + std::unique_ptr<ClientContext> client_context = + ClientContext::FromServerContext(*server_context); + return stub_->Echo(client_context.get(), *request, response); + } + + private: + std::unique_ptr<::grpc::cpp::test::util::TestService::Stub> stub_; +}; + class TestServiceImpl : public ::grpc::cpp::test::util::TestService::Service { public: TestServiceImpl() : signal_client_(false), host_() {} @@ -241,7 +257,9 @@ class TestServiceImplDupPkg } }; -class End2endTest : public ::testing::Test { +/* Param is whether or not to use a proxy -- some tests use TEST_F as they don't + need this functionality */ +class End2endTest : public ::testing::TestWithParam<bool> { protected: End2endTest() : kMaxMessageSize_(8192), special_service_("special"), thread_pool_(2) {} @@ -267,21 +285,41 @@ class End2endTest : public ::testing::Test { server_ = builder.BuildAndStart(); } - void TearDown() GRPC_OVERRIDE { server_->Shutdown(); } + void TearDown() GRPC_OVERRIDE { + server_->Shutdown(); + if (proxy_server_) proxy_server_->Shutdown(); + } - void ResetStub() { + void ResetStub(bool use_proxy) { SslCredentialsOptions ssl_opts = {test_root_cert, "", ""}; ChannelArguments args; args.SetSslTargetNameOverride("foo.test.google.fr"); args.SetString(GRPC_ARG_SECONDARY_USER_AGENT_STRING, "end2end_test"); channel_ = CreateChannel(server_address_.str(), SslCredentials(ssl_opts), args); + if (use_proxy) { + proxy_service_.reset(new Proxy(channel_)); + int port = grpc_pick_unused_port_or_die(); + std::ostringstream proxyaddr; + proxyaddr << "localhost:" << port; + ServerBuilder builder; + builder.AddListeningPort(proxyaddr.str(), InsecureServerCredentials()); + builder.RegisterService(proxy_service_.get()); + builder.SetThreadPool(&thread_pool_); + proxy_server_ = builder.BuildAndStart(); + + channel_ = CreateChannel(proxyaddr.str(), InsecureCredentials(), + ChannelArguments()); + } + stub_ = std::move(grpc::cpp::test::util::TestService::NewStub(channel_)); } std::shared_ptr<ChannelInterface> channel_; std::unique_ptr<grpc::cpp::test::util::TestService::Stub> stub_; std::unique_ptr<Server> server_; + std::unique_ptr<Server> proxy_server_; + std::unique_ptr<Proxy> proxy_service_; std::ostringstream server_address_; const int kMaxMessageSize_; TestServiceImpl service_; @@ -306,7 +344,7 @@ static void SendRpc(grpc::cpp::test::util::TestService::Stub* stub, } TEST_F(End2endTest, SimpleRpcWithHost) { - ResetStub(); + ResetStub(false); EchoRequest request; EchoResponse response; @@ -321,13 +359,13 @@ TEST_F(End2endTest, SimpleRpcWithHost) { EXPECT_TRUE(s.ok()); } -TEST_F(End2endTest, SimpleRpc) { - ResetStub(); +TEST_P(End2endTest, SimpleRpc) { + ResetStub(GetParam()); SendRpc(stub_.get(), 1); } -TEST_F(End2endTest, MultipleRpcs) { - ResetStub(); +TEST_P(End2endTest, MultipleRpcs) { + ResetStub(GetParam()); std::vector<std::thread*> threads; for (int i = 0; i < 10; ++i) { threads.push_back(new std::thread(SendRpc, stub_.get(), 10)); @@ -339,8 +377,8 @@ TEST_F(End2endTest, MultipleRpcs) { } // Set a 10us deadline and make sure proper error is returned. -TEST_F(End2endTest, RpcDeadlineExpires) { - ResetStub(); +TEST_P(End2endTest, RpcDeadlineExpires) { + ResetStub(GetParam()); EchoRequest request; EchoResponse response; request.set_message("Hello"); @@ -354,8 +392,8 @@ TEST_F(End2endTest, RpcDeadlineExpires) { } // Set a long but finite deadline. -TEST_F(End2endTest, RpcLongDeadline) { - ResetStub(); +TEST_P(End2endTest, RpcLongDeadline) { + ResetStub(GetParam()); EchoRequest request; EchoResponse response; request.set_message("Hello"); @@ -370,8 +408,8 @@ TEST_F(End2endTest, RpcLongDeadline) { } // Ask server to echo back the deadline it sees. -TEST_F(End2endTest, EchoDeadline) { - ResetStub(); +TEST_P(End2endTest, EchoDeadline) { + ResetStub(GetParam()); EchoRequest request; EchoResponse response; request.set_message("Hello"); @@ -392,8 +430,8 @@ TEST_F(End2endTest, EchoDeadline) { } // Ask server to echo back the deadline it sees. The rpc has no deadline. -TEST_F(End2endTest, EchoDeadlineForNoDeadlineRpc) { - ResetStub(); +TEST_P(End2endTest, EchoDeadlineForNoDeadlineRpc) { + ResetStub(GetParam()); EchoRequest request; EchoResponse response; request.set_message("Hello"); @@ -407,8 +445,8 @@ TEST_F(End2endTest, EchoDeadlineForNoDeadlineRpc) { gpr_inf_future(GPR_CLOCK_REALTIME).tv_sec); } -TEST_F(End2endTest, UnimplementedRpc) { - ResetStub(); +TEST_P(End2endTest, UnimplementedRpc) { + ResetStub(GetParam()); EchoRequest request; EchoResponse response; request.set_message("Hello"); @@ -422,7 +460,7 @@ TEST_F(End2endTest, UnimplementedRpc) { } TEST_F(End2endTest, RequestStreamOneRequest) { - ResetStub(); + ResetStub(false); EchoRequest request; EchoResponse response; ClientContext context; @@ -437,7 +475,7 @@ TEST_F(End2endTest, RequestStreamOneRequest) { } TEST_F(End2endTest, RequestStreamTwoRequests) { - ResetStub(); + ResetStub(false); EchoRequest request; EchoResponse response; ClientContext context; @@ -453,7 +491,7 @@ TEST_F(End2endTest, RequestStreamTwoRequests) { } TEST_F(End2endTest, ResponseStream) { - ResetStub(); + ResetStub(false); EchoRequest request; EchoResponse response; ClientContext context; @@ -473,7 +511,7 @@ TEST_F(End2endTest, ResponseStream) { } TEST_F(End2endTest, BidiStream) { - ResetStub(); + ResetStub(false); EchoRequest request; EchoResponse response; ClientContext context; @@ -506,7 +544,7 @@ TEST_F(End2endTest, BidiStream) { // Talk to the two services with the same name but different package names. // The two stubs are created on the same channel. TEST_F(End2endTest, DiffPackageServices) { - ResetStub(); + ResetStub(false); EchoRequest request; EchoResponse response; request.set_message("Hello"); @@ -561,8 +599,8 @@ void CancelRpc(ClientContext* context, int delay_us, TestServiceImpl* service) { } // Client cancels rpc after 10ms -TEST_F(End2endTest, ClientCancelsRpc) { - ResetStub(); +TEST_P(End2endTest, ClientCancelsRpc) { + ResetStub(GetParam()); EchoRequest request; EchoResponse response; request.set_message("Hello"); @@ -578,8 +616,8 @@ TEST_F(End2endTest, ClientCancelsRpc) { } // Server cancels rpc after 1ms -TEST_F(End2endTest, ServerCancelsRpc) { - ResetStub(); +TEST_P(End2endTest, ServerCancelsRpc) { + ResetStub(GetParam()); EchoRequest request; EchoResponse response; request.set_message("Hello"); @@ -593,7 +631,7 @@ TEST_F(End2endTest, ServerCancelsRpc) { // Client cancels request stream after sending two messages TEST_F(End2endTest, ClientCancelsRequestStream) { - ResetStub(); + ResetStub(false); EchoRequest request; EchoResponse response; ClientContext context; @@ -613,7 +651,7 @@ TEST_F(End2endTest, ClientCancelsRequestStream) { // Client cancels server stream after sending some messages TEST_F(End2endTest, ClientCancelsResponseStream) { - ResetStub(); + ResetStub(false); EchoRequest request; EchoResponse response; ClientContext context; @@ -645,7 +683,7 @@ TEST_F(End2endTest, ClientCancelsResponseStream) { // Client cancels bidi stream after sending some messages TEST_F(End2endTest, ClientCancelsBidi) { - ResetStub(); + ResetStub(false); EchoRequest request; EchoResponse response; ClientContext context; @@ -677,7 +715,7 @@ TEST_F(End2endTest, ClientCancelsBidi) { } TEST_F(End2endTest, RpcMaxMessageSize) { - ResetStub(); + ResetStub(false); EchoRequest request; EchoResponse response; request.set_message(string(kMaxMessageSize_ * 2, 'a')); @@ -702,7 +740,7 @@ bool MetadataContains(const std::multimap<grpc::string, grpc::string>& metadata, } TEST_F(End2endTest, SetPerCallCredentials) { - ResetStub(); + ResetStub(false); EchoRequest request; EchoResponse response; ClientContext context; @@ -724,7 +762,7 @@ TEST_F(End2endTest, SetPerCallCredentials) { } TEST_F(End2endTest, InsecurePerCallCredentials) { - ResetStub(); + ResetStub(false); EchoRequest request; EchoResponse response; ClientContext context; @@ -739,7 +777,7 @@ TEST_F(End2endTest, InsecurePerCallCredentials) { } TEST_F(End2endTest, OverridePerCallCredentials) { - ResetStub(); + ResetStub(false); EchoRequest request; EchoResponse response; ClientContext context; @@ -772,7 +810,7 @@ TEST_F(End2endTest, OverridePerCallCredentials) { // Client sends 20 requests and the server returns CANCELLED status after // reading 10 requests. TEST_F(End2endTest, RequestStreamServerEarlyCancelTest) { - ResetStub(); + ResetStub(false); EchoRequest request; EchoResponse response; ClientContext context; @@ -791,7 +829,7 @@ TEST_F(End2endTest, RequestStreamServerEarlyCancelTest) { } TEST_F(End2endTest, ClientAuthContext) { - ResetStub(); + ResetStub(false); EchoRequest request; EchoResponse response; request.set_message("Hello"); @@ -816,8 +854,8 @@ TEST_F(End2endTest, ClientAuthContext) { } // Make the response larger than the flow control window. -TEST_F(End2endTest, HugeResponse) { - ResetStub(); +TEST_P(End2endTest, HugeResponse) { + ResetStub(GetParam()); EchoRequest request; EchoResponse response; request.set_message("huge response"); @@ -842,7 +880,7 @@ void ReaderThreadFunc(ClientReaderWriter<EchoRequest, EchoResponse>* stream, gpr // Run a Read and a WritesDone simultaneously. TEST_F(End2endTest, SimultaneousReadWritesDone) { - ResetStub(); + ResetStub(false); ClientContext context; gpr_event ev; gpr_event_init(&ev); @@ -855,8 +893,8 @@ TEST_F(End2endTest, SimultaneousReadWritesDone) { reader_thread.join(); } -TEST_F(End2endTest, Peer) { - ResetStub(); +TEST_P(End2endTest, Peer) { + ResetStub(GetParam()); EchoRequest request; EchoResponse response; request.set_message("hello"); @@ -870,6 +908,8 @@ TEST_F(End2endTest, Peer) { EXPECT_TRUE(CheckIsLocalhost(context.peer())); } +INSTANTIATE_TEST_CASE_P(End2end, End2endTest, ::testing::Values(false, true)); + } // namespace testing } // namespace grpc diff --git a/tools/buildgen/plugins/expand_bin_attrs.py b/tools/buildgen/plugins/expand_bin_attrs.py index 0896a5a165..9c6c31e9a3 100755 --- a/tools/buildgen/plugins/expand_bin_attrs.py +++ b/tools/buildgen/plugins/expand_bin_attrs.py @@ -47,5 +47,5 @@ def mako_plugin(dictionary): for tgt in targets: tgt['flaky'] = tgt.get('flaky', False) - tgt['platforms'] = tgt.get('platforms', ['windows', 'posix']) + tgt['platforms'] = sorted(tgt.get('platforms', ['windows', 'posix'])) diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index b93f584095..482ffcc435 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -54,6 +54,17 @@ os.chdir(ROOT) _FORCE_ENVIRON_FOR_WRAPPERS = {} +def platform_string(): + if platform.system() == 'Windows': + return 'windows' + elif platform.system() == 'Darwin': + return 'mac' + elif platform.system() == 'Linux': + return 'linux' + else: + return 'posix' + + # SimpleConfig: just compile with CONFIG=config, and run the binary to test class SimpleConfig(object): @@ -109,17 +120,13 @@ class CLanguage(object): def __init__(self, make_target, test_lang): self.make_target = make_target - if platform.system() == 'Windows': - plat = 'windows' - else: - plat = 'posix' - self.platform = plat + self.platform = platform_string() with open('tools/run_tests/tests.json') as f: js = json.load(f) self.binaries = [tgt for tgt in js if tgt['language'] == test_lang and - plat in tgt['platforms']] + platform_string() in tgt['platforms']] def test_specs(self, config, travis): out = [] @@ -245,11 +252,7 @@ class RubyLanguage(object): class CSharpLanguage(object): def __init__(self): - if platform.system() == 'Windows': - plat = 'windows' - else: - plat = 'posix' - self.platform = plat + self.platform = platform_string() def test_specs(self, config, travis): assemblies = ['Grpc.Core.Tests', @@ -263,7 +266,7 @@ class CSharpLanguage(object): return [config.job_spec([cmd, assembly], None, shortname=assembly, environ=_FORCE_ENVIRON_FOR_WRAPPERS) - for assembly in assemblies ] + for assembly in assemblies] def make_targets(self): # For Windows, this target doesn't really build anything, diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 1ad371f0a4..e3490c93af 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -4612,6 +4612,441 @@ { "deps": [ "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_bad_hostname", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_bad_hostname_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_cancel_after_accept", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_cancel_after_accept_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_cancel_after_accept_and_writes_closed", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_cancel_after_invoke", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_cancel_after_invoke_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_cancel_before_invoke", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_cancel_before_invoke_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_cancel_in_a_vacuum", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_census_simple_request", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_census_simple_request_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_default_host", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_default_host_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_disappearing_server", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_disappearing_server_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_early_server_shutdown_finishes_inflight_calls", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_early_server_shutdown_finishes_tags", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_empty_batch", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_empty_batch_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_graceful_server_shutdown", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_graceful_server_shutdown_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_invoke_large_request", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_invoke_large_request_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_max_message_length", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_max_message_length_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_no_op", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_no_op_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_ping_pong_streaming", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_ping_pong_streaming_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_registered_call", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_registered_call_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_request_response_with_binary_metadata_and_payload", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_request_response_with_metadata_and_payload", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_request_response_with_payload", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_response_with_payload_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_request_response_with_payload_and_call_creds", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_request_response_with_trailing_metadata_and_payload", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_request_with_large_metadata", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_with_large_metadata_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_request_with_payload", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_with_payload_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_server_finishes_request", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_server_finishes_request_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_simple_delayed_request", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_simple_delayed_request_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_simple_request", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_simple_request_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_simple_request_with_high_initial_sequence_number", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", "end2end_fixture_chttp2_simple_ssl_fullstack", "end2end_test_bad_hostname", "gpr", @@ -5602,6 +6037,441 @@ { "deps": [ "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_bad_hostname", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_cancel_after_accept", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_cancel_after_accept_and_writes_closed", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_cancel_after_invoke", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_cancel_before_invoke", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_cancel_in_a_vacuum", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_census_simple_request", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_default_host", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_default_host_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_disappearing_server", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_early_server_shutdown_finishes_inflight_calls", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_early_server_shutdown_finishes_tags", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_empty_batch", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_graceful_server_shutdown", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_invoke_large_request", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_max_message_length", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_no_op", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_no_op_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_ping_pong_streaming", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_registered_call", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_registered_call_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_request_response_with_binary_metadata_and_payload", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_request_response_with_metadata_and_payload", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_request_response_with_payload", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_request_response_with_payload_and_call_creds", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_request_response_with_trailing_metadata_and_payload", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_request_with_large_metadata", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_request_with_payload", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_server_finishes_request", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_simple_delayed_request", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_simple_request", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_simple_request_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "end2end_test_simple_request_with_high_initial_sequence_number", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", "end2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack", "end2end_test_bad_hostname", "gpr", @@ -9613,6 +10483,398 @@ }, { "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_bad_hostname", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_bad_hostname_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_cancel_after_accept", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_cancel_after_accept_and_writes_closed", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_cancel_after_invoke", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_cancel_before_invoke", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_cancel_in_a_vacuum", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_census_simple_request", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_census_simple_request_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_default_host", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_default_host_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_disappearing_server", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_disappearing_server_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_early_server_shutdown_finishes_inflight_calls", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_early_server_shutdown_finishes_tags", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_empty_batch", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_empty_batch_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_graceful_server_shutdown", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_invoke_large_request", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_max_message_length", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_max_message_length_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_no_op", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_no_op_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_ping_pong_streaming", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_registered_call", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_registered_call_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_request_response_with_binary_metadata_and_payload", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_request_response_with_metadata_and_payload", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_request_response_with_payload", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_request_response_with_trailing_metadata_and_payload", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_request_with_large_metadata", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_request_with_payload", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_with_payload_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_server_finishes_request", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_simple_delayed_request", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_simple_request", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_simple_request_unsecure_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_chttp2_fullstack_with_proxy", + "end2end_test_simple_request_with_high_initial_sequence_number", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test", + "src": [] + }, + { + "deps": [ "end2end_fixture_chttp2_socket_pair", "end2end_test_bad_hostname", "gpr", @@ -11350,6 +12612,7 @@ "headers": [ "test/core/end2end/cq_verifier.h", "test/core/end2end/data/ssl_test_data.h", + "test/core/end2end/fixtures/proxy.h", "test/core/iomgr/endpoint_tests.h", "test/core/security/oauth2_utils.h", "test/core/util/grpc_profiler.h", @@ -11366,6 +12629,8 @@ "test/core/end2end/data/server1_key.c", "test/core/end2end/data/ssl_test_data.h", "test/core/end2end/data/test_root_cert.c", + "test/core/end2end/fixtures/proxy.c", + "test/core/end2end/fixtures/proxy.h", "test/core/iomgr/endpoint_tests.c", "test/core/iomgr/endpoint_tests.h", "test/core/security/oauth2_utils.c", @@ -11389,6 +12654,7 @@ ], "headers": [ "test/core/end2end/cq_verifier.h", + "test/core/end2end/fixtures/proxy.h", "test/core/iomgr/endpoint_tests.h", "test/core/security/oauth2_utils.h", "test/core/util/grpc_profiler.h", @@ -11401,6 +12667,8 @@ "src": [ "test/core/end2end/cq_verifier.c", "test/core/end2end/cq_verifier.h", + "test/core/end2end/fixtures/proxy.c", + "test/core/end2end/fixtures/proxy.h", "test/core/iomgr/endpoint_tests.c", "test/core/iomgr/endpoint_tests.h", "test/core/security/oauth2_utils.c", @@ -12392,6 +13660,23 @@ }, { "deps": [ + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [ + "test/core/end2end/end2end_tests.h" + ], + "language": "c", + "name": "end2end_fixture_chttp2_fullstack_with_proxy", + "src": [ + "test/core/end2end/end2end_tests.h", + "test/core/end2end/fixtures/chttp2_fullstack_with_proxy.c" + ] + }, + { + "deps": [ "end2end_certs", "gpr", "gpr_test_util", @@ -12438,6 +13723,24 @@ "test/core/end2end/end2end_tests.h" ], "language": "c", + "name": "end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy", + "src": [ + "test/core/end2end/end2end_tests.h", + "test/core/end2end/fixtures/chttp2_simple_ssl_fullstack_with_proxy.c" + ] + }, + { + "deps": [ + "end2end_certs", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [ + "test/core/end2end/end2end_tests.h" + ], + "language": "c", "name": "end2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack", "src": [ "test/core/end2end/end2end_tests.h", diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index 3332360e3d..0192036420 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -6,8 +6,8 @@ "language": "c", "name": "alarm_heap_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -15,8 +15,8 @@ "language": "c", "name": "alarm_list_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -24,8 +24,8 @@ "language": "c", "name": "alarm_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -33,8 +33,8 @@ "language": "c", "name": "alpn_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -42,8 +42,8 @@ "language": "c", "name": "bin_encoder_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -51,8 +51,8 @@ "language": "c", "name": "chttp2_status_conversion_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -60,8 +60,8 @@ "language": "c", "name": "chttp2_stream_encoder_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -69,8 +69,8 @@ "language": "c", "name": "chttp2_stream_map_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -78,6 +78,8 @@ "language": "c", "name": "dualstack_socket_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -86,6 +88,8 @@ "language": "c", "name": "fd_conservation_posix_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -94,6 +98,8 @@ "language": "c", "name": "fd_posix_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -102,6 +108,8 @@ "language": "c", "name": "fling_stream_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -110,6 +118,8 @@ "language": "c", "name": "fling_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -118,8 +128,8 @@ "language": "c", "name": "gpr_cancellable_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -127,8 +137,8 @@ "language": "c", "name": "gpr_cmdline_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -136,8 +146,8 @@ "language": "c", "name": "gpr_env_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -145,8 +155,8 @@ "language": "c", "name": "gpr_file_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -154,8 +164,8 @@ "language": "c", "name": "gpr_histogram_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -163,8 +173,8 @@ "language": "c", "name": "gpr_host_port_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -172,8 +182,8 @@ "language": "c", "name": "gpr_log_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -181,8 +191,8 @@ "language": "c", "name": "gpr_slice_buffer_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -190,8 +200,8 @@ "language": "c", "name": "gpr_slice_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -199,8 +209,8 @@ "language": "c", "name": "gpr_stack_lockfree_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -208,8 +218,8 @@ "language": "c", "name": "gpr_string_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -217,8 +227,8 @@ "language": "c", "name": "gpr_sync_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -226,8 +236,8 @@ "language": "c", "name": "gpr_thd_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -235,8 +245,8 @@ "language": "c", "name": "gpr_time_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -244,8 +254,8 @@ "language": "c", "name": "gpr_tls_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -253,8 +263,8 @@ "language": "c", "name": "gpr_useful_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -262,8 +272,8 @@ "language": "c", "name": "grpc_auth_context_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -271,8 +281,8 @@ "language": "c", "name": "grpc_base64_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -280,8 +290,8 @@ "language": "c", "name": "grpc_byte_buffer_reader_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -289,8 +299,8 @@ "language": "c", "name": "grpc_channel_stack_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -298,8 +308,8 @@ "language": "c", "name": "grpc_completion_queue_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -307,8 +317,8 @@ "language": "c", "name": "grpc_credentials_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -316,8 +326,8 @@ "language": "c", "name": "grpc_json_token_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -325,8 +335,8 @@ "language": "c", "name": "grpc_jwt_verifier_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -334,8 +344,8 @@ "language": "c", "name": "grpc_security_connector_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -343,8 +353,8 @@ "language": "c", "name": "grpc_stream_op_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -352,8 +362,8 @@ "language": "c", "name": "hpack_parser_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -361,8 +371,8 @@ "language": "c", "name": "hpack_table_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -370,8 +380,8 @@ "language": "c", "name": "httpcli_format_request_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -379,8 +389,8 @@ "language": "c", "name": "httpcli_parser_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -388,6 +398,8 @@ "language": "c", "name": "httpcli_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -396,8 +408,8 @@ "language": "c", "name": "json_rewrite_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -405,8 +417,8 @@ "language": "c", "name": "json_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -414,8 +426,8 @@ "language": "c", "name": "lame_client_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -423,8 +435,8 @@ "language": "c", "name": "message_compress_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -432,8 +444,8 @@ "language": "c", "name": "multi_init_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -441,8 +453,8 @@ "language": "c", "name": "multiple_server_queues_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -450,8 +462,8 @@ "language": "c", "name": "murmur_hash_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -459,8 +471,8 @@ "language": "c", "name": "no_server_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -468,8 +480,8 @@ "language": "c", "name": "resolve_address_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -477,8 +489,8 @@ "language": "c", "name": "secure_endpoint_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -486,8 +498,8 @@ "language": "c", "name": "sockaddr_utils_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -495,6 +507,8 @@ "language": "c", "name": "tcp_client_posix_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -503,6 +517,8 @@ "language": "c", "name": "tcp_posix_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -511,6 +527,8 @@ "language": "c", "name": "tcp_server_posix_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -519,8 +537,8 @@ "language": "c", "name": "time_averaged_stats_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -528,8 +546,8 @@ "language": "c", "name": "timeout_encoding_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -537,8 +555,8 @@ "language": "c", "name": "timers_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -546,8 +564,8 @@ "language": "c", "name": "transport_metadata_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -555,8 +573,8 @@ "language": "c", "name": "transport_security_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -564,8 +582,8 @@ "language": "c", "name": "uri_parser_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -573,8 +591,8 @@ "language": "c++", "name": "async_end2end_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -582,6 +600,8 @@ "language": "c++", "name": "async_streaming_ping_pong_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -590,6 +610,8 @@ "language": "c++", "name": "async_unary_ping_pong_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -598,8 +620,8 @@ "language": "c++", "name": "auth_property_iterator_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -607,8 +629,8 @@ "language": "c++", "name": "channel_arguments_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -616,8 +638,8 @@ "language": "c++", "name": "cli_call_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -625,6 +647,8 @@ "language": "c++", "name": "client_crash_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -633,8 +657,8 @@ "language": "c++", "name": "credentials_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -642,8 +666,8 @@ "language": "c++", "name": "cxx_byte_buffer_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -651,8 +675,8 @@ "language": "c++", "name": "cxx_slice_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -660,8 +684,8 @@ "language": "c++", "name": "cxx_time_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -669,8 +693,8 @@ "language": "c++", "name": "dynamic_thread_pool_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -678,8 +702,8 @@ "language": "c++", "name": "end2end_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -687,8 +711,8 @@ "language": "c++", "name": "fixed_size_thread_pool_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -696,8 +720,8 @@ "language": "c++", "name": "generic_end2end_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -705,6 +729,8 @@ "language": "c++", "name": "interop_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -713,8 +739,8 @@ "language": "c++", "name": "mock_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -722,6 +748,8 @@ "language": "c++", "name": "qps_openloop_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -730,6 +758,8 @@ "language": "c++", "name": "qps_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -738,8 +768,8 @@ "language": "c++", "name": "secure_auth_context_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -747,6 +777,8 @@ "language": "c++", "name": "server_crash_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -755,8 +787,8 @@ "language": "c++", "name": "status_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -764,6 +796,8 @@ "language": "c++", "name": "sync_streaming_ping_pong_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -772,6 +806,8 @@ "language": "c++", "name": "sync_unary_ping_pong_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -780,8 +816,8 @@ "language": "c++", "name": "thread_stress_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -789,8 +825,10 @@ "language": "c", "name": "chttp2_fake_security_bad_hostname_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -798,8 +836,10 @@ "language": "c", "name": "chttp2_fake_security_cancel_after_accept_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -807,8 +847,10 @@ "language": "c", "name": "chttp2_fake_security_cancel_after_accept_and_writes_closed_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -816,8 +858,10 @@ "language": "c", "name": "chttp2_fake_security_cancel_after_invoke_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -825,8 +869,10 @@ "language": "c", "name": "chttp2_fake_security_cancel_before_invoke_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -834,8 +880,10 @@ "language": "c", "name": "chttp2_fake_security_cancel_in_a_vacuum_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -843,8 +891,10 @@ "language": "c", "name": "chttp2_fake_security_census_simple_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -852,8 +902,10 @@ "language": "c", "name": "chttp2_fake_security_channel_connectivity_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -861,8 +913,10 @@ "language": "c", "name": "chttp2_fake_security_default_host_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -870,8 +924,10 @@ "language": "c", "name": "chttp2_fake_security_disappearing_server_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -879,8 +935,10 @@ "language": "c", "name": "chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -888,8 +946,10 @@ "language": "c", "name": "chttp2_fake_security_early_server_shutdown_finishes_tags_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -897,8 +957,10 @@ "language": "c", "name": "chttp2_fake_security_empty_batch_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -906,8 +968,10 @@ "language": "c", "name": "chttp2_fake_security_graceful_server_shutdown_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -915,8 +979,10 @@ "language": "c", "name": "chttp2_fake_security_invoke_large_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -924,8 +990,10 @@ "language": "c", "name": "chttp2_fake_security_max_concurrent_streams_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -933,8 +1001,10 @@ "language": "c", "name": "chttp2_fake_security_max_message_length_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -942,8 +1012,10 @@ "language": "c", "name": "chttp2_fake_security_no_op_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -951,8 +1023,10 @@ "language": "c", "name": "chttp2_fake_security_ping_pong_streaming_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -960,8 +1034,10 @@ "language": "c", "name": "chttp2_fake_security_registered_call_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -969,8 +1045,10 @@ "language": "c", "name": "chttp2_fake_security_request_response_with_binary_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -978,8 +1056,10 @@ "language": "c", "name": "chttp2_fake_security_request_response_with_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -987,8 +1067,10 @@ "language": "c", "name": "chttp2_fake_security_request_response_with_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -996,8 +1078,10 @@ "language": "c", "name": "chttp2_fake_security_request_response_with_payload_and_call_creds_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1005,8 +1089,10 @@ "language": "c", "name": "chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1014,8 +1100,10 @@ "language": "c", "name": "chttp2_fake_security_request_with_compressed_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1023,8 +1111,10 @@ "language": "c", "name": "chttp2_fake_security_request_with_flags_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1032,8 +1122,10 @@ "language": "c", "name": "chttp2_fake_security_request_with_large_metadata_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1041,8 +1133,10 @@ "language": "c", "name": "chttp2_fake_security_request_with_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1050,8 +1144,10 @@ "language": "c", "name": "chttp2_fake_security_server_finishes_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1059,8 +1155,10 @@ "language": "c", "name": "chttp2_fake_security_simple_delayed_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1068,8 +1166,10 @@ "language": "c", "name": "chttp2_fake_security_simple_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1077,8 +1177,10 @@ "language": "c", "name": "chttp2_fake_security_simple_request_with_high_initial_sequence_number_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1086,8 +1188,10 @@ "language": "c", "name": "chttp2_fullstack_bad_hostname_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1095,8 +1199,10 @@ "language": "c", "name": "chttp2_fullstack_cancel_after_accept_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1104,8 +1210,10 @@ "language": "c", "name": "chttp2_fullstack_cancel_after_accept_and_writes_closed_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1113,8 +1221,10 @@ "language": "c", "name": "chttp2_fullstack_cancel_after_invoke_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1122,8 +1232,10 @@ "language": "c", "name": "chttp2_fullstack_cancel_before_invoke_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1131,8 +1243,10 @@ "language": "c", "name": "chttp2_fullstack_cancel_in_a_vacuum_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1140,8 +1254,10 @@ "language": "c", "name": "chttp2_fullstack_census_simple_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1149,8 +1265,10 @@ "language": "c", "name": "chttp2_fullstack_channel_connectivity_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1158,8 +1276,10 @@ "language": "c", "name": "chttp2_fullstack_default_host_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1167,8 +1287,10 @@ "language": "c", "name": "chttp2_fullstack_disappearing_server_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1176,8 +1298,10 @@ "language": "c", "name": "chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1185,8 +1309,10 @@ "language": "c", "name": "chttp2_fullstack_early_server_shutdown_finishes_tags_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1194,8 +1320,10 @@ "language": "c", "name": "chttp2_fullstack_empty_batch_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1203,8 +1331,10 @@ "language": "c", "name": "chttp2_fullstack_graceful_server_shutdown_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1212,8 +1342,10 @@ "language": "c", "name": "chttp2_fullstack_invoke_large_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1221,8 +1353,10 @@ "language": "c", "name": "chttp2_fullstack_max_concurrent_streams_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1230,8 +1364,10 @@ "language": "c", "name": "chttp2_fullstack_max_message_length_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1239,8 +1375,10 @@ "language": "c", "name": "chttp2_fullstack_no_op_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1248,8 +1386,10 @@ "language": "c", "name": "chttp2_fullstack_ping_pong_streaming_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1257,8 +1397,10 @@ "language": "c", "name": "chttp2_fullstack_registered_call_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1266,8 +1408,10 @@ "language": "c", "name": "chttp2_fullstack_request_response_with_binary_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1275,8 +1419,10 @@ "language": "c", "name": "chttp2_fullstack_request_response_with_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1284,8 +1430,10 @@ "language": "c", "name": "chttp2_fullstack_request_response_with_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1293,8 +1441,10 @@ "language": "c", "name": "chttp2_fullstack_request_response_with_payload_and_call_creds_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1302,8 +1452,10 @@ "language": "c", "name": "chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1311,8 +1463,10 @@ "language": "c", "name": "chttp2_fullstack_request_with_compressed_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1320,8 +1474,10 @@ "language": "c", "name": "chttp2_fullstack_request_with_flags_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1329,8 +1485,10 @@ "language": "c", "name": "chttp2_fullstack_request_with_large_metadata_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1338,8 +1496,10 @@ "language": "c", "name": "chttp2_fullstack_request_with_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1347,8 +1507,10 @@ "language": "c", "name": "chttp2_fullstack_server_finishes_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1356,8 +1518,10 @@ "language": "c", "name": "chttp2_fullstack_simple_delayed_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1365,8 +1529,10 @@ "language": "c", "name": "chttp2_fullstack_simple_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1374,8 +1540,10 @@ "language": "c", "name": "chttp2_fullstack_simple_request_with_high_initial_sequence_number_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1383,8 +1551,10 @@ "language": "c", "name": "chttp2_fullstack_compression_bad_hostname_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1392,8 +1562,10 @@ "language": "c", "name": "chttp2_fullstack_compression_cancel_after_accept_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1401,8 +1573,10 @@ "language": "c", "name": "chttp2_fullstack_compression_cancel_after_accept_and_writes_closed_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1410,8 +1584,10 @@ "language": "c", "name": "chttp2_fullstack_compression_cancel_after_invoke_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1419,8 +1595,10 @@ "language": "c", "name": "chttp2_fullstack_compression_cancel_before_invoke_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1428,8 +1606,10 @@ "language": "c", "name": "chttp2_fullstack_compression_cancel_in_a_vacuum_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1437,8 +1617,10 @@ "language": "c", "name": "chttp2_fullstack_compression_census_simple_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1446,8 +1628,10 @@ "language": "c", "name": "chttp2_fullstack_compression_channel_connectivity_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1455,8 +1639,10 @@ "language": "c", "name": "chttp2_fullstack_compression_default_host_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1464,8 +1650,10 @@ "language": "c", "name": "chttp2_fullstack_compression_disappearing_server_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1473,8 +1661,10 @@ "language": "c", "name": "chttp2_fullstack_compression_early_server_shutdown_finishes_inflight_calls_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1482,8 +1672,10 @@ "language": "c", "name": "chttp2_fullstack_compression_early_server_shutdown_finishes_tags_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1491,8 +1683,10 @@ "language": "c", "name": "chttp2_fullstack_compression_empty_batch_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1500,8 +1694,10 @@ "language": "c", "name": "chttp2_fullstack_compression_graceful_server_shutdown_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1509,8 +1705,10 @@ "language": "c", "name": "chttp2_fullstack_compression_invoke_large_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1518,8 +1716,10 @@ "language": "c", "name": "chttp2_fullstack_compression_max_concurrent_streams_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1527,8 +1727,10 @@ "language": "c", "name": "chttp2_fullstack_compression_max_message_length_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1536,8 +1738,10 @@ "language": "c", "name": "chttp2_fullstack_compression_no_op_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1545,8 +1749,10 @@ "language": "c", "name": "chttp2_fullstack_compression_ping_pong_streaming_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1554,8 +1760,10 @@ "language": "c", "name": "chttp2_fullstack_compression_registered_call_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1563,8 +1771,10 @@ "language": "c", "name": "chttp2_fullstack_compression_request_response_with_binary_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1572,8 +1782,10 @@ "language": "c", "name": "chttp2_fullstack_compression_request_response_with_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1581,8 +1793,10 @@ "language": "c", "name": "chttp2_fullstack_compression_request_response_with_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1590,8 +1804,10 @@ "language": "c", "name": "chttp2_fullstack_compression_request_response_with_payload_and_call_creds_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1599,8 +1815,10 @@ "language": "c", "name": "chttp2_fullstack_compression_request_response_with_trailing_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1608,8 +1826,10 @@ "language": "c", "name": "chttp2_fullstack_compression_request_with_compressed_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1617,8 +1837,10 @@ "language": "c", "name": "chttp2_fullstack_compression_request_with_flags_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1626,8 +1848,10 @@ "language": "c", "name": "chttp2_fullstack_compression_request_with_large_metadata_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1635,8 +1859,10 @@ "language": "c", "name": "chttp2_fullstack_compression_request_with_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1644,8 +1870,10 @@ "language": "c", "name": "chttp2_fullstack_compression_server_finishes_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1653,8 +1881,10 @@ "language": "c", "name": "chttp2_fullstack_compression_simple_delayed_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1662,8 +1892,10 @@ "language": "c", "name": "chttp2_fullstack_compression_simple_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1671,8 +1903,10 @@ "language": "c", "name": "chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -1680,6 +1914,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_bad_hostname_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1688,6 +1924,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_cancel_after_accept_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1696,6 +1934,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_cancel_after_accept_and_writes_closed_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1704,6 +1944,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_cancel_after_invoke_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1712,6 +1954,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_cancel_before_invoke_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1720,6 +1964,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_cancel_in_a_vacuum_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1728,6 +1974,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_census_simple_request_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1736,6 +1984,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_channel_connectivity_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1744,6 +1994,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_disappearing_server_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1752,6 +2004,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_early_server_shutdown_finishes_inflight_calls_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1760,6 +2014,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_early_server_shutdown_finishes_tags_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1768,6 +2024,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_empty_batch_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1776,6 +2034,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_graceful_server_shutdown_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1784,6 +2044,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_invoke_large_request_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1792,6 +2054,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_max_concurrent_streams_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1800,6 +2064,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_max_message_length_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1808,6 +2074,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_no_op_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1816,6 +2084,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_ping_pong_streaming_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1824,6 +2094,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_registered_call_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1832,6 +2104,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_request_response_with_binary_metadata_and_payload_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1840,6 +2114,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_request_response_with_metadata_and_payload_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1848,6 +2124,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_request_response_with_payload_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1856,6 +2134,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_request_response_with_payload_and_call_creds_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1864,6 +2144,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_request_response_with_trailing_metadata_and_payload_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1872,6 +2154,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_request_with_compressed_payload_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1880,6 +2164,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_request_with_flags_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1888,6 +2174,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_request_with_large_metadata_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1896,6 +2184,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_request_with_payload_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1904,6 +2194,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_server_finishes_request_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1912,6 +2204,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_simple_delayed_request_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1920,6 +2214,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_simple_request_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1928,6 +2224,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_simple_request_with_high_initial_sequence_number_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -1936,7 +2234,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_bad_hostname_test", "platforms": [ - "posix" + "linux" ] }, { @@ -1944,7 +2242,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_test", "platforms": [ - "posix" + "linux" ] }, { @@ -1952,7 +2250,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_and_writes_closed_test", "platforms": [ - "posix" + "linux" ] }, { @@ -1960,7 +2258,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_cancel_after_invoke_test", "platforms": [ - "posix" + "linux" ] }, { @@ -1968,7 +2266,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_cancel_before_invoke_test", "platforms": [ - "posix" + "linux" ] }, { @@ -1976,7 +2274,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_cancel_in_a_vacuum_test", "platforms": [ - "posix" + "linux" ] }, { @@ -1984,7 +2282,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_census_simple_request_test", "platforms": [ - "posix" + "linux" ] }, { @@ -1992,7 +2290,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_channel_connectivity_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2000,7 +2298,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_disappearing_server_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2008,7 +2306,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_inflight_calls_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2016,7 +2314,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_tags_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2024,7 +2322,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_empty_batch_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2032,7 +2330,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_graceful_server_shutdown_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2040,7 +2338,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_invoke_large_request_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2048,7 +2346,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_max_concurrent_streams_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2056,7 +2354,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_max_message_length_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2064,7 +2362,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_no_op_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2072,7 +2370,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_ping_pong_streaming_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2080,7 +2378,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_registered_call_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2088,7 +2386,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_request_response_with_binary_metadata_and_payload_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2096,7 +2394,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_request_response_with_metadata_and_payload_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2104,7 +2402,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_request_response_with_payload_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2112,7 +2410,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_request_response_with_payload_and_call_creds_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2120,7 +2418,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_request_response_with_trailing_metadata_and_payload_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2128,7 +2426,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_request_with_compressed_payload_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2136,7 +2434,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_request_with_flags_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2144,7 +2442,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_request_with_large_metadata_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2152,7 +2450,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_request_with_payload_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2160,7 +2458,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_server_finishes_request_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2168,7 +2466,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_simple_delayed_request_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2176,7 +2474,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_simple_request_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2184,7 +2482,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_simple_request_with_high_initial_sequence_number_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2192,7 +2490,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_bad_hostname_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2200,7 +2498,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_cancel_after_accept_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2208,7 +2506,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_cancel_after_accept_and_writes_closed_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2216,7 +2514,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_cancel_after_invoke_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2224,7 +2522,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_cancel_before_invoke_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2232,7 +2530,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_cancel_in_a_vacuum_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2240,7 +2538,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_census_simple_request_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2248,7 +2546,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_channel_connectivity_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2256,7 +2554,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_default_host_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2264,7 +2562,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_disappearing_server_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2272,7 +2570,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_early_server_shutdown_finishes_inflight_calls_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2280,7 +2578,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_early_server_shutdown_finishes_tags_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2288,7 +2586,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_empty_batch_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2296,7 +2594,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_graceful_server_shutdown_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2304,7 +2602,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_invoke_large_request_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2312,7 +2610,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_max_concurrent_streams_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2320,7 +2618,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_max_message_length_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2328,7 +2626,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_no_op_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2336,7 +2634,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_ping_pong_streaming_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2344,7 +2642,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_registered_call_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2352,7 +2650,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_request_response_with_binary_metadata_and_payload_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2360,7 +2658,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_request_response_with_metadata_and_payload_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2368,7 +2666,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_request_response_with_payload_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2376,7 +2674,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_request_response_with_payload_and_call_creds_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2384,7 +2682,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_request_response_with_trailing_metadata_and_payload_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2392,7 +2690,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_request_with_compressed_payload_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2400,7 +2698,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_request_with_flags_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2408,7 +2706,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_request_with_large_metadata_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2416,7 +2714,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_request_with_payload_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2424,7 +2722,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_server_finishes_request_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2432,7 +2730,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_simple_delayed_request_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2440,7 +2738,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_simple_request_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2448,7 +2746,326 @@ "language": "c", "name": "chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test", "platforms": [ - "posix" + "linux" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_bad_hostname_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_cancel_after_accept_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_cancel_after_invoke_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_cancel_before_invoke_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_census_simple_request_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_default_host_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_disappearing_server_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_empty_batch_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_graceful_server_shutdown_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_invoke_large_request_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_max_message_length_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_no_op_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_ping_pong_streaming_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_registered_call_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_response_with_payload_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_with_large_metadata_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_with_payload_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_server_finishes_request_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_simple_delayed_request_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_simple_request_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2456,8 +3073,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_bad_hostname_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2465,8 +3084,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_cancel_after_accept_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2474,8 +3095,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2483,8 +3106,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_cancel_after_invoke_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2492,8 +3117,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_cancel_before_invoke_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2501,8 +3128,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2510,8 +3139,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_census_simple_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2519,8 +3150,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_channel_connectivity_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2528,8 +3161,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_default_host_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2537,8 +3172,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_disappearing_server_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2546,8 +3183,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2555,8 +3194,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2564,8 +3205,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_empty_batch_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2573,8 +3216,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_graceful_server_shutdown_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2582,8 +3227,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_invoke_large_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2591,8 +3238,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_max_concurrent_streams_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2600,8 +3249,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_max_message_length_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2609,8 +3260,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_no_op_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2618,8 +3271,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_ping_pong_streaming_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2627,8 +3282,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_registered_call_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2636,8 +3293,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2645,8 +3304,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2654,8 +3315,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_request_response_with_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2663,8 +3326,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_request_response_with_payload_and_call_creds_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2672,8 +3337,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2681,8 +3348,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_request_with_compressed_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2690,8 +3359,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_request_with_flags_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2699,8 +3370,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_request_with_large_metadata_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2708,8 +3381,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_request_with_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2717,8 +3392,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_server_finishes_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2726,8 +3403,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_simple_delayed_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2735,8 +3414,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_simple_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2744,8 +3425,10 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_simple_request_with_high_initial_sequence_number_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -2753,7 +3436,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_bad_hostname_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2761,7 +3444,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_cancel_after_accept_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2769,7 +3452,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_cancel_after_accept_and_writes_closed_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2777,7 +3460,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_cancel_after_invoke_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2785,7 +3468,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_cancel_before_invoke_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2793,7 +3476,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_cancel_in_a_vacuum_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2801,7 +3484,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_census_simple_request_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2809,7 +3492,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_channel_connectivity_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2817,7 +3500,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_default_host_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2825,7 +3508,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_disappearing_server_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2833,7 +3516,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_early_server_shutdown_finishes_inflight_calls_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2841,7 +3524,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_early_server_shutdown_finishes_tags_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2849,7 +3532,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_empty_batch_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2857,7 +3540,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_graceful_server_shutdown_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2865,7 +3548,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_invoke_large_request_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2873,7 +3556,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_max_concurrent_streams_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2881,7 +3564,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_max_message_length_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2889,7 +3572,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_no_op_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2897,7 +3580,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_ping_pong_streaming_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2905,7 +3588,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_registered_call_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2913,7 +3596,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_request_response_with_binary_metadata_and_payload_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2921,7 +3604,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_request_response_with_metadata_and_payload_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2929,7 +3612,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_request_response_with_payload_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2937,7 +3620,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_request_response_with_payload_and_call_creds_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2945,7 +3628,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_request_response_with_trailing_metadata_and_payload_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2953,7 +3636,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_request_with_compressed_payload_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2961,7 +3644,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_request_with_flags_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2969,7 +3652,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_request_with_large_metadata_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2977,7 +3660,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_request_with_payload_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2985,7 +3668,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_server_finishes_request_test", "platforms": [ - "posix" + "linux" ] }, { @@ -2993,7 +3676,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_simple_delayed_request_test", "platforms": [ - "posix" + "linux" ] }, { @@ -3001,7 +3684,7 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_simple_request_test", "platforms": [ - "posix" + "linux" ] }, { @@ -3009,7 +3692,326 @@ "language": "c", "name": "chttp2_simple_ssl_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test", "platforms": [ - "posix" + "linux" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_default_host_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_no_op_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_registered_call_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_simple_request_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3017,8 +4019,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3026,8 +4030,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3035,8 +4041,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3044,8 +4052,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3053,8 +4063,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3062,8 +4074,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3071,8 +4085,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_census_simple_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3080,8 +4096,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_channel_connectivity_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3089,8 +4107,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_default_host_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3098,8 +4118,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3107,8 +4129,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3116,8 +4140,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3125,8 +4151,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_empty_batch_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3134,8 +4162,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_graceful_server_shutdown_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3143,8 +4173,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3152,8 +4184,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3161,8 +4195,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_max_message_length_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3170,8 +4206,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_no_op_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3179,8 +4217,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3188,8 +4228,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_registered_call_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3197,8 +4239,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3206,8 +4250,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3215,8 +4261,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3224,8 +4272,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_and_call_creds_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3233,8 +4283,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3242,8 +4294,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_request_with_compressed_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3251,8 +4305,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_request_with_flags_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3260,8 +4316,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_request_with_large_metadata_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3269,8 +4327,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_request_with_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3278,8 +4338,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_server_finishes_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3287,8 +4349,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3296,8 +4360,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3305,8 +4371,10 @@ "language": "c", "name": "chttp2_simple_ssl_with_oauth2_fullstack_simple_request_with_high_initial_sequence_number_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3314,8 +4382,10 @@ "language": "c", "name": "chttp2_socket_pair_bad_hostname_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3323,8 +4393,10 @@ "language": "c", "name": "chttp2_socket_pair_cancel_after_accept_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3332,8 +4404,10 @@ "language": "c", "name": "chttp2_socket_pair_cancel_after_accept_and_writes_closed_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3341,8 +4415,10 @@ "language": "c", "name": "chttp2_socket_pair_cancel_after_invoke_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3350,8 +4426,10 @@ "language": "c", "name": "chttp2_socket_pair_cancel_before_invoke_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3359,8 +4437,10 @@ "language": "c", "name": "chttp2_socket_pair_cancel_in_a_vacuum_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3368,8 +4448,10 @@ "language": "c", "name": "chttp2_socket_pair_census_simple_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3377,8 +4459,10 @@ "language": "c", "name": "chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3386,8 +4470,10 @@ "language": "c", "name": "chttp2_socket_pair_early_server_shutdown_finishes_tags_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3395,8 +4481,10 @@ "language": "c", "name": "chttp2_socket_pair_empty_batch_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3404,8 +4492,10 @@ "language": "c", "name": "chttp2_socket_pair_graceful_server_shutdown_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3413,8 +4503,10 @@ "language": "c", "name": "chttp2_socket_pair_invoke_large_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3422,8 +4514,10 @@ "language": "c", "name": "chttp2_socket_pair_max_concurrent_streams_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3431,8 +4525,10 @@ "language": "c", "name": "chttp2_socket_pair_max_message_length_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3440,8 +4536,10 @@ "language": "c", "name": "chttp2_socket_pair_no_op_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3449,8 +4547,10 @@ "language": "c", "name": "chttp2_socket_pair_ping_pong_streaming_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3458,8 +4558,10 @@ "language": "c", "name": "chttp2_socket_pair_registered_call_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3467,8 +4569,10 @@ "language": "c", "name": "chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3476,8 +4580,10 @@ "language": "c", "name": "chttp2_socket_pair_request_response_with_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3485,8 +4591,10 @@ "language": "c", "name": "chttp2_socket_pair_request_response_with_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3494,8 +4602,10 @@ "language": "c", "name": "chttp2_socket_pair_request_response_with_payload_and_call_creds_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3503,8 +4613,10 @@ "language": "c", "name": "chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3512,8 +4624,10 @@ "language": "c", "name": "chttp2_socket_pair_request_with_compressed_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3521,8 +4635,10 @@ "language": "c", "name": "chttp2_socket_pair_request_with_flags_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3530,8 +4646,10 @@ "language": "c", "name": "chttp2_socket_pair_request_with_large_metadata_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3539,8 +4657,10 @@ "language": "c", "name": "chttp2_socket_pair_request_with_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3548,8 +4668,10 @@ "language": "c", "name": "chttp2_socket_pair_server_finishes_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3557,8 +4679,10 @@ "language": "c", "name": "chttp2_socket_pair_simple_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3566,8 +4690,10 @@ "language": "c", "name": "chttp2_socket_pair_simple_request_with_high_initial_sequence_number_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3575,8 +4701,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_bad_hostname_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3584,8 +4712,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3593,8 +4723,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3602,8 +4734,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3611,8 +4745,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3620,8 +4756,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3629,8 +4767,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_census_simple_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3638,8 +4778,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3647,8 +4789,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3656,8 +4800,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_empty_batch_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3665,8 +4811,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3674,8 +4822,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3683,8 +4833,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3692,8 +4844,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_max_message_length_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3701,8 +4855,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_no_op_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3710,8 +4866,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3719,8 +4877,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_registered_call_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3728,8 +4888,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3737,8 +4899,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3746,8 +4910,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3755,8 +4921,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_and_call_creds_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3764,8 +4932,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3773,8 +4943,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_request_with_compressed_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3782,8 +4954,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_request_with_flags_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3791,8 +4965,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_request_with_large_metadata_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3800,8 +4976,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_request_with_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3809,8 +4987,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_server_finishes_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3818,8 +4998,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_simple_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3827,8 +5009,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3836,8 +5020,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_bad_hostname_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3845,8 +5031,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_cancel_after_accept_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3854,8 +5042,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3863,8 +5053,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3872,8 +5064,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_cancel_before_invoke_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3881,8 +5075,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_cancel_in_a_vacuum_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3890,8 +5086,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_census_simple_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3899,8 +5097,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_inflight_calls_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3908,8 +5108,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_tags_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3917,8 +5119,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_empty_batch_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3926,8 +5130,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3935,8 +5141,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_invoke_large_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3944,8 +5152,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3953,8 +5163,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_max_message_length_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3962,8 +5174,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_no_op_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3971,8 +5185,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_ping_pong_streaming_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3980,8 +5196,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_registered_call_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3989,8 +5207,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_request_response_with_binary_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -3998,8 +5218,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_request_response_with_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4007,8 +5229,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_request_response_with_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4016,8 +5240,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_request_response_with_payload_and_call_creds_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4025,8 +5251,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_request_response_with_trailing_metadata_and_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4034,8 +5262,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_request_with_compressed_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4043,8 +5273,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_request_with_flags_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4052,8 +5284,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_request_with_large_metadata_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4061,8 +5295,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_request_with_payload_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4070,8 +5306,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_server_finishes_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4079,8 +5317,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_simple_request_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4088,8 +5328,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4097,8 +5339,10 @@ "language": "c", "name": "chttp2_fullstack_bad_hostname_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4106,8 +5350,10 @@ "language": "c", "name": "chttp2_fullstack_cancel_after_accept_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4115,8 +5361,10 @@ "language": "c", "name": "chttp2_fullstack_cancel_after_accept_and_writes_closed_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4124,8 +5372,10 @@ "language": "c", "name": "chttp2_fullstack_cancel_after_invoke_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4133,8 +5383,10 @@ "language": "c", "name": "chttp2_fullstack_cancel_before_invoke_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4142,8 +5394,10 @@ "language": "c", "name": "chttp2_fullstack_cancel_in_a_vacuum_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4151,8 +5405,10 @@ "language": "c", "name": "chttp2_fullstack_census_simple_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4160,8 +5416,10 @@ "language": "c", "name": "chttp2_fullstack_channel_connectivity_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4169,8 +5427,10 @@ "language": "c", "name": "chttp2_fullstack_default_host_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4178,8 +5438,10 @@ "language": "c", "name": "chttp2_fullstack_disappearing_server_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4187,8 +5449,10 @@ "language": "c", "name": "chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4196,8 +5460,10 @@ "language": "c", "name": "chttp2_fullstack_early_server_shutdown_finishes_tags_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4205,8 +5471,10 @@ "language": "c", "name": "chttp2_fullstack_empty_batch_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4214,8 +5482,10 @@ "language": "c", "name": "chttp2_fullstack_graceful_server_shutdown_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4223,8 +5493,10 @@ "language": "c", "name": "chttp2_fullstack_invoke_large_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4232,8 +5504,10 @@ "language": "c", "name": "chttp2_fullstack_max_concurrent_streams_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4241,8 +5515,10 @@ "language": "c", "name": "chttp2_fullstack_max_message_length_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4250,8 +5526,10 @@ "language": "c", "name": "chttp2_fullstack_no_op_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4259,8 +5537,10 @@ "language": "c", "name": "chttp2_fullstack_ping_pong_streaming_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4268,8 +5548,10 @@ "language": "c", "name": "chttp2_fullstack_registered_call_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4277,8 +5559,10 @@ "language": "c", "name": "chttp2_fullstack_request_response_with_binary_metadata_and_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4286,8 +5570,10 @@ "language": "c", "name": "chttp2_fullstack_request_response_with_metadata_and_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4295,8 +5581,10 @@ "language": "c", "name": "chttp2_fullstack_request_response_with_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4304,8 +5592,10 @@ "language": "c", "name": "chttp2_fullstack_request_response_with_trailing_metadata_and_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4313,8 +5603,10 @@ "language": "c", "name": "chttp2_fullstack_request_with_compressed_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4322,8 +5614,10 @@ "language": "c", "name": "chttp2_fullstack_request_with_flags_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4331,8 +5625,10 @@ "language": "c", "name": "chttp2_fullstack_request_with_large_metadata_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4340,8 +5636,10 @@ "language": "c", "name": "chttp2_fullstack_request_with_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4349,8 +5647,10 @@ "language": "c", "name": "chttp2_fullstack_server_finishes_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4358,8 +5658,10 @@ "language": "c", "name": "chttp2_fullstack_simple_delayed_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4367,8 +5669,10 @@ "language": "c", "name": "chttp2_fullstack_simple_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4376,8 +5680,10 @@ "language": "c", "name": "chttp2_fullstack_simple_request_with_high_initial_sequence_number_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4385,8 +5691,10 @@ "language": "c", "name": "chttp2_fullstack_compression_bad_hostname_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4394,8 +5702,10 @@ "language": "c", "name": "chttp2_fullstack_compression_cancel_after_accept_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4403,8 +5713,10 @@ "language": "c", "name": "chttp2_fullstack_compression_cancel_after_accept_and_writes_closed_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4412,8 +5724,10 @@ "language": "c", "name": "chttp2_fullstack_compression_cancel_after_invoke_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4421,8 +5735,10 @@ "language": "c", "name": "chttp2_fullstack_compression_cancel_before_invoke_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4430,8 +5746,10 @@ "language": "c", "name": "chttp2_fullstack_compression_cancel_in_a_vacuum_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4439,8 +5757,10 @@ "language": "c", "name": "chttp2_fullstack_compression_census_simple_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4448,8 +5768,10 @@ "language": "c", "name": "chttp2_fullstack_compression_channel_connectivity_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4457,8 +5779,10 @@ "language": "c", "name": "chttp2_fullstack_compression_default_host_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4466,8 +5790,10 @@ "language": "c", "name": "chttp2_fullstack_compression_disappearing_server_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4475,8 +5801,10 @@ "language": "c", "name": "chttp2_fullstack_compression_early_server_shutdown_finishes_inflight_calls_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4484,8 +5812,10 @@ "language": "c", "name": "chttp2_fullstack_compression_early_server_shutdown_finishes_tags_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4493,8 +5823,10 @@ "language": "c", "name": "chttp2_fullstack_compression_empty_batch_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4502,8 +5834,10 @@ "language": "c", "name": "chttp2_fullstack_compression_graceful_server_shutdown_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4511,8 +5845,10 @@ "language": "c", "name": "chttp2_fullstack_compression_invoke_large_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4520,8 +5856,10 @@ "language": "c", "name": "chttp2_fullstack_compression_max_concurrent_streams_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4529,8 +5867,10 @@ "language": "c", "name": "chttp2_fullstack_compression_max_message_length_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4538,8 +5878,10 @@ "language": "c", "name": "chttp2_fullstack_compression_no_op_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4547,8 +5889,10 @@ "language": "c", "name": "chttp2_fullstack_compression_ping_pong_streaming_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4556,8 +5900,10 @@ "language": "c", "name": "chttp2_fullstack_compression_registered_call_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4565,8 +5911,10 @@ "language": "c", "name": "chttp2_fullstack_compression_request_response_with_binary_metadata_and_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4574,8 +5922,10 @@ "language": "c", "name": "chttp2_fullstack_compression_request_response_with_metadata_and_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4583,8 +5933,10 @@ "language": "c", "name": "chttp2_fullstack_compression_request_response_with_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4592,8 +5944,10 @@ "language": "c", "name": "chttp2_fullstack_compression_request_response_with_trailing_metadata_and_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4601,8 +5955,10 @@ "language": "c", "name": "chttp2_fullstack_compression_request_with_compressed_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4610,8 +5966,10 @@ "language": "c", "name": "chttp2_fullstack_compression_request_with_flags_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4619,8 +5977,10 @@ "language": "c", "name": "chttp2_fullstack_compression_request_with_large_metadata_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4628,8 +5988,10 @@ "language": "c", "name": "chttp2_fullstack_compression_request_with_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4637,8 +5999,10 @@ "language": "c", "name": "chttp2_fullstack_compression_server_finishes_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4646,8 +6010,10 @@ "language": "c", "name": "chttp2_fullstack_compression_simple_delayed_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4655,8 +6021,10 @@ "language": "c", "name": "chttp2_fullstack_compression_simple_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4664,8 +6032,10 @@ "language": "c", "name": "chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -4673,6 +6043,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_bad_hostname_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4681,6 +6053,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_cancel_after_accept_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4689,6 +6063,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_cancel_after_accept_and_writes_closed_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4697,6 +6073,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_cancel_after_invoke_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4705,6 +6083,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_cancel_before_invoke_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4713,6 +6093,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_cancel_in_a_vacuum_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4721,6 +6103,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_census_simple_request_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4729,6 +6113,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_channel_connectivity_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4737,6 +6123,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_disappearing_server_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4745,6 +6133,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_early_server_shutdown_finishes_inflight_calls_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4753,6 +6143,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_early_server_shutdown_finishes_tags_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4761,6 +6153,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_empty_batch_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4769,6 +6163,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_graceful_server_shutdown_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4777,6 +6173,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_invoke_large_request_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4785,6 +6183,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_max_concurrent_streams_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4793,6 +6193,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_max_message_length_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4801,6 +6203,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_no_op_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4809,6 +6213,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_ping_pong_streaming_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4817,6 +6223,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_registered_call_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4825,6 +6233,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_request_response_with_binary_metadata_and_payload_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4833,6 +6243,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_request_response_with_metadata_and_payload_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4841,6 +6253,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_request_response_with_payload_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4849,6 +6263,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_request_response_with_trailing_metadata_and_payload_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4857,6 +6273,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_request_with_compressed_payload_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4865,6 +6283,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_request_with_flags_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4873,6 +6293,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_request_with_large_metadata_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4881,6 +6303,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_request_with_payload_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4889,6 +6313,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_server_finishes_request_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4897,6 +6323,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_simple_delayed_request_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4905,6 +6333,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_simple_request_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4913,6 +6343,8 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_simple_request_with_high_initial_sequence_number_unsecure_test", "platforms": [ + "linux", + "mac", "posix" ] }, @@ -4921,7 +6353,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_bad_hostname_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -4929,7 +6361,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -4937,7 +6369,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_and_writes_closed_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -4945,7 +6377,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_cancel_after_invoke_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -4953,7 +6385,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_cancel_before_invoke_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -4961,7 +6393,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_cancel_in_a_vacuum_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -4969,7 +6401,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_census_simple_request_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -4977,7 +6409,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_channel_connectivity_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -4985,7 +6417,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_disappearing_server_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -4993,7 +6425,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_inflight_calls_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5001,7 +6433,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_tags_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5009,7 +6441,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_empty_batch_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5017,7 +6449,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_graceful_server_shutdown_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5025,7 +6457,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_invoke_large_request_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5033,7 +6465,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_max_concurrent_streams_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5041,7 +6473,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_max_message_length_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5049,7 +6481,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_no_op_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5057,7 +6489,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_ping_pong_streaming_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5065,7 +6497,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_registered_call_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5073,7 +6505,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_request_response_with_binary_metadata_and_payload_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5081,7 +6513,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_request_response_with_metadata_and_payload_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5089,7 +6521,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_request_response_with_payload_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5097,7 +6529,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_request_response_with_trailing_metadata_and_payload_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5105,7 +6537,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_request_with_compressed_payload_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5113,7 +6545,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_request_with_flags_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5121,7 +6553,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_request_with_large_metadata_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5129,7 +6561,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_request_with_payload_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5137,7 +6569,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_server_finishes_request_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5145,7 +6577,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_simple_delayed_request_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5153,7 +6585,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_simple_request_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5161,7 +6593,7 @@ "language": "c", "name": "chttp2_fullstack_uds_posix_with_poll_simple_request_with_high_initial_sequence_number_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5169,7 +6601,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_bad_hostname_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5177,7 +6609,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_cancel_after_accept_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5185,7 +6617,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_cancel_after_accept_and_writes_closed_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5193,7 +6625,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_cancel_after_invoke_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5201,7 +6633,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_cancel_before_invoke_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5209,7 +6641,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_cancel_in_a_vacuum_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5217,7 +6649,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_census_simple_request_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5225,7 +6657,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_channel_connectivity_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5233,7 +6665,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_default_host_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5241,7 +6673,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_disappearing_server_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5249,7 +6681,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_early_server_shutdown_finishes_inflight_calls_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5257,7 +6689,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_early_server_shutdown_finishes_tags_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5265,7 +6697,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_empty_batch_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5273,7 +6705,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_graceful_server_shutdown_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5281,7 +6713,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_invoke_large_request_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5289,7 +6721,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_max_concurrent_streams_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5297,7 +6729,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_max_message_length_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5305,7 +6737,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_no_op_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5313,7 +6745,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_ping_pong_streaming_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5321,7 +6753,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_registered_call_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5329,7 +6761,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_request_response_with_binary_metadata_and_payload_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5337,7 +6769,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_request_response_with_metadata_and_payload_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5345,7 +6777,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_request_response_with_payload_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5353,7 +6785,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_request_response_with_trailing_metadata_and_payload_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5361,7 +6793,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_request_with_compressed_payload_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5369,7 +6801,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_request_with_flags_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5377,7 +6809,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_request_with_large_metadata_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5385,7 +6817,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_request_with_payload_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5393,7 +6825,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_server_finishes_request_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5401,7 +6833,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_simple_delayed_request_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5409,7 +6841,7 @@ "language": "c", "name": "chttp2_fullstack_with_poll_simple_request_unsecure_test", "platforms": [ - "posix" + "linux" ] }, { @@ -5417,7 +6849,315 @@ "language": "c", "name": "chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_unsecure_test", "platforms": [ - "posix" + "linux" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_bad_hostname_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_census_simple_request_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_default_host_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_disappearing_server_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_empty_batch_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_max_message_length_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_no_op_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_registered_call_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_request_with_payload_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_simple_request_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "flaky": false, + "language": "c", + "name": "chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5425,8 +7165,10 @@ "language": "c", "name": "chttp2_socket_pair_bad_hostname_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5434,8 +7176,10 @@ "language": "c", "name": "chttp2_socket_pair_cancel_after_accept_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5443,8 +7187,10 @@ "language": "c", "name": "chttp2_socket_pair_cancel_after_accept_and_writes_closed_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5452,8 +7198,10 @@ "language": "c", "name": "chttp2_socket_pair_cancel_after_invoke_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5461,8 +7209,10 @@ "language": "c", "name": "chttp2_socket_pair_cancel_before_invoke_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5470,8 +7220,10 @@ "language": "c", "name": "chttp2_socket_pair_cancel_in_a_vacuum_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5479,8 +7231,10 @@ "language": "c", "name": "chttp2_socket_pair_census_simple_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5488,8 +7242,10 @@ "language": "c", "name": "chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5497,8 +7253,10 @@ "language": "c", "name": "chttp2_socket_pair_early_server_shutdown_finishes_tags_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5506,8 +7264,10 @@ "language": "c", "name": "chttp2_socket_pair_empty_batch_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5515,8 +7275,10 @@ "language": "c", "name": "chttp2_socket_pair_graceful_server_shutdown_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5524,8 +7286,10 @@ "language": "c", "name": "chttp2_socket_pair_invoke_large_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5533,8 +7297,10 @@ "language": "c", "name": "chttp2_socket_pair_max_concurrent_streams_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5542,8 +7308,10 @@ "language": "c", "name": "chttp2_socket_pair_max_message_length_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5551,8 +7319,10 @@ "language": "c", "name": "chttp2_socket_pair_no_op_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5560,8 +7330,10 @@ "language": "c", "name": "chttp2_socket_pair_ping_pong_streaming_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5569,8 +7341,10 @@ "language": "c", "name": "chttp2_socket_pair_registered_call_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5578,8 +7352,10 @@ "language": "c", "name": "chttp2_socket_pair_request_response_with_binary_metadata_and_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5587,8 +7363,10 @@ "language": "c", "name": "chttp2_socket_pair_request_response_with_metadata_and_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5596,8 +7374,10 @@ "language": "c", "name": "chttp2_socket_pair_request_response_with_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5605,8 +7385,10 @@ "language": "c", "name": "chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5614,8 +7396,10 @@ "language": "c", "name": "chttp2_socket_pair_request_with_compressed_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5623,8 +7407,10 @@ "language": "c", "name": "chttp2_socket_pair_request_with_flags_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5632,8 +7418,10 @@ "language": "c", "name": "chttp2_socket_pair_request_with_large_metadata_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5641,8 +7429,10 @@ "language": "c", "name": "chttp2_socket_pair_request_with_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5650,8 +7440,10 @@ "language": "c", "name": "chttp2_socket_pair_server_finishes_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5659,8 +7451,10 @@ "language": "c", "name": "chttp2_socket_pair_simple_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5668,8 +7462,10 @@ "language": "c", "name": "chttp2_socket_pair_simple_request_with_high_initial_sequence_number_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5677,8 +7473,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_bad_hostname_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5686,8 +7484,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5695,8 +7495,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5704,8 +7506,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5713,8 +7517,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5722,8 +7528,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5731,8 +7539,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_census_simple_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5740,8 +7550,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5749,8 +7561,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5758,8 +7572,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_empty_batch_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5767,8 +7583,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5776,8 +7594,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5785,8 +7605,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5794,8 +7616,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_max_message_length_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5803,8 +7627,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_no_op_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5812,8 +7638,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5821,8 +7649,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_registered_call_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5830,8 +7660,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5839,8 +7671,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5848,8 +7682,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5857,8 +7693,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5866,8 +7704,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_request_with_compressed_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5875,8 +7715,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_request_with_flags_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5884,8 +7726,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_request_with_large_metadata_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5893,8 +7737,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_request_with_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5902,8 +7748,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_server_finishes_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5911,8 +7759,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_simple_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5920,8 +7770,10 @@ "language": "c", "name": "chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5929,8 +7781,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_bad_hostname_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5938,8 +7792,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_cancel_after_accept_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5947,8 +7803,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5956,8 +7814,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5965,8 +7825,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_cancel_before_invoke_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5974,8 +7836,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_cancel_in_a_vacuum_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5983,8 +7847,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_census_simple_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -5992,8 +7858,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_inflight_calls_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6001,8 +7869,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_tags_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6010,8 +7880,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_empty_batch_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6019,8 +7891,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6028,8 +7902,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_invoke_large_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6037,8 +7913,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6046,8 +7924,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_max_message_length_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6055,8 +7935,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_no_op_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6064,8 +7946,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_ping_pong_streaming_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6073,8 +7957,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_registered_call_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6082,8 +7968,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_request_response_with_binary_metadata_and_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6091,8 +7979,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_request_response_with_metadata_and_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6100,8 +7990,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_request_response_with_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6109,8 +8001,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_request_response_with_trailing_metadata_and_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6118,8 +8012,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_request_with_compressed_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6127,8 +8023,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_request_with_flags_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6136,8 +8034,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_request_with_large_metadata_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6145,8 +8045,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_request_with_payload_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6154,8 +8056,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_server_finishes_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6163,8 +8067,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_simple_request_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6172,8 +8078,10 @@ "language": "c", "name": "chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_unsecure_test", "platforms": [ - "windows", - "posix" + "linux", + "mac", + "posix", + "windows" ] }, { @@ -6181,8 +8089,8 @@ "language": "c", "name": "connection_prefix_bad_client_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] }, { @@ -6190,8 +8098,8 @@ "language": "c", "name": "initial_settings_frame_bad_client_test", "platforms": [ - "windows", - "posix" + "posix", + "windows" ] } ] diff --git a/vsprojects/Grpc.mak b/vsprojects/Grpc.mak index bc180ae35f..15f45a5372 100644 --- a/vsprojects/Grpc.mak +++ b/vsprojects/Grpc.mak @@ -77,10 +77,10 @@ tools_cxx: $(OUT_DIR): mkdir $(OUT_DIR) -build_libs: build_gpr build_gpr_test_util build_grpc build_grpc_test_util build_grpc_test_util_unsecure build_grpc_unsecure Debug\reconnect_server.lib build_grpc++ Debug\grpc++_test_config.lib Debug\grpc++_test_util.lib build_grpc++_unsecure Debug\interop_client_helper.lib Debug\interop_client_main.lib Debug\interop_server_helper.lib Debug\interop_server_main.lib Debug\qps.lib Debug\end2end_fixture_chttp2_fake_security.lib Debug\end2end_fixture_chttp2_fullstack.lib Debug\end2end_fixture_chttp2_fullstack_compression.lib Debug\end2end_fixture_chttp2_simple_ssl_fullstack.lib Debug\end2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.lib Debug\end2end_fixture_chttp2_socket_pair.lib Debug\end2end_fixture_chttp2_socket_pair_one_byte_at_a_time.lib Debug\end2end_fixture_chttp2_socket_pair_with_grpc_trace.lib Debug\end2end_test_bad_hostname.lib Debug\end2end_test_cancel_after_accept.lib Debug\end2end_test_cancel_after_accept_and_writes_closed.lib Debug\end2end_test_cancel_after_invoke.lib Debug\end2end_test_cancel_before_invoke.lib Debug\end2end_test_cancel_in_a_vacuum.lib Debug\end2end_test_census_simple_request.lib Debug\end2end_test_channel_connectivity.lib Debug\end2end_test_default_host.lib Debug\end2end_test_disappearing_server.lib Debug\end2end_test_early_server_shutdown_finishes_inflight_calls.lib Debug\end2end_test_early_server_shutdown_finishes_tags.lib Debug\end2end_test_empty_batch.lib Debug\end2end_test_graceful_server_shutdown.lib Debug\end2end_test_invoke_large_request.lib Debug\end2end_test_max_concurrent_streams.lib Debug\end2end_test_max_message_length.lib Debug\end2end_test_no_op.lib Debug\end2end_test_ping_pong_streaming.lib Debug\end2end_test_registered_call.lib Debug\end2end_test_request_response_with_binary_metadata_and_payload.lib Debug\end2end_test_request_response_with_metadata_and_payload.lib Debug\end2end_test_request_response_with_payload.lib Debug\end2end_test_request_response_with_payload_and_call_creds.lib Debug\end2end_test_request_response_with_trailing_metadata_and_payload.lib Debug\end2end_test_request_with_compressed_payload.lib Debug\end2end_test_request_with_flags.lib Debug\end2end_test_request_with_large_metadata.lib Debug\end2end_test_request_with_payload.lib Debug\end2end_test_server_finishes_request.lib Debug\end2end_test_simple_delayed_request.lib Debug\end2end_test_simple_request.lib Debug\end2end_test_simple_request_with_high_initial_sequence_number.lib Debug\end2end_certs.lib Debug\bad_client_test.lib +build_libs: build_gpr build_gpr_test_util build_grpc build_grpc_test_util build_grpc_test_util_unsecure build_grpc_unsecure Debug\reconnect_server.lib build_grpc++ Debug\grpc++_test_config.lib Debug\grpc++_test_util.lib build_grpc++_unsecure Debug\interop_client_helper.lib Debug\interop_client_main.lib Debug\interop_server_helper.lib Debug\interop_server_main.lib Debug\qps.lib Debug\end2end_fixture_chttp2_fake_security.lib Debug\end2end_fixture_chttp2_fullstack.lib Debug\end2end_fixture_chttp2_fullstack_compression.lib Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_fixture_chttp2_simple_ssl_fullstack.lib Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.lib Debug\end2end_fixture_chttp2_socket_pair.lib Debug\end2end_fixture_chttp2_socket_pair_one_byte_at_a_time.lib Debug\end2end_fixture_chttp2_socket_pair_with_grpc_trace.lib Debug\end2end_test_bad_hostname.lib Debug\end2end_test_cancel_after_accept.lib Debug\end2end_test_cancel_after_accept_and_writes_closed.lib Debug\end2end_test_cancel_after_invoke.lib Debug\end2end_test_cancel_before_invoke.lib Debug\end2end_test_cancel_in_a_vacuum.lib Debug\end2end_test_census_simple_request.lib Debug\end2end_test_channel_connectivity.lib Debug\end2end_test_default_host.lib Debug\end2end_test_disappearing_server.lib Debug\end2end_test_early_server_shutdown_finishes_inflight_calls.lib Debug\end2end_test_early_server_shutdown_finishes_tags.lib Debug\end2end_test_empty_batch.lib Debug\end2end_test_graceful_server_shutdown.lib Debug\end2end_test_invoke_large_request.lib Debug\end2end_test_max_concurrent_streams.lib Debug\end2end_test_max_message_length.lib Debug\end2end_test_no_op.lib Debug\end2end_test_ping_pong_streaming.lib Debug\end2end_test_registered_call.lib Debug\end2end_test_request_response_with_binary_metadata_and_payload.lib Debug\end2end_test_request_response_with_metadata_and_payload.lib Debug\end2end_test_request_response_with_payload.lib Debug\end2end_test_request_response_with_payload_and_call_creds.lib Debug\end2end_test_request_response_with_trailing_metadata_and_payload.lib Debug\end2end_test_request_with_compressed_payload.lib Debug\end2end_test_request_with_flags.lib Debug\end2end_test_request_with_large_metadata.lib Debug\end2end_test_request_with_payload.lib Debug\end2end_test_server_finishes_request.lib Debug\end2end_test_simple_delayed_request.lib Debug\end2end_test_simple_request.lib Debug\end2end_test_simple_request_with_high_initial_sequence_number.lib Debug\end2end_certs.lib Debug\bad_client_test.lib buildtests: buildtests_c buildtests_cxx -buildtests_c: alarm_heap_test.exe alarm_list_test.exe alarm_test.exe alpn_test.exe bin_encoder_test.exe chttp2_status_conversion_test.exe chttp2_stream_encoder_test.exe chttp2_stream_map_test.exe fling_client.exe fling_server.exe gpr_cancellable_test.exe gpr_cmdline_test.exe gpr_env_test.exe gpr_file_test.exe gpr_histogram_test.exe gpr_host_port_test.exe gpr_log_test.exe gpr_slice_buffer_test.exe gpr_slice_test.exe gpr_stack_lockfree_test.exe gpr_string_test.exe gpr_sync_test.exe gpr_thd_test.exe gpr_time_test.exe gpr_tls_test.exe gpr_useful_test.exe grpc_auth_context_test.exe grpc_base64_test.exe grpc_byte_buffer_reader_test.exe grpc_channel_stack_test.exe grpc_completion_queue_test.exe grpc_credentials_test.exe grpc_json_token_test.exe grpc_jwt_verifier_test.exe grpc_security_connector_test.exe grpc_stream_op_test.exe hpack_parser_test.exe hpack_table_test.exe httpcli_format_request_test.exe httpcli_parser_test.exe json_rewrite.exe json_rewrite_test.exe json_test.exe lame_client_test.exe message_compress_test.exe multi_init_test.exe multiple_server_queues_test.exe murmur_hash_test.exe no_server_test.exe resolve_address_test.exe secure_endpoint_test.exe sockaddr_utils_test.exe time_averaged_stats_test.exe timeout_encoding_test.exe timers_test.exe transport_metadata_test.exe transport_security_test.exe uri_parser_test.exe chttp2_fake_security_bad_hostname_test.exe chttp2_fake_security_cancel_after_accept_test.exe chttp2_fake_security_cancel_after_accept_and_writes_closed_test.exe chttp2_fake_security_cancel_after_invoke_test.exe chttp2_fake_security_cancel_before_invoke_test.exe chttp2_fake_security_cancel_in_a_vacuum_test.exe chttp2_fake_security_census_simple_request_test.exe chttp2_fake_security_channel_connectivity_test.exe chttp2_fake_security_default_host_test.exe chttp2_fake_security_disappearing_server_test.exe chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_fake_security_early_server_shutdown_finishes_tags_test.exe chttp2_fake_security_empty_batch_test.exe chttp2_fake_security_graceful_server_shutdown_test.exe chttp2_fake_security_invoke_large_request_test.exe chttp2_fake_security_max_concurrent_streams_test.exe chttp2_fake_security_max_message_length_test.exe chttp2_fake_security_no_op_test.exe chttp2_fake_security_ping_pong_streaming_test.exe chttp2_fake_security_registered_call_test.exe chttp2_fake_security_request_response_with_binary_metadata_and_payload_test.exe chttp2_fake_security_request_response_with_metadata_and_payload_test.exe chttp2_fake_security_request_response_with_payload_test.exe chttp2_fake_security_request_response_with_payload_and_call_creds_test.exe chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test.exe chttp2_fake_security_request_with_compressed_payload_test.exe chttp2_fake_security_request_with_flags_test.exe chttp2_fake_security_request_with_large_metadata_test.exe chttp2_fake_security_request_with_payload_test.exe chttp2_fake_security_server_finishes_request_test.exe chttp2_fake_security_simple_delayed_request_test.exe chttp2_fake_security_simple_request_test.exe chttp2_fake_security_simple_request_with_high_initial_sequence_number_test.exe chttp2_fullstack_bad_hostname_test.exe chttp2_fullstack_cancel_after_accept_test.exe chttp2_fullstack_cancel_after_accept_and_writes_closed_test.exe chttp2_fullstack_cancel_after_invoke_test.exe chttp2_fullstack_cancel_before_invoke_test.exe chttp2_fullstack_cancel_in_a_vacuum_test.exe chttp2_fullstack_census_simple_request_test.exe chttp2_fullstack_channel_connectivity_test.exe chttp2_fullstack_default_host_test.exe chttp2_fullstack_disappearing_server_test.exe chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_fullstack_early_server_shutdown_finishes_tags_test.exe chttp2_fullstack_empty_batch_test.exe chttp2_fullstack_graceful_server_shutdown_test.exe chttp2_fullstack_invoke_large_request_test.exe chttp2_fullstack_max_concurrent_streams_test.exe chttp2_fullstack_max_message_length_test.exe chttp2_fullstack_no_op_test.exe chttp2_fullstack_ping_pong_streaming_test.exe chttp2_fullstack_registered_call_test.exe chttp2_fullstack_request_response_with_binary_metadata_and_payload_test.exe chttp2_fullstack_request_response_with_metadata_and_payload_test.exe chttp2_fullstack_request_response_with_payload_test.exe chttp2_fullstack_request_response_with_payload_and_call_creds_test.exe chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test.exe chttp2_fullstack_request_with_compressed_payload_test.exe chttp2_fullstack_request_with_flags_test.exe chttp2_fullstack_request_with_large_metadata_test.exe chttp2_fullstack_request_with_payload_test.exe chttp2_fullstack_server_finishes_request_test.exe chttp2_fullstack_simple_delayed_request_test.exe chttp2_fullstack_simple_request_test.exe chttp2_fullstack_simple_request_with_high_initial_sequence_number_test.exe chttp2_fullstack_compression_bad_hostname_test.exe chttp2_fullstack_compression_cancel_after_accept_test.exe chttp2_fullstack_compression_cancel_after_accept_and_writes_closed_test.exe chttp2_fullstack_compression_cancel_after_invoke_test.exe chttp2_fullstack_compression_cancel_before_invoke_test.exe chttp2_fullstack_compression_cancel_in_a_vacuum_test.exe chttp2_fullstack_compression_census_simple_request_test.exe chttp2_fullstack_compression_channel_connectivity_test.exe chttp2_fullstack_compression_default_host_test.exe chttp2_fullstack_compression_disappearing_server_test.exe chttp2_fullstack_compression_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_fullstack_compression_early_server_shutdown_finishes_tags_test.exe chttp2_fullstack_compression_empty_batch_test.exe chttp2_fullstack_compression_graceful_server_shutdown_test.exe chttp2_fullstack_compression_invoke_large_request_test.exe chttp2_fullstack_compression_max_concurrent_streams_test.exe chttp2_fullstack_compression_max_message_length_test.exe chttp2_fullstack_compression_no_op_test.exe chttp2_fullstack_compression_ping_pong_streaming_test.exe chttp2_fullstack_compression_registered_call_test.exe chttp2_fullstack_compression_request_response_with_binary_metadata_and_payload_test.exe chttp2_fullstack_compression_request_response_with_metadata_and_payload_test.exe chttp2_fullstack_compression_request_response_with_payload_test.exe chttp2_fullstack_compression_request_response_with_payload_and_call_creds_test.exe chttp2_fullstack_compression_request_response_with_trailing_metadata_and_payload_test.exe chttp2_fullstack_compression_request_with_compressed_payload_test.exe chttp2_fullstack_compression_request_with_flags_test.exe chttp2_fullstack_compression_request_with_large_metadata_test.exe chttp2_fullstack_compression_request_with_payload_test.exe chttp2_fullstack_compression_server_finishes_request_test.exe chttp2_fullstack_compression_simple_delayed_request_test.exe chttp2_fullstack_compression_simple_request_test.exe chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_test.exe chttp2_simple_ssl_fullstack_bad_hostname_test.exe chttp2_simple_ssl_fullstack_cancel_after_accept_test.exe chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test.exe chttp2_simple_ssl_fullstack_cancel_after_invoke_test.exe chttp2_simple_ssl_fullstack_cancel_before_invoke_test.exe chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test.exe chttp2_simple_ssl_fullstack_census_simple_request_test.exe chttp2_simple_ssl_fullstack_channel_connectivity_test.exe chttp2_simple_ssl_fullstack_default_host_test.exe chttp2_simple_ssl_fullstack_disappearing_server_test.exe chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test.exe chttp2_simple_ssl_fullstack_empty_batch_test.exe chttp2_simple_ssl_fullstack_graceful_server_shutdown_test.exe chttp2_simple_ssl_fullstack_invoke_large_request_test.exe chttp2_simple_ssl_fullstack_max_concurrent_streams_test.exe chttp2_simple_ssl_fullstack_max_message_length_test.exe chttp2_simple_ssl_fullstack_no_op_test.exe chttp2_simple_ssl_fullstack_ping_pong_streaming_test.exe chttp2_simple_ssl_fullstack_registered_call_test.exe chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_request_response_with_payload_test.exe chttp2_simple_ssl_fullstack_request_response_with_payload_and_call_creds_test.exe chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_request_with_compressed_payload_test.exe chttp2_simple_ssl_fullstack_request_with_flags_test.exe chttp2_simple_ssl_fullstack_request_with_large_metadata_test.exe chttp2_simple_ssl_fullstack_request_with_payload_test.exe chttp2_simple_ssl_fullstack_server_finishes_request_test.exe chttp2_simple_ssl_fullstack_simple_delayed_request_test.exe chttp2_simple_ssl_fullstack_simple_request_test.exe chttp2_simple_ssl_fullstack_simple_request_with_high_initial_sequence_number_test.exe chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test.exe chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test.exe chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test.exe chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test.exe chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test.exe chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test.exe chttp2_simple_ssl_with_oauth2_fullstack_census_simple_request_test.exe chttp2_simple_ssl_with_oauth2_fullstack_channel_connectivity_test.exe chttp2_simple_ssl_with_oauth2_fullstack_default_host_test.exe chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test.exe chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test.exe chttp2_simple_ssl_with_oauth2_fullstack_empty_batch_test.exe chttp2_simple_ssl_with_oauth2_fullstack_graceful_server_shutdown_test.exe chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test.exe chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test.exe chttp2_simple_ssl_with_oauth2_fullstack_max_message_length_test.exe chttp2_simple_ssl_with_oauth2_fullstack_no_op_test.exe chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test.exe chttp2_simple_ssl_with_oauth2_fullstack_registered_call_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_and_call_creds_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_with_compressed_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_with_flags_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_with_large_metadata_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_with_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_server_finishes_request_test.exe chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test.exe chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test.exe chttp2_simple_ssl_with_oauth2_fullstack_simple_request_with_high_initial_sequence_number_test.exe chttp2_socket_pair_bad_hostname_test.exe chttp2_socket_pair_cancel_after_accept_test.exe chttp2_socket_pair_cancel_after_accept_and_writes_closed_test.exe chttp2_socket_pair_cancel_after_invoke_test.exe chttp2_socket_pair_cancel_before_invoke_test.exe chttp2_socket_pair_cancel_in_a_vacuum_test.exe chttp2_socket_pair_census_simple_request_test.exe chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_socket_pair_early_server_shutdown_finishes_tags_test.exe chttp2_socket_pair_empty_batch_test.exe chttp2_socket_pair_graceful_server_shutdown_test.exe chttp2_socket_pair_invoke_large_request_test.exe chttp2_socket_pair_max_concurrent_streams_test.exe chttp2_socket_pair_max_message_length_test.exe chttp2_socket_pair_no_op_test.exe chttp2_socket_pair_ping_pong_streaming_test.exe chttp2_socket_pair_registered_call_test.exe chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test.exe chttp2_socket_pair_request_response_with_metadata_and_payload_test.exe chttp2_socket_pair_request_response_with_payload_test.exe chttp2_socket_pair_request_response_with_payload_and_call_creds_test.exe chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test.exe chttp2_socket_pair_request_with_compressed_payload_test.exe chttp2_socket_pair_request_with_flags_test.exe chttp2_socket_pair_request_with_large_metadata_test.exe chttp2_socket_pair_request_with_payload_test.exe chttp2_socket_pair_server_finishes_request_test.exe chttp2_socket_pair_simple_request_test.exe chttp2_socket_pair_simple_request_with_high_initial_sequence_number_test.exe chttp2_socket_pair_one_byte_at_a_time_bad_hostname_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test.exe chttp2_socket_pair_one_byte_at_a_time_census_simple_request_test.exe chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test.exe chttp2_socket_pair_one_byte_at_a_time_empty_batch_test.exe chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_test.exe chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test.exe chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test.exe chttp2_socket_pair_one_byte_at_a_time_max_message_length_test.exe chttp2_socket_pair_one_byte_at_a_time_no_op_test.exe chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test.exe chttp2_socket_pair_one_byte_at_a_time_registered_call_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_and_call_creds_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_compressed_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_flags_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_large_metadata_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_server_finishes_request_test.exe chttp2_socket_pair_one_byte_at_a_time_simple_request_test.exe chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_test.exe chttp2_socket_pair_with_grpc_trace_bad_hostname_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_accept_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_test.exe chttp2_socket_pair_with_grpc_trace_cancel_before_invoke_test.exe chttp2_socket_pair_with_grpc_trace_cancel_in_a_vacuum_test.exe chttp2_socket_pair_with_grpc_trace_census_simple_request_test.exe chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_tags_test.exe chttp2_socket_pair_with_grpc_trace_empty_batch_test.exe chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_test.exe chttp2_socket_pair_with_grpc_trace_invoke_large_request_test.exe chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_test.exe chttp2_socket_pair_with_grpc_trace_max_message_length_test.exe chttp2_socket_pair_with_grpc_trace_no_op_test.exe chttp2_socket_pair_with_grpc_trace_ping_pong_streaming_test.exe chttp2_socket_pair_with_grpc_trace_registered_call_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_binary_metadata_and_payload_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_metadata_and_payload_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_payload_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_payload_and_call_creds_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_trailing_metadata_and_payload_test.exe chttp2_socket_pair_with_grpc_trace_request_with_compressed_payload_test.exe chttp2_socket_pair_with_grpc_trace_request_with_flags_test.exe chttp2_socket_pair_with_grpc_trace_request_with_large_metadata_test.exe chttp2_socket_pair_with_grpc_trace_request_with_payload_test.exe chttp2_socket_pair_with_grpc_trace_server_finishes_request_test.exe chttp2_socket_pair_with_grpc_trace_simple_request_test.exe chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_test.exe chttp2_fullstack_bad_hostname_unsecure_test.exe chttp2_fullstack_cancel_after_accept_unsecure_test.exe chttp2_fullstack_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_fullstack_cancel_after_invoke_unsecure_test.exe chttp2_fullstack_cancel_before_invoke_unsecure_test.exe chttp2_fullstack_cancel_in_a_vacuum_unsecure_test.exe chttp2_fullstack_census_simple_request_unsecure_test.exe chttp2_fullstack_channel_connectivity_unsecure_test.exe chttp2_fullstack_default_host_unsecure_test.exe chttp2_fullstack_disappearing_server_unsecure_test.exe chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_fullstack_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_fullstack_empty_batch_unsecure_test.exe chttp2_fullstack_graceful_server_shutdown_unsecure_test.exe chttp2_fullstack_invoke_large_request_unsecure_test.exe chttp2_fullstack_max_concurrent_streams_unsecure_test.exe chttp2_fullstack_max_message_length_unsecure_test.exe chttp2_fullstack_no_op_unsecure_test.exe chttp2_fullstack_ping_pong_streaming_unsecure_test.exe chttp2_fullstack_registered_call_unsecure_test.exe chttp2_fullstack_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_fullstack_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_fullstack_request_response_with_payload_unsecure_test.exe chttp2_fullstack_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_fullstack_request_with_compressed_payload_unsecure_test.exe chttp2_fullstack_request_with_flags_unsecure_test.exe chttp2_fullstack_request_with_large_metadata_unsecure_test.exe chttp2_fullstack_request_with_payload_unsecure_test.exe chttp2_fullstack_server_finishes_request_unsecure_test.exe chttp2_fullstack_simple_delayed_request_unsecure_test.exe chttp2_fullstack_simple_request_unsecure_test.exe chttp2_fullstack_simple_request_with_high_initial_sequence_number_unsecure_test.exe chttp2_fullstack_compression_bad_hostname_unsecure_test.exe chttp2_fullstack_compression_cancel_after_accept_unsecure_test.exe chttp2_fullstack_compression_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_fullstack_compression_cancel_after_invoke_unsecure_test.exe chttp2_fullstack_compression_cancel_before_invoke_unsecure_test.exe chttp2_fullstack_compression_cancel_in_a_vacuum_unsecure_test.exe chttp2_fullstack_compression_census_simple_request_unsecure_test.exe chttp2_fullstack_compression_channel_connectivity_unsecure_test.exe chttp2_fullstack_compression_default_host_unsecure_test.exe chttp2_fullstack_compression_disappearing_server_unsecure_test.exe chttp2_fullstack_compression_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_fullstack_compression_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_fullstack_compression_empty_batch_unsecure_test.exe chttp2_fullstack_compression_graceful_server_shutdown_unsecure_test.exe chttp2_fullstack_compression_invoke_large_request_unsecure_test.exe chttp2_fullstack_compression_max_concurrent_streams_unsecure_test.exe chttp2_fullstack_compression_max_message_length_unsecure_test.exe chttp2_fullstack_compression_no_op_unsecure_test.exe chttp2_fullstack_compression_ping_pong_streaming_unsecure_test.exe chttp2_fullstack_compression_registered_call_unsecure_test.exe chttp2_fullstack_compression_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_fullstack_compression_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_fullstack_compression_request_response_with_payload_unsecure_test.exe chttp2_fullstack_compression_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_fullstack_compression_request_with_compressed_payload_unsecure_test.exe chttp2_fullstack_compression_request_with_flags_unsecure_test.exe chttp2_fullstack_compression_request_with_large_metadata_unsecure_test.exe chttp2_fullstack_compression_request_with_payload_unsecure_test.exe chttp2_fullstack_compression_server_finishes_request_unsecure_test.exe chttp2_fullstack_compression_simple_delayed_request_unsecure_test.exe chttp2_fullstack_compression_simple_request_unsecure_test.exe chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_unsecure_test.exe chttp2_socket_pair_bad_hostname_unsecure_test.exe chttp2_socket_pair_cancel_after_accept_unsecure_test.exe chttp2_socket_pair_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_socket_pair_cancel_after_invoke_unsecure_test.exe chttp2_socket_pair_cancel_before_invoke_unsecure_test.exe chttp2_socket_pair_cancel_in_a_vacuum_unsecure_test.exe chttp2_socket_pair_census_simple_request_unsecure_test.exe chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_socket_pair_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_socket_pair_empty_batch_unsecure_test.exe chttp2_socket_pair_graceful_server_shutdown_unsecure_test.exe chttp2_socket_pair_invoke_large_request_unsecure_test.exe chttp2_socket_pair_max_concurrent_streams_unsecure_test.exe chttp2_socket_pair_max_message_length_unsecure_test.exe chttp2_socket_pair_no_op_unsecure_test.exe chttp2_socket_pair_ping_pong_streaming_unsecure_test.exe chttp2_socket_pair_registered_call_unsecure_test.exe chttp2_socket_pair_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_request_response_with_payload_unsecure_test.exe chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_request_with_compressed_payload_unsecure_test.exe chttp2_socket_pair_request_with_flags_unsecure_test.exe chttp2_socket_pair_request_with_large_metadata_unsecure_test.exe chttp2_socket_pair_request_with_payload_unsecure_test.exe chttp2_socket_pair_server_finishes_request_unsecure_test.exe chttp2_socket_pair_simple_request_unsecure_test.exe chttp2_socket_pair_simple_request_with_high_initial_sequence_number_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_bad_hostname_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_census_simple_request_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_empty_batch_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_max_message_length_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_no_op_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_registered_call_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_compressed_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_flags_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_large_metadata_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_server_finishes_request_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_simple_request_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_bad_hostname_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_accept_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_cancel_before_invoke_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_cancel_in_a_vacuum_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_census_simple_request_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_empty_batch_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_invoke_large_request_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_max_message_length_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_no_op_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_ping_pong_streaming_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_registered_call_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_with_compressed_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_with_flags_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_with_large_metadata_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_with_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_server_finishes_request_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_simple_request_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_unsecure_test.exe connection_prefix_bad_client_test.exe initial_settings_frame_bad_client_test.exe +buildtests_c: alarm_heap_test.exe alarm_list_test.exe alarm_test.exe alpn_test.exe bin_encoder_test.exe chttp2_status_conversion_test.exe chttp2_stream_encoder_test.exe chttp2_stream_map_test.exe fling_client.exe fling_server.exe gpr_cancellable_test.exe gpr_cmdline_test.exe gpr_env_test.exe gpr_file_test.exe gpr_histogram_test.exe gpr_host_port_test.exe gpr_log_test.exe gpr_slice_buffer_test.exe gpr_slice_test.exe gpr_stack_lockfree_test.exe gpr_string_test.exe gpr_sync_test.exe gpr_thd_test.exe gpr_time_test.exe gpr_tls_test.exe gpr_useful_test.exe grpc_auth_context_test.exe grpc_base64_test.exe grpc_byte_buffer_reader_test.exe grpc_channel_stack_test.exe grpc_completion_queue_test.exe grpc_credentials_test.exe grpc_json_token_test.exe grpc_jwt_verifier_test.exe grpc_security_connector_test.exe grpc_stream_op_test.exe hpack_parser_test.exe hpack_table_test.exe httpcli_format_request_test.exe httpcli_parser_test.exe json_rewrite.exe json_rewrite_test.exe json_test.exe lame_client_test.exe message_compress_test.exe multi_init_test.exe multiple_server_queues_test.exe murmur_hash_test.exe no_server_test.exe resolve_address_test.exe secure_endpoint_test.exe sockaddr_utils_test.exe time_averaged_stats_test.exe timeout_encoding_test.exe timers_test.exe transport_metadata_test.exe transport_security_test.exe uri_parser_test.exe chttp2_fake_security_bad_hostname_test.exe chttp2_fake_security_cancel_after_accept_test.exe chttp2_fake_security_cancel_after_accept_and_writes_closed_test.exe chttp2_fake_security_cancel_after_invoke_test.exe chttp2_fake_security_cancel_before_invoke_test.exe chttp2_fake_security_cancel_in_a_vacuum_test.exe chttp2_fake_security_census_simple_request_test.exe chttp2_fake_security_channel_connectivity_test.exe chttp2_fake_security_default_host_test.exe chttp2_fake_security_disappearing_server_test.exe chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_fake_security_early_server_shutdown_finishes_tags_test.exe chttp2_fake_security_empty_batch_test.exe chttp2_fake_security_graceful_server_shutdown_test.exe chttp2_fake_security_invoke_large_request_test.exe chttp2_fake_security_max_concurrent_streams_test.exe chttp2_fake_security_max_message_length_test.exe chttp2_fake_security_no_op_test.exe chttp2_fake_security_ping_pong_streaming_test.exe chttp2_fake_security_registered_call_test.exe chttp2_fake_security_request_response_with_binary_metadata_and_payload_test.exe chttp2_fake_security_request_response_with_metadata_and_payload_test.exe chttp2_fake_security_request_response_with_payload_test.exe chttp2_fake_security_request_response_with_payload_and_call_creds_test.exe chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test.exe chttp2_fake_security_request_with_compressed_payload_test.exe chttp2_fake_security_request_with_flags_test.exe chttp2_fake_security_request_with_large_metadata_test.exe chttp2_fake_security_request_with_payload_test.exe chttp2_fake_security_server_finishes_request_test.exe chttp2_fake_security_simple_delayed_request_test.exe chttp2_fake_security_simple_request_test.exe chttp2_fake_security_simple_request_with_high_initial_sequence_number_test.exe chttp2_fullstack_bad_hostname_test.exe chttp2_fullstack_cancel_after_accept_test.exe chttp2_fullstack_cancel_after_accept_and_writes_closed_test.exe chttp2_fullstack_cancel_after_invoke_test.exe chttp2_fullstack_cancel_before_invoke_test.exe chttp2_fullstack_cancel_in_a_vacuum_test.exe chttp2_fullstack_census_simple_request_test.exe chttp2_fullstack_channel_connectivity_test.exe chttp2_fullstack_default_host_test.exe chttp2_fullstack_disappearing_server_test.exe chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_fullstack_early_server_shutdown_finishes_tags_test.exe chttp2_fullstack_empty_batch_test.exe chttp2_fullstack_graceful_server_shutdown_test.exe chttp2_fullstack_invoke_large_request_test.exe chttp2_fullstack_max_concurrent_streams_test.exe chttp2_fullstack_max_message_length_test.exe chttp2_fullstack_no_op_test.exe chttp2_fullstack_ping_pong_streaming_test.exe chttp2_fullstack_registered_call_test.exe chttp2_fullstack_request_response_with_binary_metadata_and_payload_test.exe chttp2_fullstack_request_response_with_metadata_and_payload_test.exe chttp2_fullstack_request_response_with_payload_test.exe chttp2_fullstack_request_response_with_payload_and_call_creds_test.exe chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test.exe chttp2_fullstack_request_with_compressed_payload_test.exe chttp2_fullstack_request_with_flags_test.exe chttp2_fullstack_request_with_large_metadata_test.exe chttp2_fullstack_request_with_payload_test.exe chttp2_fullstack_server_finishes_request_test.exe chttp2_fullstack_simple_delayed_request_test.exe chttp2_fullstack_simple_request_test.exe chttp2_fullstack_simple_request_with_high_initial_sequence_number_test.exe chttp2_fullstack_compression_bad_hostname_test.exe chttp2_fullstack_compression_cancel_after_accept_test.exe chttp2_fullstack_compression_cancel_after_accept_and_writes_closed_test.exe chttp2_fullstack_compression_cancel_after_invoke_test.exe chttp2_fullstack_compression_cancel_before_invoke_test.exe chttp2_fullstack_compression_cancel_in_a_vacuum_test.exe chttp2_fullstack_compression_census_simple_request_test.exe chttp2_fullstack_compression_channel_connectivity_test.exe chttp2_fullstack_compression_default_host_test.exe chttp2_fullstack_compression_disappearing_server_test.exe chttp2_fullstack_compression_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_fullstack_compression_early_server_shutdown_finishes_tags_test.exe chttp2_fullstack_compression_empty_batch_test.exe chttp2_fullstack_compression_graceful_server_shutdown_test.exe chttp2_fullstack_compression_invoke_large_request_test.exe chttp2_fullstack_compression_max_concurrent_streams_test.exe chttp2_fullstack_compression_max_message_length_test.exe chttp2_fullstack_compression_no_op_test.exe chttp2_fullstack_compression_ping_pong_streaming_test.exe chttp2_fullstack_compression_registered_call_test.exe chttp2_fullstack_compression_request_response_with_binary_metadata_and_payload_test.exe chttp2_fullstack_compression_request_response_with_metadata_and_payload_test.exe chttp2_fullstack_compression_request_response_with_payload_test.exe chttp2_fullstack_compression_request_response_with_payload_and_call_creds_test.exe chttp2_fullstack_compression_request_response_with_trailing_metadata_and_payload_test.exe chttp2_fullstack_compression_request_with_compressed_payload_test.exe chttp2_fullstack_compression_request_with_flags_test.exe chttp2_fullstack_compression_request_with_large_metadata_test.exe chttp2_fullstack_compression_request_with_payload_test.exe chttp2_fullstack_compression_server_finishes_request_test.exe chttp2_fullstack_compression_simple_delayed_request_test.exe chttp2_fullstack_compression_simple_request_test.exe chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_test.exe chttp2_fullstack_with_proxy_bad_hostname_test.exe chttp2_fullstack_with_proxy_cancel_after_accept_test.exe chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test.exe chttp2_fullstack_with_proxy_cancel_after_invoke_test.exe chttp2_fullstack_with_proxy_cancel_before_invoke_test.exe chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test.exe chttp2_fullstack_with_proxy_census_simple_request_test.exe chttp2_fullstack_with_proxy_default_host_test.exe chttp2_fullstack_with_proxy_disappearing_server_test.exe chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test.exe chttp2_fullstack_with_proxy_empty_batch_test.exe chttp2_fullstack_with_proxy_graceful_server_shutdown_test.exe chttp2_fullstack_with_proxy_invoke_large_request_test.exe chttp2_fullstack_with_proxy_max_message_length_test.exe chttp2_fullstack_with_proxy_no_op_test.exe chttp2_fullstack_with_proxy_ping_pong_streaming_test.exe chttp2_fullstack_with_proxy_registered_call_test.exe chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test.exe chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test.exe chttp2_fullstack_with_proxy_request_response_with_payload_test.exe chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test.exe chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test.exe chttp2_fullstack_with_proxy_request_with_large_metadata_test.exe chttp2_fullstack_with_proxy_request_with_payload_test.exe chttp2_fullstack_with_proxy_server_finishes_request_test.exe chttp2_fullstack_with_proxy_simple_delayed_request_test.exe chttp2_fullstack_with_proxy_simple_request_test.exe chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test.exe chttp2_simple_ssl_fullstack_bad_hostname_test.exe chttp2_simple_ssl_fullstack_cancel_after_accept_test.exe chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test.exe chttp2_simple_ssl_fullstack_cancel_after_invoke_test.exe chttp2_simple_ssl_fullstack_cancel_before_invoke_test.exe chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test.exe chttp2_simple_ssl_fullstack_census_simple_request_test.exe chttp2_simple_ssl_fullstack_channel_connectivity_test.exe chttp2_simple_ssl_fullstack_default_host_test.exe chttp2_simple_ssl_fullstack_disappearing_server_test.exe chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test.exe chttp2_simple_ssl_fullstack_empty_batch_test.exe chttp2_simple_ssl_fullstack_graceful_server_shutdown_test.exe chttp2_simple_ssl_fullstack_invoke_large_request_test.exe chttp2_simple_ssl_fullstack_max_concurrent_streams_test.exe chttp2_simple_ssl_fullstack_max_message_length_test.exe chttp2_simple_ssl_fullstack_no_op_test.exe chttp2_simple_ssl_fullstack_ping_pong_streaming_test.exe chttp2_simple_ssl_fullstack_registered_call_test.exe chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_request_response_with_payload_test.exe chttp2_simple_ssl_fullstack_request_response_with_payload_and_call_creds_test.exe chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_request_with_compressed_payload_test.exe chttp2_simple_ssl_fullstack_request_with_flags_test.exe chttp2_simple_ssl_fullstack_request_with_large_metadata_test.exe chttp2_simple_ssl_fullstack_request_with_payload_test.exe chttp2_simple_ssl_fullstack_server_finishes_request_test.exe chttp2_simple_ssl_fullstack_simple_delayed_request_test.exe chttp2_simple_ssl_fullstack_simple_request_test.exe chttp2_simple_ssl_fullstack_simple_request_with_high_initial_sequence_number_test.exe chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test.exe chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test.exe chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test.exe chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test.exe chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test.exe chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test.exe chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test.exe chttp2_simple_ssl_fullstack_with_proxy_default_host_test.exe chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test.exe chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test.exe chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test.exe chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test.exe chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test.exe chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test.exe chttp2_simple_ssl_fullstack_with_proxy_no_op_test.exe chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test.exe chttp2_simple_ssl_fullstack_with_proxy_registered_call_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test.exe chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test.exe chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test.exe chttp2_simple_ssl_fullstack_with_proxy_simple_request_test.exe chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test.exe chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test.exe chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test.exe chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test.exe chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test.exe chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test.exe chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test.exe chttp2_simple_ssl_with_oauth2_fullstack_census_simple_request_test.exe chttp2_simple_ssl_with_oauth2_fullstack_channel_connectivity_test.exe chttp2_simple_ssl_with_oauth2_fullstack_default_host_test.exe chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test.exe chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test.exe chttp2_simple_ssl_with_oauth2_fullstack_empty_batch_test.exe chttp2_simple_ssl_with_oauth2_fullstack_graceful_server_shutdown_test.exe chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test.exe chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test.exe chttp2_simple_ssl_with_oauth2_fullstack_max_message_length_test.exe chttp2_simple_ssl_with_oauth2_fullstack_no_op_test.exe chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test.exe chttp2_simple_ssl_with_oauth2_fullstack_registered_call_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_and_call_creds_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_with_compressed_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_with_flags_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_with_large_metadata_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_with_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_server_finishes_request_test.exe chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test.exe chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test.exe chttp2_simple_ssl_with_oauth2_fullstack_simple_request_with_high_initial_sequence_number_test.exe chttp2_socket_pair_bad_hostname_test.exe chttp2_socket_pair_cancel_after_accept_test.exe chttp2_socket_pair_cancel_after_accept_and_writes_closed_test.exe chttp2_socket_pair_cancel_after_invoke_test.exe chttp2_socket_pair_cancel_before_invoke_test.exe chttp2_socket_pair_cancel_in_a_vacuum_test.exe chttp2_socket_pair_census_simple_request_test.exe chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_socket_pair_early_server_shutdown_finishes_tags_test.exe chttp2_socket_pair_empty_batch_test.exe chttp2_socket_pair_graceful_server_shutdown_test.exe chttp2_socket_pair_invoke_large_request_test.exe chttp2_socket_pair_max_concurrent_streams_test.exe chttp2_socket_pair_max_message_length_test.exe chttp2_socket_pair_no_op_test.exe chttp2_socket_pair_ping_pong_streaming_test.exe chttp2_socket_pair_registered_call_test.exe chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test.exe chttp2_socket_pair_request_response_with_metadata_and_payload_test.exe chttp2_socket_pair_request_response_with_payload_test.exe chttp2_socket_pair_request_response_with_payload_and_call_creds_test.exe chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test.exe chttp2_socket_pair_request_with_compressed_payload_test.exe chttp2_socket_pair_request_with_flags_test.exe chttp2_socket_pair_request_with_large_metadata_test.exe chttp2_socket_pair_request_with_payload_test.exe chttp2_socket_pair_server_finishes_request_test.exe chttp2_socket_pair_simple_request_test.exe chttp2_socket_pair_simple_request_with_high_initial_sequence_number_test.exe chttp2_socket_pair_one_byte_at_a_time_bad_hostname_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test.exe chttp2_socket_pair_one_byte_at_a_time_census_simple_request_test.exe chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test.exe chttp2_socket_pair_one_byte_at_a_time_empty_batch_test.exe chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_test.exe chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test.exe chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test.exe chttp2_socket_pair_one_byte_at_a_time_max_message_length_test.exe chttp2_socket_pair_one_byte_at_a_time_no_op_test.exe chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test.exe chttp2_socket_pair_one_byte_at_a_time_registered_call_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_and_call_creds_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_compressed_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_flags_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_large_metadata_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_server_finishes_request_test.exe chttp2_socket_pair_one_byte_at_a_time_simple_request_test.exe chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_test.exe chttp2_socket_pair_with_grpc_trace_bad_hostname_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_accept_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_test.exe chttp2_socket_pair_with_grpc_trace_cancel_before_invoke_test.exe chttp2_socket_pair_with_grpc_trace_cancel_in_a_vacuum_test.exe chttp2_socket_pair_with_grpc_trace_census_simple_request_test.exe chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_tags_test.exe chttp2_socket_pair_with_grpc_trace_empty_batch_test.exe chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_test.exe chttp2_socket_pair_with_grpc_trace_invoke_large_request_test.exe chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_test.exe chttp2_socket_pair_with_grpc_trace_max_message_length_test.exe chttp2_socket_pair_with_grpc_trace_no_op_test.exe chttp2_socket_pair_with_grpc_trace_ping_pong_streaming_test.exe chttp2_socket_pair_with_grpc_trace_registered_call_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_binary_metadata_and_payload_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_metadata_and_payload_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_payload_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_payload_and_call_creds_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_trailing_metadata_and_payload_test.exe chttp2_socket_pair_with_grpc_trace_request_with_compressed_payload_test.exe chttp2_socket_pair_with_grpc_trace_request_with_flags_test.exe chttp2_socket_pair_with_grpc_trace_request_with_large_metadata_test.exe chttp2_socket_pair_with_grpc_trace_request_with_payload_test.exe chttp2_socket_pair_with_grpc_trace_server_finishes_request_test.exe chttp2_socket_pair_with_grpc_trace_simple_request_test.exe chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_test.exe chttp2_fullstack_bad_hostname_unsecure_test.exe chttp2_fullstack_cancel_after_accept_unsecure_test.exe chttp2_fullstack_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_fullstack_cancel_after_invoke_unsecure_test.exe chttp2_fullstack_cancel_before_invoke_unsecure_test.exe chttp2_fullstack_cancel_in_a_vacuum_unsecure_test.exe chttp2_fullstack_census_simple_request_unsecure_test.exe chttp2_fullstack_channel_connectivity_unsecure_test.exe chttp2_fullstack_default_host_unsecure_test.exe chttp2_fullstack_disappearing_server_unsecure_test.exe chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_fullstack_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_fullstack_empty_batch_unsecure_test.exe chttp2_fullstack_graceful_server_shutdown_unsecure_test.exe chttp2_fullstack_invoke_large_request_unsecure_test.exe chttp2_fullstack_max_concurrent_streams_unsecure_test.exe chttp2_fullstack_max_message_length_unsecure_test.exe chttp2_fullstack_no_op_unsecure_test.exe chttp2_fullstack_ping_pong_streaming_unsecure_test.exe chttp2_fullstack_registered_call_unsecure_test.exe chttp2_fullstack_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_fullstack_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_fullstack_request_response_with_payload_unsecure_test.exe chttp2_fullstack_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_fullstack_request_with_compressed_payload_unsecure_test.exe chttp2_fullstack_request_with_flags_unsecure_test.exe chttp2_fullstack_request_with_large_metadata_unsecure_test.exe chttp2_fullstack_request_with_payload_unsecure_test.exe chttp2_fullstack_server_finishes_request_unsecure_test.exe chttp2_fullstack_simple_delayed_request_unsecure_test.exe chttp2_fullstack_simple_request_unsecure_test.exe chttp2_fullstack_simple_request_with_high_initial_sequence_number_unsecure_test.exe chttp2_fullstack_compression_bad_hostname_unsecure_test.exe chttp2_fullstack_compression_cancel_after_accept_unsecure_test.exe chttp2_fullstack_compression_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_fullstack_compression_cancel_after_invoke_unsecure_test.exe chttp2_fullstack_compression_cancel_before_invoke_unsecure_test.exe chttp2_fullstack_compression_cancel_in_a_vacuum_unsecure_test.exe chttp2_fullstack_compression_census_simple_request_unsecure_test.exe chttp2_fullstack_compression_channel_connectivity_unsecure_test.exe chttp2_fullstack_compression_default_host_unsecure_test.exe chttp2_fullstack_compression_disappearing_server_unsecure_test.exe chttp2_fullstack_compression_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_fullstack_compression_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_fullstack_compression_empty_batch_unsecure_test.exe chttp2_fullstack_compression_graceful_server_shutdown_unsecure_test.exe chttp2_fullstack_compression_invoke_large_request_unsecure_test.exe chttp2_fullstack_compression_max_concurrent_streams_unsecure_test.exe chttp2_fullstack_compression_max_message_length_unsecure_test.exe chttp2_fullstack_compression_no_op_unsecure_test.exe chttp2_fullstack_compression_ping_pong_streaming_unsecure_test.exe chttp2_fullstack_compression_registered_call_unsecure_test.exe chttp2_fullstack_compression_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_fullstack_compression_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_fullstack_compression_request_response_with_payload_unsecure_test.exe chttp2_fullstack_compression_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_fullstack_compression_request_with_compressed_payload_unsecure_test.exe chttp2_fullstack_compression_request_with_flags_unsecure_test.exe chttp2_fullstack_compression_request_with_large_metadata_unsecure_test.exe chttp2_fullstack_compression_request_with_payload_unsecure_test.exe chttp2_fullstack_compression_server_finishes_request_unsecure_test.exe chttp2_fullstack_compression_simple_delayed_request_unsecure_test.exe chttp2_fullstack_compression_simple_request_unsecure_test.exe chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_unsecure_test.exe chttp2_fullstack_with_proxy_bad_hostname_unsecure_test.exe chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test.exe chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test.exe chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test.exe chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test.exe chttp2_fullstack_with_proxy_census_simple_request_unsecure_test.exe chttp2_fullstack_with_proxy_default_host_unsecure_test.exe chttp2_fullstack_with_proxy_disappearing_server_unsecure_test.exe chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_fullstack_with_proxy_empty_batch_unsecure_test.exe chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test.exe chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test.exe chttp2_fullstack_with_proxy_max_message_length_unsecure_test.exe chttp2_fullstack_with_proxy_no_op_unsecure_test.exe chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test.exe chttp2_fullstack_with_proxy_registered_call_unsecure_test.exe chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test.exe chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test.exe chttp2_fullstack_with_proxy_request_with_payload_unsecure_test.exe chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test.exe chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test.exe chttp2_fullstack_with_proxy_simple_request_unsecure_test.exe chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test.exe chttp2_socket_pair_bad_hostname_unsecure_test.exe chttp2_socket_pair_cancel_after_accept_unsecure_test.exe chttp2_socket_pair_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_socket_pair_cancel_after_invoke_unsecure_test.exe chttp2_socket_pair_cancel_before_invoke_unsecure_test.exe chttp2_socket_pair_cancel_in_a_vacuum_unsecure_test.exe chttp2_socket_pair_census_simple_request_unsecure_test.exe chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_socket_pair_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_socket_pair_empty_batch_unsecure_test.exe chttp2_socket_pair_graceful_server_shutdown_unsecure_test.exe chttp2_socket_pair_invoke_large_request_unsecure_test.exe chttp2_socket_pair_max_concurrent_streams_unsecure_test.exe chttp2_socket_pair_max_message_length_unsecure_test.exe chttp2_socket_pair_no_op_unsecure_test.exe chttp2_socket_pair_ping_pong_streaming_unsecure_test.exe chttp2_socket_pair_registered_call_unsecure_test.exe chttp2_socket_pair_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_request_response_with_payload_unsecure_test.exe chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_request_with_compressed_payload_unsecure_test.exe chttp2_socket_pair_request_with_flags_unsecure_test.exe chttp2_socket_pair_request_with_large_metadata_unsecure_test.exe chttp2_socket_pair_request_with_payload_unsecure_test.exe chttp2_socket_pair_server_finishes_request_unsecure_test.exe chttp2_socket_pair_simple_request_unsecure_test.exe chttp2_socket_pair_simple_request_with_high_initial_sequence_number_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_bad_hostname_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_census_simple_request_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_empty_batch_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_max_message_length_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_no_op_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_registered_call_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_compressed_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_flags_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_large_metadata_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_server_finishes_request_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_simple_request_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_bad_hostname_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_accept_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_cancel_before_invoke_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_cancel_in_a_vacuum_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_census_simple_request_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_empty_batch_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_invoke_large_request_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_max_message_length_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_no_op_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_ping_pong_streaming_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_registered_call_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_with_compressed_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_with_flags_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_with_large_metadata_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_with_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_server_finishes_request_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_simple_request_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_unsecure_test.exe connection_prefix_bad_client_test.exe initial_settings_frame_bad_client_test.exe echo All C tests built. buildtests_cxx: async_end2end_test.exe auth_property_iterator_test.exe channel_arguments_test.exe cli_call_test.exe client_crash_test_server.exe credentials_test.exe cxx_byte_buffer_test.exe cxx_slice_test.exe cxx_time_test.exe dynamic_thread_pool_test.exe end2end_test.exe fixed_size_thread_pool_test.exe generic_end2end_test.exe grpc_cli.exe mock_test.exe reconnect_interop_client.exe reconnect_interop_server.exe secure_auth_context_test.exe server_crash_test_client.exe status_test.exe thread_stress_test.exe @@ -1575,6 +1575,238 @@ chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_te echo Running chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_test $(OUT_DIR)\chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_test.exe +chttp2_fullstack_with_proxy_bad_hostname_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_bad_hostname.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_bad_hostname_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_bad_hostname_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_bad_hostname.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_bad_hostname_test: chttp2_fullstack_with_proxy_bad_hostname_test.exe + echo Running chttp2_fullstack_with_proxy_bad_hostname_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_bad_hostname_test.exe + +chttp2_fullstack_with_proxy_cancel_after_accept_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_cancel_after_accept.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_cancel_after_accept_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_cancel_after_accept_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_cancel_after_accept.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_cancel_after_accept_test: chttp2_fullstack_with_proxy_cancel_after_accept_test.exe + echo Running chttp2_fullstack_with_proxy_cancel_after_accept_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_cancel_after_accept_test.exe + +chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_cancel_after_accept_and_writes_closed.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_cancel_after_accept_and_writes_closed.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test: chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test.exe + echo Running chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test.exe + +chttp2_fullstack_with_proxy_cancel_after_invoke_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_cancel_after_invoke.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_cancel_after_invoke_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_cancel_after_invoke_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_cancel_after_invoke.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_cancel_after_invoke_test: chttp2_fullstack_with_proxy_cancel_after_invoke_test.exe + echo Running chttp2_fullstack_with_proxy_cancel_after_invoke_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_cancel_after_invoke_test.exe + +chttp2_fullstack_with_proxy_cancel_before_invoke_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_cancel_before_invoke.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_cancel_before_invoke_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_cancel_before_invoke_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_cancel_before_invoke.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_cancel_before_invoke_test: chttp2_fullstack_with_proxy_cancel_before_invoke_test.exe + echo Running chttp2_fullstack_with_proxy_cancel_before_invoke_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_cancel_before_invoke_test.exe + +chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_cancel_in_a_vacuum.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_cancel_in_a_vacuum.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test: chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test.exe + echo Running chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test.exe + +chttp2_fullstack_with_proxy_census_simple_request_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_census_simple_request.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_census_simple_request_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_census_simple_request_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_census_simple_request.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_census_simple_request_test: chttp2_fullstack_with_proxy_census_simple_request_test.exe + echo Running chttp2_fullstack_with_proxy_census_simple_request_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_census_simple_request_test.exe + +chttp2_fullstack_with_proxy_default_host_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_default_host.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_default_host_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_default_host_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_default_host.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_default_host_test: chttp2_fullstack_with_proxy_default_host_test.exe + echo Running chttp2_fullstack_with_proxy_default_host_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_default_host_test.exe + +chttp2_fullstack_with_proxy_disappearing_server_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_disappearing_server.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_disappearing_server_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_disappearing_server_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_disappearing_server.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_disappearing_server_test: chttp2_fullstack_with_proxy_disappearing_server_test.exe + echo Running chttp2_fullstack_with_proxy_disappearing_server_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_disappearing_server_test.exe + +chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_early_server_shutdown_finishes_inflight_calls.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_early_server_shutdown_finishes_inflight_calls.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test: chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test.exe + echo Running chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test.exe + +chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_early_server_shutdown_finishes_tags.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_early_server_shutdown_finishes_tags.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test: chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test.exe + echo Running chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test.exe + +chttp2_fullstack_with_proxy_empty_batch_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_empty_batch.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_empty_batch_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_empty_batch_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_empty_batch.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_empty_batch_test: chttp2_fullstack_with_proxy_empty_batch_test.exe + echo Running chttp2_fullstack_with_proxy_empty_batch_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_empty_batch_test.exe + +chttp2_fullstack_with_proxy_graceful_server_shutdown_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_graceful_server_shutdown.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_graceful_server_shutdown_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_graceful_server_shutdown_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_graceful_server_shutdown.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_graceful_server_shutdown_test: chttp2_fullstack_with_proxy_graceful_server_shutdown_test.exe + echo Running chttp2_fullstack_with_proxy_graceful_server_shutdown_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_graceful_server_shutdown_test.exe + +chttp2_fullstack_with_proxy_invoke_large_request_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_invoke_large_request.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_invoke_large_request_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_invoke_large_request_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_invoke_large_request.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_invoke_large_request_test: chttp2_fullstack_with_proxy_invoke_large_request_test.exe + echo Running chttp2_fullstack_with_proxy_invoke_large_request_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_invoke_large_request_test.exe + +chttp2_fullstack_with_proxy_max_message_length_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_max_message_length.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_max_message_length_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_max_message_length_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_max_message_length.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_max_message_length_test: chttp2_fullstack_with_proxy_max_message_length_test.exe + echo Running chttp2_fullstack_with_proxy_max_message_length_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_max_message_length_test.exe + +chttp2_fullstack_with_proxy_no_op_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_no_op.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_no_op_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_no_op_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_no_op.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_no_op_test: chttp2_fullstack_with_proxy_no_op_test.exe + echo Running chttp2_fullstack_with_proxy_no_op_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_no_op_test.exe + +chttp2_fullstack_with_proxy_ping_pong_streaming_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_ping_pong_streaming.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_ping_pong_streaming_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_ping_pong_streaming_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_ping_pong_streaming.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_ping_pong_streaming_test: chttp2_fullstack_with_proxy_ping_pong_streaming_test.exe + echo Running chttp2_fullstack_with_proxy_ping_pong_streaming_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_ping_pong_streaming_test.exe + +chttp2_fullstack_with_proxy_registered_call_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_registered_call.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_registered_call_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_registered_call_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_registered_call.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_registered_call_test: chttp2_fullstack_with_proxy_registered_call_test.exe + echo Running chttp2_fullstack_with_proxy_registered_call_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_registered_call_test.exe + +chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_binary_metadata_and_payload.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_binary_metadata_and_payload.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test: chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test.exe + echo Running chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test.exe + +chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_metadata_and_payload.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_metadata_and_payload.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test: chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test.exe + echo Running chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test.exe + +chttp2_fullstack_with_proxy_request_response_with_payload_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_payload.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_request_response_with_payload_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_request_response_with_payload_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_payload.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_request_response_with_payload_test: chttp2_fullstack_with_proxy_request_response_with_payload_test.exe + echo Running chttp2_fullstack_with_proxy_request_response_with_payload_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_request_response_with_payload_test.exe + +chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_payload_and_call_creds.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_payload_and_call_creds.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test: chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test.exe + echo Running chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test.exe + +chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_trailing_metadata_and_payload.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_trailing_metadata_and_payload.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test: chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test.exe + echo Running chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test.exe + +chttp2_fullstack_with_proxy_request_with_large_metadata_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_with_large_metadata.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_request_with_large_metadata_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_request_with_large_metadata_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_with_large_metadata.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_request_with_large_metadata_test: chttp2_fullstack_with_proxy_request_with_large_metadata_test.exe + echo Running chttp2_fullstack_with_proxy_request_with_large_metadata_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_request_with_large_metadata_test.exe + +chttp2_fullstack_with_proxy_request_with_payload_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_with_payload.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_request_with_payload_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_request_with_payload_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_with_payload.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_request_with_payload_test: chttp2_fullstack_with_proxy_request_with_payload_test.exe + echo Running chttp2_fullstack_with_proxy_request_with_payload_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_request_with_payload_test.exe + +chttp2_fullstack_with_proxy_server_finishes_request_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_server_finishes_request.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_server_finishes_request_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_server_finishes_request_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_server_finishes_request.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_server_finishes_request_test: chttp2_fullstack_with_proxy_server_finishes_request_test.exe + echo Running chttp2_fullstack_with_proxy_server_finishes_request_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_server_finishes_request_test.exe + +chttp2_fullstack_with_proxy_simple_delayed_request_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_simple_delayed_request.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_simple_delayed_request_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_simple_delayed_request_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_simple_delayed_request.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_simple_delayed_request_test: chttp2_fullstack_with_proxy_simple_delayed_request_test.exe + echo Running chttp2_fullstack_with_proxy_simple_delayed_request_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_simple_delayed_request_test.exe + +chttp2_fullstack_with_proxy_simple_request_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_simple_request.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_simple_request_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_simple_request_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_simple_request.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_simple_request_test: chttp2_fullstack_with_proxy_simple_request_test.exe + echo Running chttp2_fullstack_with_proxy_simple_request_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_simple_request_test.exe + +chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_simple_request_with_high_initial_sequence_number.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_simple_request_with_high_initial_sequence_number.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test: chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test.exe + echo Running chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test.exe + chttp2_simple_ssl_fullstack_bad_hostname_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack.lib Debug\end2end_test_bad_hostname.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) echo Building chttp2_simple_ssl_fullstack_bad_hostname_test $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c @@ -1839,6 +2071,238 @@ chttp2_simple_ssl_fullstack_simple_request_with_high_initial_sequence_number_tes echo Running chttp2_simple_ssl_fullstack_simple_request_with_high_initial_sequence_number_test $(OUT_DIR)\chttp2_simple_ssl_fullstack_simple_request_with_high_initial_sequence_number_test.exe +chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_bad_hostname.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_bad_hostname.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test: chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_cancel_after_accept.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_cancel_after_accept.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test: chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_cancel_after_accept_and_writes_closed.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_cancel_after_accept_and_writes_closed.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test: chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_cancel_after_invoke.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_cancel_after_invoke.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test: chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_cancel_before_invoke.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_cancel_before_invoke.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test: chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_cancel_in_a_vacuum.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_cancel_in_a_vacuum.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test: chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_census_simple_request.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_census_simple_request.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test: chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_default_host_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_default_host.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_default_host_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_default_host_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_default_host.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_default_host_test: chttp2_simple_ssl_fullstack_with_proxy_default_host_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_default_host_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_default_host_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_disappearing_server.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_disappearing_server.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test: chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_early_server_shutdown_finishes_inflight_calls.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_early_server_shutdown_finishes_inflight_calls.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test: chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_early_server_shutdown_finishes_tags.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_early_server_shutdown_finishes_tags.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test: chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_empty_batch.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_empty_batch.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test: chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_graceful_server_shutdown.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_graceful_server_shutdown.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test: chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_invoke_large_request.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_invoke_large_request.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test: chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_max_message_length.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_max_message_length.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test: chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_no_op_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_no_op.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_no_op_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_no_op_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_no_op.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_no_op_test: chttp2_simple_ssl_fullstack_with_proxy_no_op_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_no_op_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_no_op_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_ping_pong_streaming.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_ping_pong_streaming.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test: chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_registered_call_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_registered_call.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_registered_call_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_registered_call_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_registered_call.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_registered_call_test: chttp2_simple_ssl_fullstack_with_proxy_registered_call_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_registered_call_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_registered_call_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_binary_metadata_and_payload.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_binary_metadata_and_payload.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test: chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_metadata_and_payload.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_metadata_and_payload.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test: chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_payload.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_payload.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test: chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_payload_and_call_creds.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_payload_and_call_creds.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test: chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_trailing_metadata_and_payload.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_trailing_metadata_and_payload.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test: chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_request_with_large_metadata.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_request_with_large_metadata.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test: chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_request_with_payload.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_request_with_payload.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test: chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_server_finishes_request.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_server_finishes_request.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test: chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_simple_delayed_request.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_simple_delayed_request.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test: chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_simple_request_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_simple_request.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_simple_request_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_simple_request_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_simple_request.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_simple_request_test: chttp2_simple_ssl_fullstack_with_proxy_simple_request_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_simple_request_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_simple_request_test.exe + +chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_simple_request_with_high_initial_sequence_number.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test.exe" Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_test_simple_request_with_high_initial_sequence_number.lib Debug\end2end_certs.lib Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test: chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test.exe + echo Running chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test + $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test.exe + chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test.exe: Debug\end2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.lib Debug\end2end_test_bad_hostname.lib Debug\end2end_certs.lib build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR) echo Building chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c @@ -3311,6 +3775,230 @@ chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_un echo Running chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_unsecure_test $(OUT_DIR)\chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_unsecure_test.exe +chttp2_fullstack_with_proxy_bad_hostname_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_bad_hostname.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_bad_hostname_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_bad_hostname_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_bad_hostname.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_bad_hostname_unsecure_test: chttp2_fullstack_with_proxy_bad_hostname_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_bad_hostname_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_bad_hostname_unsecure_test.exe + +chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_cancel_after_accept.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_cancel_after_accept.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test: chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test.exe + +chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_cancel_after_accept_and_writes_closed.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_cancel_after_accept_and_writes_closed.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test: chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test.exe + +chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_cancel_after_invoke.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_cancel_after_invoke.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test: chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test.exe + +chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_cancel_before_invoke.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_cancel_before_invoke.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test: chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test.exe + +chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_cancel_in_a_vacuum.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_cancel_in_a_vacuum.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test: chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test.exe + +chttp2_fullstack_with_proxy_census_simple_request_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_census_simple_request.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_census_simple_request_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_census_simple_request_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_census_simple_request.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_census_simple_request_unsecure_test: chttp2_fullstack_with_proxy_census_simple_request_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_census_simple_request_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_census_simple_request_unsecure_test.exe + +chttp2_fullstack_with_proxy_default_host_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_default_host.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_default_host_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_default_host_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_default_host.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_default_host_unsecure_test: chttp2_fullstack_with_proxy_default_host_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_default_host_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_default_host_unsecure_test.exe + +chttp2_fullstack_with_proxy_disappearing_server_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_disappearing_server.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_disappearing_server_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_disappearing_server_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_disappearing_server.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_disappearing_server_unsecure_test: chttp2_fullstack_with_proxy_disappearing_server_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_disappearing_server_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_disappearing_server_unsecure_test.exe + +chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_early_server_shutdown_finishes_inflight_calls.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_early_server_shutdown_finishes_inflight_calls.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test: chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe + +chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_early_server_shutdown_finishes_tags.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_early_server_shutdown_finishes_tags.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test: chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test.exe + +chttp2_fullstack_with_proxy_empty_batch_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_empty_batch.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_empty_batch_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_empty_batch_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_empty_batch.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_empty_batch_unsecure_test: chttp2_fullstack_with_proxy_empty_batch_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_empty_batch_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_empty_batch_unsecure_test.exe + +chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_graceful_server_shutdown.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_graceful_server_shutdown.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test: chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test.exe + +chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_invoke_large_request.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_invoke_large_request.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test: chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test.exe + +chttp2_fullstack_with_proxy_max_message_length_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_max_message_length.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_max_message_length_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_max_message_length_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_max_message_length.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_max_message_length_unsecure_test: chttp2_fullstack_with_proxy_max_message_length_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_max_message_length_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_max_message_length_unsecure_test.exe + +chttp2_fullstack_with_proxy_no_op_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_no_op.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_no_op_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_no_op_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_no_op.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_no_op_unsecure_test: chttp2_fullstack_with_proxy_no_op_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_no_op_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_no_op_unsecure_test.exe + +chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_ping_pong_streaming.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_ping_pong_streaming.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test: chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test.exe + +chttp2_fullstack_with_proxy_registered_call_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_registered_call.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_registered_call_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_registered_call_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_registered_call.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_registered_call_unsecure_test: chttp2_fullstack_with_proxy_registered_call_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_registered_call_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_registered_call_unsecure_test.exe + +chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_binary_metadata_and_payload.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_binary_metadata_and_payload.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test: chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test.exe + +chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_metadata_and_payload.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_metadata_and_payload.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test: chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test.exe + +chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_payload.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_payload.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test: chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test.exe + +chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_trailing_metadata_and_payload.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_response_with_trailing_metadata_and_payload.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test: chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test.exe + +chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_with_large_metadata.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_with_large_metadata.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test: chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test.exe + +chttp2_fullstack_with_proxy_request_with_payload_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_with_payload.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_request_with_payload_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_request_with_payload_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_request_with_payload.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_request_with_payload_unsecure_test: chttp2_fullstack_with_proxy_request_with_payload_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_request_with_payload_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_request_with_payload_unsecure_test.exe + +chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_server_finishes_request.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_server_finishes_request.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test: chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test.exe + +chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_simple_delayed_request.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_simple_delayed_request.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test: chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test.exe + +chttp2_fullstack_with_proxy_simple_request_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_simple_request.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_simple_request_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_simple_request_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_simple_request.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_simple_request_unsecure_test: chttp2_fullstack_with_proxy_simple_request_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_simple_request_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_simple_request_unsecure_test.exe + +chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test.exe: Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_simple_request_with_high_initial_sequence_number.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) + echo Building chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c + $(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test.exe" Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_test_simple_request_with_high_initial_sequence_number.lib Debug\grpc_test_util_unsecure.lib Debug\grpc_unsecure.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dummy.obj +chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test: chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test.exe + echo Running chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test + $(OUT_DIR)\chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test.exe + chttp2_socket_pair_bad_hostname_unsecure_test.exe: Debug\end2end_fixture_chttp2_socket_pair.lib Debug\end2end_test_bad_hostname.lib build_grpc_test_util_unsecure build_grpc_unsecure build_gpr_test_util build_gpr $(OUT_DIR) echo Building chttp2_socket_pair_bad_hostname_unsecure_test $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\vsprojects\dummy.c @@ -4078,11 +4766,21 @@ Debug\end2end_fixture_chttp2_fullstack_compression.lib: $(OUT_DIR) $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\test\core\end2end\fixtures\chttp2_fullstack_compression.c $(LIBTOOL) /OUT:"Debug\end2end_fixture_chttp2_fullstack_compression.lib" $(OUT_DIR)\chttp2_fullstack_compression.obj +Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib: $(OUT_DIR) + echo Building end2end_fixture_chttp2_fullstack_with_proxy + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\test\core\end2end\fixtures\chttp2_fullstack_with_proxy.c + $(LIBTOOL) /OUT:"Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib" $(OUT_DIR)\chttp2_fullstack_with_proxy.obj + Debug\end2end_fixture_chttp2_simple_ssl_fullstack.lib: $(OUT_DIR) echo Building end2end_fixture_chttp2_simple_ssl_fullstack $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\test\core\end2end\fixtures\chttp2_simple_ssl_fullstack.c $(LIBTOOL) /OUT:"Debug\end2end_fixture_chttp2_simple_ssl_fullstack.lib" $(OUT_DIR)\chttp2_simple_ssl_fullstack.obj +Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib: $(OUT_DIR) + echo Building end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy + $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\test\core\end2end\fixtures\chttp2_simple_ssl_fullstack_with_proxy.c + $(LIBTOOL) /OUT:"Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib" $(OUT_DIR)\chttp2_simple_ssl_fullstack_with_proxy.obj + Debug\end2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.lib: $(OUT_DIR) echo Building end2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack $(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\test\core\end2end\fixtures\chttp2_simple_ssl_with_oauth2_fullstack.c diff --git a/vsprojects/grpc_test_util/grpc_test_util.vcxproj b/vsprojects/grpc_test_util/grpc_test_util.vcxproj index 07f2d7ae0b..f39b98e2d8 100644 --- a/vsprojects/grpc_test_util/grpc_test_util.vcxproj +++ b/vsprojects/grpc_test_util/grpc_test_util.vcxproj @@ -124,6 +124,7 @@ <ItemGroup> <ClInclude Include="..\..\test\core\end2end\data\ssl_test_data.h" /> <ClInclude Include="..\..\test\core\end2end\cq_verifier.h" /> + <ClInclude Include="..\..\test\core\end2end\fixtures\proxy.h" /> <ClInclude Include="..\..\test\core\iomgr\endpoint_tests.h" /> <ClInclude Include="..\..\test\core\security\oauth2_utils.h" /> <ClInclude Include="..\..\test\core\util\grpc_profiler.h" /> @@ -140,6 +141,8 @@ </ClCompile> <ClCompile Include="..\..\test\core\end2end\cq_verifier.c"> </ClCompile> + <ClCompile Include="..\..\test\core\end2end\fixtures\proxy.c"> + </ClCompile> <ClCompile Include="..\..\test\core\iomgr\endpoint_tests.c"> </ClCompile> <ClCompile Include="..\..\test\core\security\oauth2_utils.c"> |