aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.gitignore6
-rw-r--r--Makefile55
-rw-r--r--README.md1
-rw-r--r--binding.gyp26
-rw-r--r--build.yaml22
-rw-r--r--package.json1
-rw-r--r--src/core/channel/client_uchannel.c2
-rw-r--r--src/php/ext/grpc/credentials.c10
-rwxr-xr-xsrc/php/tests/interop/interop_client.php7
-rw-r--r--templates/binding.gyp.template19
-rw-r--r--test/cpp/interop/interop_client.cc87
-rw-r--r--test/cpp/interop/interop_client.h28
-rw-r--r--test/cpp/interop/stress_interop_client.cc162
-rw-r--r--test/cpp/interop/stress_interop_client.h107
-rw-r--r--test/cpp/interop/stress_test.cc229
-rwxr-xr-xtools/jenkins/run_interop.sh2
-rwxr-xr-xtools/run_tests/jobset.py2
-rwxr-xr-xtools/run_tests/run_interop_tests.py9
-rwxr-xr-xtools/run_tests/run_node.sh2
-rw-r--r--tools/run_tests/sources_and_headers.json32
-rw-r--r--tools/run_tests/tests.json18
-rw-r--r--vsprojects/coapp/openssl/.gitignore10
-rw-r--r--vsprojects/coapp/openssl/README.md37
-rw-r--r--vsprojects/coapp/openssl/buildall.bat59
-rw-r--r--vsprojects/coapp/openssl/grpc.dependencies.openssl.autopkg101
-rw-r--r--vsprojects/coapp/openssl/libeay32.vcxproj828
-rw-r--r--vsprojects/coapp/openssl/managed_targets/grpc.dependencies.openssl.redist.props12
-rw-r--r--vsprojects/coapp/openssl/managed_targets/grpc.dependencies.openssl.redist.targets17
-rw-r--r--vsprojects/coapp/openssl/openssl.sln39
-rw-r--r--vsprojects/coapp/openssl/packages.config5
-rw-r--r--vsprojects/coapp/openssl/ssleay32.vcxproj240
-rw-r--r--vsprojects/coapp/openssl/version.inc1
-rw-r--r--vsprojects/coapp/zlib/grpc.dependencies.zlib.autopkg2
-rw-r--r--vsprojects/vcxproj/test/stress_test/stress_test.vcxproj228
-rw-r--r--vsprojects/vcxproj/test/stress_test/stress_test.vcxproj.filters50
35 files changed, 2401 insertions, 55 deletions
diff --git a/.gitignore b/.gitignore
index 5972f82dfc..3606177655 100644
--- a/.gitignore
+++ b/.gitignore
@@ -46,6 +46,12 @@ portlog.txt
*-gyp.mk
out
+# YCM config files
+.ycm_extra_conf.py
+
+# Core dump files
+core
+
# XCode
build/
*.pbxuser
diff --git a/Makefile b/Makefile
index fe6dca1182..c4183914e6 100644
--- a/Makefile
+++ b/Makefile
@@ -894,6 +894,7 @@ server_crash_test_client: $(BINDIR)/$(CONFIG)/server_crash_test_client
shutdown_test: $(BINDIR)/$(CONFIG)/shutdown_test
status_test: $(BINDIR)/$(CONFIG)/status_test
streaming_throughput_test: $(BINDIR)/$(CONFIG)/streaming_throughput_test
+stress_test: $(BINDIR)/$(CONFIG)/stress_test
sync_streaming_ping_pong_test: $(BINDIR)/$(CONFIG)/sync_streaming_ping_pong_test
sync_unary_ping_pong_test: $(BINDIR)/$(CONFIG)/sync_unary_ping_pong_test
thread_stress_test: $(BINDIR)/$(CONFIG)/thread_stress_test
@@ -1801,7 +1802,7 @@ buildtests: buildtests_c buildtests_cxx buildtests_zookeeper
buildtests_c: privatelibs_c $(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)/compression_test $(BINDIR)/$(CONFIG)/dualstack_socket_test $(BINDIR)/$(CONFIG)/endpoint_pair_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_cmdline_test $(BINDIR)/$(CONFIG)/gpr_cpu_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_args_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)/lb_policies_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)/timer_heap_test $(BINDIR)/$(CONFIG)/timer_list_test $(BINDIR)/$(CONFIG)/timers_test $(BINDIR)/$(CONFIG)/transport_metadata_test $(BINDIR)/$(CONFIG)/transport_security_test $(BINDIR)/$(CONFIG)/udp_server_test $(BINDIR)/$(CONFIG)/uri_parser_test $(BINDIR)/$(CONFIG)/workqueue_test $(BINDIR)/$(CONFIG)/h2_compress_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_compress_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_compress_call_creds_test $(BINDIR)/$(CONFIG)/h2_compress_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_compress_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_compress_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_compress_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_compress_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_compress_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_compress_channel_connectivity_test $(BINDIR)/$(CONFIG)/h2_compress_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_compress_default_host_test $(BINDIR)/$(CONFIG)/h2_compress_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_compress_empty_batch_test $(BINDIR)/$(CONFIG)/h2_compress_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_compress_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_compress_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_compress_large_metadata_test $(BINDIR)/$(CONFIG)/h2_compress_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_compress_max_message_length_test $(BINDIR)/$(CONFIG)/h2_compress_metadata_test $(BINDIR)/$(CONFIG)/h2_compress_no_op_test $(BINDIR)/$(CONFIG)/h2_compress_payload_test $(BINDIR)/$(CONFIG)/h2_compress_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_compress_registered_call_test $(BINDIR)/$(CONFIG)/h2_compress_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_compress_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_compress_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_compress_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_compress_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_compress_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_compress_simple_request_test $(BINDIR)/$(CONFIG)/h2_compress_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_fakesec_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_fakesec_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_fakesec_call_creds_test $(BINDIR)/$(CONFIG)/h2_fakesec_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_fakesec_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_fakesec_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_fakesec_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_fakesec_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_fakesec_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_fakesec_channel_connectivity_test $(BINDIR)/$(CONFIG)/h2_fakesec_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_fakesec_default_host_test $(BINDIR)/$(CONFIG)/h2_fakesec_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_fakesec_empty_batch_test $(BINDIR)/$(CONFIG)/h2_fakesec_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_fakesec_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_fakesec_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_fakesec_large_metadata_test $(BINDIR)/$(CONFIG)/h2_fakesec_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_fakesec_max_message_length_test $(BINDIR)/$(CONFIG)/h2_fakesec_metadata_test $(BINDIR)/$(CONFIG)/h2_fakesec_no_op_test $(BINDIR)/$(CONFIG)/h2_fakesec_payload_test $(BINDIR)/$(CONFIG)/h2_fakesec_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_fakesec_registered_call_test $(BINDIR)/$(CONFIG)/h2_fakesec_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_fakesec_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_fakesec_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_fakesec_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_fakesec_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_fakesec_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_fakesec_simple_request_test $(BINDIR)/$(CONFIG)/h2_fakesec_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_full_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_full_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_full_call_creds_test $(BINDIR)/$(CONFIG)/h2_full_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_full_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_full_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_full_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_full_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_full_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_full_channel_connectivity_test $(BINDIR)/$(CONFIG)/h2_full_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_full_default_host_test $(BINDIR)/$(CONFIG)/h2_full_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_full_empty_batch_test $(BINDIR)/$(CONFIG)/h2_full_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_full_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_full_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_full_large_metadata_test $(BINDIR)/$(CONFIG)/h2_full_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_full_max_message_length_test $(BINDIR)/$(CONFIG)/h2_full_metadata_test $(BINDIR)/$(CONFIG)/h2_full_no_op_test $(BINDIR)/$(CONFIG)/h2_full_payload_test $(BINDIR)/$(CONFIG)/h2_full_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_full_registered_call_test $(BINDIR)/$(CONFIG)/h2_full_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_full_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_full_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_full_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_full_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_full_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_full_simple_request_test $(BINDIR)/$(CONFIG)/h2_full_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_full+poll_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_full+poll_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_full+poll_call_creds_test $(BINDIR)/$(CONFIG)/h2_full+poll_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_full+poll_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_full+poll_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_full+poll_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_full+poll_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_full+poll_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_full+poll_channel_connectivity_test $(BINDIR)/$(CONFIG)/h2_full+poll_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_full+poll_default_host_test $(BINDIR)/$(CONFIG)/h2_full+poll_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_full+poll_empty_batch_test $(BINDIR)/$(CONFIG)/h2_full+poll_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_full+poll_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_full+poll_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_full+poll_large_metadata_test $(BINDIR)/$(CONFIG)/h2_full+poll_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_full+poll_max_message_length_test $(BINDIR)/$(CONFIG)/h2_full+poll_metadata_test $(BINDIR)/$(CONFIG)/h2_full+poll_no_op_test $(BINDIR)/$(CONFIG)/h2_full+poll_payload_test $(BINDIR)/$(CONFIG)/h2_full+poll_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_full+poll_registered_call_test $(BINDIR)/$(CONFIG)/h2_full+poll_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_full+poll_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_full+poll_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_full+poll_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_full+poll_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_full+poll_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_full+poll_simple_request_test $(BINDIR)/$(CONFIG)/h2_full+poll_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_oauth2_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_oauth2_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_oauth2_call_creds_test $(BINDIR)/$(CONFIG)/h2_oauth2_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_oauth2_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_oauth2_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_oauth2_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_oauth2_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_oauth2_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_oauth2_channel_connectivity_test $(BINDIR)/$(CONFIG)/h2_oauth2_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_oauth2_default_host_test $(BINDIR)/$(CONFIG)/h2_oauth2_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_oauth2_empty_batch_test $(BINDIR)/$(CONFIG)/h2_oauth2_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_oauth2_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_oauth2_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_oauth2_large_metadata_test $(BINDIR)/$(CONFIG)/h2_oauth2_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_oauth2_max_message_length_test $(BINDIR)/$(CONFIG)/h2_oauth2_metadata_test $(BINDIR)/$(CONFIG)/h2_oauth2_no_op_test $(BINDIR)/$(CONFIG)/h2_oauth2_payload_test $(BINDIR)/$(CONFIG)/h2_oauth2_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_oauth2_registered_call_test $(BINDIR)/$(CONFIG)/h2_oauth2_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_oauth2_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_oauth2_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_oauth2_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_oauth2_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_oauth2_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_oauth2_simple_request_test $(BINDIR)/$(CONFIG)/h2_oauth2_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_proxy_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_proxy_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_proxy_call_creds_test $(BINDIR)/$(CONFIG)/h2_proxy_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_proxy_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_proxy_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_proxy_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_proxy_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_proxy_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_proxy_default_host_test $(BINDIR)/$(CONFIG)/h2_proxy_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_proxy_empty_batch_test $(BINDIR)/$(CONFIG)/h2_proxy_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_proxy_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_proxy_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_proxy_large_metadata_test $(BINDIR)/$(CONFIG)/h2_proxy_max_message_length_test $(BINDIR)/$(CONFIG)/h2_proxy_metadata_test $(BINDIR)/$(CONFIG)/h2_proxy_no_op_test $(BINDIR)/$(CONFIG)/h2_proxy_payload_test $(BINDIR)/$(CONFIG)/h2_proxy_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_proxy_registered_call_test $(BINDIR)/$(CONFIG)/h2_proxy_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_proxy_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_proxy_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_proxy_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_proxy_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_proxy_simple_request_test $(BINDIR)/$(CONFIG)/h2_proxy_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_sockpair_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair_call_creds_test $(BINDIR)/$(CONFIG)/h2_sockpair_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_sockpair_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_sockpair_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_sockpair_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_sockpair_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_sockpair_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_sockpair_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_sockpair_empty_batch_test $(BINDIR)/$(CONFIG)/h2_sockpair_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_sockpair_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_sockpair_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_sockpair_large_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_sockpair_max_message_length_test $(BINDIR)/$(CONFIG)/h2_sockpair_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair_no_op_test $(BINDIR)/$(CONFIG)/h2_sockpair_payload_test $(BINDIR)/$(CONFIG)/h2_sockpair_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_sockpair_registered_call_test $(BINDIR)/$(CONFIG)/h2_sockpair_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_sockpair_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_sockpair_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_sockpair_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_sockpair_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_sockpair_simple_request_test $(BINDIR)/$(CONFIG)/h2_sockpair_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_call_creds_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_empty_batch_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_large_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_max_message_length_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_no_op_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_payload_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_registered_call_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_simple_request_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_call_creds_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_empty_batch_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_large_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_max_message_length_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_no_op_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_payload_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_registered_call_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_simple_request_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_ssl_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl_call_creds_test $(BINDIR)/$(CONFIG)/h2_ssl_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_ssl_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_ssl_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_ssl_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_ssl_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_ssl_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_ssl_channel_connectivity_test $(BINDIR)/$(CONFIG)/h2_ssl_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_ssl_default_host_test $(BINDIR)/$(CONFIG)/h2_ssl_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_ssl_empty_batch_test $(BINDIR)/$(CONFIG)/h2_ssl_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_ssl_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_ssl_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_ssl_large_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_ssl_max_message_length_test $(BINDIR)/$(CONFIG)/h2_ssl_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl_no_op_test $(BINDIR)/$(CONFIG)/h2_ssl_payload_test $(BINDIR)/$(CONFIG)/h2_ssl_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_ssl_registered_call_test $(BINDIR)/$(CONFIG)/h2_ssl_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_ssl_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_ssl_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_ssl_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_ssl_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_ssl_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_ssl_simple_request_test $(BINDIR)/$(CONFIG)/h2_ssl_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_call_creds_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_channel_connectivity_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_default_host_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_empty_batch_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_large_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_max_message_length_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_no_op_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_payload_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_registered_call_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_simple_request_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_call_creds_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_default_host_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_empty_batch_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_large_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_max_message_length_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_no_op_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_payload_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_registered_call_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_simple_request_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_uchannel_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_uchannel_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_uchannel_call_creds_test $(BINDIR)/$(CONFIG)/h2_uchannel_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_uchannel_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_uchannel_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_uchannel_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_uchannel_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_uchannel_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_uchannel_channel_connectivity_test $(BINDIR)/$(CONFIG)/h2_uchannel_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_uchannel_default_host_test $(BINDIR)/$(CONFIG)/h2_uchannel_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_uchannel_empty_batch_test $(BINDIR)/$(CONFIG)/h2_uchannel_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_uchannel_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_uchannel_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_uchannel_large_metadata_test $(BINDIR)/$(CONFIG)/h2_uchannel_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_uchannel_max_message_length_test $(BINDIR)/$(CONFIG)/h2_uchannel_metadata_test $(BINDIR)/$(CONFIG)/h2_uchannel_no_op_test $(BINDIR)/$(CONFIG)/h2_uchannel_payload_test $(BINDIR)/$(CONFIG)/h2_uchannel_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_uchannel_registered_call_test $(BINDIR)/$(CONFIG)/h2_uchannel_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_uchannel_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_uchannel_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_uchannel_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_uchannel_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_uchannel_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_uchannel_simple_request_test $(BINDIR)/$(CONFIG)/h2_uchannel_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_uds_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_uds_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_uds_call_creds_test $(BINDIR)/$(CONFIG)/h2_uds_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_uds_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_uds_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_uds_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_uds_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_uds_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_uds_channel_connectivity_test $(BINDIR)/$(CONFIG)/h2_uds_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_uds_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_uds_empty_batch_test $(BINDIR)/$(CONFIG)/h2_uds_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_uds_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_uds_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_uds_large_metadata_test $(BINDIR)/$(CONFIG)/h2_uds_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_uds_max_message_length_test $(BINDIR)/$(CONFIG)/h2_uds_metadata_test $(BINDIR)/$(CONFIG)/h2_uds_no_op_test $(BINDIR)/$(CONFIG)/h2_uds_payload_test $(BINDIR)/$(CONFIG)/h2_uds_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_uds_registered_call_test $(BINDIR)/$(CONFIG)/h2_uds_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_uds_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_uds_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_uds_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_uds_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_uds_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_uds_simple_request_test $(BINDIR)/$(CONFIG)/h2_uds_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_uds+poll_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_uds+poll_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_uds+poll_call_creds_test $(BINDIR)/$(CONFIG)/h2_uds+poll_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_uds+poll_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_uds+poll_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_uds+poll_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_uds+poll_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_uds+poll_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_uds+poll_channel_connectivity_test $(BINDIR)/$(CONFIG)/h2_uds+poll_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_uds+poll_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_uds+poll_empty_batch_test $(BINDIR)/$(CONFIG)/h2_uds+poll_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_uds+poll_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_uds+poll_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_uds+poll_large_metadata_test $(BINDIR)/$(CONFIG)/h2_uds+poll_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_uds+poll_max_message_length_test $(BINDIR)/$(CONFIG)/h2_uds+poll_metadata_test $(BINDIR)/$(CONFIG)/h2_uds+poll_no_op_test $(BINDIR)/$(CONFIG)/h2_uds+poll_payload_test $(BINDIR)/$(CONFIG)/h2_uds+poll_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_uds+poll_registered_call_test $(BINDIR)/$(CONFIG)/h2_uds+poll_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_uds+poll_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_uds+poll_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_uds+poll_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_uds+poll_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_uds+poll_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_uds+poll_simple_request_test $(BINDIR)/$(CONFIG)/h2_uds+poll_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_compress_bad_hostname_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_binary_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_cancel_after_accept_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_cancel_after_client_done_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_cancel_after_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_cancel_before_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_cancel_in_a_vacuum_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_census_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_channel_connectivity_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_compressed_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_default_host_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_disappearing_server_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_empty_batch_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_graceful_server_shutdown_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_high_initial_seqno_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_invoke_large_request_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_large_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_max_concurrent_streams_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_max_message_length_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_no_op_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_ping_pong_streaming_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_registered_call_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_request_with_flags_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_request_with_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_server_finishes_request_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_shutdown_finishes_calls_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_shutdown_finishes_tags_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_simple_delayed_request_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_trailing_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_full_bad_hostname_nosec_test $(BINDIR)/$(CONFIG)/h2_full_binary_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_full_cancel_after_accept_nosec_test $(BINDIR)/$(CONFIG)/h2_full_cancel_after_client_done_nosec_test $(BINDIR)/$(CONFIG)/h2_full_cancel_after_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_full_cancel_before_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_full_cancel_in_a_vacuum_nosec_test $(BINDIR)/$(CONFIG)/h2_full_census_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_full_channel_connectivity_nosec_test $(BINDIR)/$(CONFIG)/h2_full_compressed_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_full_default_host_nosec_test $(BINDIR)/$(CONFIG)/h2_full_disappearing_server_nosec_test $(BINDIR)/$(CONFIG)/h2_full_empty_batch_nosec_test $(BINDIR)/$(CONFIG)/h2_full_graceful_server_shutdown_nosec_test $(BINDIR)/$(CONFIG)/h2_full_high_initial_seqno_nosec_test $(BINDIR)/$(CONFIG)/h2_full_invoke_large_request_nosec_test $(BINDIR)/$(CONFIG)/h2_full_large_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_full_max_concurrent_streams_nosec_test $(BINDIR)/$(CONFIG)/h2_full_max_message_length_nosec_test $(BINDIR)/$(CONFIG)/h2_full_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_full_no_op_nosec_test $(BINDIR)/$(CONFIG)/h2_full_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_full_ping_pong_streaming_nosec_test $(BINDIR)/$(CONFIG)/h2_full_registered_call_nosec_test $(BINDIR)/$(CONFIG)/h2_full_request_with_flags_nosec_test $(BINDIR)/$(CONFIG)/h2_full_request_with_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_full_server_finishes_request_nosec_test $(BINDIR)/$(CONFIG)/h2_full_shutdown_finishes_calls_nosec_test $(BINDIR)/$(CONFIG)/h2_full_shutdown_finishes_tags_nosec_test $(BINDIR)/$(CONFIG)/h2_full_simple_delayed_request_nosec_test $(BINDIR)/$(CONFIG)/h2_full_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_full_trailing_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_bad_hostname_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_binary_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_cancel_after_accept_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_cancel_after_client_done_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_cancel_after_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_cancel_before_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_cancel_in_a_vacuum_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_census_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_channel_connectivity_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_compressed_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_default_host_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_disappearing_server_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_empty_batch_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_graceful_server_shutdown_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_high_initial_seqno_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_invoke_large_request_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_large_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_max_concurrent_streams_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_max_message_length_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_no_op_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_ping_pong_streaming_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_registered_call_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_request_with_flags_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_request_with_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_server_finishes_request_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_shutdown_finishes_calls_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_shutdown_finishes_tags_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_simple_delayed_request_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_trailing_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_bad_hostname_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_binary_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_cancel_after_accept_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_cancel_after_client_done_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_cancel_after_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_cancel_before_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_cancel_in_a_vacuum_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_census_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_default_host_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_disappearing_server_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_empty_batch_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_graceful_server_shutdown_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_high_initial_seqno_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_invoke_large_request_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_large_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_max_message_length_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_no_op_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_ping_pong_streaming_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_registered_call_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_request_with_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_server_finishes_request_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_shutdown_finishes_calls_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_shutdown_finishes_tags_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_simple_delayed_request_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_trailing_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_bad_hostname_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_binary_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_cancel_after_accept_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_cancel_after_client_done_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_cancel_after_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_cancel_before_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_cancel_in_a_vacuum_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_census_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_compressed_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_empty_batch_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_graceful_server_shutdown_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_high_initial_seqno_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_invoke_large_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_large_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_max_concurrent_streams_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_max_message_length_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_no_op_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_ping_pong_streaming_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_registered_call_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_request_with_flags_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_request_with_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_server_finishes_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_shutdown_finishes_calls_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_shutdown_finishes_tags_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_trailing_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_bad_hostname_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_binary_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_cancel_after_accept_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_cancel_after_client_done_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_cancel_after_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_cancel_before_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_cancel_in_a_vacuum_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_census_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_compressed_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_empty_batch_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_graceful_server_shutdown_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_high_initial_seqno_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_invoke_large_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_large_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_max_concurrent_streams_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_max_message_length_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_no_op_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_ping_pong_streaming_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_registered_call_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_request_with_flags_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_request_with_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_server_finishes_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_shutdown_finishes_calls_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_shutdown_finishes_tags_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_trailing_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_bad_hostname_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_binary_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_cancel_after_accept_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_cancel_after_client_done_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_cancel_after_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_cancel_before_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_cancel_in_a_vacuum_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_census_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_compressed_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_empty_batch_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_graceful_server_shutdown_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_high_initial_seqno_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_invoke_large_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_large_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_max_concurrent_streams_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_max_message_length_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_no_op_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_ping_pong_streaming_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_registered_call_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_request_with_flags_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_request_with_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_server_finishes_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_shutdown_finishes_calls_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_shutdown_finishes_tags_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_trailing_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_bad_hostname_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_binary_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_cancel_after_accept_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_cancel_after_client_done_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_cancel_after_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_cancel_before_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_cancel_in_a_vacuum_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_census_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_channel_connectivity_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_compressed_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_default_host_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_disappearing_server_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_empty_batch_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_graceful_server_shutdown_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_high_initial_seqno_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_invoke_large_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_large_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_max_concurrent_streams_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_max_message_length_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_no_op_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_ping_pong_streaming_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_registered_call_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_request_with_flags_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_request_with_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_server_finishes_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_shutdown_finishes_calls_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_shutdown_finishes_tags_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_simple_delayed_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_trailing_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_bad_hostname_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_binary_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_cancel_after_accept_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_cancel_after_client_done_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_cancel_after_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_cancel_before_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_cancel_in_a_vacuum_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_census_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_channel_connectivity_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_compressed_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_disappearing_server_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_empty_batch_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_graceful_server_shutdown_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_high_initial_seqno_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_invoke_large_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_large_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_max_concurrent_streams_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_max_message_length_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_no_op_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_ping_pong_streaming_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_registered_call_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_request_with_flags_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_request_with_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_server_finishes_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_shutdown_finishes_calls_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_shutdown_finishes_tags_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_simple_delayed_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_trailing_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_bad_hostname_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_binary_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_cancel_after_accept_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_cancel_after_client_done_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_cancel_after_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_cancel_before_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_cancel_in_a_vacuum_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_census_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_channel_connectivity_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_compressed_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_disappearing_server_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_empty_batch_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_graceful_server_shutdown_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_high_initial_seqno_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_invoke_large_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_large_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_max_concurrent_streams_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_max_message_length_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_no_op_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_ping_pong_streaming_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_registered_call_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_request_with_flags_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_request_with_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_server_finishes_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_shutdown_finishes_calls_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_shutdown_finishes_tags_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_simple_delayed_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_trailing_metadata_nosec_test $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test $(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test
-buildtests_cxx: buildtests_zookeeper 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_string_ref_test $(BINDIR)/$(CONFIG)/cxx_time_test $(BINDIR)/$(CONFIG)/end2end_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)/shutdown_test $(BINDIR)/$(CONFIG)/status_test $(BINDIR)/$(CONFIG)/streaming_throughput_test $(BINDIR)/$(CONFIG)/sync_streaming_ping_pong_test $(BINDIR)/$(CONFIG)/sync_unary_ping_pong_test $(BINDIR)/$(CONFIG)/thread_stress_test
+buildtests_cxx: buildtests_zookeeper 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_string_ref_test $(BINDIR)/$(CONFIG)/cxx_time_test $(BINDIR)/$(CONFIG)/end2end_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)/shutdown_test $(BINDIR)/$(CONFIG)/status_test $(BINDIR)/$(CONFIG)/streaming_throughput_test $(BINDIR)/$(CONFIG)/stress_test $(BINDIR)/$(CONFIG)/sync_streaming_ping_pong_test $(BINDIR)/$(CONFIG)/sync_unary_ping_pong_test $(BINDIR)/$(CONFIG)/thread_stress_test
ifeq ($(HAS_ZOOKEEPER),true)
buildtests_zookeeper: privatelibs_zookeeper $(BINDIR)/$(CONFIG)/zookeeper_test
@@ -3559,6 +3560,8 @@ test_cxx: test_zookeeper buildtests_cxx
$(Q) $(BINDIR)/$(CONFIG)/status_test || ( echo test status_test failed ; exit 1 )
$(E) "[RUN] Testing streaming_throughput_test"
$(Q) $(BINDIR)/$(CONFIG)/streaming_throughput_test || ( echo test streaming_throughput_test failed ; exit 1 )
+ $(E) "[RUN] Testing stress_test"
+ $(Q) $(BINDIR)/$(CONFIG)/stress_test || ( echo test stress_test failed ; exit 1 )
$(E) "[RUN] Testing sync_streaming_ping_pong_test"
$(Q) $(BINDIR)/$(CONFIG)/sync_streaming_ping_pong_test || ( echo test sync_streaming_ping_pong_test failed ; exit 1 )
$(E) "[RUN] Testing sync_unary_ping_pong_test"
@@ -10524,6 +10527,56 @@ endif
endif
+STRESS_TEST_SRC = \
+ $(GENDIR)/test/proto/empty.pb.cc $(GENDIR)/test/proto/empty.grpc.pb.cc \
+ $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc \
+ $(GENDIR)/test/proto/test.pb.cc $(GENDIR)/test/proto/test.grpc.pb.cc \
+ test/cpp/interop/interop_client.cc \
+ test/cpp/interop/stress_interop_client.cc \
+ test/cpp/interop/stress_test.cc \
+
+STRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STRESS_TEST_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/stress_test: openssl_dep_error
+
+else
+
+
+ifeq ($(NO_PROTOBUF),true)
+
+# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+.
+
+$(BINDIR)/$(CONFIG)/stress_test: protobuf_dep_error
+
+else
+
+$(BINDIR)/$(CONFIG)/stress_test: $(PROTOBUF_DEP) $(STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a
+ $(E) "[LD] Linking $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) $(LDXX) $(LDFLAGS) $(STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/stress_test
+
+endif
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/proto/empty.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a
+$(OBJDIR)/$(CONFIG)/test/proto/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a
+$(OBJDIR)/$(CONFIG)/test/proto/test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a
+$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a
+$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a
+$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a
+deps_stress_test: $(STRESS_TEST_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(STRESS_TEST_OBJS:.o=.dep)
+endif
+endif
+
+
SYNC_STREAMING_PING_PONG_TEST_SRC = \
test/cpp/qps/sync_streaming_ping_pong_test.cc \
diff --git a/README.md b/README.md
index 2ef6c3d7f6..74e9e8263d 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,4 @@
[![Build Status](https://grpc-testing.appspot.com/job/gRPC_master/badge/icon)](https://grpc-testing.appspot.com/job/gRPC_master)
-[![Coverage Status](https://img.shields.io/coveralls/grpc/grpc.svg)](https://coveralls.io/r/grpc/grpc?branch=master)
[gRPC - An RPC library and framework](http://github.com/grpc/grpc)
===================================
diff --git a/binding.gyp b/binding.gyp
index 050bc40664..c2f9c6526d 100644
--- a/binding.gyp
+++ b/binding.gyp
@@ -54,7 +54,8 @@
],
'include_dirs': [
'.',
- 'include'
+ 'include',
+ '<(node_root_dir)/deps/openssl/openssl/include'
],
'conditions': [
['OS != "win"', {
@@ -73,6 +74,15 @@
]
]
}],
+ ["target_arch=='ia32'", {
+ "include_dirs": [ "<(node_root_dir)/deps/openssl/config/piii" ]
+ }],
+ ["target_arch=='x64'", {
+ "include_dirs": [ "<(node_root_dir)/deps/openssl/config/k8" ]
+ }],
+ ["target_arch=='arm'", {
+ "include_dirs": [ "<(node_root_dir)/deps/openssl/config/arm" ]
+ }]
]
},
'targets': [
@@ -124,6 +134,13 @@
'src/core/support/time_win32.c',
'src/core/support/tls_pthread.c',
],
+ "conditions": [
+ ['OS == "mac"', {
+ 'xcode_settings': {
+ 'MACOSX_DEPLOYMENT_TARGET': '10.9'
+ }
+ }]
+ ],
},
{
'target_name': 'grpc',
@@ -282,6 +299,13 @@
'src/core/census/operation.c',
'src/core/census/tracing.c',
],
+ "conditions": [
+ ['OS == "mac"', {
+ 'xcode_settings': {
+ 'MACOSX_DEPLOYMENT_TARGET': '10.9'
+ }
+ }]
+ ],
},
{
'include_dirs': [
diff --git a/build.yaml b/build.yaml
index 2717d93ccf..4f6e35b0de 100644
--- a/build.yaml
+++ b/build.yaml
@@ -2105,6 +2105,28 @@ targets:
- mac
- linux
- posix
+- name: stress_test
+ build: test
+ language: c++
+ headers:
+ - test/cpp/interop/client_helper.h
+ - test/cpp/interop/interop_client.h
+ - test/cpp/interop/stress_interop_client.h
+ src:
+ - test/proto/empty.proto
+ - test/proto/messages.proto
+ - test/proto/test.proto
+ - test/cpp/interop/interop_client.cc
+ - test/cpp/interop/stress_interop_client.cc
+ - test/cpp/interop/stress_test.cc
+ deps:
+ - grpc++_test_util
+ - grpc_test_util
+ - grpc++
+ - grpc
+ - gpr_test_util
+ - gpr
+ - grpc++_test_config
- name: sync_streaming_ping_pong_test
build: test
language: c++
diff --git a/package.json b/package.json
index 54efb69b04..1fd0ffb881 100644
--- a/package.json
+++ b/package.json
@@ -38,6 +38,7 @@
"jshint": "^2.5.0",
"minimist": "^1.1.0",
"mocha": "~1.21.0",
+ "mocha-jenkins-reporter": "^0.1.9",
"mustache": "^2.0.0"
},
"engines": {
diff --git a/src/core/channel/client_uchannel.c b/src/core/channel/client_uchannel.c
index fee0c54e89..510677a844 100644
--- a/src/core/channel/client_uchannel.c
+++ b/src/core/channel/client_uchannel.c
@@ -462,7 +462,7 @@ static void cuc_destroy_channel_elem(grpc_exec_ctx *exec_ctx,
grpc_subchannel_state_change_unsubscribe(exec_ctx, chand->subchannel,
&chand->connectivity_cb);
grpc_connectivity_state_destroy(exec_ctx, &chand->state_tracker);
- gpr_mu_lock(&chand->mu_state);
+ gpr_mu_destroy(&chand->mu_state);
}
const grpc_channel_filter grpc_client_uchannel_filter = {
diff --git a/src/php/ext/grpc/credentials.c b/src/php/ext/grpc/credentials.c
index 8e3b7ff212..e413070b45 100644
--- a/src/php/ext/grpc/credentials.c
+++ b/src/php/ext/grpc/credentials.c
@@ -111,21 +111,21 @@ PHP_METHOD(Credentials, createDefault) {
* @return Credentials The new SSL credentials object
*/
PHP_METHOD(Credentials, createSsl) {
- char *pem_root_certs;
+ char *pem_root_certs = NULL;
grpc_ssl_pem_key_cert_pair pem_key_cert_pair;
- int root_certs_length, private_key_length = 0, cert_chain_length = 0;
+ int root_certs_length = 0, private_key_length = 0, cert_chain_length = 0;
pem_key_cert_pair.private_key = pem_key_cert_pair.cert_chain = NULL;
- /* "s|s!s! == 1 string, 2 optional nullable strings */
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s!s!",
+ /* "|s!s!s! == 3 optional nullable strings */
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s!s!s!",
&pem_root_certs, &root_certs_length,
&pem_key_cert_pair.private_key, &private_key_length,
&pem_key_cert_pair.cert_chain,
&cert_chain_length) == FAILURE) {
zend_throw_exception(spl_ce_InvalidArgumentException,
- "createSsl expects 1 to 3 strings", 1 TSRMLS_CC);
+ "createSsl expects 3 optional strings", 1 TSRMLS_CC);
return;
}
grpc_credentials *creds = grpc_ssl_credentials_create(
diff --git a/src/php/tests/interop/interop_client.php b/src/php/tests/interop/interop_client.php
index 5965097e18..03ce2ac700 100755
--- a/src/php/tests/interop/interop_client.php
+++ b/src/php/tests/interop/interop_client.php
@@ -391,12 +391,11 @@ $opts = [];
if ($use_tls) {
if ($use_test_ca) {
- $ssl_cert_file = dirname(__FILE__) . '/../data/ca.pem';
+ $ssl_credentials = Grpc\Credentials::createSsl(
+ file_get_contents(dirname(__FILE__) . '/../data/ca.pem'));
} else {
- $ssl_cert_file = getenv('SSL_CERT_FILE');
+ $ssl_credentials = Grpc\Credentials::createSsl();
}
- $ssl_credentials = Grpc\Credentials::createSsl(
- file_get_contents($ssl_cert_file));
$opts['credentials'] = $ssl_credentials;
$opts['grpc.ssl_target_name_override'] = $host_override;
}
diff --git a/templates/binding.gyp.template b/templates/binding.gyp.template
index e86449fd3f..60a64273bf 100644
--- a/templates/binding.gyp.template
+++ b/templates/binding.gyp.template
@@ -56,7 +56,8 @@
],
'include_dirs': [
'.',
- 'include'
+ 'include',
+ '<(node_root_dir)/deps/openssl/openssl/include'
],
'conditions': [
['OS != "win"', {
@@ -75,6 +76,15 @@
]
]
}],
+ ["target_arch=='ia32'", {
+ "include_dirs": [ "<(node_root_dir)/deps/openssl/config/piii" ]
+ }],
+ ["target_arch=='x64'", {
+ "include_dirs": [ "<(node_root_dir)/deps/openssl/config/k8" ]
+ }],
+ ["target_arch=='arm'", {
+ "include_dirs": [ "<(node_root_dir)/deps/openssl/config/arm" ]
+ }]
]
},
'targets': [
@@ -94,6 +104,13 @@
'${source}',
% endfor
],
+ "conditions": [
+ ['OS == "mac"', {
+ 'xcode_settings': {
+ 'MACOSX_DEPLOYMENT_TARGET': '10.9'
+ }
+ }]
+ ],
},
% endif
% endfor
diff --git a/test/cpp/interop/interop_client.cc b/test/cpp/interop/interop_client.cc
index 5169945762..96502e5879 100644
--- a/test/cpp/interop/interop_client.cc
+++ b/test/cpp/interop/interop_client.cc
@@ -82,8 +82,46 @@ CompressionType GetInteropCompressionTypeFromCompressionAlgorithm(
}
} // namespace
+InteropClient::ServiceStub::ServiceStub(std::shared_ptr<Channel> channel,
+ bool new_stub_every_call)
+ : channel_(channel), new_stub_every_call_(new_stub_every_call) {
+ // If new_stub_every_call is false, then this is our chance to initialize
+ // stub_. (see Get())
+ if (!new_stub_every_call) {
+ stub_ = TestService::NewStub(channel);
+ }
+}
+
+TestService::Stub* InteropClient::ServiceStub::Get() {
+ if (new_stub_every_call_) {
+ stub_ = TestService::NewStub(channel_);
+ }
+
+ return stub_.get();
+}
+
+void InteropClient::ServiceStub::Reset(std::shared_ptr<Channel> channel) {
+ channel_ = channel;
+
+ // Update stub_ as well. Note: If new_stub_every_call_ is true, we can reset
+ // the stub_ since the next call to Get() will create a new stub
+ if (new_stub_every_call_) {
+ stub_.reset();
+ } else {
+ stub_ = TestService::NewStub(channel);
+ }
+}
+
+void InteropClient::Reset(std::shared_ptr<Channel> channel) {
+ serviceStub_.Reset(channel);
+}
+
InteropClient::InteropClient(std::shared_ptr<Channel> channel)
- : channel_(channel) {}
+ : serviceStub_(channel, true) {}
+
+InteropClient::InteropClient(std::shared_ptr<Channel> channel,
+ bool new_stub_every_test_case)
+ : serviceStub_(channel, new_stub_every_test_case) {}
void InteropClient::AssertOkOrPrintErrorStatus(const Status& s) {
if (s.ok()) {
@@ -96,13 +134,12 @@ void InteropClient::AssertOkOrPrintErrorStatus(const Status& s) {
void InteropClient::DoEmpty() {
gpr_log(GPR_INFO, "Sending an empty rpc...");
- std::unique_ptr<TestService::Stub> stub(TestService::NewStub(channel_));
Empty request = Empty::default_instance();
Empty response = Empty::default_instance();
ClientContext context;
- Status s = stub->EmptyCall(&context, request, &response);
+ Status s = serviceStub_.Get()->EmptyCall(&context, request, &response);
AssertOkOrPrintErrorStatus(s);
gpr_log(GPR_INFO, "Empty rpc done.");
@@ -111,8 +148,6 @@ void InteropClient::DoEmpty() {
// Shared code to set large payload, make rpc and check response payload.
void InteropClient::PerformLargeUnary(SimpleRequest* request,
SimpleResponse* response) {
- std::unique_ptr<TestService::Stub> stub(TestService::NewStub(channel_));
-
ClientContext context;
InteropClientContextInspector inspector(context);
// If the request doesn't already specify the response type, default to
@@ -121,7 +156,7 @@ void InteropClient::PerformLargeUnary(SimpleRequest* request,
grpc::string payload(kLargeRequestSize, '\0');
request->mutable_payload()->set_body(payload.c_str(), kLargeRequestSize);
- Status s = stub->UnaryCall(&context, *request, response);
+ Status s = serviceStub_.Get()->UnaryCall(&context, *request, response);
// Compression related checks.
GPR_ASSERT(request->response_compression() ==
@@ -187,11 +222,10 @@ void InteropClient::DoOauth2AuthToken(const grpc::string& username,
SimpleResponse response;
request.set_fill_username(true);
request.set_fill_oauth_scope(true);
- std::unique_ptr<TestService::Stub> stub(TestService::NewStub(channel_));
ClientContext context;
- Status s = stub->UnaryCall(&context, request, &response);
+ Status s = serviceStub_.Get()->UnaryCall(&context, request, &response);
AssertOkOrPrintErrorStatus(s);
GPR_ASSERT(!response.username().empty());
@@ -207,7 +241,6 @@ void InteropClient::DoPerRpcCreds(const grpc::string& json_key) {
SimpleRequest request;
SimpleResponse response;
request.set_fill_username(true);
- std::unique_ptr<TestService::Stub> stub(TestService::NewStub(channel_));
ClientContext context;
std::chrono::seconds token_lifetime = std::chrono::hours(1);
@@ -216,7 +249,7 @@ void InteropClient::DoPerRpcCreds(const grpc::string& json_key) {
context.set_credentials(creds);
- Status s = stub->UnaryCall(&context, request, &response);
+ Status s = serviceStub_.Get()->UnaryCall(&context, request, &response);
AssertOkOrPrintErrorStatus(s);
GPR_ASSERT(!response.username().empty());
@@ -269,14 +302,13 @@ void InteropClient::DoLargeCompressedUnary() {
void InteropClient::DoRequestStreaming() {
gpr_log(GPR_INFO, "Sending request steaming rpc ...");
- std::unique_ptr<TestService::Stub> stub(TestService::NewStub(channel_));
ClientContext context;
StreamingInputCallRequest request;
StreamingInputCallResponse response;
std::unique_ptr<ClientWriter<StreamingInputCallRequest>> stream(
- stub->StreamingInputCall(&context, &response));
+ serviceStub_.Get()->StreamingInputCall(&context, &response));
int aggregated_payload_size = 0;
for (unsigned int i = 0; i < request_stream_sizes.size(); ++i) {
@@ -295,7 +327,6 @@ void InteropClient::DoRequestStreaming() {
void InteropClient::DoResponseStreaming() {
gpr_log(GPR_INFO, "Receiving response steaming rpc ...");
- std::unique_ptr<TestService::Stub> stub(TestService::NewStub(channel_));
ClientContext context;
StreamingOutputCallRequest request;
@@ -305,7 +336,7 @@ void InteropClient::DoResponseStreaming() {
}
StreamingOutputCallResponse response;
std::unique_ptr<ClientReader<StreamingOutputCallResponse>> stream(
- stub->StreamingOutputCall(&context, request));
+ serviceStub_.Get()->StreamingOutputCall(&context, request));
unsigned int i = 0;
while (stream->Read(&response)) {
@@ -320,8 +351,6 @@ void InteropClient::DoResponseStreaming() {
}
void InteropClient::DoResponseCompressedStreaming() {
- std::unique_ptr<TestService::Stub> stub(TestService::NewStub(channel_));
-
const CompressionType compression_types[] = {NONE, GZIP, DEFLATE};
const PayloadType payload_types[] = {COMPRESSABLE, UNCOMPRESSABLE, RANDOM};
for (size_t i = 0; i < GPR_ARRAY_SIZE(payload_types); i++) {
@@ -348,7 +377,7 @@ void InteropClient::DoResponseCompressedStreaming() {
StreamingOutputCallResponse response;
std::unique_ptr<ClientReader<StreamingOutputCallResponse>> stream(
- stub->StreamingOutputCall(&context, request));
+ serviceStub_.Get()->StreamingOutputCall(&context, request));
size_t k = 0;
while (stream->Read(&response)) {
@@ -401,7 +430,6 @@ void InteropClient::DoResponseCompressedStreaming() {
void InteropClient::DoResponseStreamingWithSlowConsumer() {
gpr_log(GPR_INFO, "Receiving response steaming rpc with slow consumer ...");
- std::unique_ptr<TestService::Stub> stub(TestService::NewStub(channel_));
ClientContext context;
StreamingOutputCallRequest request;
@@ -412,7 +440,7 @@ void InteropClient::DoResponseStreamingWithSlowConsumer() {
}
StreamingOutputCallResponse response;
std::unique_ptr<ClientReader<StreamingOutputCallResponse>> stream(
- stub->StreamingOutputCall(&context, request));
+ serviceStub_.Get()->StreamingOutputCall(&context, request));
int i = 0;
while (stream->Read(&response)) {
@@ -431,12 +459,11 @@ void InteropClient::DoResponseStreamingWithSlowConsumer() {
void InteropClient::DoHalfDuplex() {
gpr_log(GPR_INFO, "Sending half-duplex streaming rpc ...");
- std::unique_ptr<TestService::Stub> stub(TestService::NewStub(channel_));
ClientContext context;
std::unique_ptr<ClientReaderWriter<StreamingOutputCallRequest,
StreamingOutputCallResponse>>
- stream(stub->HalfDuplexCall(&context));
+ stream(serviceStub_.Get()->HalfDuplexCall(&context));
StreamingOutputCallRequest request;
ResponseParameters* response_parameter = request.add_response_parameters();
@@ -461,12 +488,11 @@ void InteropClient::DoHalfDuplex() {
void InteropClient::DoPingPong() {
gpr_log(GPR_INFO, "Sending Ping Pong streaming rpc ...");
- std::unique_ptr<TestService::Stub> stub(TestService::NewStub(channel_));
ClientContext context;
std::unique_ptr<ClientReaderWriter<StreamingOutputCallRequest,
StreamingOutputCallResponse>>
- stream(stub->FullDuplexCall(&context));
+ stream(serviceStub_.Get()->FullDuplexCall(&context));
StreamingOutputCallRequest request;
request.set_response_type(PayloadType::COMPRESSABLE);
@@ -491,14 +517,13 @@ void InteropClient::DoPingPong() {
void InteropClient::DoCancelAfterBegin() {
gpr_log(GPR_INFO, "Sending request steaming rpc ...");
- std::unique_ptr<TestService::Stub> stub(TestService::NewStub(channel_));
ClientContext context;
StreamingInputCallRequest request;
StreamingInputCallResponse response;
std::unique_ptr<ClientWriter<StreamingInputCallRequest>> stream(
- stub->StreamingInputCall(&context, &response));
+ serviceStub_.Get()->StreamingInputCall(&context, &response));
gpr_log(GPR_INFO, "Trying to cancel...");
context.TryCancel();
@@ -509,12 +534,11 @@ void InteropClient::DoCancelAfterBegin() {
void InteropClient::DoCancelAfterFirstResponse() {
gpr_log(GPR_INFO, "Sending Ping Pong streaming rpc ...");
- std::unique_ptr<TestService::Stub> stub(TestService::NewStub(channel_));
ClientContext context;
std::unique_ptr<ClientReaderWriter<StreamingOutputCallRequest,
StreamingOutputCallResponse>>
- stream(stub->FullDuplexCall(&context));
+ stream(serviceStub_.Get()->FullDuplexCall(&context));
StreamingOutputCallRequest request;
request.set_response_type(PayloadType::COMPRESSABLE);
@@ -534,7 +558,6 @@ void InteropClient::DoCancelAfterFirstResponse() {
void InteropClient::DoTimeoutOnSleepingServer() {
gpr_log(GPR_INFO, "Sending Ping Pong streaming rpc with a short deadline...");
- std::unique_ptr<TestService::Stub> stub(TestService::NewStub(channel_));
ClientContext context;
std::chrono::system_clock::time_point deadline =
@@ -542,7 +565,7 @@ void InteropClient::DoTimeoutOnSleepingServer() {
context.set_deadline(deadline);
std::unique_ptr<ClientReaderWriter<StreamingOutputCallRequest,
StreamingOutputCallResponse>>
- stream(stub->FullDuplexCall(&context));
+ stream(serviceStub_.Get()->FullDuplexCall(&context));
StreamingOutputCallRequest request;
request.mutable_payload()->set_body(grpc::string(27182, '\0'));
@@ -555,12 +578,11 @@ void InteropClient::DoTimeoutOnSleepingServer() {
void InteropClient::DoEmptyStream() {
gpr_log(GPR_INFO, "Starting empty_stream.");
- std::unique_ptr<TestService::Stub> stub(TestService::NewStub(channel_));
ClientContext context;
std::unique_ptr<ClientReaderWriter<StreamingOutputCallRequest,
StreamingOutputCallResponse>>
- stream(stub->FullDuplexCall(&context));
+ stream(serviceStub_.Get()->FullDuplexCall(&context));
stream->WritesDone();
StreamingOutputCallResponse response;
GPR_ASSERT(stream->Read(&response) == false);
@@ -571,7 +593,6 @@ void InteropClient::DoEmptyStream() {
void InteropClient::DoStatusWithMessage() {
gpr_log(GPR_INFO, "Sending RPC with a request for status code 2 and message");
- std::unique_ptr<TestService::Stub> stub(TestService::NewStub(channel_));
ClientContext context;
SimpleRequest request;
@@ -581,7 +602,7 @@ void InteropClient::DoStatusWithMessage() {
grpc::string test_msg = "This is a test message";
requested_status->set_message(test_msg);
- Status s = stub->UnaryCall(&context, request, &response);
+ Status s = serviceStub_.Get()->UnaryCall(&context, request, &response);
GPR_ASSERT(s.error_code() == grpc::StatusCode::UNKNOWN);
GPR_ASSERT(s.error_message() == test_msg);
diff --git a/test/cpp/interop/interop_client.h b/test/cpp/interop/interop_client.h
index ebecd68c3f..1bfb49d514 100644
--- a/test/cpp/interop/interop_client.h
+++ b/test/cpp/interop/interop_client.h
@@ -39,6 +39,7 @@
#include <grpc/grpc.h>
#include <grpc++/channel.h>
#include "test/proto/messages.grpc.pb.h"
+#include "test/proto/test.grpc.pb.h"
namespace grpc {
namespace testing {
@@ -46,9 +47,14 @@ namespace testing {
class InteropClient {
public:
explicit InteropClient(std::shared_ptr<Channel> channel);
+ explicit InteropClient(
+ std::shared_ptr<Channel> channel,
+ bool new_stub_every_test_case); // If new_stub_every_test_case is true,
+ // a new TestService::Stub object is
+ // created for every test case below
~InteropClient() {}
- void Reset(std::shared_ptr<Channel> channel) { channel_ = channel; }
+ void Reset(std::shared_ptr<Channel> channel);
void DoEmpty();
void DoLargeUnary();
@@ -76,10 +82,26 @@ class InteropClient {
void DoPerRpcCreds(const grpc::string& json_key);
private:
+ class ServiceStub {
+ public:
+ // If new_stub_every_call = true, pointer to a new instance of
+ // TestServce::Stub is returned by Get() everytime it is called
+ ServiceStub(std::shared_ptr<Channel> channel, bool new_stub_every_call);
+
+ TestService::Stub* Get();
+
+ void Reset(std::shared_ptr<Channel> channel);
+
+ private:
+ std::unique_ptr<TestService::Stub> stub_;
+ std::shared_ptr<Channel> channel_;
+ bool new_stub_every_call_; // If true, a new stub is returned by every
+ // Get() call
+ };
+
void PerformLargeUnary(SimpleRequest* request, SimpleResponse* response);
void AssertOkOrPrintErrorStatus(const Status& s);
-
- std::shared_ptr<Channel> channel_;
+ ServiceStub serviceStub_;
};
} // namespace testing
diff --git a/test/cpp/interop/stress_interop_client.cc b/test/cpp/interop/stress_interop_client.cc
new file mode 100644
index 0000000000..a75eb99d42
--- /dev/null
+++ b/test/cpp/interop/stress_interop_client.cc
@@ -0,0 +1,162 @@
+/*
+ *
+ * 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.
+ *is % allowed in string
+ */
+
+#include "test/cpp/interop/stress_interop_client.h"
+
+#include <memory>
+#include <string>
+#include <vector>
+
+#include <grpc++/create_channel.h>
+
+#include "test/cpp/interop/interop_client.h"
+
+namespace grpc {
+namespace testing {
+
+using std::pair;
+using std::string;
+using std::vector;
+
+WeightedRandomTestSelector::WeightedRandomTestSelector(
+ const vector<pair<TestCaseType, int>>& tests)
+ : tests_(tests) {
+ total_weight_ = 0;
+ for (auto it = tests.begin(); it != tests.end(); it++) {
+ total_weight_ += it->second;
+ }
+}
+
+// Returns a weighted-randomly selected test case based on the test weights
+// passed in the constructror
+TestCaseType WeightedRandomTestSelector::GetNextTest() const {
+ int random = 0;
+ TestCaseType selected_test = UNKNOWN_TEST;
+
+ // Get a random number from [0 to the total_weight - 1]
+ random = rand() % total_weight_;
+
+ int weight_sofar = 0;
+ for (auto it = tests_.begin(); it != tests_.end(); it++) {
+ weight_sofar += it->second;
+ if (random < weight_sofar) {
+ selected_test = it->first;
+ break;
+ }
+ }
+
+ // It is a bug in the logic if no test is selected at this point
+ GPR_ASSERT(selected_test != UNKNOWN_TEST);
+ return selected_test;
+}
+
+StressTestInteropClient::StressTestInteropClient(
+ int test_id, const string& server_address,
+ const WeightedRandomTestSelector& test_selector, long test_duration_secs,
+ long sleep_duration_ms)
+ : test_id_(test_id),
+ server_address_(server_address),
+ test_selector_(test_selector),
+ test_duration_secs_(test_duration_secs),
+ sleep_duration_ms_(sleep_duration_ms) {
+ // TODO(sreek): This will change once we add support for other tests
+ // that won't work with InsecureCredentials()
+ std::shared_ptr<Channel> channel(
+ CreateChannel(server_address, InsecureCredentials()));
+ interop_client_.reset(new InteropClient(channel, false));
+}
+
+void StressTestInteropClient::MainLoop() {
+ gpr_log(GPR_INFO, "Running test %d. ServerAddr: %s", test_id_,
+ server_address_.c_str());
+
+ gpr_timespec test_end_time =
+ gpr_time_add(gpr_now(GPR_CLOCK_REALTIME),
+ gpr_time_from_seconds(test_duration_secs_, GPR_TIMESPAN));
+
+ gpr_timespec current_time = gpr_now(GPR_CLOCK_REALTIME);
+ while (test_duration_secs_ < 0 ||
+ gpr_time_cmp(current_time, test_end_time) < 0) {
+ // Select the test case to execute based on the weights and execute it
+ TestCaseType test_case = test_selector_.GetNextTest();
+ gpr_log(GPR_INFO, "%d - Executing the test case %d", test_id_, test_case);
+ RunTest(test_case);
+
+ // Sleep between successive calls if needed
+ if (sleep_duration_ms_ > 0) {
+ gpr_timespec sleep_time = gpr_time_add(
+ current_time, gpr_time_from_millis(sleep_duration_ms_, GPR_TIMESPAN));
+ gpr_sleep_until(sleep_time);
+ }
+
+ current_time = gpr_now(GPR_CLOCK_REALTIME);
+ }
+}
+
+// TODO(sree): Add all interop tests
+void StressTestInteropClient::RunTest(TestCaseType test_case) {
+ switch (test_case) {
+ case EMPTY_UNARY: {
+ interop_client_->DoEmpty();
+ break;
+ }
+ case LARGE_UNARY: {
+ interop_client_->DoLargeUnary();
+ break;
+ }
+ case LARGE_COMPRESSED_UNARY: {
+ interop_client_->DoLargeCompressedUnary();
+ break;
+ }
+ case CLIENT_STREAMING: {
+ interop_client_->DoRequestStreaming();
+ break;
+ }
+ case SERVER_STREAMING: {
+ interop_client_->DoResponseStreaming();
+ break;
+ }
+ case EMPTY_STREAM: {
+ interop_client_->DoEmptyStream();
+ break;
+ }
+ default: {
+ gpr_log(GPR_ERROR, "Invalid test case (%d)", test_case);
+ GPR_ASSERT(false);
+ break;
+ }
+ }
+}
+
+} // namespace testing
+} // namespace grpc
diff --git a/test/cpp/interop/stress_interop_client.h b/test/cpp/interop/stress_interop_client.h
new file mode 100644
index 0000000000..36dfa7ed61
--- /dev/null
+++ b/test/cpp/interop/stress_interop_client.h
@@ -0,0 +1,107 @@
+/*
+ *
+ * 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.
+ *is % allowed in string
+ */
+
+#ifndef GRPC_TEST_CPP_STRESS_INTEROP_CLIENT_H
+#define GRPC_TEST_CPP_STRESS_INTEROP_CLIENT_H
+
+#include <memory>
+#include <string>
+#include <vector>
+
+#include <grpc++/create_channel.h>
+
+#include "test/cpp/interop/interop_client.h"
+
+namespace grpc {
+namespace testing {
+
+using std::pair;
+using std::string;
+using std::vector;
+
+// TODO(sreek): Add more test cases here in future
+enum TestCaseType {
+ UNKNOWN_TEST = -1,
+ EMPTY_UNARY = 0,
+ LARGE_UNARY = 1,
+ LARGE_COMPRESSED_UNARY = 2,
+ CLIENT_STREAMING = 3,
+ SERVER_STREAMING = 4,
+ EMPTY_STREAM = 5
+};
+
+const vector<pair<TestCaseType, string>> kTestCaseList = {
+ {EMPTY_UNARY, "empty_unary"},
+ {LARGE_UNARY, "large_unary"},
+ {LARGE_COMPRESSED_UNARY, "large_compressed_unary"},
+ {CLIENT_STREAMING, "client_streaming"},
+ {SERVER_STREAMING, "server_streaming"},
+ {EMPTY_STREAM, "empty_stream"}};
+
+class WeightedRandomTestSelector {
+ public:
+ // Takes a vector of <test_case, weight> pairs as the input
+ WeightedRandomTestSelector(const vector<pair<TestCaseType, int>>& tests);
+
+ // Returns a weighted-randomly chosen test case based on the test cases and
+ // weights passed in the constructor
+ TestCaseType GetNextTest() const;
+
+ private:
+ const vector<pair<TestCaseType, int>> tests_;
+ int total_weight_;
+};
+
+class StressTestInteropClient {
+ public:
+ StressTestInteropClient(int test_id, const string& server_address,
+ const WeightedRandomTestSelector& test_selector,
+ long test_duration_secs, long sleep_duration_ms);
+
+ void MainLoop(); // The main function. Use this as the thread entry point.
+
+ private:
+ void RunTest(TestCaseType test_case);
+
+ int test_id_;
+ std::unique_ptr<InteropClient> interop_client_;
+ const string& server_address_;
+ const WeightedRandomTestSelector& test_selector_;
+ long test_duration_secs_;
+ long sleep_duration_ms_;
+};
+
+} // namespace testing
+} // namespace grpc
+
+#endif // GRPC_TEST_CPP_STRESS_INTEROP_CLIENT_H
diff --git a/test/cpp/interop/stress_test.cc b/test/cpp/interop/stress_test.cc
new file mode 100644
index 0000000000..91ef92af37
--- /dev/null
+++ b/test/cpp/interop/stress_test.cc
@@ -0,0 +1,229 @@
+/*
+ *
+ * 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.
+ *is % allowed in string
+ */
+
+#include <memory>
+#include <string>
+#include <thread>
+#include <utility>
+#include <vector>
+
+#include <gflags/gflags.h>
+#include <grpc/support/time.h>
+#include <grpc++/create_channel.h>
+#include <grpc++/grpc++.h>
+
+#include "test/cpp/interop/interop_client.h"
+#include "test/cpp/interop/stress_interop_client.h"
+#include "test/cpp/util/test_config.h"
+
+DEFINE_int32(sleep_duration_ms, 0,
+ "The duration (in millisec) between two"
+ " consecutive test calls (per server) issued by the server.");
+
+DEFINE_int32(test_duration_secs, -1,
+ "The length of time (in seconds) to run"
+ " the test. Enter -1 if the test should run continuously until"
+ " forcefully terminated.");
+
+DEFINE_string(server_addresses, "localhost:8080",
+ "The list of server"
+ " addresses in the format:\n"
+ " \"<name_1>:<port_1>,<name_2>:<port_1>...<name_N>:<port_N>\"\n"
+ " Note: <name> can be servername or IP address.");
+
+// TODO(sreek): Add more test cases here in future
+DEFINE_string(test_cases, "",
+ "List of test cases to call along with the"
+ " relative weights in the following format:\n"
+ " \"<testcase_1:w_1>,<testcase_2:w_2>...<testcase_n:w_n>\"\n"
+ " The following testcases are currently supported:\n"
+ " empty_unary\n"
+ " large_unary\n"
+ " large_compressed_unary\n"
+ " client_streaming\n"
+ " server_streaming\n"
+ " empty_stream\n"
+ " Example: \"empty_unary:20,large_unary:10,empty_stream:70\"\n"
+ " The above will execute 'empty_unary', 20% of the time,"
+ " 'large_unary', 10% of the time and 'empty_stream' the remaining"
+ " 70% of the time");
+
+using std::make_pair;
+using std::pair;
+using std::string;
+using std::thread;
+using std::vector;
+
+using grpc::testing::kTestCaseList;
+using grpc::testing::StressTestInteropClient;
+using grpc::testing::TestCaseType;
+using grpc::testing::WeightedRandomTestSelector;
+using grpc::testing::UNKNOWN_TEST;
+
+TestCaseType GetTestTypeFromName(const string& test_name) {
+ TestCaseType test_case = UNKNOWN_TEST;
+
+ for (auto it = kTestCaseList.begin(); it != kTestCaseList.end(); it++) {
+ if (test_name == it->second) {
+ test_case = it->first;
+ break;
+ }
+ }
+
+ return test_case;
+}
+
+// Converts a string of comma delimited tokens to a vector of tokens
+bool ParseCommaDelimitedString(const string& comma_delimited_str,
+ vector<string>& tokens) {
+ size_t bpos = 0;
+ size_t epos = string::npos;
+
+ while ((epos = comma_delimited_str.find(',', bpos)) != string::npos) {
+ tokens.emplace_back(comma_delimited_str.substr(bpos, epos - bpos));
+ bpos = epos + 1;
+ }
+
+ tokens.emplace_back(comma_delimited_str.substr(bpos)); // Last token
+ return true;
+}
+
+// Input: Test case string "<testcase_name:weight>,<testcase_name:weight>...."
+// Output:
+// - Whether parsing was successful (return value)
+// - Vector of (test_type_enum, weight) pairs returned via 'tests' parameter
+bool ParseTestCasesString(const string& test_cases,
+ vector<pair<TestCaseType, int>>& tests) {
+ bool is_success = true;
+
+ vector<string> tokens;
+ ParseCommaDelimitedString(test_cases, tokens);
+
+ for (auto it = tokens.begin(); it != tokens.end(); it++) {
+ // Token is in the form <test_name>:<test_weight>
+ size_t colon_pos = it->find(':');
+ if (colon_pos == string::npos) {
+ gpr_log(GPR_ERROR, "Error in parsing test case string: %s", it->c_str());
+ is_success = false;
+ break;
+ }
+
+ string test_name = it->substr(0, colon_pos);
+ int weight = std::stoi(it->substr(colon_pos + 1));
+ TestCaseType test_case = GetTestTypeFromName(test_name);
+ if (test_case == UNKNOWN_TEST) {
+ gpr_log(GPR_ERROR, "Unknown test case: %s", test_name.c_str());
+ is_success = false;
+ break;
+ }
+
+ tests.emplace_back(std::make_pair(test_case, weight));
+ }
+
+ return is_success;
+}
+
+// For debugging purposes
+void LogParameterInfo(const vector<string>& addresses,
+ const vector<pair<TestCaseType, int>>& tests) {
+ gpr_log(GPR_INFO, "server_addresses: %s", FLAGS_server_addresses.c_str());
+ gpr_log(GPR_INFO, "test_cases : %s", FLAGS_test_cases.c_str());
+ gpr_log(GPR_INFO, "sleep_duration_ms: %d", FLAGS_sleep_duration_ms);
+ gpr_log(GPR_INFO, "test_duration_secs: %d", FLAGS_test_duration_secs);
+
+ int num = 0;
+ for (auto it = addresses.begin(); it != addresses.end(); it++) {
+ gpr_log(GPR_INFO, "%d:%s", ++num, it->c_str());
+ }
+
+ num = 0;
+ for (auto it = tests.begin(); it != tests.end(); it++) {
+ TestCaseType test_case = it->first;
+ int weight = it->second;
+ gpr_log(GPR_INFO, "%d. TestCaseType: %d, Weight: %d", ++num, test_case,
+ weight);
+ }
+}
+
+int main(int argc, char** argv) {
+ grpc::testing::InitTest(&argc, &argv, true);
+
+ srand(time(NULL));
+
+ // Parse the server addresses
+ vector<string> server_addresses;
+ ParseCommaDelimitedString(FLAGS_server_addresses, server_addresses);
+
+ // Parse test cases and weights
+ if (FLAGS_test_cases.length() == 0) {
+ gpr_log(GPR_INFO, "Not running tests. The 'test_cases' string is empty");
+
+ // TODO(sreek): stress_tests is currently being run by run_tests.py in
+ // jenkins. There does not seem to be a straightforward way to skip this.
+ // So, for now, return 0 (i.e success) to keep jenkins build happy. Moreover
+ // we don't want to run stress_tests (for now) in jenkins anyway.
+ // Once we figure out a good way to skip this tests in run_tests.py, I will
+ // change this to 'return 1'
+ return 0;
+ }
+
+ vector<pair<TestCaseType, int>> tests;
+ if (!ParseTestCasesString(FLAGS_test_cases, tests)) {
+ gpr_log(GPR_ERROR, "Error in parsing test cases string %s ",
+ FLAGS_test_cases.c_str());
+ return 1;
+ }
+
+ LogParameterInfo(server_addresses, tests);
+
+ WeightedRandomTestSelector test_selector(tests);
+
+ gpr_log(GPR_INFO, "Starting test(s)..");
+
+ vector<thread> test_threads;
+ int thread_idx = 0;
+ for (auto it = server_addresses.begin(); it != server_addresses.end(); it++) {
+ StressTestInteropClient* client = new StressTestInteropClient(
+ ++thread_idx, *it, test_selector, FLAGS_test_duration_secs,
+ FLAGS_sleep_duration_ms);
+
+ test_threads.emplace_back(
+ thread(&StressTestInteropClient::MainLoop, client));
+ }
+
+ for (auto it = test_threads.begin(); it != test_threads.end(); it++) {
+ it->join();
+ }
+
+ return 0;
+}
diff --git a/tools/jenkins/run_interop.sh b/tools/jenkins/run_interop.sh
index b1cf7b5748..5dd477ed77 100755
--- a/tools/jenkins/run_interop.sh
+++ b/tools/jenkins/run_interop.sh
@@ -34,4 +34,4 @@ set -ex
# Enter the gRPC repo root
cd $(dirname $0)/../..
-tools/run_tests/run_interop_tests.py -l all -s all --cloud_to_prod --cloud_to_prod_auth --use_docker -t -j 8 $@ || true
+tools/run_tests/run_interop_tests.py -l all -s all --cloud_to_prod --cloud_to_prod_auth --use_docker -t -j 12 $@ || true
diff --git a/tools/run_tests/jobset.py b/tools/run_tests/jobset.py
index a9c96a6c95..8343441a18 100755
--- a/tools/run_tests/jobset.py
+++ b/tools/run_tests/jobset.py
@@ -272,6 +272,8 @@ class Job(object):
message('TIMEOUT_FLAKE', self._spec.shortname, stdout, do_newline=True)
self._timeout_retries += 1
self.result.retries = self._timeout_retries + self._retries
+ if self._spec.kill_handler:
+ self._spec.kill_handler(self)
self._process.terminate()
self.start()
else:
diff --git a/tools/run_tests/run_interop_tests.py b/tools/run_tests/run_interop_tests.py
index c2705c8cab..a71ebc6b35 100755
--- a/tools/run_tests/run_interop_tests.py
+++ b/tools/run_tests/run_interop_tests.py
@@ -344,6 +344,11 @@ def add_auth_options(language, test_case, cmdline, env):
def _job_kill_handler(job):
if job._spec.container_name:
dockerjob.docker_kill(job._spec.container_name)
+ # When the job times out and we decide to kill it,
+ # we need to wait a before restarting the job
+ # to prevent "container name already in use" error.
+ # TODO(jtattermusch): figure out a cleaner way to to this.
+ time.sleep(2)
def cloud_to_prod_jobspec(language, test_case, docker_image=None, auth=False):
@@ -378,7 +383,7 @@ def cloud_to_prod_jobspec(language, test_case, docker_image=None, auth=False):
cwd=cwd,
environ=environ,
shortname='%s:%s:%s' % (suite_name, language, test_case),
- timeout_seconds=2*60,
+ timeout_seconds=90,
flake_retries=5 if args.allow_flakes else 0,
timeout_retries=2 if args.allow_flakes else 0,
kill_handler=_job_kill_handler)
@@ -414,7 +419,7 @@ def cloud_to_cloud_jobspec(language, test_case, server_name, server_host,
environ=environ,
shortname='cloud_to_cloud:%s:%s_server:%s' % (language, server_name,
test_case),
- timeout_seconds=2*60,
+ timeout_seconds=90,
flake_retries=5 if args.allow_flakes else 0,
timeout_retries=2 if args.allow_flakes else 0,
kill_handler=_job_kill_handler)
diff --git a/tools/run_tests/run_node.sh b/tools/run_tests/run_node.sh
index d0a74e7e1e..fff579fab8 100755
--- a/tools/run_tests/run_node.sh
+++ b/tools/run_tests/run_node.sh
@@ -51,5 +51,5 @@ then
echo '<html><head><meta http-equiv="refresh" content="0;URL=lcov-report/index.html"></head></html>' > \
../reports/node_coverage/index.html
else
- ./node_modules/mocha/bin/mocha --timeout 8000 src/node/test
+ JUNIT_REPORT_PATH=src/node/reports.xml JUNIT_REPORT_STACK=1 ./node_modules/.bin/mocha --reporter mocha-jenkins-reporter src/node/test || true
fi
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index 8c41be8473..0f4e4874b7 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -1672,6 +1672,38 @@
"gpr_test_util",
"grpc",
"grpc++",
+ "grpc++_test_config",
+ "grpc++_test_util",
+ "grpc_test_util"
+ ],
+ "headers": [
+ "test/cpp/interop/client_helper.h",
+ "test/cpp/interop/interop_client.h",
+ "test/cpp/interop/stress_interop_client.h",
+ "test/proto/empty.grpc.pb.h",
+ "test/proto/empty.pb.h",
+ "test/proto/messages.grpc.pb.h",
+ "test/proto/messages.pb.h",
+ "test/proto/test.grpc.pb.h",
+ "test/proto/test.pb.h"
+ ],
+ "language": "c++",
+ "name": "stress_test",
+ "src": [
+ "test/cpp/interop/client_helper.h",
+ "test/cpp/interop/interop_client.cc",
+ "test/cpp/interop/interop_client.h",
+ "test/cpp/interop/stress_interop_client.cc",
+ "test/cpp/interop/stress_interop_client.h",
+ "test/cpp/interop/stress_test.cc"
+ ]
+ },
+ {
+ "deps": [
+ "gpr",
+ "gpr_test_util",
+ "grpc",
+ "grpc++",
"grpc++_test_util",
"grpc_test_util",
"qps"
diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json
index 2f91844f44..b03e952c89 100644
--- a/tools/run_tests/tests.json
+++ b/tools/run_tests/tests.json
@@ -1621,6 +1621,24 @@
"ci_platforms": [
"linux",
"mac",
+ "posix",
+ "windows"
+ ],
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c++",
+ "name": "stress_test",
+ "platforms": [
+ "linux",
+ "mac",
+ "posix",
+ "windows"
+ ]
+ },
+ {
+ "ci_platforms": [
+ "linux",
+ "mac",
"posix"
],
"exclude_configs": [],
diff --git a/vsprojects/coapp/openssl/.gitignore b/vsprojects/coapp/openssl/.gitignore
new file mode 100644
index 0000000000..1482603721
--- /dev/null
+++ b/vsprojects/coapp/openssl/.gitignore
@@ -0,0 +1,10 @@
+*.nupkg
+*.def
+/nuget.exe
+/packages
+/Debug
+/Release
+/output
+/x64
+/dest
+
diff --git a/vsprojects/coapp/openssl/README.md b/vsprojects/coapp/openssl/README.md
new file mode 100644
index 0000000000..e15831c67f
--- /dev/null
+++ b/vsprojects/coapp/openssl/README.md
@@ -0,0 +1,37 @@
+OpenSSL Native Nuget package
+-------------------------
+
+Uses [CoApp](http://coapp.org/) project to build the zlib package.
+
+Prerequisites
+-------------
+Multiple versions of VS installed to be able to build all the targets:
+* Visual Studio 2013
+* Visual Studio 2010 (you might need SP1 to prevent LNK1123 error)
+
+ActivePerl
+
+CoApp toolkit: http://downloads.coapp.org/files/CoApp.Tools.Powershell.msi
+
+More details on installation: http://coapp.org/tutorials/installation.html
+
+Building
+--------
+
+Build all flavors of openssl library using the provided batch file.
+```
+buildall.bat
+```
+
+Then, create NuGet package using powershell (you'll need the CoApp toolkit installed):
+```
+[THIS_DIRECTORY]> Write-NuGetPackage grpc.dependencies.openssl.autopkg
+```
+
+This will create three NuGet packages:
+* the main dev package
+* the redistributable package that contains just the binaries and no headers
+* the symbols package (debug symbols)
+
+Later, you can push the package to NuGet.org repo.
+Attention: before pusing the resulting nuget package to public nuget repo, you have to be 100% sure it works correctly - there’s no way how to delete or update an already existing package. \ No newline at end of file
diff --git a/vsprojects/coapp/openssl/buildall.bat b/vsprojects/coapp/openssl/buildall.bat
new file mode 100644
index 0000000000..70a7d1602d
--- /dev/null
+++ b/vsprojects/coapp/openssl/buildall.bat
@@ -0,0 +1,59 @@
+
+rem Restore using NuGet dependencies (Download NuGet from nuget.org and put it in this directory first)
+nuget restore || goto eof:
+
+
+setlocal
+rem First do a bit of hacking to make sure we have headers ready in openssl's inc32 directory
+cd ..\..\..\third_party\openssl
+call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86
+perl Configure no-asm VC-WIN32 || goto :eof
+perl util\mkfiles.pl >MINFO || goto :eof
+perl util\mk1mf.pl no-asm VC-WIN32 >ms\nt.mak || goto :eof
+mkdir inc32\openssl
+mkdir tmp32
+nmake -f ms\nt.mak headers || goto :eof
+endlocal
+
+setlocal
+call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" amd64
+call :build x64 Release v120 || goto :eof
+call :build x64 Debug v120 || goto :eof
+endlocal
+
+setlocal
+call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86
+call :build Win32 Release v120 || goto :eof
+call :build Win32 Debug v120 || goto :eof
+endlocal
+
+rem setlocal
+rem call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" amd64
+rem call :build x64 Release v110 || goto :eof
+rem call :build x64 Debug v110 || goto :eof
+rem endlocal
+
+rem setlocal
+rem call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86
+rem call :build Win32 Release v110 || goto :eof
+rem call :build Win32 Debug v110 || goto :eof
+rem endlocal
+
+rem setlocal
+rem call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" amd64
+rem call :build x64 Release v100 || goto :eof
+rem call :build x64 Debug v100 || goto :eof
+rem endlocal
+
+setlocal
+call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
+call :build Win32 Release v100 || goto :eof
+call :build Win32 Debug v100 || goto :eof
+endlocal
+
+:build
+msbuild /P:Platform=%1 /P:Configuration=%2 /P:PlatformToolset=%3 /P:UsesConfigurationType=dynamic /P:ConfigurationType=DynamicLibrary .\openssl.sln || goto :eof
+msbuild /P:Platform=%1 /P:Configuration=%2 /P:PlatformToolset=%3 /P:UsesConfigurationType=static /P:ConfigurationType=StaticLibrary .\openssl.sln || goto :eof
+goto :eof
+
+
diff --git a/vsprojects/coapp/openssl/grpc.dependencies.openssl.autopkg b/vsprojects/coapp/openssl/grpc.dependencies.openssl.autopkg
new file mode 100644
index 0000000000..00ee825f3c
--- /dev/null
+++ b/vsprojects/coapp/openssl/grpc.dependencies.openssl.autopkg
@@ -0,0 +1,101 @@
+@import @"version.inc";
+
+#define {
+ package-id = "grpc.dependencies.openssl";
+}
+
+nuget {
+ // the nuspec file metadata. Gets created/updated on build
+ nuspec {
+ id = ${package-id};
+ version : ${package-version};
+ title: gRPC Native Dependency: OpenSSL;
+ authors: {Mark J. Cox, Ralf S. Engelschall, Dr. Stephen Henson, Ben Laurie, Garrett Serack, Tim Rogers};
+ owners: {Jan Tattermusch};
+ licenseUrl: "http://www.openssl.org/source/license.html";
+ projectUrl: "http://github.com/grpc/grpc";
+ iconUrl: "http://openssl.com/images/openssl-logo.png";
+ requireLicenseAcceptance:false;
+ summary: "An OpenSSL library";
+ description: @"Native OpenSSL library.
+ OpenSSL homepage: http://www.openssl.org";
+ releaseNotes: "Release of OpenSSL 1.0.2a libraries.";
+ copyright: Copyright 2015;
+ tags: { openssl, native, CoApp };
+
+ };
+
+ dependencies {
+ packages : {
+ grpc.dependencies.zlib/1.2.8.9
+ };
+ }
+
+ // the files that go into the content folders
+ // (inserted into the nuspec file)
+ files {
+
+ // .targets file that are applied when redist package is installed from a managed project.
+ managed_build: {
+ #output {
+ package = redist;
+ };
+ #destination = \build\portable-net45;
+ "managed_targets\${package-id}.redist.targets";
+ "managed_targets\${package-id}.redist.props";
+ };
+
+ nestedInclude: {
+ #destination = "${d_include}\openssl";
+ #excludes : { ..\..\..\third_party\openssl\inc32\openssl\opensslconf.h };
+ "..\..\..\third_party\openssl\inc32\openssl\*";
+ };
+
+ // TODO(jtattermusch): Visual Studio 2010 and 2012 Express (v100 and v110 toolsets) don't support x64,
+ // so while generating the package, you will get a warning that corresponding files are missing
+ // (and the resulting package will be somewhat incomplete).
+ ("v100,v120", "Win32,x64", "release,debug", "Dynamic,Static") => {
+ [${0},${1},${2},${3}] {
+ lib: { .\output\${0}\${1}\${2}\${3}\libeay32.lib;
+ .\output\${0}\${1}\${2}\${3}\ssleay32.lib };
+
+ source: {
+ #destination = ${d_src}\openssl;
+ .\output\${0}\${1}\${2}\${3}\include\openssl\opensslconf.h
+ };
+ };
+ };
+ ("v100,v120", "Win32,x64", "release,debug", "Dynamic") => {
+ [${0},${1},${2},${3}] {
+ bin: { .\output\${0}\${1}\${2}\${3}\libeay32.dll;
+ .\output\${0}\${1}\${2}\${3}\ssleay32.dll };
+ symbols: { .\output\${0}\${1}\${2}\${3}\libeay32.pdb;
+ .\output\${0}\${1}\${2}\${3}\ssleay32.pdb };
+ };
+ };
+
+ };
+
+ // the VC++ .props file that gets generated and inserted into the ${d_content} folder
+ props {
+ PropertyGroup {
+ CallingConvention-zlib = cdecl;
+ }
+
+ };
+
+ // the VC++ .targets file that gets generated and inserted into the ${d_content} folder
+ targets {
+ // every configuration needs to reference the include directories.
+ Includes += ${pkg_root}${d_include};
+ // Defines += HAS_ZLIB;
+
+ ("v100,v110,v120", "Win32,x64", "release,debug", "Dynamic,Static") => {
+ [${0},${1},${2},${3}] {
+ Includes += ${pkg_root}${d_include};
+ };
+ };
+
+ };
+}
+
diff --git a/vsprojects/coapp/openssl/libeay32.vcxproj b/vsprojects/coapp/openssl/libeay32.vcxproj
new file mode 100644
index 0000000000..0ee97262d5
--- /dev/null
+++ b/vsprojects/coapp/openssl/libeay32.vcxproj
@@ -0,0 +1,828 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup>
+ <OpenSslPath>..\..\..\third_party\openssl</OpenSslPath>
+ </PropertyGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{BE42CA67-7C48-4882-BE59-111CB41142BE}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>$(LibName)</RootNamespace>
+ <RestorePackages>true</RestorePackages>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Label="ConfigurationSettings">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ <CallingConvention>Cdecl</CallingConvention>
+ <NoASM>true</NoASM>
+ <OutputPath>output\$(PlatformToolset)\$(Platform)\$(Configuration)\$(UsesConfigurationType)\</OutputPath>
+ <OutDir>$(OutputPath)</OutDir>
+ </PropertyGroup>
+ <Import Project="$(CoAppEtcDirectory)vcxproj.inc" Condition="Exists('$(CoAppEtcDirectory)vcxproj.inc')" />
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <Import Condition="exists('.\packages\grpc.dependencies.zlib.1.2.8.9\build\native\grpc.dependencies.zlib.props')" Project=".\packages\grpc.dependencies.zlib.1.2.8.9\build\native\grpc.dependencies.zlib.props" />
+ <Import Condition="exists('.\packages\grpc.dependencies.zlib.redist.1.2.8.9\build\native\grpc.dependencies.zlib.redist.props')" Project=".\packages\grpc.dependencies.zlib.redist.1.2.8.9\build\native\grpc.dependencies.zlib.redist.props" />
+ <ImportGroup Label="ExtensionSettings" />
+ <ImportGroup Label="PropertySheets">
+ <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <LinkIncremental Condition="'$(Configuration)'=='Release'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)'=='Debug'">true</LinkIncremental>
+ <CallingConvention-zlib>$(CallingConvention)</CallingConvention-zlib>
+ <Linkage-zlib>$(UsesConfigurationType)</Linkage-zlib>
+ </PropertyGroup>
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <AdditionalIncludeDirectories>$(OpenSslPath);$(OpenSslPath)\inc32;$(OpenSslPath)\crypto;$(OpenSslPath)\crypto\asn1;$(OpenSslPath)\crypto\evp;$(OpenSslPath)\crypto\md2;$(OpenSslPath)\crypto\modes;$(OpenSslPath)\crypto\store;$(OpenSslPath)\include;$(OutDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <BufferSecurityCheck>true</BufferSecurityCheck>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;L_ENDIAN;MK1MF_BUILD;WIN32_LEAN_AND_MEAN;OPENSSL_THREADS;ZLIB;OPENSSL_SYSNAME_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>OPENSSL_BUILD_SHLIBCRYPTO;OPENSSL_NO_IDEA;OPENSSL_NO_RC5;OPENSSL_NO_MD2;OPENSSL_NO_KRB5;OPENSSL_NO_JPAKE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>DSO_WIN32;UNICODE;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(ConfigurationType)'=='DynamicLibrary'">_WINDLL;_REENTRANT;OPENSSL_NO_STATIC_ENGINE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(ConfigurationType)'=='StaticLibrary'">OPENSSL_NO_DYNAMIC_ENGINE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Linkage-zlib)'=='dynamic'">ZLIB_SHARED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(NoASM)'=='true'">OPENSSL_NO_ASM;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <CallingConvention>%(CallingConvention)</CallingConvention>
+ <StringPooling>true</StringPooling>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TreatWarningAsError>false</TreatWarningAsError>
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
+ <IgnoreSpecificDefaultLibraries>zlib$(OutNameSuffix).lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+ </Lib>
+ <Link>
+ <AllowIsolation>true</AllowIsolation>
+ <DataExecutionPrevention>true</DataExecutionPrevention>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <RandomizedBaseAddress>true</RandomizedBaseAddress>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <AdditionalDependencies>ws2_32.lib;crypt32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <ModuleDefinitionFile>.\libeay32.def</ModuleDefinitionFile>
+ </Link>
+ <ResourceCompile>
+ <AdditionalIncludeDirectories>$(OpenSslPath);$(OpenSslPath)\inc32;$(OpenSslPath)\crypto;$(OpenSslPath)\crypto\asn1;$(OpenSslPath)\crypto\evp;$(OpenSslPath)\crypto\md2;$(OpenSslPath)\crypto\modes;$(OpenSslPath)\crypto\store;$(OpenSslPath)\include;$(OutDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;L_ENDIAN;MK1MF_BUILD;WIN32_LEAN_AND_MEAN;OPENSSL_THREADS;ZLIB;OPENSSL_SYSNAME_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>OPENSSL_BUILD_SHLIBCRYPTO;OPENSSL_NO_IDEA;OPENSSL_NO_RC5;OPENSSL_NO_MD2;OPENSSL_NO_KRB5;OPENSSL_NO_JPAKE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>DSO_WIN32;UNICODE;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(ConfigurationType)'=='DynamicLibrary'">_WINDLL;_REENTRANT;OPENSSL_NO_STATIC_ENGINE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(ConfigurationType)'=='StaticLibrary'">OPENSSL_NO_DYNAMIC_ENGINE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Linkage-zlib)'=='dynamic'">ZLIB_SHARED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>OPENSSL_NO_ASM;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>CRYPTO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
+ <ClCompile>
+ <AdditionalOptions>/Gs0 %(AdditionalOptions)</AdditionalOptions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <ExceptionHandling>Sync</ExceptionHandling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <OmitFramePointers>false</OmitFramePointers>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>DEBUG;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>DEBUG;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
+ <ClCompile>
+ <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <ExceptionHandling>false</ExceptionHandling>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <OmitFramePointers>true</OmitFramePointers>
+ <Optimization>Full</Optimization>
+ <RuntimeTypeInfo>false</RuntimeTypeInfo>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ <ResourceCompile>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+ <ClCompile>
+ <PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MultiThreadedDebug</RuntimeLibrary>
+ <RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MultiThreaded</RuntimeLibrary>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+ <ClCompile>
+ <PreprocessorDefinitions>WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">MultiThreadedDebug</RuntimeLibrary>
+ <RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MultiThreaded</RuntimeLibrary>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <None Include="openssl.gyp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="$(OpenSslPath)\ms\uplink.c" >
+ <ExcludedFromBuild>true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(OpenSslPath)\crypto\cversion.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ex_data.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\mem_clr.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\mem_dbg.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\o_dir.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\o_fips.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\o_time.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cryptlib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\o_str.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\uid.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ebcdic.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\mem.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\o_init.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\fips_ers.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cpt_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\krb5\krb5_asn.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rand\rand_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rand\rand_os2.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rand\rand_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rand\rand_win.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rand\rand_egd.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rand\rand_nw.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rand\randfile.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rand\rand_unix.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rand\md_rand.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_skey.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_sxnet.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_ocsp.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_ncons.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\pcy_node.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_bcons.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_pci.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\pcy_data.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_ia5.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_utl.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_cpols.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_conf.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_akeya.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_pku.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_addr.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_int.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\pcy_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_pcons.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_genn.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_purp.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\pcy_tree.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_enum.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_pmaps.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_alt.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_bitst.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_crld.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\pcy_map.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_info.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_asid.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_prn.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_akey.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_pcia.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\pcy_cache.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_extku.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509v3\v3_scts.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\txt_db\txt_db.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ecdh\ech_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ecdh\ech_key.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ecdh\ech_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ecdh\ech_ossl.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ecdh\ech_kdf.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\idea\i_cfb64.c" >
+ <ExcludedFromBuild>true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(OpenSslPath)\crypto\idea\i_skey.c" >
+ <ExcludedFromBuild>true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(OpenSslPath)\crypto\idea\i_cbc.c" >
+ <ExcludedFromBuild>true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(OpenSslPath)\crypto\idea\i_ofb64.c" >
+ <ExcludedFromBuild>true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(OpenSslPath)\crypto\idea\i_ecb.c" >
+ <ExcludedFromBuild>true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs12\p12_attr.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs12\p12_asn.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs12\p12_utl.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs12\p12_add.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs12\p12_crt.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs12\p12_key.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs12\p12_crpt.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs12\p12_p8d.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs12\pk12err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs12\p12_decr.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs12\p12_mutl.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs12\p12_kiss.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs12\p12_p8e.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs12\p12_init.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs12\p12_npas.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\seed\seed_ecb.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\seed\seed_cbc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\seed\seed_ofb.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\seed\seed.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\seed\seed_cfb.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\conf\conf_mod.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\conf\conf_def.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\conf\conf_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\conf\conf_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\conf\conf_mall.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\conf\conf_sap.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\conf\conf_api.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ocsp\ocsp_ext.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ocsp\ocsp_asn.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ocsp\ocsp_cl.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ocsp\ocsp_vfy.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ocsp\ocsp_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ocsp\ocsp_srv.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ocsp\ocsp_ht.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ocsp\ocsp_prn.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ocsp\ocsp_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\sha\sha256.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\sha\sha1_one.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\sha\sha512.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\sha\sha1dgst.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\sha\sha_dgst.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\sha\sha_one.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\mdc2\mdc2dgst.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\mdc2\mdc2_one.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\camellia\cmll_ctr.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\camellia\cmll_misc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\camellia\cmll_cfb.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\camellia\cmll_ofb.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\camellia\cmll_ecb.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\camellia\camellia.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\camellia\cmll_utl.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\camellia\cmll_cbc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ts\ts_req_utils.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ts\ts_rsp_verify.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ts\ts_rsp_print.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ts\ts_rsp_sign.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ts\ts_conf.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ts\ts_verify_ctx.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ts\ts_asn1.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ts\ts_rsp_utils.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ts\ts_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ts\ts_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ts\ts_req_print.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\evp_asn1.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\x_sig.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\n_pkey.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_object.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\d2i_pr.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\tasn_new.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\x_attrib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\x_info.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\t_spki.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\x_long.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_time.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\tasn_typ.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\asn1_gen.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_utctm.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\tasn_prn.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\x_bignum.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_bool.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\t_bitst.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\asn_pack.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\x_algor.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\t_crl.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\x_pkey.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_bytes.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\t_req.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_set.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\bio_asn1.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_utf8.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\asn1_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\asn_mime.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\x_x509.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_enum.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_strex.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_sign.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_int.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_strnid.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\nsseq.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\i2d_pu.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\tasn_dec.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\p5_pbe.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_dup.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\x_nx509.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\t_pkey.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\x_exten.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\x_x509a.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_octet.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\p8_pkey.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_mbstr.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\f_string.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\d2i_pu.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\tasn_fre.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\x_crl.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_digest.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\f_int.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_i2d_fp.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\asn1_par.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\f_enum.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\t_x509a.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_d2i_fp.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\tasn_utl.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_gentm.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\ameth_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\asn1_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_bitstr.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_print.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\x_req.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\p5_pbev2.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_type.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\x_spki.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\bio_ndef.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\a_verify.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\x_pubkey.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\x_name.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\i2d_pr.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\asn_moid.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\tasn_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\x_val.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\asn1\t_x509.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pem\pem_pk8.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pem\pem_info.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pem\pem_seal.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pem\pem_x509.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pem\pem_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pem\pem_oth.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pem\pem_all.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pem\pem_pkey.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pem\pem_xaux.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pem\pvkfmt.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pem\pem_sign.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pem\pem_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\lhash\lh_stats.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\lhash\lhash.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ecdsa\ecs_sign.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ecdsa\ecs_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ecdsa\ecs_ossl.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ecdsa\ecs_asn1.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ecdsa\ecs_vrf.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ecdsa\ecs_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\store\str_err.c">
+ <ExcludedFromBuild>true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(OpenSslPath)\crypto\store\str_mem.c">
+ <ExcludedFromBuild>true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(OpenSslPath)\crypto\store\str_lib.c">
+ <ExcludedFromBuild>true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(OpenSslPath)\crypto\store\str_meth.c">
+ <ExcludedFromBuild>true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(OpenSslPath)\crypto\dsa\dsa_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dsa\dsa_asn1.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dsa\dsa_key.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dsa\dsa_gen.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dsa\dsa_pmeth.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dsa\dsa_vrf.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dsa\dsa_ossl.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dsa\dsa_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dsa\dsa_ameth.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dsa\dsa_prn.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dsa\dsa_depr.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dsa\dsa_sign.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\eng_openssl.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\eng_list.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\tb_rsa.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\tb_cipher.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\tb_asnmth.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\eng_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\eng_ctrl.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\tb_dh.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\eng_cryptodev.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\eng_table.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\eng_dyn.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\eng_pkey.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\tb_dsa.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\eng_fat.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\tb_store.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\tb_digest.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\eng_init.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\tb_pkmeth.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\eng_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\tb_rand.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\eng_all.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\tb_ecdh.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\eng_rdrand.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\eng_cnf.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\engine\tb_ecdsa.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bio\bio_cb.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bio\b_print.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bio\bss_bio.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bio\bss_sock.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bio\bf_buff.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bio\bss_mem.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bio\bf_null.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bio\bss_acpt.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bio\bss_file.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bio\bio_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bio\bio_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bio\bss_null.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bio\bss_log.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bio\b_sock.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bio\bss_fd.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bio\b_dump.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bio\bf_nbio.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bio\bss_dgram.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bio\bss_conn.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bf\bf_ecb.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bf\bf_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bf\bf_skey.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bf\bf_cfb64.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bf\bf_ofb64.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\whrlpool\wp_dgst.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\whrlpool\wp_block.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dh\dh_ameth.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dh\dh_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dh\dh_depr.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dh\dh_check.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dh\dh_key.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dh\dh_asn1.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dh\dh_pmeth.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dh\dh_prn.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dh\dh_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dh\dh_gen.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dh\dh_kdf.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dh\dh_rfc5114.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509_req.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509_txt.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\by_file.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509_obj.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509_vpm.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509_d2.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509_set.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509spki.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x_all.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509type.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509_def.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509_vfy.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509_cmp.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509_att.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509_v3.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509_lu.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509_ext.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509_r2x.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509rset.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\by_dir.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509name.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509_trs.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\x509\x509cset.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\comp\comp_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\comp\c_zlib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\comp\c_rle.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\comp\comp_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_gf2m.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_add.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_blind.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_kron.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_nist.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_gcd.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_word.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_mont.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_mod.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_exp2.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_exp.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_print.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_prime.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_mpi.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_sqrt.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_mul.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_asm.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_x931p.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_recp.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_const.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_ctx.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_shift.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_sqr.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_depr.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_rand.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\bn\bn_div.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rsa\rsa_depr.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rsa\rsa_pk1.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rsa\rsa_pmeth.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rsa\rsa_ssl.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rsa\rsa_crpt.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rsa\rsa_asn1.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rsa\rsa_saos.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rsa\rsa_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rsa\rsa_gen.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rsa\rsa_pss.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rsa\rsa_none.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rsa\rsa_null.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rsa\rsa_x931.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rsa\rsa_eay.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rsa\rsa_sign.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rsa\rsa_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rsa\rsa_ameth.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rsa\rsa_oaep.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rsa\rsa_chk.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rsa\rsa_prn.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pqueue\pqueue.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\objects\o_names.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\objects\obj_xref.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\objects\obj_dat.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\objects\obj_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\objects\obj_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\buffer\buffer.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\buffer\buf_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\buffer\buf_str.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ecp_oct.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ecp_nistp224.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ecp_nist.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ecp_nistp256.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ec_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ec2_mult.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ec_key.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ec_curve.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ec_ameth.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\eck_prn.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ec_oct.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ec2_smpl.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ec_check.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ec2_oct.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ecp_smpl.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ec_asn1.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ecp_nistputil.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ec_cvt.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ec_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ec_pmeth.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ec_mult.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ecp_mont.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ecp_nistp521.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ec\ec_print.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\md2\md2_dgst.c">
+ <ExcludedFromBuild>true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(OpenSslPath)\crypto\md2\md2_one.c">
+ <ExcludedFromBuild>true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(OpenSslPath)\crypto\dso\dso_vms.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dso\dso_beos.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dso\dso_dl.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dso\dso_null.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dso\dso_openssl.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dso\dso_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dso\dso_dlfcn.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dso\dso_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\dso\dso_win32.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\stack\stack.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\md4\md4_dgst.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\md4\md4_one.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\md5\md5_one.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\md5\md5_dgst.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cmac\cm_ameth.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cmac\cm_pmeth.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cmac\cmac.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\aes\aes_wrap.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\aes\aes_cbc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\aes\aes_ige.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\aes\aes_ecb.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\aes\aes_cfb.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\aes\aes_ctr.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\aes\aes_misc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\aes\aes_ofb.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\aes\aes_core.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ripemd\rmd_dgst.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ripemd\rmd_one.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\modes\cbc128.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\modes\xts128.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\modes\ofb128.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\modes\ccm128.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\modes\cfb128.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\modes\ctr128.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\modes\cts128.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\modes\gcm128.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\modes\wrap128.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\err\err_all.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\err\err_prn.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\err\err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rc4\rc4_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rc4\rc4_skey.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rc4\rc4_utl.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\set_key.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\des_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\cfb64enc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\cbc_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\ofb_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\enc_writ.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\fcrypt_b.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\read2pwd.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\rpc_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\fcrypt.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\ecb3_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\cbc_cksm.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\cfb_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\xcbc_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\ecb_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\enc_read.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\des_old.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\ofb64ede.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\str2key.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\cfb64ede.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\ofb64enc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\des_old2.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\pcbc_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\qud_cksm.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\rand_key.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\des\ede_cbcm_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rc2\rc2ofb64.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rc2\rc2cfb64.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rc2\rc2_cbc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rc2\rc2_ecb.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\rc2\rc2_skey.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs7\pk7_asn1.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs7\pkcs7err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs7\pk7_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs7\pk7_mime.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs7\pk7_attr.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs7\pk7_smime.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs7\bio_pk7.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\pkcs7\pk7_doit.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cast\c_ofb64.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cast\c_skey.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cast\c_cfb64.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cast\c_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cast\c_ecb.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\srp\srp_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\srp\srp_vfy.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ui\ui_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ui\ui_compat.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ui\ui_util.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ui\ui_openssl.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\ui\ui_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\bio_b64.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\evp_cnf.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\m_wp.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\evp_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\bio_ok.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\m_dss1.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\p_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\m_md4.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\e_bf.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\e_rc4_hmac_md5.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\p_sign.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\c_all.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\p_seal.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\evp_pkey.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\m_ecdsa.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\e_aes_cbc_hmac_sha1.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\m_sha.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\p5_crpt2.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\e_seed.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\m_sha1.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\e_old.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\m_dss.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\e_cast.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\e_des.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\m_ripemd.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\pmeth_gn.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\e_null.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\e_des3.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\e_rc2.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\e_rc4.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\bio_md.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\m_md5.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\p_open.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\m_mdc2.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\evp_pbe.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\c_allc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\p5_crpt.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\p_verify.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\m_null.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\evp_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\evp_acnf.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\e_xcbc_d.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\names.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\e_idea.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\encode.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\e_camellia.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\m_sigver.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\evp_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\p_dec.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\bio_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\digest.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\evp_key.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\e_aes.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\p_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\pmeth_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\m_md2.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\c_alld.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\e_rc5.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\e_aes_cbc_hmac_sha256.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\evp\pmeth_fn.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cms\cms_io.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cms\cms_cd.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cms\cms_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cms\cms_att.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cms\cms_asn1.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cms\cms_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cms\cms_env.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cms\cms_smime.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cms\cms_dd.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cms\cms_pwri.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cms\cms_ess.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cms\cms_sd.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cms\cms_err.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\cms\cms_kari.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\hmac\hm_pmeth.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\hmac\hmac.c" />
+ <ClCompile Include="$(OpenSslPath)\crypto\hmac\hm_ameth.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="$(OpenSslPath)\ms\version32.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="packages.config" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <Import Condition="exists('.\packages\grpc.dependencies.zlib.1.2.8.9\build\native\grpc.dependencies.zlib.targets')" Project=".\packages\grpc.dependencies.zlib.1.2.8.9\build\native\grpc.dependencies.zlib.targets" />
+ <Import Condition="exists('.\packages\grpc.dependencies.zlib.redist.1.2.8.9\build\native\grpc.dependencies.zlib.redist.targets')" Project=".\packages\grpc.dependencies.zlib.redist.1.2.8.9\build\native\grpc.dependencies.zlib.redist.targets" />
+ <ImportGroup Label="ExtensionTargets" />
+ <PropertyGroup>
+ <Build-Perl-zlib Condition="'$(Linkage-zlib)'=='dynamic'">zlib-dynamic</Build-Perl-zlib>
+ <Build-Perl-zlib Condition="'$(Linkage-zlib)'=='static'">zlib</Build-Perl-zlib>
+ <Build-Perl-asm Condition="'$(NoASM)'=='true'">no-asm</Build-Perl-asm>
+ <Build-Perl-asm Condition="'$(NoASM)'=='false'"></Build-Perl-asm>
+ <Build-Perl-platform Condition="'$(Platform)'=='Win32'">VC-WIN32</Build-Perl-platform>
+ <Build-Perl-platform Condition="'$(Platform)'=='x64'">VC-WIN64A</Build-Perl-platform>
+ <Build-Perl-dll Condition="'$(ConfigurationType)'=='DynamicLibrary'">shared</Build-Perl-dll>
+ <Build-Perl-dll Condition="'$(ConfigurationType)'=='StaticLibrary'">no-shared</Build-Perl-dll>
+ </PropertyGroup>
+ <Target Name="PerlDefs">
+ <Exec
+ Command="
+ perl Configure no-rc5 no-idea enable-mdc2 threads $(Build-Perl-zlib) $(Build-Perl-dll) $(Build-Perl-asm) $(Build-Perl-platform)
+ perl util\mkfiles.pl >MINFO
+ perl .\util\mkdef.pl 32 libeay >..\..\vsprojects\coapp\openssl\libeay32.def
+ "
+ WorkingDirectory="$(MSBuildThisFileDirectory)$(OpenSslPath)\" />
+ <Copy
+ SourceFiles="$(MSBuildThisFileDirectory)$(OpenSslPath)\crypto\opensslconf.h"
+ DestinationFolder="$(OutDir)Include\openssl\" />
+ </Target>
+ <PropertyGroup>
+ <AA1 Condition="( $(PlatformToolset.ToLower().IndexOf('v110')) &gt; -1 Or '$(PlatformToolset.ToLower())' == 'windowskernelmodedriver8.0' Or '$(PlatformToolset.ToLower())' == 'windowsapplicationfordrivers8.0' Or '$(PlatformToolset.ToLower())' == 'windowsusermodedriver8.0' )">true</AA1>
+ <AA2 Condition="'$(Platform.ToLower())' == 'win32'">true</AA2>
+ <AA3 Condition="( $(Configuration.ToLower().IndexOf('debug')) == -1 )">true</AA3>
+ <AA4 Condition="'$(Linkage-zlib.ToLower())' == 'dynamic'">true</AA4>
+ <AA5 Condition="'$(CallingConvention-zlib.ToLower())' == 'cdecl'">true</AA5>
+ </PropertyGroup>
+ <Target Name="Info2" BeforeTargets="Build">
+ <Message Text="*******************************************************************************" Importance="high" />
+ <Message Text="* PlatformToolset : '$(AA1)'" Importance="high" />
+ <Message Text="* Platform : '$(AA2)'" Importance="high" />
+ <Message Text="* Configuration : '$(AA3)'" Importance="high" />
+ <Message Text="* Linkage : '$(AA4)'" Importance="high" />
+ <Message Text="* CallingConv : '$(AA5)'" Importance="high" />
+ <Message Text="*******************************************************************************" Importance="high" />
+ <MakeDir Directories="$(OutDir);$(IntDir);$(TargetDir)"/>
+ </Target>
+ <PropertyGroup>
+ <BuildDependsOn>Info2;PerlDefs;$(BuildDependsOn)</BuildDependsOn>
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/vsprojects/coapp/openssl/managed_targets/grpc.dependencies.openssl.redist.props b/vsprojects/coapp/openssl/managed_targets/grpc.dependencies.openssl.redist.props
new file mode 100644
index 0000000000..63d23be3da
--- /dev/null
+++ b/vsprojects/coapp/openssl/managed_targets/grpc.dependencies.openssl.redist.props
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <!-- Whether or not copy native dependencies to output directory after building -->
+ <CopyNativeDependencies Condition=" '$(CopyNativeDependencies)' == '' ">true</CopyNativeDependencies>
+
+ <!-- Set defaults for native dependencies if not already set. Properties can be overriden in the project files. -->
+ <NativeDependenciesToolset Condition=" '$(NativeDependenciesToolset)' == '' ">v120</NativeDependenciesToolset>
+ <NativeDependenciesPlatform Condition=" '$(NativeDependenciesPlatform)' == '' ">Win32</NativeDependenciesPlatform>
+ <NativeDependenciesConfiguration Condition=" '$(NativeDependenciesConfiguration)' == '' ">Debug</NativeDependenciesConfiguration>
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/vsprojects/coapp/openssl/managed_targets/grpc.dependencies.openssl.redist.targets b/vsprojects/coapp/openssl/managed_targets/grpc.dependencies.openssl.redist.targets
new file mode 100644
index 0000000000..1eb63f3fc4
--- /dev/null
+++ b/vsprojects/coapp/openssl/managed_targets/grpc.dependencies.openssl.redist.targets
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Choose>
+ <!-- Under older versions of Monodevelop, Choose is not supported and is just ignored, which gives us the desired effect. -->
+ <When Condition=" '$(OS)' != 'Unix' ">
+ <ItemGroup Condition=" '$(CopyNativeDependencies)' == 'true' ">
+ <Content Include="$(MSBuildThisFileDirectory)..\..\build\native\bin\$(NativeDependenciesToolset)\$(NativeDependenciesPlatform)\$(NativeDependenciesConfiguration)\dynamic\libeay32.dll">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </Content>
+ <Content Include="$(MSBuildThisFileDirectory)..\..\build\native\bin\$(NativeDependenciesToolset)\$(NativeDependenciesPlatform)\$(NativeDependenciesConfiguration)\dynamic\ssleay32.dll">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </Content>
+ </ItemGroup>
+ </When>
+ <Otherwise />
+ </Choose>
+</Project> \ No newline at end of file
diff --git a/vsprojects/coapp/openssl/openssl.sln b/vsprojects/coapp/openssl/openssl.sln
new file mode 100644
index 0000000000..7825f18b8e
--- /dev/null
+++ b/vsprojects/coapp/openssl/openssl.sln
@@ -0,0 +1,39 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libeay32", "libeay32.vcxproj", "{BE42CA67-7C48-4882-BE59-111CB41142BE}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssleay32", "ssleay32.vcxproj", "{7E05608D-A775-418F-946A-E9A0B84C6DFF}"
+ ProjectSection(ProjectDependencies) = postProject
+ {BE42CA67-7C48-4882-BE59-111CB41142BE} = {BE42CA67-7C48-4882-BE59-111CB41142BE}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {BE42CA67-7C48-4882-BE59-111CB41142BE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE42CA67-7C48-4882-BE59-111CB41142BE}.Debug|Win32.Build.0 = Debug|Win32
+ {BE42CA67-7C48-4882-BE59-111CB41142BE}.Debug|x64.ActiveCfg = Debug|x64
+ {BE42CA67-7C48-4882-BE59-111CB41142BE}.Debug|x64.Build.0 = Debug|x64
+ {BE42CA67-7C48-4882-BE59-111CB41142BE}.Release|Win32.ActiveCfg = Release|Win32
+ {BE42CA67-7C48-4882-BE59-111CB41142BE}.Release|Win32.Build.0 = Release|Win32
+ {BE42CA67-7C48-4882-BE59-111CB41142BE}.Release|x64.ActiveCfg = Release|x64
+ {BE42CA67-7C48-4882-BE59-111CB41142BE}.Release|x64.Build.0 = Release|x64
+ {7E05608D-A775-418F-946A-E9A0B84C6DFF}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7E05608D-A775-418F-946A-E9A0B84C6DFF}.Debug|Win32.Build.0 = Debug|Win32
+ {7E05608D-A775-418F-946A-E9A0B84C6DFF}.Debug|x64.ActiveCfg = Debug|x64
+ {7E05608D-A775-418F-946A-E9A0B84C6DFF}.Debug|x64.Build.0 = Debug|x64
+ {7E05608D-A775-418F-946A-E9A0B84C6DFF}.Release|Win32.ActiveCfg = Release|Win32
+ {7E05608D-A775-418F-946A-E9A0B84C6DFF}.Release|Win32.Build.0 = Release|Win32
+ {7E05608D-A775-418F-946A-E9A0B84C6DFF}.Release|x64.ActiveCfg = Release|x64
+ {7E05608D-A775-418F-946A-E9A0B84C6DFF}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/vsprojects/coapp/openssl/packages.config b/vsprojects/coapp/openssl/packages.config
new file mode 100644
index 0000000000..e1f8f360da
--- /dev/null
+++ b/vsprojects/coapp/openssl/packages.config
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="grpc.dependencies.zlib" version="1.2.8.9" targetFramework="Native" />
+ <package id="grpc.dependencies.zlib.redist" version="1.2.8.9" targetFramework="Native" />
+</packages> \ No newline at end of file
diff --git a/vsprojects/coapp/openssl/ssleay32.vcxproj b/vsprojects/coapp/openssl/ssleay32.vcxproj
new file mode 100644
index 0000000000..4cc2436b44
--- /dev/null
+++ b/vsprojects/coapp/openssl/ssleay32.vcxproj
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup>
+ <OpenSslPath>..\..\..\third_party\openssl</OpenSslPath>
+ </PropertyGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{7E05608D-A775-418F-946A-E9A0B84C6DFF}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>$(LibName)</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Label="ConfigurationSettings">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ <CallingConvention>Cdecl</CallingConvention>
+ <OutputPath>output\$(PlatformToolset)\$(Platform)\$(Configuration)\$(UsesConfigurationType)\</OutputPath>
+ <OutDir>$(OutputPath)</OutDir>
+ </PropertyGroup>
+ <Import Project="$(CoAppEtcDirectory)vcxproj.inc" Condition="Exists('$(CoAppEtcDirectory)vcxproj.inc')" />
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <Import Condition="exists('.\packages\grpc.dependencies.zlib.1.2.8.9\build\native\grpc.dependencies.zlib.props')" Project=".\packages\grpc.dependencies.zlib.1.2.8.9\build\native\grpc.dependencies.zlib.props" />
+ <Import Condition="exists('.\packages\grpc.dependencies.zlib.redist.1.2.8.9\build\native\grpc.dependencies.zlib.redist.props')" Project=".\packages\grpc.dependencies.zlib.redist.1.2.8.9\build\native\grpc.dependencies.zlib.redist.props" />
+ <ImportGroup Label="ExtensionSettings" />
+ <ImportGroup Label="PropertySheets">
+ <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <LinkIncremental Condition="'$(Configuration)'=='Release'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)'=='Debug'">true</LinkIncremental>
+ <CallingConvention-zlib>$(CallingConvention)</CallingConvention-zlib>
+ <Linkage-zlib>$(UsesConfigurationType)</Linkage-zlib>
+ </PropertyGroup>
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <AdditionalIncludeDirectories>$(OpenSslPath);$(OpenSslPath)\inc32;$(OpenSslPath)\crypto;$(OpenSslPath)\include;$(OutDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <BufferSecurityCheck>true</BufferSecurityCheck>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <!-- <PreprocessorDefinitions>OPENSSL_USE_APPLINK;%(PreprocessorDefinitions)</PreprocessorDefinitions> -->
+ <!-- <PreprocessorDefinitions>BUILDING_V8_SHARED=1;BUILDING_UV_SHARED=1;%(PreprocessorDefinitions)</PreprocessorDefinitions> -->
+ <!-- <PreprocessorDefinitions>OPENSSL_EXPORT_VAR_AS_FUNCTION;PURIFY;%(PreprocessorDefinitions)</PreprocessorDefinitions> -->
+ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;L_ENDIAN;MK1MF_BUILD;WIN32_LEAN_AND_MEAN;OPENSSL_THREADS;ZLIB;OPENSSL_SYSNAME_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>OPENSSL_BUILD_SHLIBSSL;OPENSSL_NO_IDEA;OPENSSL_NO_RC5;OPENSSL_NO_MD2;OPENSSL_NO_KRB5;OPENSSL_NO_JPAKE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>DSO_WIN32;UNICODE;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(ConfigurationType)'=='DynamicLibrary'">_WINDLL;_REENTRANT;OPENSSL_NO_STATIC_ENGINE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(ConfigurationType)'=='StaticLibrary'">OPENSSL_NO_DYNAMIC_ENGINE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Linkage-zlib)'=='dynamic'">ZLIB_SHARED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>OPENSSL_NO_ASM;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <CallingConvention>%(CallingConvention)</CallingConvention>
+ <StringPooling>true</StringPooling>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TreatWarningAsError>false</TreatWarningAsError>
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
+ <!--
+ <IgnoreSpecificDefaultLibraries>zlib$(OutNameSuffix).lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+ -->
+ </Lib>
+ <Link>
+ <AllowIsolation>true</AllowIsolation>
+ <DataExecutionPrevention>true</DataExecutionPrevention>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <RandomizedBaseAddress>true</RandomizedBaseAddress>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <AdditionalDependencies>ws2_32.lib;crypt32.lib;libeay32$(OutNameSuffix).lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile>.\ssleay32.def</ModuleDefinitionFile>
+ </Link>
+ <ResourceCompile>
+ <AdditionalIncludeDirectories>$(OpenSslPath);$(OpenSslPath)\inc32;$(OpenSslPath)\crypto;$(OpenSslPath)\include;$(OutDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;L_ENDIAN;MK1MF_BUILD;WIN32_LEAN_AND_MEAN;OPENSSL_THREADS;ZLIB;OPENSSL_SYSNAME_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>OPENSSL_BUILD_SHLIBSSL;OPENSSL_NO_IDEA;OPENSSL_NO_RC5;OPENSSL_NO_MD2;OPENSSL_NO_KRB5;OPENSSL_NO_JPAKE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>DSO_WIN32;UNICODE;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(ConfigurationType)'=='DynamicLibrary'">_WINDLL;_REENTRANT;OPENSSL_NO_STATIC_ENGINE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(ConfigurationType)'=='StaticLibrary'">OPENSSL_NO_DYNAMIC_ENGINE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Linkage-zlib)'=='dynamic'">ZLIB_SHARED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>OPENSSL_NO_ASM;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>SSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
+ <ClCompile>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <ExceptionHandling>Sync</ExceptionHandling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <OmitFramePointers>false</OmitFramePointers>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>DEBUG;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>DEBUG;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
+ <ClCompile>
+ <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <ExceptionHandling>false</ExceptionHandling>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <OmitFramePointers>true</OmitFramePointers>
+ <Optimization>Full</Optimization>
+ <RuntimeTypeInfo>false</RuntimeTypeInfo>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ <ResourceCompile>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+ <ClCompile>
+ <PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MultiThreadedDebug</RuntimeLibrary>
+ <RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MultiThreaded</RuntimeLibrary>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+ <ClCompile>
+ <PreprocessorDefinitions>WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">MultiThreadedDebug</RuntimeLibrary>
+ <RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MultiThreaded</RuntimeLibrary>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <None Include="openssl.gyp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="$(OpenSslPath)\ssl\s2_pkt.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\s3_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\s23_pkt.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\t1_meth.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\ssl_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\ssl_asn1.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\s23_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\tls_srp.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\ssl_txt.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\ssl_algs.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\s23_srvr.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\d1_both.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\s3_meth.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\ssl_err2.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\bio_ssl.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\s2_meth.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\s3_clnt.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\s3_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\kssl.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\t1_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\d1_clnt.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\t1_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\t1_srvr.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\ssl_cert.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\t1_clnt.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\ssl_stat.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\ssl_sess.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\s3_both.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\d1_srtp.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\d1_pkt.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\s23_clnt.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\s2_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\t1_reneg.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\s2_enc.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\ssl_rsa.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\s23_meth.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\d1_lib.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\ssl_ciph.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\s2_srvr.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\ssl_err.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\ssl_utst.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\s2_clnt.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\s3_pkt.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\d1_srvr.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\s3_srvr.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\s3_cbc.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\d1_meth.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\ssl_conf.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\t1_ext.c" />
+ <ClCompile Include="$(OpenSslPath)\ssl\t1_trce.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="$(OpenSslPath)\ms\version32.rc" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <Import Condition="exists('.\packages\grpc.dependencies.zlib.1.2.8.9\build\native\grpc.dependencies.zlib.targets')" Project=".\packages\grpc.dependencies.zlib.1.2.8.9\build\native\grpc.dependencies.zlib.targets" />
+ <Import Condition="exists('.\packages\grpc.dependencies.zlib.redist.1.2.8.9\build\native\grpc.dependencies.zlib.redist.targets')" Project=".\packages\grpc.dependencies.zlib.redist.1.2.8.9\build\native\grpc.dependencies.zlib.redist.targets" />
+ <ImportGroup Label="ExtensionTargets" />
+ <PropertyGroup>
+ <Build-Perl-zlib Condition="'$(Linkage-zlib)'=='dynamic'">zlib-dynamic</Build-Perl-zlib>
+ <Build-Perl-zlib Condition="'$(Linkage-zlib)'=='static'">zlib</Build-Perl-zlib>
+ <Build-Perl-asm Condition="'$(NoASM)'=='true'">no-asm</Build-Perl-asm>
+ <Build-Perl-asm Condition="'$(NoASM)'=='false'"></Build-Perl-asm>
+ <Build-Perl-platform Condition="'$(Platform)'=='Win32'">VC-WIN32</Build-Perl-platform>
+ <Build-Perl-platform Condition="'$(Platform)'=='x64'">VC-WIN64A</Build-Perl-platform>
+ <Build-Perl-dll Condition="'$(ConfigurationType)'=='DynamicLibrary'">shared</Build-Perl-dll>
+ <Build-Perl-dll Condition="'$(ConfigurationType)'=='StaticLibrary'">no-shared</Build-Perl-dll>
+ </PropertyGroup>
+ <Target Name="PerlDefs">
+ <Exec
+ Command="
+ perl Configure no-rc5 no-idea enable-mdc2 threads $(Build-Perl-zlib) $(Build-Perl-dll) $(Build-Perl-asm) $(Build-Perl-platform)
+ perl util\mkfiles.pl >MINFO
+ perl .\util\mkdef.pl 32 ssleay >..\..\vsprojects\coapp\openssl\ssleay32.def
+ "
+ WorkingDirectory="$(MSBuildThisFileDirectory)$(OpenSslPath)\" />
+ </Target>
+ <PropertyGroup>
+ <BuildDependsOn>PerlDefs;$(BuildDependsOn)</BuildDependsOn>
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/vsprojects/coapp/openssl/version.inc b/vsprojects/coapp/openssl/version.inc
new file mode 100644
index 0000000000..f27552bba3
--- /dev/null
+++ b/vsprojects/coapp/openssl/version.inc
@@ -0,0 +1 @@
+#define { package-version: 1.0.2.2; }
diff --git a/vsprojects/coapp/zlib/grpc.dependencies.zlib.autopkg b/vsprojects/coapp/zlib/grpc.dependencies.zlib.autopkg
index 01390b9434..da0455d4c7 100644
--- a/vsprojects/coapp/zlib/grpc.dependencies.zlib.autopkg
+++ b/vsprojects/coapp/zlib/grpc.dependencies.zlib.autopkg
@@ -16,7 +16,7 @@ nuget {
authors: {Jean-loup Gailly, Mark Adler, Garrett Serack, Tim Rogers};
owners: {Jan Tattermusch};
licenseUrl: "http://zlib.net/zlib-license.html";
- projectUrl: "http://github.com/jtattermusch/zlib";
+ projectUrl: "http://github.com/grpc/grpc";
iconUrl: "http://zlib.net/images/zlib3d-b1.png";
requireLicenseAcceptance:false;
summary:A zlib library;
diff --git a/vsprojects/vcxproj/test/stress_test/stress_test.vcxproj b/vsprojects/vcxproj/test/stress_test/stress_test.vcxproj
new file mode 100644
index 0000000000..a385a6dce9
--- /dev/null
+++ b/vsprojects/vcxproj/test/stress_test/stress_test.vcxproj
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="..\..\..\..\vsprojects\packages\grpc.dependencies.openssl.1.0.2.3\build\native\grpc.dependencies.openssl.props" Condition="Exists('..\..\..\..\vsprojects\packages\grpc.dependencies.openssl.1.0.2.3\build\native\1.0.2.3.props')" />
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{09500BEB-9A09-F52E-9A3D-D1D27D7177F0}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '10.0'" Label="Configuration">
+ <PlatformToolset>v100</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '11.0'" Label="Configuration">
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration">
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="..\..\..\..\vsprojects\cpptest.props" />
+ <Import Project="..\..\..\..\vsprojects\global.props" />
+ <Import Project="..\..\..\..\vsprojects\openssl.props" />
+ <Import Project="..\..\..\..\vsprojects\protobuf.props" />
+ <Import Project="..\..\..\..\vsprojects\winsock.props" />
+ <Import Project="..\..\..\..\vsprojects\zlib.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)'=='Debug'">
+ <TargetName>stress_test</TargetName>
+ <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib>
+ <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib>
+ <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Release'">
+ <TargetName>stress_test</TargetName>
+ <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib>
+ <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib>
+ <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\test\cpp\interop\client_helper.h" />
+ <ClInclude Include="..\..\..\..\test\cpp\interop\interop_client.h" />
+ <ClInclude Include="..\..\..\..\test\cpp\interop\stress_interop_client.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\test\proto\empty.pb.cc">
+ </ClCompile>
+ <ClInclude Include="..\..\..\..\test\proto\empty.pb.h">
+ </ClInclude>
+ <ClCompile Include="..\..\..\..\test\proto\empty.grpc.pb.cc">
+ </ClCompile>
+ <ClInclude Include="..\..\..\..\test\proto\empty.grpc.pb.h">
+ </ClInclude>
+ <ClCompile Include="..\..\..\..\test\proto\messages.pb.cc">
+ </ClCompile>
+ <ClInclude Include="..\..\..\..\test\proto\messages.pb.h">
+ </ClInclude>
+ <ClCompile Include="..\..\..\..\test\proto\messages.grpc.pb.cc">
+ </ClCompile>
+ <ClInclude Include="..\..\..\..\test\proto\messages.grpc.pb.h">
+ </ClInclude>
+ <ClCompile Include="..\..\..\..\test\proto\test.pb.cc">
+ </ClCompile>
+ <ClInclude Include="..\..\..\..\test\proto\test.pb.h">
+ </ClInclude>
+ <ClCompile Include="..\..\..\..\test\proto\test.grpc.pb.cc">
+ </ClCompile>
+ <ClInclude Include="..\..\..\..\test\proto\test.grpc.pb.h">
+ </ClInclude>
+ <ClCompile Include="..\..\..\..\test\cpp\interop\interop_client.cc">
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\test\cpp\interop\stress_interop_client.cc">
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\test\cpp\interop\stress_test.cc">
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\..\vsprojects\vcxproj\.\grpc++_test_util\grpc++_test_util.vcxproj">
+ <Project>{0BE77741-552A-929B-A497-4EF7ECE17A64}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\..\vsprojects\vcxproj\.\grpc_test_util\grpc_test_util.vcxproj">
+ <Project>{17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\..\vsprojects\vcxproj\.\grpc++\grpc++.vcxproj">
+ <Project>{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\..\vsprojects\vcxproj\.\grpc\grpc.vcxproj">
+ <Project>{29D16885-7228-4C31-81ED-5F9187C7F2A9}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\..\vsprojects\vcxproj\.\gpr_test_util\gpr_test_util.vcxproj">
+ <Project>{EAB0A629-17A9-44DB-B5FF-E91A721FE037}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\..\vsprojects\vcxproj\.\gpr\gpr.vcxproj">
+ <Project>{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\..\vsprojects\vcxproj\.\grpc++_test_config\grpc++_test_config.vcxproj">
+ <Project>{3F7D093D-11F9-C4BC-BEB7-18EB28E3F290}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="packages.config" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ <Import Project="..\..\..\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.9\build\native\grpc.dependencies.zlib.redist.targets" Condition="Exists('..\..\..\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.9\build\native\grpc.dependencies\grpc.dependencies.zlib.targets')" />
+ <Import Project="..\..\..\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.9\build\native\grpc.dependencies.zlib.targets" Condition="Exists('..\..\..\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.9\build\native\grpc.dependencies\grpc.dependencies.zlib.targets')" />
+ <Import Project="..\..\..\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.2.3\build\native\grpc.dependencies.openssl.redist.targets" Condition="Exists('..\..\..\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.2.3\build\native\grpc.dependencies\grpc.dependencies.openssl.targets')" />
+ <Import Project="..\..\..\..\vsprojects\packages\grpc.dependencies.openssl.1.0.2.3\build\native\grpc.dependencies.openssl.targets" Condition="Exists('..\..\..\..\vsprojects\packages\grpc.dependencies.openssl.1.0.2.3\build\native\grpc.dependencies\grpc.dependencies.openssl.targets')" />
+ </ImportGroup>
+ <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+ <PropertyGroup>
+ <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+ </PropertyGroup>
+ <Error Condition="!Exists('..\..\..\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.9\build\native\grpc.dependencies.zlib.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.9\build\native\grpc.dependencies.zlib.redist.targets')" />
+ <Error Condition="!Exists('..\..\..\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.9\build\native\grpc.dependencies.zlib.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.9\build\native\grpc.dependencies.zlib.targets')" />
+ <Error Condition="!Exists('..\..\..\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.2.3\build\native\grpc.dependencies.openssl.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.2.3\build\native\grpc.dependencies.openssl.redist.targets')" />
+ <Error Condition="!Exists('..\..\..\..\vsprojects\packages\grpc.dependencies.openssl.1.0.2.3\build\native\grpc.dependencies.openssl.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\vsprojects\packages\grpc.dependencies.openssl.1.0.2.3\build\native\grpc.dependencies.openssl.props')" />
+ <Error Condition="!Exists('..\..\..\..\vsprojects\packages\grpc.dependencies.openssl.1.0.2.3\build\native\grpc.dependencies.openssl.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\vsprojects\packages\grpc.dependencies.openssl.1.0.2.3\build\native\grpc.dependencies.openssl.targets')" />
+ </Target>
+</Project>
+
diff --git a/vsprojects/vcxproj/test/stress_test/stress_test.vcxproj.filters b/vsprojects/vcxproj/test/stress_test/stress_test.vcxproj.filters
new file mode 100644
index 0000000000..839493a96e
--- /dev/null
+++ b/vsprojects/vcxproj/test/stress_test/stress_test.vcxproj.filters
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\test\proto\empty.proto">
+ <Filter>test\proto</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\test\proto\messages.proto">
+ <Filter>test\proto</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\test\proto\test.proto">
+ <Filter>test\proto</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\test\cpp\interop\interop_client.cc">
+ <Filter>test\cpp\interop</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\test\cpp\interop\stress_interop_client.cc">
+ <Filter>test\cpp\interop</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\test\cpp\interop\stress_test.cc">
+ <Filter>test\cpp\interop</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\test\cpp\interop\client_helper.h">
+ <Filter>test\cpp\interop</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\test\cpp\interop\interop_client.h">
+ <Filter>test\cpp\interop</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\test\cpp\interop\stress_interop_client.h">
+ <Filter>test\cpp\interop</Filter>
+ </ClInclude>
+ </ItemGroup>
+
+ <ItemGroup>
+ <Filter Include="test">
+ <UniqueIdentifier>{0fddcdfd-8fd7-bb4b-e21d-f53728f4a766}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="test\cpp">
+ <UniqueIdentifier>{a5c0e3f9-aa0c-45cd-87b0-b93b83e4ab9e}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="test\cpp\interop">
+ <UniqueIdentifier>{7afcf5a8-556a-6be3-15d4-b00b2518f8fb}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="test\proto">
+ <UniqueIdentifier>{7172a335-47bf-8284-380d-a28a05c07311}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
+