mirror of https://github.com/grpc/grpc.git
commit
674af8f23e
97 changed files with 2297 additions and 3870 deletions
@ -0,0 +1,640 @@ |
|||||||
|
// $Id$ |
||||||
|
// vim:ft=javascript |
||||||
|
|
||||||
|
ARG_WITH("grpc", "grpc support", "no"); |
||||||
|
|
||||||
|
if (PHP_GRPC != "no") { |
||||||
|
|
||||||
|
grpc_source = |
||||||
|
"src\\php\\ext\\grpc\\byte_buffer.c " + |
||||||
|
"src\\php\\ext\\grpc\\call.c " + |
||||||
|
"src\\php\\ext\\grpc\\call_credentials.c " + |
||||||
|
"src\\php\\ext\\grpc\\channel.c " + |
||||||
|
"src\\php\\ext\\grpc\\channel_credentials.c " + |
||||||
|
"src\\php\\ext\\grpc\\completion_queue.c " + |
||||||
|
"src\\php\\ext\\grpc\\php_grpc.c " + |
||||||
|
"src\\php\\ext\\grpc\\server.c " + |
||||||
|
"src\\php\\ext\\grpc\\server_credentials.c " + |
||||||
|
"src\\php\\ext\\grpc\\timeval.c " + |
||||||
|
"src\\core\\lib\\profiling\\basic_timers.c " + |
||||||
|
"src\\core\\lib\\profiling\\stap_timers.c " + |
||||||
|
"src\\core\\lib\\support\\alloc.c " + |
||||||
|
"src\\core\\lib\\support\\arena.c " + |
||||||
|
"src\\core\\lib\\support\\atm.c " + |
||||||
|
"src\\core\\lib\\support\\avl.c " + |
||||||
|
"src\\core\\lib\\support\\backoff.c " + |
||||||
|
"src\\core\\lib\\support\\cmdline.c " + |
||||||
|
"src\\core\\lib\\support\\cpu_iphone.c " + |
||||||
|
"src\\core\\lib\\support\\cpu_linux.c " + |
||||||
|
"src\\core\\lib\\support\\cpu_posix.c " + |
||||||
|
"src\\core\\lib\\support\\cpu_windows.c " + |
||||||
|
"src\\core\\lib\\support\\env_linux.c " + |
||||||
|
"src\\core\\lib\\support\\env_posix.c " + |
||||||
|
"src\\core\\lib\\support\\env_windows.c " + |
||||||
|
"src\\core\\lib\\support\\histogram.c " + |
||||||
|
"src\\core\\lib\\support\\host_port.c " + |
||||||
|
"src\\core\\lib\\support\\log.c " + |
||||||
|
"src\\core\\lib\\support\\log_android.c " + |
||||||
|
"src\\core\\lib\\support\\log_linux.c " + |
||||||
|
"src\\core\\lib\\support\\log_posix.c " + |
||||||
|
"src\\core\\lib\\support\\log_windows.c " + |
||||||
|
"src\\core\\lib\\support\\mpscq.c " + |
||||||
|
"src\\core\\lib\\support\\murmur_hash.c " + |
||||||
|
"src\\core\\lib\\support\\stack_lockfree.c " + |
||||||
|
"src\\core\\lib\\support\\string.c " + |
||||||
|
"src\\core\\lib\\support\\string_posix.c " + |
||||||
|
"src\\core\\lib\\support\\string_util_windows.c " + |
||||||
|
"src\\core\\lib\\support\\string_windows.c " + |
||||||
|
"src\\core\\lib\\support\\subprocess_posix.c " + |
||||||
|
"src\\core\\lib\\support\\subprocess_windows.c " + |
||||||
|
"src\\core\\lib\\support\\sync.c " + |
||||||
|
"src\\core\\lib\\support\\sync_posix.c " + |
||||||
|
"src\\core\\lib\\support\\sync_windows.c " + |
||||||
|
"src\\core\\lib\\support\\thd.c " + |
||||||
|
"src\\core\\lib\\support\\thd_posix.c " + |
||||||
|
"src\\core\\lib\\support\\thd_windows.c " + |
||||||
|
"src\\core\\lib\\support\\time.c " + |
||||||
|
"src\\core\\lib\\support\\time_posix.c " + |
||||||
|
"src\\core\\lib\\support\\time_precise.c " + |
||||||
|
"src\\core\\lib\\support\\time_windows.c " + |
||||||
|
"src\\core\\lib\\support\\tls_pthread.c " + |
||||||
|
"src\\core\\lib\\support\\tmpfile_msys.c " + |
||||||
|
"src\\core\\lib\\support\\tmpfile_posix.c " + |
||||||
|
"src\\core\\lib\\support\\tmpfile_windows.c " + |
||||||
|
"src\\core\\lib\\support\\wrap_memcpy.c " + |
||||||
|
"src\\core\\lib\\surface\\init.c " + |
||||||
|
"src\\core\\lib\\channel\\channel_args.c " + |
||||||
|
"src\\core\\lib\\channel\\channel_stack.c " + |
||||||
|
"src\\core\\lib\\channel\\channel_stack_builder.c " + |
||||||
|
"src\\core\\lib\\channel\\connected_channel.c " + |
||||||
|
"src\\core\\lib\\channel\\handshaker.c " + |
||||||
|
"src\\core\\lib\\channel\\handshaker_factory.c " + |
||||||
|
"src\\core\\lib\\channel\\handshaker_registry.c " + |
||||||
|
"src\\core\\lib\\compression\\compression.c " + |
||||||
|
"src\\core\\lib\\compression\\message_compress.c " + |
||||||
|
"src\\core\\lib\\http\\format_request.c " + |
||||||
|
"src\\core\\lib\\http\\httpcli.c " + |
||||||
|
"src\\core\\lib\\http\\parser.c " + |
||||||
|
"src\\core\\lib\\iomgr\\closure.c " + |
||||||
|
"src\\core\\lib\\iomgr\\combiner.c " + |
||||||
|
"src\\core\\lib\\iomgr\\endpoint.c " + |
||||||
|
"src\\core\\lib\\iomgr\\endpoint_pair_posix.c " + |
||||||
|
"src\\core\\lib\\iomgr\\endpoint_pair_uv.c " + |
||||||
|
"src\\core\\lib\\iomgr\\endpoint_pair_windows.c " + |
||||||
|
"src\\core\\lib\\iomgr\\error.c " + |
||||||
|
"src\\core\\lib\\iomgr\\ev_epoll1_linux.c " + |
||||||
|
"src\\core\\lib\\iomgr\\ev_epoll_limited_pollers_linux.c " + |
||||||
|
"src\\core\\lib\\iomgr\\ev_epoll_thread_pool_linux.c " + |
||||||
|
"src\\core\\lib\\iomgr\\ev_epollex_linux.c " + |
||||||
|
"src\\core\\lib\\iomgr\\ev_epollsig_linux.c " + |
||||||
|
"src\\core\\lib\\iomgr\\ev_poll_posix.c " + |
||||||
|
"src\\core\\lib\\iomgr\\ev_posix.c " + |
||||||
|
"src\\core\\lib\\iomgr\\ev_windows.c " + |
||||||
|
"src\\core\\lib\\iomgr\\exec_ctx.c " + |
||||||
|
"src\\core\\lib\\iomgr\\executor.c " + |
||||||
|
"src\\core\\lib\\iomgr\\iocp_windows.c " + |
||||||
|
"src\\core\\lib\\iomgr\\iomgr.c " + |
||||||
|
"src\\core\\lib\\iomgr\\iomgr_posix.c " + |
||||||
|
"src\\core\\lib\\iomgr\\iomgr_uv.c " + |
||||||
|
"src\\core\\lib\\iomgr\\iomgr_windows.c " + |
||||||
|
"src\\core\\lib\\iomgr\\is_epollexclusive_available.c " + |
||||||
|
"src\\core\\lib\\iomgr\\load_file.c " + |
||||||
|
"src\\core\\lib\\iomgr\\lockfree_event.c " + |
||||||
|
"src\\core\\lib\\iomgr\\network_status_tracker.c " + |
||||||
|
"src\\core\\lib\\iomgr\\polling_entity.c " + |
||||||
|
"src\\core\\lib\\iomgr\\pollset_set_uv.c " + |
||||||
|
"src\\core\\lib\\iomgr\\pollset_set_windows.c " + |
||||||
|
"src\\core\\lib\\iomgr\\pollset_uv.c " + |
||||||
|
"src\\core\\lib\\iomgr\\pollset_windows.c " + |
||||||
|
"src\\core\\lib\\iomgr\\resolve_address_posix.c " + |
||||||
|
"src\\core\\lib\\iomgr\\resolve_address_uv.c " + |
||||||
|
"src\\core\\lib\\iomgr\\resolve_address_windows.c " + |
||||||
|
"src\\core\\lib\\iomgr\\resource_quota.c " + |
||||||
|
"src\\core\\lib\\iomgr\\sockaddr_utils.c " + |
||||||
|
"src\\core\\lib\\iomgr\\socket_factory_posix.c " + |
||||||
|
"src\\core\\lib\\iomgr\\socket_mutator.c " + |
||||||
|
"src\\core\\lib\\iomgr\\socket_utils_common_posix.c " + |
||||||
|
"src\\core\\lib\\iomgr\\socket_utils_linux.c " + |
||||||
|
"src\\core\\lib\\iomgr\\socket_utils_posix.c " + |
||||||
|
"src\\core\\lib\\iomgr\\socket_utils_uv.c " + |
||||||
|
"src\\core\\lib\\iomgr\\socket_utils_windows.c " + |
||||||
|
"src\\core\\lib\\iomgr\\socket_windows.c " + |
||||||
|
"src\\core\\lib\\iomgr\\tcp_client_posix.c " + |
||||||
|
"src\\core\\lib\\iomgr\\tcp_client_uv.c " + |
||||||
|
"src\\core\\lib\\iomgr\\tcp_client_windows.c " + |
||||||
|
"src\\core\\lib\\iomgr\\tcp_posix.c " + |
||||||
|
"src\\core\\lib\\iomgr\\tcp_server_posix.c " + |
||||||
|
"src\\core\\lib\\iomgr\\tcp_server_utils_posix_common.c " + |
||||||
|
"src\\core\\lib\\iomgr\\tcp_server_utils_posix_ifaddrs.c " + |
||||||
|
"src\\core\\lib\\iomgr\\tcp_server_utils_posix_noifaddrs.c " + |
||||||
|
"src\\core\\lib\\iomgr\\tcp_server_uv.c " + |
||||||
|
"src\\core\\lib\\iomgr\\tcp_server_windows.c " + |
||||||
|
"src\\core\\lib\\iomgr\\tcp_uv.c " + |
||||||
|
"src\\core\\lib\\iomgr\\tcp_windows.c " + |
||||||
|
"src\\core\\lib\\iomgr\\time_averaged_stats.c " + |
||||||
|
"src\\core\\lib\\iomgr\\timer_generic.c " + |
||||||
|
"src\\core\\lib\\iomgr\\timer_heap.c " + |
||||||
|
"src\\core\\lib\\iomgr\\timer_manager.c " + |
||||||
|
"src\\core\\lib\\iomgr\\timer_uv.c " + |
||||||
|
"src\\core\\lib\\iomgr\\udp_server.c " + |
||||||
|
"src\\core\\lib\\iomgr\\unix_sockets_posix.c " + |
||||||
|
"src\\core\\lib\\iomgr\\unix_sockets_posix_noop.c " + |
||||||
|
"src\\core\\lib\\iomgr\\wakeup_fd_cv.c " + |
||||||
|
"src\\core\\lib\\iomgr\\wakeup_fd_eventfd.c " + |
||||||
|
"src\\core\\lib\\iomgr\\wakeup_fd_nospecial.c " + |
||||||
|
"src\\core\\lib\\iomgr\\wakeup_fd_pipe.c " + |
||||||
|
"src\\core\\lib\\iomgr\\wakeup_fd_posix.c " + |
||||||
|
"src\\core\\lib\\json\\json.c " + |
||||||
|
"src\\core\\lib\\json\\json_reader.c " + |
||||||
|
"src\\core\\lib\\json\\json_string.c " + |
||||||
|
"src\\core\\lib\\json\\json_writer.c " + |
||||||
|
"src\\core\\lib\\slice\\b64.c " + |
||||||
|
"src\\core\\lib\\slice\\percent_encoding.c " + |
||||||
|
"src\\core\\lib\\slice\\slice.c " + |
||||||
|
"src\\core\\lib\\slice\\slice_buffer.c " + |
||||||
|
"src\\core\\lib\\slice\\slice_hash_table.c " + |
||||||
|
"src\\core\\lib\\slice\\slice_intern.c " + |
||||||
|
"src\\core\\lib\\slice\\slice_string_helpers.c " + |
||||||
|
"src\\core\\lib\\surface\\alarm.c " + |
||||||
|
"src\\core\\lib\\surface\\api_trace.c " + |
||||||
|
"src\\core\\lib\\surface\\byte_buffer.c " + |
||||||
|
"src\\core\\lib\\surface\\byte_buffer_reader.c " + |
||||||
|
"src\\core\\lib\\surface\\call.c " + |
||||||
|
"src\\core\\lib\\surface\\call_details.c " + |
||||||
|
"src\\core\\lib\\surface\\call_log_batch.c " + |
||||||
|
"src\\core\\lib\\surface\\channel.c " + |
||||||
|
"src\\core\\lib\\surface\\channel_init.c " + |
||||||
|
"src\\core\\lib\\surface\\channel_ping.c " + |
||||||
|
"src\\core\\lib\\surface\\channel_stack_type.c " + |
||||||
|
"src\\core\\lib\\surface\\completion_queue.c " + |
||||||
|
"src\\core\\lib\\surface\\completion_queue_factory.c " + |
||||||
|
"src\\core\\lib\\surface\\event_string.c " + |
||||||
|
"src\\core\\lib\\surface\\lame_client.cc " + |
||||||
|
"src\\core\\lib\\surface\\metadata_array.c " + |
||||||
|
"src\\core\\lib\\surface\\server.c " + |
||||||
|
"src\\core\\lib\\surface\\validate_metadata.c " + |
||||||
|
"src\\core\\lib\\surface\\version.c " + |
||||||
|
"src\\core\\lib\\transport\\bdp_estimator.c " + |
||||||
|
"src\\core\\lib\\transport\\byte_stream.c " + |
||||||
|
"src\\core\\lib\\transport\\connectivity_state.c " + |
||||||
|
"src\\core\\lib\\transport\\error_utils.c " + |
||||||
|
"src\\core\\lib\\transport\\metadata.c " + |
||||||
|
"src\\core\\lib\\transport\\metadata_batch.c " + |
||||||
|
"src\\core\\lib\\transport\\pid_controller.c " + |
||||||
|
"src\\core\\lib\\transport\\service_config.c " + |
||||||
|
"src\\core\\lib\\transport\\static_metadata.c " + |
||||||
|
"src\\core\\lib\\transport\\status_conversion.c " + |
||||||
|
"src\\core\\lib\\transport\\timeout_encoding.c " + |
||||||
|
"src\\core\\lib\\transport\\transport.c " + |
||||||
|
"src\\core\\lib\\transport\\transport_op_string.c " + |
||||||
|
"src\\core\\lib\\debug\\trace.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\server\\secure\\server_secure_chttp2.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\bin_decoder.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\bin_encoder.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\chttp2_plugin.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\chttp2_transport.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\frame_data.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\frame_goaway.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\frame_ping.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\frame_rst_stream.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\frame_settings.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\frame_window_update.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\hpack_encoder.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\hpack_parser.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\hpack_table.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\http2_settings.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\huffsyms.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\incoming_metadata.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\parsing.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\stream_lists.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\stream_map.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\varint.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\transport\\writing.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\alpn\\alpn.c " + |
||||||
|
"src\\core\\ext\\filters\\http\\client\\http_client_filter.c " + |
||||||
|
"src\\core\\ext\\filters\\http\\http_filters_plugin.c " + |
||||||
|
"src\\core\\ext\\filters\\http\\message_compress\\message_compress_filter.c " + |
||||||
|
"src\\core\\ext\\filters\\http\\server\\http_server_filter.c " + |
||||||
|
"src\\core\\lib\\http\\httpcli_security_connector.c " + |
||||||
|
"src\\core\\lib\\security\\context\\security_context.c " + |
||||||
|
"src\\core\\lib\\security\\credentials\\composite\\composite_credentials.c " + |
||||||
|
"src\\core\\lib\\security\\credentials\\credentials.c " + |
||||||
|
"src\\core\\lib\\security\\credentials\\credentials_metadata.c " + |
||||||
|
"src\\core\\lib\\security\\credentials\\fake\\fake_credentials.c " + |
||||||
|
"src\\core\\lib\\security\\credentials\\google_default\\credentials_generic.c " + |
||||||
|
"src\\core\\lib\\security\\credentials\\google_default\\google_default_credentials.c " + |
||||||
|
"src\\core\\lib\\security\\credentials\\iam\\iam_credentials.c " + |
||||||
|
"src\\core\\lib\\security\\credentials\\jwt\\json_token.c " + |
||||||
|
"src\\core\\lib\\security\\credentials\\jwt\\jwt_credentials.c " + |
||||||
|
"src\\core\\lib\\security\\credentials\\jwt\\jwt_verifier.c " + |
||||||
|
"src\\core\\lib\\security\\credentials\\oauth2\\oauth2_credentials.c " + |
||||||
|
"src\\core\\lib\\security\\credentials\\plugin\\plugin_credentials.c " + |
||||||
|
"src\\core\\lib\\security\\credentials\\ssl\\ssl_credentials.c " + |
||||||
|
"src\\core\\lib\\security\\transport\\client_auth_filter.c " + |
||||||
|
"src\\core\\lib\\security\\transport\\lb_targets_info.c " + |
||||||
|
"src\\core\\lib\\security\\transport\\secure_endpoint.c " + |
||||||
|
"src\\core\\lib\\security\\transport\\security_connector.c " + |
||||||
|
"src\\core\\lib\\security\\transport\\security_handshaker.c " + |
||||||
|
"src\\core\\lib\\security\\transport\\server_auth_filter.c " + |
||||||
|
"src\\core\\lib\\security\\transport\\tsi_error.c " + |
||||||
|
"src\\core\\lib\\security\\util\\json_util.c " + |
||||||
|
"src\\core\\lib\\surface\\init_secure.c " + |
||||||
|
"src\\core\\tsi\\fake_transport_security.c " + |
||||||
|
"src\\core\\tsi\\ssl_transport_security.c " + |
||||||
|
"src\\core\\tsi\\transport_security.c " + |
||||||
|
"src\\core\\tsi\\transport_security_adapter.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\server\\chttp2_server.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\client\\secure\\secure_channel_create.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\channel_connectivity.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\client_channel.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\client_channel_factory.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\client_channel_plugin.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\connector.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\http_connect_handshaker.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\http_proxy.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\lb_policy.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\lb_policy_factory.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\lb_policy_registry.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\parse_address.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\proxy_mapper.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\proxy_mapper_registry.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\resolver.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\resolver_factory.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\resolver_registry.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\retry_throttle.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\subchannel.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\subchannel_index.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\uri_parser.c " + |
||||||
|
"src\\core\\ext\\filters\\deadline\\deadline_filter.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\client\\chttp2_connector.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\server\\insecure\\server_chttp2.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\server\\insecure\\server_chttp2_posix.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\client\\insecure\\channel_create.c " + |
||||||
|
"src\\core\\ext\\transport\\chttp2\\client\\insecure\\channel_create_posix.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\lb_policy\\grpclb\\client_load_reporting_filter.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\lb_policy\\grpclb\\grpclb.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\lb_policy\\grpclb\\grpclb_channel_secure.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\lb_policy\\grpclb\\grpclb_client_stats.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\lb_policy\\grpclb\\load_balancer_api.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\lb_policy\\grpclb\\proto\\grpc\\lb\\v1\\load_balancer.pb.c " + |
||||||
|
"third_party\\nanopb\\pb_common.c " + |
||||||
|
"third_party\\nanopb\\pb_decode.c " + |
||||||
|
"third_party\\nanopb\\pb_encode.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\lb_policy\\pick_first\\pick_first.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\lb_policy\\round_robin\\round_robin.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\dns_resolver_ares.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\grpc_ares_ev_driver_posix.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\grpc_ares_wrapper.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\native\\dns_resolver.c " + |
||||||
|
"src\\core\\ext\\filters\\client_channel\\resolver\\sockaddr\\sockaddr_resolver.c " + |
||||||
|
"src\\core\\ext\\filters\\load_reporting\\load_reporting.c " + |
||||||
|
"src\\core\\ext\\filters\\load_reporting\\load_reporting_filter.c " + |
||||||
|
"src\\core\\ext\\census\\base_resources.c " + |
||||||
|
"src\\core\\ext\\census\\context.c " + |
||||||
|
"src\\core\\ext\\census\\gen\\census.pb.c " + |
||||||
|
"src\\core\\ext\\census\\gen\\trace_context.pb.c " + |
||||||
|
"src\\core\\ext\\census\\grpc_context.c " + |
||||||
|
"src\\core\\ext\\census\\grpc_filter.c " + |
||||||
|
"src\\core\\ext\\census\\grpc_plugin.c " + |
||||||
|
"src\\core\\ext\\census\\initialize.c " + |
||||||
|
"src\\core\\ext\\census\\mlog.c " + |
||||||
|
"src\\core\\ext\\census\\operation.c " + |
||||||
|
"src\\core\\ext\\census\\placeholders.c " + |
||||||
|
"src\\core\\ext\\census\\resource.c " + |
||||||
|
"src\\core\\ext\\census\\trace_context.c " + |
||||||
|
"src\\core\\ext\\census\\tracing.c " + |
||||||
|
"src\\core\\ext\\filters\\max_age\\max_age_filter.c " + |
||||||
|
"src\\core\\ext\\filters\\message_size\\message_size_filter.c " + |
||||||
|
"src\\core\\ext\\filters\\workarounds\\workaround_cronet_compression_filter.c " + |
||||||
|
"src\\core\\ext\\filters\\workarounds\\workaround_utils.c " + |
||||||
|
"src\\core\\plugin_registry\\grpc_plugin_registry.c " + |
||||||
|
"src\\boringssl\\err_data.c " + |
||||||
|
"third_party\\boringssl\\crypto\\aes\\aes.c " + |
||||||
|
"third_party\\boringssl\\crypto\\aes\\mode_wrappers.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\a_bitstr.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\a_bool.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\a_d2i_fp.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\a_dup.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\a_enum.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\a_gentm.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\a_i2d_fp.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\a_int.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\a_mbstr.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\a_object.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\a_octet.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\a_print.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\a_strnid.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\a_time.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\a_type.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\a_utctm.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\a_utf8.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\asn1_lib.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\asn1_par.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\asn_pack.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\f_enum.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\f_int.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\f_string.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\t_bitst.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\tasn_dec.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\tasn_enc.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\tasn_fre.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\tasn_new.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\tasn_typ.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\tasn_utl.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\x_bignum.c " + |
||||||
|
"third_party\\boringssl\\crypto\\asn1\\x_long.c " + |
||||||
|
"third_party\\boringssl\\crypto\\base64\\base64.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bio\\bio.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bio\\bio_mem.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bio\\buffer.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bio\\connect.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bio\\fd.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bio\\file.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bio\\hexdump.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bio\\pair.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bio\\printf.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bio\\socket.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bio\\socket_helper.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bn\\add.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bn\\asm\\x86_64-gcc.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bn\\bn.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bn\\bn_asn1.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bn\\cmp.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bn\\convert.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bn\\ctx.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bn\\div.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bn\\exponentiation.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bn\\gcd.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bn\\generic.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bn\\kronecker.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bn\\montgomery.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bn\\montgomery_inv.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bn\\mul.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bn\\prime.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bn\\random.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bn\\rsaz_exp.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bn\\shift.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bn\\sqrt.c " + |
||||||
|
"third_party\\boringssl\\crypto\\buf\\buf.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bytestring\\asn1_compat.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bytestring\\ber.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bytestring\\cbb.c " + |
||||||
|
"third_party\\boringssl\\crypto\\bytestring\\cbs.c " + |
||||||
|
"third_party\\boringssl\\crypto\\chacha\\chacha.c " + |
||||||
|
"third_party\\boringssl\\crypto\\cipher\\aead.c " + |
||||||
|
"third_party\\boringssl\\crypto\\cipher\\cipher.c " + |
||||||
|
"third_party\\boringssl\\crypto\\cipher\\derive_key.c " + |
||||||
|
"third_party\\boringssl\\crypto\\cipher\\e_aes.c " + |
||||||
|
"third_party\\boringssl\\crypto\\cipher\\e_chacha20poly1305.c " + |
||||||
|
"third_party\\boringssl\\crypto\\cipher\\e_des.c " + |
||||||
|
"third_party\\boringssl\\crypto\\cipher\\e_null.c " + |
||||||
|
"third_party\\boringssl\\crypto\\cipher\\e_rc2.c " + |
||||||
|
"third_party\\boringssl\\crypto\\cipher\\e_rc4.c " + |
||||||
|
"third_party\\boringssl\\crypto\\cipher\\e_ssl3.c " + |
||||||
|
"third_party\\boringssl\\crypto\\cipher\\e_tls.c " + |
||||||
|
"third_party\\boringssl\\crypto\\cipher\\tls_cbc.c " + |
||||||
|
"third_party\\boringssl\\crypto\\cmac\\cmac.c " + |
||||||
|
"third_party\\boringssl\\crypto\\conf\\conf.c " + |
||||||
|
"third_party\\boringssl\\crypto\\cpu-aarch64-linux.c " + |
||||||
|
"third_party\\boringssl\\crypto\\cpu-arm-linux.c " + |
||||||
|
"third_party\\boringssl\\crypto\\cpu-arm.c " + |
||||||
|
"third_party\\boringssl\\crypto\\cpu-intel.c " + |
||||||
|
"third_party\\boringssl\\crypto\\cpu-ppc64le.c " + |
||||||
|
"third_party\\boringssl\\crypto\\crypto.c " + |
||||||
|
"third_party\\boringssl\\crypto\\curve25519\\curve25519.c " + |
||||||
|
"third_party\\boringssl\\crypto\\curve25519\\spake25519.c " + |
||||||
|
"third_party\\boringssl\\crypto\\curve25519\\x25519-x86_64.c " + |
||||||
|
"third_party\\boringssl\\crypto\\des\\des.c " + |
||||||
|
"third_party\\boringssl\\crypto\\dh\\check.c " + |
||||||
|
"third_party\\boringssl\\crypto\\dh\\dh.c " + |
||||||
|
"third_party\\boringssl\\crypto\\dh\\dh_asn1.c " + |
||||||
|
"third_party\\boringssl\\crypto\\dh\\params.c " + |
||||||
|
"third_party\\boringssl\\crypto\\digest\\digest.c " + |
||||||
|
"third_party\\boringssl\\crypto\\digest\\digests.c " + |
||||||
|
"third_party\\boringssl\\crypto\\dsa\\dsa.c " + |
||||||
|
"third_party\\boringssl\\crypto\\dsa\\dsa_asn1.c " + |
||||||
|
"third_party\\boringssl\\crypto\\ec\\ec.c " + |
||||||
|
"third_party\\boringssl\\crypto\\ec\\ec_asn1.c " + |
||||||
|
"third_party\\boringssl\\crypto\\ec\\ec_key.c " + |
||||||
|
"third_party\\boringssl\\crypto\\ec\\ec_montgomery.c " + |
||||||
|
"third_party\\boringssl\\crypto\\ec\\oct.c " + |
||||||
|
"third_party\\boringssl\\crypto\\ec\\p224-64.c " + |
||||||
|
"third_party\\boringssl\\crypto\\ec\\p256-64.c " + |
||||||
|
"third_party\\boringssl\\crypto\\ec\\p256-x86_64.c " + |
||||||
|
"third_party\\boringssl\\crypto\\ec\\simple.c " + |
||||||
|
"third_party\\boringssl\\crypto\\ec\\util-64.c " + |
||||||
|
"third_party\\boringssl\\crypto\\ec\\wnaf.c " + |
||||||
|
"third_party\\boringssl\\crypto\\ecdh\\ecdh.c " + |
||||||
|
"third_party\\boringssl\\crypto\\ecdsa\\ecdsa.c " + |
||||||
|
"third_party\\boringssl\\crypto\\ecdsa\\ecdsa_asn1.c " + |
||||||
|
"third_party\\boringssl\\crypto\\engine\\engine.c " + |
||||||
|
"third_party\\boringssl\\crypto\\err\\err.c " + |
||||||
|
"third_party\\boringssl\\crypto\\evp\\digestsign.c " + |
||||||
|
"third_party\\boringssl\\crypto\\evp\\evp.c " + |
||||||
|
"third_party\\boringssl\\crypto\\evp\\evp_asn1.c " + |
||||||
|
"third_party\\boringssl\\crypto\\evp\\evp_ctx.c " + |
||||||
|
"third_party\\boringssl\\crypto\\evp\\p_dsa_asn1.c " + |
||||||
|
"third_party\\boringssl\\crypto\\evp\\p_ec.c " + |
||||||
|
"third_party\\boringssl\\crypto\\evp\\p_ec_asn1.c " + |
||||||
|
"third_party\\boringssl\\crypto\\evp\\p_rsa.c " + |
||||||
|
"third_party\\boringssl\\crypto\\evp\\p_rsa_asn1.c " + |
||||||
|
"third_party\\boringssl\\crypto\\evp\\pbkdf.c " + |
||||||
|
"third_party\\boringssl\\crypto\\evp\\print.c " + |
||||||
|
"third_party\\boringssl\\crypto\\evp\\sign.c " + |
||||||
|
"third_party\\boringssl\\crypto\\ex_data.c " + |
||||||
|
"third_party\\boringssl\\crypto\\hkdf\\hkdf.c " + |
||||||
|
"third_party\\boringssl\\crypto\\hmac\\hmac.c " + |
||||||
|
"third_party\\boringssl\\crypto\\lhash\\lhash.c " + |
||||||
|
"third_party\\boringssl\\crypto\\md4\\md4.c " + |
||||||
|
"third_party\\boringssl\\crypto\\md5\\md5.c " + |
||||||
|
"third_party\\boringssl\\crypto\\mem.c " + |
||||||
|
"third_party\\boringssl\\crypto\\modes\\cbc.c " + |
||||||
|
"third_party\\boringssl\\crypto\\modes\\cfb.c " + |
||||||
|
"third_party\\boringssl\\crypto\\modes\\ctr.c " + |
||||||
|
"third_party\\boringssl\\crypto\\modes\\gcm.c " + |
||||||
|
"third_party\\boringssl\\crypto\\modes\\ofb.c " + |
||||||
|
"third_party\\boringssl\\crypto\\newhope\\error_correction.c " + |
||||||
|
"third_party\\boringssl\\crypto\\newhope\\newhope.c " + |
||||||
|
"third_party\\boringssl\\crypto\\newhope\\ntt.c " + |
||||||
|
"third_party\\boringssl\\crypto\\newhope\\poly.c " + |
||||||
|
"third_party\\boringssl\\crypto\\newhope\\precomp.c " + |
||||||
|
"third_party\\boringssl\\crypto\\newhope\\reduce.c " + |
||||||
|
"third_party\\boringssl\\crypto\\obj\\obj.c " + |
||||||
|
"third_party\\boringssl\\crypto\\obj\\obj_xref.c " + |
||||||
|
"third_party\\boringssl\\crypto\\pem\\pem_all.c " + |
||||||
|
"third_party\\boringssl\\crypto\\pem\\pem_info.c " + |
||||||
|
"third_party\\boringssl\\crypto\\pem\\pem_lib.c " + |
||||||
|
"third_party\\boringssl\\crypto\\pem\\pem_oth.c " + |
||||||
|
"third_party\\boringssl\\crypto\\pem\\pem_pk8.c " + |
||||||
|
"third_party\\boringssl\\crypto\\pem\\pem_pkey.c " + |
||||||
|
"third_party\\boringssl\\crypto\\pem\\pem_x509.c " + |
||||||
|
"third_party\\boringssl\\crypto\\pem\\pem_xaux.c " + |
||||||
|
"third_party\\boringssl\\crypto\\pkcs8\\p5_pbe.c " + |
||||||
|
"third_party\\boringssl\\crypto\\pkcs8\\p5_pbev2.c " + |
||||||
|
"third_party\\boringssl\\crypto\\pkcs8\\p8_pkey.c " + |
||||||
|
"third_party\\boringssl\\crypto\\pkcs8\\pkcs8.c " + |
||||||
|
"third_party\\boringssl\\crypto\\poly1305\\poly1305.c " + |
||||||
|
"third_party\\boringssl\\crypto\\poly1305\\poly1305_arm.c " + |
||||||
|
"third_party\\boringssl\\crypto\\poly1305\\poly1305_vec.c " + |
||||||
|
"third_party\\boringssl\\crypto\\rand\\deterministic.c " + |
||||||
|
"third_party\\boringssl\\crypto\\rand\\rand.c " + |
||||||
|
"third_party\\boringssl\\crypto\\rand\\urandom.c " + |
||||||
|
"third_party\\boringssl\\crypto\\rand\\windows.c " + |
||||||
|
"third_party\\boringssl\\crypto\\rc4\\rc4.c " + |
||||||
|
"third_party\\boringssl\\crypto\\refcount_c11.c " + |
||||||
|
"third_party\\boringssl\\crypto\\refcount_lock.c " + |
||||||
|
"third_party\\boringssl\\crypto\\rsa\\blinding.c " + |
||||||
|
"third_party\\boringssl\\crypto\\rsa\\padding.c " + |
||||||
|
"third_party\\boringssl\\crypto\\rsa\\rsa.c " + |
||||||
|
"third_party\\boringssl\\crypto\\rsa\\rsa_asn1.c " + |
||||||
|
"third_party\\boringssl\\crypto\\rsa\\rsa_impl.c " + |
||||||
|
"third_party\\boringssl\\crypto\\sha\\sha1.c " + |
||||||
|
"third_party\\boringssl\\crypto\\sha\\sha256.c " + |
||||||
|
"third_party\\boringssl\\crypto\\sha\\sha512.c " + |
||||||
|
"third_party\\boringssl\\crypto\\stack\\stack.c " + |
||||||
|
"third_party\\boringssl\\crypto\\thread.c " + |
||||||
|
"third_party\\boringssl\\crypto\\thread_none.c " + |
||||||
|
"third_party\\boringssl\\crypto\\thread_pthread.c " + |
||||||
|
"third_party\\boringssl\\crypto\\thread_win.c " + |
||||||
|
"third_party\\boringssl\\crypto\\time_support.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\a_digest.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\a_sign.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\a_strex.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\a_verify.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\algorithm.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\asn1_gen.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\by_dir.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\by_file.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\i2d_pr.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\pkcs7.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\rsa_pss.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\t_crl.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\t_req.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\t_x509.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\t_x509a.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509_att.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509_cmp.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509_d2.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509_def.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509_ext.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509_lu.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509_obj.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509_r2x.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509_req.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509_set.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509_trs.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509_txt.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509_v3.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509_vfy.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509_vpm.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509cset.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509name.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509rset.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509spki.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x509type.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x_algor.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x_all.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x_attrib.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x_crl.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x_exten.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x_info.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x_name.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x_pkey.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x_pubkey.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x_req.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x_sig.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x_spki.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x_val.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x_x509.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509\\x_x509a.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\pcy_cache.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\pcy_data.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\pcy_lib.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\pcy_map.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\pcy_node.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\pcy_tree.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_akey.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_akeya.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_alt.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_bcons.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_bitst.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_conf.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_cpols.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_crld.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_enum.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_extku.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_genn.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_ia5.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_info.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_int.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_lib.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_ncons.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_pci.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_pcia.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_pcons.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_pku.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_pmaps.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_prn.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_purp.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_skey.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_sxnet.c " + |
||||||
|
"third_party\\boringssl\\crypto\\x509v3\\v3_utl.c " + |
||||||
|
"third_party\\boringssl\\ssl\\custom_extensions.c " + |
||||||
|
"third_party\\boringssl\\ssl\\d1_both.c " + |
||||||
|
"third_party\\boringssl\\ssl\\d1_lib.c " + |
||||||
|
"third_party\\boringssl\\ssl\\d1_pkt.c " + |
||||||
|
"third_party\\boringssl\\ssl\\d1_srtp.c " + |
||||||
|
"third_party\\boringssl\\ssl\\dtls_method.c " + |
||||||
|
"third_party\\boringssl\\ssl\\dtls_record.c " + |
||||||
|
"third_party\\boringssl\\ssl\\handshake_client.c " + |
||||||
|
"third_party\\boringssl\\ssl\\handshake_server.c " + |
||||||
|
"third_party\\boringssl\\ssl\\s3_both.c " + |
||||||
|
"third_party\\boringssl\\ssl\\s3_enc.c " + |
||||||
|
"third_party\\boringssl\\ssl\\s3_lib.c " + |
||||||
|
"third_party\\boringssl\\ssl\\s3_pkt.c " + |
||||||
|
"third_party\\boringssl\\ssl\\ssl_aead_ctx.c " + |
||||||
|
"third_party\\boringssl\\ssl\\ssl_asn1.c " + |
||||||
|
"third_party\\boringssl\\ssl\\ssl_buffer.c " + |
||||||
|
"third_party\\boringssl\\ssl\\ssl_cert.c " + |
||||||
|
"third_party\\boringssl\\ssl\\ssl_cipher.c " + |
||||||
|
"third_party\\boringssl\\ssl\\ssl_ecdh.c " + |
||||||
|
"third_party\\boringssl\\ssl\\ssl_file.c " + |
||||||
|
"third_party\\boringssl\\ssl\\ssl_lib.c " + |
||||||
|
"third_party\\boringssl\\ssl\\ssl_rsa.c " + |
||||||
|
"third_party\\boringssl\\ssl\\ssl_session.c " + |
||||||
|
"third_party\\boringssl\\ssl\\ssl_stat.c " + |
||||||
|
"third_party\\boringssl\\ssl\\t1_enc.c " + |
||||||
|
"third_party\\boringssl\\ssl\\t1_lib.c " + |
||||||
|
"third_party\\boringssl\\ssl\\tls13_both.c " + |
||||||
|
"third_party\\boringssl\\ssl\\tls13_client.c " + |
||||||
|
"third_party\\boringssl\\ssl\\tls13_enc.c " + |
||||||
|
"third_party\\boringssl\\ssl\\tls13_server.c " + |
||||||
|
"third_party\\boringssl\\ssl\\tls_method.c " + |
||||||
|
"third_party\\boringssl\\ssl\\tls_record.c " + |
||||||
|
"third_party\\zlib\\adler32.c " + |
||||||
|
"third_party\\zlib\\compress.c " + |
||||||
|
"third_party\\zlib\\crc32.c " + |
||||||
|
"third_party\\zlib\\deflate.c " + |
||||||
|
"third_party\\zlib\\gzclose.c " + |
||||||
|
"third_party\\zlib\\gzlib.c " + |
||||||
|
"third_party\\zlib\\gzread.c " + |
||||||
|
"third_party\\zlib\\gzwrite.c " + |
||||||
|
"third_party\\zlib\\infback.c " + |
||||||
|
"third_party\\zlib\\inffast.c " + |
||||||
|
"third_party\\zlib\\inflate.c " + |
||||||
|
"third_party\\zlib\\inftrees.c " + |
||||||
|
"third_party\\zlib\\trees.c " + |
||||||
|
"third_party\\zlib\\uncompr.c " + |
||||||
|
"third_party\\zlib\\zutil.c " + |
||||||
|
""; |
||||||
|
|
||||||
|
EXTENSION("grpc", grpc_source, null, |
||||||
|
"/DOPENSSL_NO_ASM /D_GNU_SOURCE /DWIN32_LEAN_AND_MEAN "+ |
||||||
|
"/D_HAS_EXCEPTIONS=0 /DNOMINMAX /DGRPC_ARES=0 /D_WIN32_WINNT=0x600 "+ |
||||||
|
"/I"+configure_module_dirname+" "+ |
||||||
|
"/I"+configure_module_dirname+"\\include "+ |
||||||
|
"/I"+configure_module_dirname+"\\src\\php\\ext\\grpc "+ |
||||||
|
"/I"+configure_module_dirname+"\\third_party\\boringssl\\include "+ |
||||||
|
"/I"+configure_module_dirname+"\\third_party\\zlib"); |
||||||
|
} |
@ -0,0 +1,31 @@ |
|||||||
|
%YAML 1.2 |
||||||
|
--- | |
||||||
|
// $Id$ |
||||||
|
// vim:ft=javascript |
||||||
|
|
||||||
|
ARG_WITH("grpc", "grpc support", "no"); |
||||||
|
|
||||||
|
if (PHP_GRPC != "no") { |
||||||
|
|
||||||
|
grpc_source = |
||||||
|
% for source in php_config_m4.src: |
||||||
|
"${source.replace('/','\\\\')} " + |
||||||
|
% endfor |
||||||
|
% for lib in libs: |
||||||
|
% if lib.name in php_config_m4.get('deps', []) and lib.name != 'ares': |
||||||
|
% for source in lib.src: |
||||||
|
"${source.replace('/','\\\\')} " + |
||||||
|
% endfor |
||||||
|
% endif |
||||||
|
% endfor |
||||||
|
""; |
||||||
|
|
||||||
|
EXTENSION("grpc", grpc_source, null, |
||||||
|
"/DOPENSSL_NO_ASM /D_GNU_SOURCE /DWIN32_LEAN_AND_MEAN "+ |
||||||
|
"/D_HAS_EXCEPTIONS=0 /DNOMINMAX /DGRPC_ARES=0 /D_WIN32_WINNT=0x600 "+ |
||||||
|
"/I"+configure_module_dirname+" "+ |
||||||
|
"/I"+configure_module_dirname+"\\include "+ |
||||||
|
"/I"+configure_module_dirname+"\\src\\php\\ext\\grpc "+ |
||||||
|
"/I"+configure_module_dirname+"\\third_party\\boringssl\\include "+ |
||||||
|
"/I"+configure_module_dirname+"\\third_party\\zlib"); |
||||||
|
} |
@ -0,0 +1,47 @@ |
|||||||
|
#!/bin/bash |
||||||
|
# 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. |
||||||
|
# |
||||||
|
# Builds Go interop server and client in a base image. |
||||||
|
set -e |
||||||
|
|
||||||
|
# Clone just the grpc-go source code without any dependencies. |
||||||
|
# We are cloning from a local git repo that contains the right revision |
||||||
|
# to test instead of using "go get" to download from Github directly. |
||||||
|
git clone --recursive /var/local/jenkins/grpc-go src/google.golang.org/grpc |
||||||
|
|
||||||
|
# Get all gRPC Go dependencies |
||||||
|
(cd src/google.golang.org/grpc && make deps && make testdeps) |
||||||
|
|
||||||
|
# copy service account keys if available |
||||||
|
cp -r /var/local/jenkins/service_account $HOME || true |
||||||
|
|
||||||
|
# Build the interop client and server |
||||||
|
(cd src/google.golang.org/grpc/interop/client && go install) |
||||||
|
(cd src/google.golang.org/grpc/interop/server && go install) |
@ -0,0 +1,3 @@ |
|||||||
|
%YAML 1.2 |
||||||
|
--- | |
||||||
|
<%include file="../../go_build_interop.sh.include"/> |
@ -0,0 +1,3 @@ |
|||||||
|
%YAML 1.2 |
||||||
|
--- | |
||||||
|
<%include file="../../go_build_interop.sh.include"/> |
@ -0,0 +1,48 @@ |
|||||||
|
#!/bin/bash |
||||||
|
# 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. |
||||||
|
# |
||||||
|
# Builds Go interop server and client in a base image. |
||||||
|
set -e |
||||||
|
|
||||||
|
# Clone just the grpc-go source code without any dependencies. |
||||||
|
# We are cloning from a local git repo that contains the right revision |
||||||
|
# to test instead of using "go get" to download from Github directly. |
||||||
|
git clone --recursive /var/local/jenkins/grpc-go src/google.golang.org/grpc |
||||||
|
|
||||||
|
# Get all gRPC Go dependencies |
||||||
|
(cd src/google.golang.org/grpc && make deps && make testdeps) |
||||||
|
|
||||||
|
# copy service account keys if available |
||||||
|
cp -r /var/local/jenkins/service_account $HOME || true |
||||||
|
|
||||||
|
# Build the interop client and server |
||||||
|
(cd src/google.golang.org/grpc/interop/client && go install) |
||||||
|
(cd src/google.golang.org/grpc/interop/server && go install) |
||||||
|
|
@ -0,0 +1,48 @@ |
|||||||
|
#!/bin/bash |
||||||
|
# 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. |
||||||
|
# |
||||||
|
# Builds Go interop server and client in a base image. |
||||||
|
set -e |
||||||
|
|
||||||
|
# Clone just the grpc-go source code without any dependencies. |
||||||
|
# We are cloning from a local git repo that contains the right revision |
||||||
|
# to test instead of using "go get" to download from Github directly. |
||||||
|
git clone --recursive /var/local/jenkins/grpc-go src/google.golang.org/grpc |
||||||
|
|
||||||
|
# Get all gRPC Go dependencies |
||||||
|
(cd src/google.golang.org/grpc && make deps && make testdeps) |
||||||
|
|
||||||
|
# copy service account keys if available |
||||||
|
cp -r /var/local/jenkins/service_account $HOME || true |
||||||
|
|
||||||
|
# Build the interop client and server |
||||||
|
(cd src/google.golang.org/grpc/interop/client && go install) |
||||||
|
(cd src/google.golang.org/grpc/interop/server && go install) |
||||||
|
|
@ -1,119 +0,0 @@ |
|||||||
#!/usr/bin/env python2.7 |
|
||||||
# Copyright 2017, 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. |
|
||||||
|
|
||||||
"""Upload docker images to Google Container Registry.""" |
|
||||||
|
|
||||||
from __future__ import print_function |
|
||||||
|
|
||||||
import argparse |
|
||||||
import atexit |
|
||||||
import os |
|
||||||
import shutil |
|
||||||
import subprocess |
|
||||||
import tempfile |
|
||||||
|
|
||||||
argp = argparse.ArgumentParser(description='Run interop tests.') |
|
||||||
argp.add_argument('--gcr_path', |
|
||||||
default='gcr.io/grpc-testing', |
|
||||||
help='Path of docker images in Google Container Registry') |
|
||||||
|
|
||||||
argp.add_argument('--gcr_tag', |
|
||||||
default='latest', |
|
||||||
help='the tag string for the images to upload') |
|
||||||
|
|
||||||
argp.add_argument('--with_files', |
|
||||||
default=[], |
|
||||||
nargs='+', |
|
||||||
help='additional files to include in the docker image') |
|
||||||
|
|
||||||
argp.add_argument('--with_file_dest', |
|
||||||
default='/var/local/image_info', |
|
||||||
help='Destination directory for with_files inside docker image') |
|
||||||
|
|
||||||
argp.add_argument('--images', |
|
||||||
default=[], |
|
||||||
nargs='+', |
|
||||||
help='local docker images in the form of repo:tag ' + |
|
||||||
'(i.e. grpc_interop_java:26328ad8) to upload') |
|
||||||
|
|
||||||
argp.add_argument('--keep', |
|
||||||
action='store_true', |
|
||||||
help='keep the created local images after uploading to GCR') |
|
||||||
|
|
||||||
|
|
||||||
args = argp.parse_args() |
|
||||||
|
|
||||||
def upload_to_gcr(image): |
|
||||||
"""Tags and Pushes a docker image in Google Containger Registry. |
|
||||||
|
|
||||||
image: docker image name, i.e. grpc_interop_java:26328ad8 |
|
||||||
|
|
||||||
A docker image image_foo:tag_old will be uploaded as |
|
||||||
<gcr_path>/image_foo:<gcr_tag> |
|
||||||
after inserting extra with_files under with_file_dest in the image. The |
|
||||||
original image name will be stored as label original_name:"image_foo:tag_old". |
|
||||||
""" |
|
||||||
tag_idx = image.find(':') |
|
||||||
if tag_idx == -1: |
|
||||||
print('Failed to parse docker image name %s' % image) |
|
||||||
return False |
|
||||||
new_tag = '%s/%s:%s' % (args.gcr_path, image[:tag_idx], args.gcr_tag) |
|
||||||
|
|
||||||
lines = ['FROM ' + image] |
|
||||||
lines.append('LABEL original_name="%s"' % image) |
|
||||||
|
|
||||||
temp_dir = tempfile.mkdtemp() |
|
||||||
atexit.register(lambda: subprocess.call(['rm', '-rf', temp_dir])) |
|
||||||
|
|
||||||
# Copy with_files inside the tmp directory, which will be the docker build |
|
||||||
# context. |
|
||||||
for f in args.with_files: |
|
||||||
shutil.copy(f, temp_dir) |
|
||||||
lines.append('COPY %s %s/' % (os.path.basename(f), args.with_file_dest)) |
|
||||||
|
|
||||||
# Create a Dockerfile. |
|
||||||
with open(os.path.join(temp_dir, 'Dockerfile'), 'w') as f: |
|
||||||
f.write('\n'.join(lines)) |
|
||||||
|
|
||||||
build_cmd = ['docker', 'build', '--rm', '--tag', new_tag, temp_dir] |
|
||||||
subprocess.check_output(build_cmd) |
|
||||||
|
|
||||||
if not args.keep: |
|
||||||
atexit.register(lambda: subprocess.call(['docker', 'rmi', new_tag])) |
|
||||||
|
|
||||||
# Upload to GCR. |
|
||||||
if args.gcr_path: |
|
||||||
subprocess.call(['gcloud', 'docker', '--', 'push', new_tag]) |
|
||||||
|
|
||||||
return True |
|
||||||
|
|
||||||
|
|
||||||
for image in args.images: |
|
||||||
upload_to_gcr(image) |
|
@ -0,0 +1,43 @@ |
|||||||
|
#!/bin/bash |
||||||
|
# Copyright 2017, 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. |
||||||
|
|
||||||
|
# Source this rc script to prepare the environment for interop builds |
||||||
|
# This rc script must be used in the root directory of gRPC |
||||||
|
|
||||||
|
export LANG=en_US.UTF-8 |
||||||
|
|
||||||
|
# Download Docker images from DockerHub |
||||||
|
export DOCKERHUB_ORGANIZATION=grpctesting |
||||||
|
|
||||||
|
git submodule update --init |
||||||
|
|
||||||
|
# Set up gRPC-Go and gRPC-Java to test |
||||||
|
git clone --recursive https://github.com/grpc/grpc-go ./../grpc-go |
||||||
|
git clone --recursive https://github.com/grpc/grpc-java ./../grpc-java |
@ -0,0 +1,39 @@ |
|||||||
|
# Copyright 2017, 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. |
||||||
|
|
||||||
|
# Config file for the internal CI (in protobuf text format) |
||||||
|
|
||||||
|
# Location of the continuous shell script in repository. |
||||||
|
build_file: "grpc/tools/internal_ci/linux/sanitizer/grpc_c_ubsan.sh" |
||||||
|
timeout_mins: 1440 |
||||||
|
action { |
||||||
|
define_artifacts { |
||||||
|
regex: "**/*sponge_log.xml" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,38 @@ |
|||||||
|
#!/bin/bash |
||||||
|
# Copyright 2017, 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. |
||||||
|
|
||||||
|
set -ex |
||||||
|
|
||||||
|
# change to grpc repo root |
||||||
|
cd $(dirname $0)/../../../.. |
||||||
|
|
||||||
|
source tools/internal_ci/helper_scripts/prepare_build_linux_rc |
||||||
|
|
||||||
|
tools/run_tests/run_tests_matrix.py -f c ubsan --inner_jobs 16 -j 1 --internal_ci |
@ -0,0 +1,40 @@ |
|||||||
|
# Copyright 2017, 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. |
||||||
|
|
||||||
|
# Config file for the internal CI (in protobuf text format) |
||||||
|
|
||||||
|
# Location of the continuous shell script in repository. |
||||||
|
build_file: "grpc/tools/internal_ci/macos/grpc_interop.sh" |
||||||
|
timeout_mins: 240 |
||||||
|
action { |
||||||
|
define_artifacts { |
||||||
|
regex: "**/*sponge_log.xml", |
||||||
|
regex: "github/grpc/reports/**" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,38 @@ |
|||||||
|
#!/bin/bash |
||||||
|
# Copyright 2017, 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. |
||||||
|
|
||||||
|
set -ex |
||||||
|
|
||||||
|
# change to grpc repo root |
||||||
|
cd $(dirname $0)/../../.. |
||||||
|
|
||||||
|
source tools/internal_ci/helper_scripts/prepare_build_interop_rc |
||||||
|
|
||||||
|
tools/run_tests/run_interop_tests.py -l objc -s all --use_docker -t -j 1 |
@ -0,0 +1,40 @@ |
|||||||
|
# Overview |
||||||
|
|
||||||
|
This directory contains scripts that facilitate building and running gRPC tests for combinations of language/runtimes (known as matrix). |
||||||
|
|
||||||
|
The setup builds gRPC docker images for each language/runtime and upload it to Google Container Registry (GCR). These images, encapsulating gRPC stack |
||||||
|
from specific releases/tag, are used to test version compatiblity between gRPC release versions. |
||||||
|
|
||||||
|
## Instructions for creating GCR images |
||||||
|
- Edit `./client_matrix.py` to include desired gRPC release. |
||||||
|
- Run `tools/interop_matrix/create_matrix_images.py`. Useful options: |
||||||
|
- `--git_checkout` enables git checkout grpc release branch/tag. |
||||||
|
- `--release` specifies a git release tag. Make sure it is a valid tag in the grpc github rep. |
||||||
|
- `--language` specifies a language. |
||||||
|
For examle, To build all languages for all gRPC releases across all runtimes, do `tools/interop_matrix/create_matrix_images.py --git_checkout --release=all`. |
||||||
|
- Verify the newly created docker images are uploaded to GCR. For example: |
||||||
|
- `gcloud beta container images list --repository gcr.io/grpc-testing` shows image repos. |
||||||
|
- `gcloud beta container images list-tags gcr.io/grpc-testing/grpc_interop_go1.7` show tags for a image repo. |
||||||
|
|
||||||
|
## Instructions for adding new language/runtimes* |
||||||
|
- Create new `Dockerfile.template`, `build_interop.sh.template` for the language/runtime under `template/tools/dockerfile/`. |
||||||
|
- Run `tools/buildgen/generate_projects.sh` to create corresponding files under `tools/dockerfile/`. |
||||||
|
- Add language/runtimes to `client_matrix.py` following existing language/runtimes examples. |
||||||
|
- Run `tools/interop_matrix/create_matrix_images.py` which will build and upload images to GCR. Unless you are also building images for a gRPC release, make sure not to set `--gcr_tag` (the default tag 'master' is used for testing). |
||||||
|
|
||||||
|
*: Please delete your docker images at https://pantheon.corp.google.com/gcr/images/grpc-testing?project=grpc-testing afterwards. Permissions to access GrpcTesting project is required for this step. |
||||||
|
|
||||||
|
## Instructions for creating new test cases |
||||||
|
- Create test cases by running `LANG=<lang> [RELEASE=<release>] ./create_testcases.sh`. For example, |
||||||
|
- `LANG=go ./create_testcases.sh` will generate `./testcases/go__master`, which is also a functional bash script. |
||||||
|
- `LANG=go KEEP_IMAGE=1 ./create_testcases.sh` will generate `./testcases/go__master` and keep the local docker image so it can be invoked simply via `./testcases/go__master`. Note: remove local docker images manually afterwards with `docker rmi <image_id>`. |
||||||
|
- Stage and commit the generated test case file `./testcases/<lang>__<release>`. |
||||||
|
|
||||||
|
## Instructions for running test cases against a GCR image |
||||||
|
- Run test cases by specifying `docker_image` variable inline with the test case script created above. |
||||||
|
For example: |
||||||
|
- `docker_image=gcr.io/grpc-testing/grpc_interop_go1.7:master ./testcases/go__master` will run go__master test cases against `go1.7` with gRPC release `master` docker image in GCR. |
||||||
|
|
||||||
|
|
||||||
|
Note: |
||||||
|
- File path starting with `tools/` or `template/` are relative to the grpc repo root dir. File path starting with `./` are relative to current directory (`tools/interop_matrix`). |
@ -0,0 +1,48 @@ |
|||||||
|
#!/usr/bin/env python2.7 |
||||||
|
# Copyright 2017, 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. |
||||||
|
|
||||||
|
# Dictionaries used for client matrix testing. |
||||||
|
|
||||||
|
def get_github_repo(lang): |
||||||
|
return { |
||||||
|
'go': 'git@github.com:grpc/grpc-go.git', |
||||||
|
'java': 'git@github.com:grpc/grpc-java.git', |
||||||
|
}.get(lang, 'git@github.com:grpc/grpc.git') |
||||||
|
|
||||||
|
# Dictionary of runtimes per language |
||||||
|
LANG_RUNTIME_MATRIX = { |
||||||
|
'go': ['go1.7', 'go1.8'], |
||||||
|
} |
||||||
|
|
||||||
|
# Dictionary of releases per language. For each language, we need to provide |
||||||
|
# a tuple of release tag (used as the tag for the GCR image) and also github hash. |
||||||
|
LANG_RELEASE_MATRIX = { |
||||||
|
'go': ['v1.0.1-GA', 'v1.3.0'], |
||||||
|
} |
@ -0,0 +1,272 @@ |
|||||||
|
#!/usr/bin/env python2.7 |
||||||
|
# Copyright 2017, 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. |
||||||
|
|
||||||
|
"""Build and upload docker images to Google Container Registry per matrix.""" |
||||||
|
|
||||||
|
from __future__ import print_function |
||||||
|
|
||||||
|
import argparse |
||||||
|
import atexit |
||||||
|
import multiprocessing |
||||||
|
import os |
||||||
|
import shutil |
||||||
|
import subprocess |
||||||
|
import sys |
||||||
|
import tempfile |
||||||
|
|
||||||
|
# Langauage Runtime Matrix |
||||||
|
import client_matrix |
||||||
|
|
||||||
|
python_util_dir = os.path.abspath(os.path.join( |
||||||
|
os.path.dirname(__file__), '../run_tests/python_utils')) |
||||||
|
sys.path.append(python_util_dir) |
||||||
|
import dockerjob |
||||||
|
import jobset |
||||||
|
|
||||||
|
_IMAGE_BUILDER = 'tools/run_tests/dockerize/build_interop_image.sh' |
||||||
|
_LANGUAGES = client_matrix.LANG_RUNTIME_MATRIX.keys() |
||||||
|
# All gRPC release tags, flattened, deduped and sorted. |
||||||
|
_RELEASES = sorted(list(set( |
||||||
|
i for l in client_matrix.LANG_RELEASE_MATRIX.values() for i in l))) |
||||||
|
|
||||||
|
# Destination directory inside docker image to keep extra info from build time. |
||||||
|
_BUILD_INFO = '/var/local/build_info' |
||||||
|
|
||||||
|
argp = argparse.ArgumentParser(description='Run interop tests.') |
||||||
|
argp.add_argument('--gcr_path', |
||||||
|
default='gcr.io/grpc-testing', |
||||||
|
help='Path of docker images in Google Container Registry') |
||||||
|
|
||||||
|
argp.add_argument('--release', |
||||||
|
default='master', |
||||||
|
choices=['all', 'master'] + _RELEASES, |
||||||
|
help='github commit tag to checkout. When building all ' |
||||||
|
'releases defined in client_matrix.py, use "all". Valid only ' |
||||||
|
'with --git_checkout.') |
||||||
|
|
||||||
|
argp.add_argument('-l', '--language', |
||||||
|
choices=['all'] + sorted(_LANGUAGES), |
||||||
|
nargs='+', |
||||||
|
default=['all'], |
||||||
|
help='Test languages to build docker images for.') |
||||||
|
|
||||||
|
argp.add_argument('--git_checkout', |
||||||
|
action='store_true', |
||||||
|
help='Use a separate git clone tree for building grpc stack. ' |
||||||
|
'Required when using --release flag. By default, current' |
||||||
|
'tree and the sibling will be used for building grpc stack.') |
||||||
|
|
||||||
|
argp.add_argument('--git_checkout_root', |
||||||
|
default='/export/hda3/tmp/grpc_matrix', |
||||||
|
help='Directory under which grpc-go/java/main repo will be ' |
||||||
|
'cloned. Valid only with --git_checkout.') |
||||||
|
|
||||||
|
argp.add_argument('--keep', |
||||||
|
action='store_true', |
||||||
|
help='keep the created local images after uploading to GCR') |
||||||
|
|
||||||
|
|
||||||
|
args = argp.parse_args() |
||||||
|
|
||||||
|
def add_files_to_image(image, with_files, label=None): |
||||||
|
"""Add files to a docker image. |
||||||
|
|
||||||
|
image: docker image name, i.e. grpc_interop_java:26328ad8 |
||||||
|
with_files: additional files to include in the docker image. |
||||||
|
label: label string to attach to the image. |
||||||
|
""" |
||||||
|
tag_idx = image.find(':') |
||||||
|
if tag_idx == -1: |
||||||
|
jobset.message('FAILED', 'invalid docker image %s' % image, do_newline=True) |
||||||
|
sys.exit(1) |
||||||
|
orig_tag = '%s_' % image |
||||||
|
subprocess.check_output(['docker', 'tag', image, orig_tag]) |
||||||
|
|
||||||
|
lines = ['FROM ' + orig_tag] |
||||||
|
if label: |
||||||
|
lines.append('LABEL %s' % label) |
||||||
|
|
||||||
|
temp_dir = tempfile.mkdtemp() |
||||||
|
atexit.register(lambda: subprocess.call(['rm', '-rf', temp_dir])) |
||||||
|
|
||||||
|
# Copy with_files inside the tmp directory, which will be the docker build |
||||||
|
# context. |
||||||
|
for f in with_files: |
||||||
|
shutil.copy(f, temp_dir) |
||||||
|
lines.append('COPY %s %s/' % (os.path.basename(f), _BUILD_INFO)) |
||||||
|
|
||||||
|
# Create a Dockerfile. |
||||||
|
with open(os.path.join(temp_dir, 'Dockerfile'), 'w') as f: |
||||||
|
f.write('\n'.join(lines)) |
||||||
|
|
||||||
|
jobset.message('START', 'Repackaging %s' % image, do_newline=True) |
||||||
|
build_cmd = ['docker', 'build', '--rm', '--tag', image, temp_dir] |
||||||
|
subprocess.check_output(build_cmd) |
||||||
|
dockerjob.remove_image(orig_tag, skip_nonexistent=True) |
||||||
|
|
||||||
|
def build_image_jobspec(runtime, env, gcr_tag): |
||||||
|
"""Build interop docker image for a language with runtime. |
||||||
|
|
||||||
|
runtime: a <lang><version> string, for example go1.8. |
||||||
|
env: dictionary of env to passed to the build script. |
||||||
|
gcr_tag: the tag for the docker image (i.e. v1.3.0). |
||||||
|
""" |
||||||
|
basename = 'grpc_interop_%s' % runtime |
||||||
|
tag = '%s/%s:%s' % (args.gcr_path, basename, gcr_tag) |
||||||
|
build_env = { |
||||||
|
'INTEROP_IMAGE': tag, |
||||||
|
'BASE_NAME': basename, |
||||||
|
'TTY_FLAG': '-t' |
||||||
|
} |
||||||
|
build_env.update(env) |
||||||
|
build_job = jobset.JobSpec( |
||||||
|
cmdline=[_IMAGE_BUILDER], |
||||||
|
environ=build_env, |
||||||
|
shortname='build_docker_%s' % runtime, |
||||||
|
timeout_seconds=30*60) |
||||||
|
build_job.tag = tag |
||||||
|
return build_job |
||||||
|
|
||||||
|
def build_all_images_for_lang(lang): |
||||||
|
"""Build all docker images for a language across releases and runtimes.""" |
||||||
|
if not args.git_checkout: |
||||||
|
if args.release != 'master': |
||||||
|
print('WARNING: --release is set but will be ignored\n') |
||||||
|
releases = ['master'] |
||||||
|
else: |
||||||
|
if args.release == 'all': |
||||||
|
releases = client_matrix.LANG_RELEASE_MATRIX[lang] |
||||||
|
else: |
||||||
|
# Build a particular release. |
||||||
|
if args.release not in ['master'] + client_matrix.LANG_RELEASE_MATRIX[lang]: |
||||||
|
jobset.message('SKIPPED', |
||||||
|
'%s for %s is not defined' % (args.release, lang), |
||||||
|
do_newline=True) |
||||||
|
return [] |
||||||
|
releases = [args.release] |
||||||
|
|
||||||
|
images = [] |
||||||
|
for release in releases: |
||||||
|
images += build_all_images_for_release(lang, release) |
||||||
|
jobset.message('SUCCESS', |
||||||
|
'All docker images built for %s at %s.' % (lang, releases), |
||||||
|
do_newline=True) |
||||||
|
return images |
||||||
|
|
||||||
|
def build_all_images_for_release(lang, release): |
||||||
|
"""Build all docker images for a release across all runtimes.""" |
||||||
|
docker_images = [] |
||||||
|
build_jobs = [] |
||||||
|
|
||||||
|
env = {} |
||||||
|
# If we not using current tree or the sibling for grpc stack, do checkout. |
||||||
|
if args.git_checkout: |
||||||
|
stack_base = checkout_grpc_stack(lang, release) |
||||||
|
var ={'go': 'GRPC_GO_ROOT', 'java': 'GRPC_JAVA_ROOT'}.get(lang, 'GRPC_ROOT') |
||||||
|
env[var] = stack_base |
||||||
|
|
||||||
|
for runtime in client_matrix.LANG_RUNTIME_MATRIX[lang]: |
||||||
|
job = build_image_jobspec(runtime, env, release) |
||||||
|
docker_images.append(job.tag) |
||||||
|
build_jobs.append(job) |
||||||
|
|
||||||
|
jobset.message('START', 'Building interop docker images.', do_newline=True) |
||||||
|
print('Jobs to run: \n%s\n' % '\n'.join(str(j) for j in build_jobs)) |
||||||
|
|
||||||
|
num_failures, _ = jobset.run( |
||||||
|
build_jobs, newline_on_success=True, maxjobs=multiprocessing.cpu_count()) |
||||||
|
if num_failures: |
||||||
|
jobset.message('FAILED', 'Failed to build interop docker images.', |
||||||
|
do_newline=True) |
||||||
|
docker_images_cleanup.extend(docker_images) |
||||||
|
sys.exit(1) |
||||||
|
|
||||||
|
jobset.message('SUCCESS', |
||||||
|
'All docker images built for %s at %s.' % (lang, release), |
||||||
|
do_newline=True) |
||||||
|
|
||||||
|
if release != 'master': |
||||||
|
commit_log = os.path.join(stack_base, 'commit_log') |
||||||
|
if os.path.exists(commit_log): |
||||||
|
for image in docker_images: |
||||||
|
add_files_to_image(image, [commit_log], 'release=%s' % release) |
||||||
|
return docker_images |
||||||
|
|
||||||
|
def cleanup(): |
||||||
|
if not args.keep: |
||||||
|
for image in docker_images_cleanup: |
||||||
|
dockerjob.remove_image(image, skip_nonexistent=True) |
||||||
|
|
||||||
|
docker_images_cleanup = [] |
||||||
|
atexit.register(cleanup) |
||||||
|
|
||||||
|
def checkout_grpc_stack(lang, release): |
||||||
|
"""Invokes 'git check' for the lang/release and returns directory created.""" |
||||||
|
assert args.git_checkout and args.git_checkout_root |
||||||
|
|
||||||
|
if not os.path.exists(args.git_checkout_root): |
||||||
|
os.makedirs(args.git_checkout_root) |
||||||
|
|
||||||
|
repo = client_matrix.get_github_repo(lang) |
||||||
|
# Get the subdir name part of repo |
||||||
|
# For example, 'git@github.com:grpc/grpc-go.git' should use 'grpc-go'. |
||||||
|
repo_dir = os.path.splitext(os.path.basename(repo))[0] |
||||||
|
stack_base = os.path.join(args.git_checkout_root, repo_dir) |
||||||
|
|
||||||
|
# Assume the directory is reusable for git checkout. |
||||||
|
if not os.path.exists(stack_base): |
||||||
|
subprocess.check_call(['git', 'clone', '--recursive', repo], |
||||||
|
cwd=os.path.dirname(stack_base)) |
||||||
|
|
||||||
|
# git checkout. |
||||||
|
jobset.message('START', 'git checkout %s from %s' % (release, stack_base), |
||||||
|
do_newline=True) |
||||||
|
# We should NEVER do checkout on current tree !!! |
||||||
|
assert not os.path.dirname(__file__).startswith(stack_base) |
||||||
|
output = subprocess.check_output( |
||||||
|
['git', 'checkout', release], cwd=stack_base, stderr=subprocess.STDOUT) |
||||||
|
commit_log = subprocess.check_output(['git', 'log', '-1'], cwd=stack_base) |
||||||
|
jobset.message('SUCCESS', 'git checkout', output + commit_log, do_newline=True) |
||||||
|
|
||||||
|
# Write git log to commit_log so it can be packaged with the docker image. |
||||||
|
with open(os.path.join(stack_base, 'commit_log'), 'w') as f: |
||||||
|
f.write(commit_log) |
||||||
|
return stack_base |
||||||
|
|
||||||
|
languages = args.language if args.language != ['all'] else _LANGUAGES |
||||||
|
for lang in languages: |
||||||
|
docker_images = build_all_images_for_lang(lang) |
||||||
|
for image in docker_images: |
||||||
|
jobset.message('START', 'Uploading %s' % image, do_newline=True) |
||||||
|
# docker image name must be in the format <gcr_path>/<image>:<gcr_tag> |
||||||
|
assert image.startswith(args.gcr_path) and image.find(':') != -1 |
||||||
|
|
||||||
|
# subprocess.call(['gcloud', 'docker', '--', 'push', image]) |
||||||
|
subprocess.call(['gcloud', 'docker', '--', 'push', image]) |
@ -0,0 +1,81 @@ |
|||||||
|
#!/bin/bash |
||||||
|
# Copyright 2017, 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. |
||||||
|
|
||||||
|
# Creates test cases for a language by running run_interop_test in manual mode |
||||||
|
# and save the generated output under ./testcases/<lang>__<release>. |
||||||
|
# |
||||||
|
# Params: |
||||||
|
# LANG - The language. |
||||||
|
# SKIP_TEST - If set, skip running the test cases for sanity. |
||||||
|
# RELEASE - Create testcase for specific release, defautl to 'master'. |
||||||
|
# KEEP_IMAGE - Do not clean local docker image created for the test cases. |
||||||
|
|
||||||
|
set -e |
||||||
|
|
||||||
|
cd $(dirname $0)/../.. |
||||||
|
GRPC_ROOT=$(pwd) |
||||||
|
CMDS_SH="${GRPC_ROOT}/interop_client_cmds.sh" |
||||||
|
TESTCASES_DIR=${GRPC_ROOT}/tools/interop_matrix/testcases |
||||||
|
|
||||||
|
echo "Create '$LANG' test cases for gRPC release '${RELEASE:=master}'" |
||||||
|
|
||||||
|
# Invoke run_interop_test in manual mode. |
||||||
|
${GRPC_ROOT}/tools/run_tests/run_interop_tests.py -l $LANG --use_docker \ |
||||||
|
--cloud_to_prod --manual_run |
||||||
|
|
||||||
|
# Clean up |
||||||
|
function cleanup { |
||||||
|
[ -z "$testcase" ] && testcase=$CMDS_SH |
||||||
|
echo "testcase: $testcase" |
||||||
|
if [ -e $testcase ]; then |
||||||
|
# The script should generate a line with "${docker_image:=...}". |
||||||
|
eval docker_image=$(grep -oe '${docker_image:=.*}' $testcase) |
||||||
|
if [ -z "$KEEP_IMAGE" ]; then |
||||||
|
echo "Clean up docker_image $docker_image" |
||||||
|
docker rmi -f $docker_image |
||||||
|
else |
||||||
|
echo "Kept docker_image $docker_image" |
||||||
|
fi |
||||||
|
fi |
||||||
|
[ -e "$CMDS_SH" ] && rm $CMDS_SH |
||||||
|
} |
||||||
|
trap cleanup EXIT |
||||||
|
# Running the testcases as sanity unless we are asked to skip. |
||||||
|
[ -z "$SKIP_TEST" ] && (echo "Running test cases: $CMDS_SH"; sh $CMDS_SH) |
||||||
|
|
||||||
|
mkdir -p $TESTCASES_DIR |
||||||
|
testcase=$TESTCASES_DIR/${LANG}__$RELEASE |
||||||
|
if [ -e $testcase ]; then |
||||||
|
echo "Updating: $testcase" |
||||||
|
diff $testcase $CMDS_SH || true |
||||||
|
fi |
||||||
|
mv $CMDS_SH $testcase |
||||||
|
chmod a+x $testcase |
||||||
|
echo "Test cases created: $testcase" |
@ -0,0 +1,11 @@ |
|||||||
|
#!/bin/bash |
||||||
|
echo "Testing ${docker_image:=grpc_interop_go:41fffd01-a6c8-41b6-8136-c0aaa1ec2437}" |
||||||
|
docker run -i --rm=true -w /go/src/google.golang.org/grpc/interop/client --net=host $docker_image bash -c "go run client.go --server_host=216.239.32.254 --server_host_override=grpc-test.sandbox.googleapis.com --server_port=443 --use_tls=true --test_case=large_unary" |
||||||
|
docker run -i --rm=true -w /go/src/google.golang.org/grpc/interop/client --net=host $docker_image bash -c "go run client.go --server_host=216.239.32.254 --server_host_override=grpc-test.sandbox.googleapis.com --server_port=443 --use_tls=true --test_case=empty_unary" |
||||||
|
docker run -i --rm=true -w /go/src/google.golang.org/grpc/interop/client --net=host $docker_image bash -c "go run client.go --server_host=216.239.32.254 --server_host_override=grpc-test.sandbox.googleapis.com --server_port=443 --use_tls=true --test_case=ping_pong" |
||||||
|
docker run -i --rm=true -w /go/src/google.golang.org/grpc/interop/client --net=host $docker_image bash -c "go run client.go --server_host=216.239.32.254 --server_host_override=grpc-test.sandbox.googleapis.com --server_port=443 --use_tls=true --test_case=empty_stream" |
||||||
|
docker run -i --rm=true -w /go/src/google.golang.org/grpc/interop/client --net=host $docker_image bash -c "go run client.go --server_host=216.239.32.254 --server_host_override=grpc-test.sandbox.googleapis.com --server_port=443 --use_tls=true --test_case=client_streaming" |
||||||
|
docker run -i --rm=true -w /go/src/google.golang.org/grpc/interop/client --net=host $docker_image bash -c "go run client.go --server_host=216.239.32.254 --server_host_override=grpc-test.sandbox.googleapis.com --server_port=443 --use_tls=true --test_case=server_streaming" |
||||||
|
docker run -i --rm=true -w /go/src/google.golang.org/grpc/interop/client --net=host $docker_image bash -c "go run client.go --server_host=216.239.32.254 --server_host_override=grpc-test.sandbox.googleapis.com --server_port=443 --use_tls=true --test_case=cancel_after_begin" |
||||||
|
docker run -i --rm=true -w /go/src/google.golang.org/grpc/interop/client --net=host $docker_image bash -c "go run client.go --server_host=216.239.32.254 --server_host_override=grpc-test.sandbox.googleapis.com --server_port=443 --use_tls=true --test_case=cancel_after_first_response" |
||||||
|
docker run -i --rm=true -w /go/src/google.golang.org/grpc/interop/client --net=host $docker_image bash -c "go run client.go --server_host=216.239.32.254 --server_host_override=grpc-test.sandbox.googleapis.com --server_port=443 --use_tls=true --test_case=timeout_on_sleeping_server" |
Loading…
Reference in new issue