diff --git a/src/node/.istanbul.yml b/.istanbul.yml similarity index 100% rename from src/node/.istanbul.yml rename to .istanbul.yml diff --git a/binding.gyp b/binding.gyp new file mode 100644 index 00000000000..2a5cb1ced49 --- /dev/null +++ b/binding.gyp @@ -0,0 +1,95 @@ +# 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. +{ + "variables" : { + 'config': '\n\x08SayHello\x12\x18.helloworld.HelloRequest\x1a\x16.helloworld.HelloReply\"\x00\x42\x18\n\x10io.grpc.examples\xa2\x02\x03HLWb\x06proto3' +) +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + + + + +_HELLOREQUEST = _descriptor.Descriptor( + name='HelloRequest', + full_name='helloworld.HelloRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='name', full_name='helloworld.HelloRequest.name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=32, + serialized_end=60, +) + + +_HELLOREPLY = _descriptor.Descriptor( + name='HelloReply', + full_name='helloworld.HelloReply', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='message', full_name='helloworld.HelloReply.message', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=62, + serialized_end=91, +) + +DESCRIPTOR.message_types_by_name['HelloRequest'] = _HELLOREQUEST +DESCRIPTOR.message_types_by_name['HelloReply'] = _HELLOREPLY + +HelloRequest = _reflection.GeneratedProtocolMessageType('HelloRequest', (_message.Message,), dict( + DESCRIPTOR = _HELLOREQUEST, + __module__ = 'helloworld_pb2' + # @@protoc_insertion_point(class_scope:helloworld.HelloRequest) + )) +_sym_db.RegisterMessage(HelloRequest) + +HelloReply = _reflection.GeneratedProtocolMessageType('HelloReply', (_message.Message,), dict( + DESCRIPTOR = _HELLOREPLY, + __module__ = 'helloworld_pb2' + # @@protoc_insertion_point(class_scope:helloworld.HelloReply) + )) +_sym_db.RegisterMessage(HelloReply) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), b'\n\020io.grpc.examples\242\002\003HLW') +import abc +from grpc.beta import implementations as beta_implementations +from grpc.early_adopter import implementations as early_adopter_implementations +from grpc.framework.alpha import utilities as alpha_utilities +from grpc.framework.common import cardinality +from grpc.framework.interfaces.face import utilities as face_utilities +class EarlyAdopterGreeterServicer(object): + """""" + __metaclass__ = abc.ABCMeta + @abc.abstractmethod + def SayHello(self, request, context): + raise NotImplementedError() +class EarlyAdopterGreeterServer(object): + """""" + __metaclass__ = abc.ABCMeta + @abc.abstractmethod + def start(self): + raise NotImplementedError() + @abc.abstractmethod + def stop(self): + raise NotImplementedError() +class EarlyAdopterGreeterStub(object): + """""" + __metaclass__ = abc.ABCMeta + @abc.abstractmethod + def SayHello(self, request): + raise NotImplementedError() + SayHello.async = None +def early_adopter_create_Greeter_server(servicer, port, private_key=None, certificate_chain=None): + import helloworld_pb2 + import helloworld_pb2 + method_service_descriptions = { + "SayHello": alpha_utilities.unary_unary_service_description( + servicer.SayHello, + helloworld_pb2.HelloRequest.FromString, + helloworld_pb2.HelloReply.SerializeToString, + ), + } + return early_adopter_implementations.server("helloworld.Greeter", method_service_descriptions, port, private_key=private_key, certificate_chain=certificate_chain) +def early_adopter_create_Greeter_stub(host, port, metadata_transformer=None, secure=False, root_certificates=None, private_key=None, certificate_chain=None, server_host_override=None): + import helloworld_pb2 + import helloworld_pb2 + method_invocation_descriptions = { + "SayHello": alpha_utilities.unary_unary_invocation_description( + helloworld_pb2.HelloRequest.SerializeToString, + helloworld_pb2.HelloReply.FromString, + ), + } + return early_adopter_implementations.stub("helloworld.Greeter", method_invocation_descriptions, host, port, metadata_transformer=metadata_transformer, secure=secure, root_certificates=root_certificates, private_key=private_key, certificate_chain=certificate_chain, server_host_override=server_host_override) + +class BetaGreeterServicer(object): + """""" + __metaclass__ = abc.ABCMeta + @abc.abstractmethod + def SayHello(self, request, context): + raise NotImplementedError() + +class BetaGreeterStub(object): + """The interface to which stubs will conform.""" + __metaclass__ = abc.ABCMeta + @abc.abstractmethod + def SayHello(self, request, timeout): + raise NotImplementedError() + SayHello.future = None + +def beta_create_Greeter_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None): + import helloworld_pb2 + import helloworld_pb2 + request_deserializers = { + ('helloworld.Greeter', 'SayHello'): helloworld_pb2.HelloRequest.FromString, + } + response_serializers = { + ('helloworld.Greeter', 'SayHello'): helloworld_pb2.HelloReply.SerializeToString, + } + method_implementations = { + ('helloworld.Greeter', 'SayHello'): face_utilities.unary_unary_inline(servicer.SayHello), + } + server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout) + return beta_implementations.server(method_implementations, options=server_options) + +def beta_create_Greeter_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None): + import helloworld_pb2 + import helloworld_pb2 + request_serializers = { + ('helloworld.Greeter', 'SayHello'): helloworld_pb2.HelloRequest.SerializeToString, + } + response_deserializers = { + ('helloworld.Greeter', 'SayHello'): helloworld_pb2.HelloReply.FromString, + } + cardinalities = { + 'SayHello': cardinality.Cardinality.UNARY_UNARY, + } + stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size) + return beta_implementations.dynamic_stub(channel, 'helloworld.Greeter', cardinalities, options=stub_options) +# @@protoc_insertion_point(module_scope) diff --git a/grpc.gyp b/grpc.gyp index fb83f911ae6..08185ac592e 100644 --- a/grpc.gyp +++ b/grpc.gyp @@ -78,10 +78,15 @@ '-ldl', '-lpthread', '-lz' - ] + ], + 'direct_dependent_settings': { + 'include_dirs': [ + '.', + 'include' + ], + } }, 'targets': [ - # TODO: Add C++ targets { 'target_name': 'gpr', 'product_prefix': 'lib', @@ -128,19 +133,6 @@ 'src/core/support/tls_pthread.c', ], }, - # TODO: Add C++ targets - { - 'target_name': 'gpr_test_util', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'gpr', - ], - 'sources': [ - 'test/core/util/test_config.c', - ], - }, - # TODO: Add C++ targets { 'target_name': 'grpc', 'product_prefix': 'lib', @@ -210,194 +202,6 @@ 'src/core/iomgr/endpoint_pair_posix.c', 'src/core/iomgr/endpoint_pair_windows.c', 'src/core/iomgr/exec_ctx.c', - 'src/core/iomgr/executor.c', - 'src/core/iomgr/fd_posix.c', - 'src/core/iomgr/iocp_windows.c', - 'src/core/iomgr/iomgr.c', - 'src/core/iomgr/iomgr_posix.c', - 'src/core/iomgr/iomgr_windows.c', - 'src/core/iomgr/pollset_multipoller_with_epoll.c', - 'src/core/iomgr/pollset_multipoller_with_poll_posix.c', - 'src/core/iomgr/pollset_posix.c', - 'src/core/iomgr/pollset_set_posix.c', - 'src/core/iomgr/pollset_set_windows.c', - 'src/core/iomgr/pollset_windows.c', - 'src/core/iomgr/resolve_address_posix.c', - 'src/core/iomgr/resolve_address_windows.c', - 'src/core/iomgr/sockaddr_utils.c', - 'src/core/iomgr/socket_utils_common_posix.c', - 'src/core/iomgr/socket_utils_linux.c', - 'src/core/iomgr/socket_utils_posix.c', - 'src/core/iomgr/socket_windows.c', - 'src/core/iomgr/tcp_client_posix.c', - 'src/core/iomgr/tcp_client_windows.c', - 'src/core/iomgr/tcp_posix.c', - 'src/core/iomgr/tcp_server_posix.c', - 'src/core/iomgr/tcp_server_windows.c', - 'src/core/iomgr/tcp_windows.c', - 'src/core/iomgr/time_averaged_stats.c', - 'src/core/iomgr/udp_server.c', - 'src/core/iomgr/wakeup_fd_eventfd.c', - 'src/core/iomgr/wakeup_fd_nospecial.c', - 'src/core/iomgr/wakeup_fd_pipe.c', - 'src/core/iomgr/wakeup_fd_posix.c', - 'src/core/iomgr/workqueue_posix.c', - 'src/core/iomgr/workqueue_windows.c', - 'src/core/json/json.c', - 'src/core/json/json_reader.c', - 'src/core/json/json_string.c', - 'src/core/json/json_writer.c', - 'src/core/profiling/basic_timers.c', - 'src/core/profiling/stap_timers.c', - 'src/core/surface/api_trace.c', - 'src/core/surface/byte_buffer.c', - 'src/core/surface/byte_buffer_queue.c', - 'src/core/surface/byte_buffer_reader.c', - 'src/core/surface/call.c', - 'src/core/surface/call_details.c', - 'src/core/surface/call_log_batch.c', - 'src/core/surface/channel.c', - 'src/core/surface/channel_connectivity.c', - 'src/core/surface/channel_create.c', - 'src/core/surface/completion_queue.c', - 'src/core/surface/event_string.c', - 'src/core/surface/init.c', - 'src/core/surface/lame_client.c', - 'src/core/surface/metadata_array.c', - 'src/core/surface/server.c', - 'src/core/surface/server_chttp2.c', - 'src/core/surface/server_create.c', - 'src/core/surface/version.c', - 'src/core/transport/chttp2/alpn.c', - 'src/core/transport/chttp2/bin_encoder.c', - 'src/core/transport/chttp2/frame_data.c', - 'src/core/transport/chttp2/frame_goaway.c', - 'src/core/transport/chttp2/frame_ping.c', - 'src/core/transport/chttp2/frame_rst_stream.c', - 'src/core/transport/chttp2/frame_settings.c', - 'src/core/transport/chttp2/frame_window_update.c', - 'src/core/transport/chttp2/hpack_parser.c', - 'src/core/transport/chttp2/hpack_table.c', - 'src/core/transport/chttp2/huffsyms.c', - 'src/core/transport/chttp2/incoming_metadata.c', - 'src/core/transport/chttp2/parsing.c', - 'src/core/transport/chttp2/status_conversion.c', - 'src/core/transport/chttp2/stream_encoder.c', - 'src/core/transport/chttp2/stream_lists.c', - 'src/core/transport/chttp2/stream_map.c', - 'src/core/transport/chttp2/timeout_encoding.c', - 'src/core/transport/chttp2/varint.c', - 'src/core/transport/chttp2/writing.c', - 'src/core/transport/chttp2_transport.c', - 'src/core/transport/connectivity_state.c', - 'src/core/transport/metadata.c', - 'src/core/transport/stream_op.c', - 'src/core/transport/transport.c', - 'src/core/transport/transport_op_string.c', - 'src/core/census/context.c', - 'src/core/census/initialize.c', - 'src/core/census/operation.c', - 'src/core/census/tracing.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'grpc_test_util', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'gpr', - 'gpr_test_util', - 'grpc', - ], - 'sources': [ - 'test/core/end2end/data/server1_cert.c', - 'test/core/end2end/data/server1_key.c', - 'test/core/end2end/data/test_root_cert.c', - 'test/core/end2end/cq_verifier.c', - 'test/core/end2end/fixtures/proxy.c', - 'test/core/iomgr/endpoint_tests.c', - 'test/core/security/oauth2_utils.c', - 'test/core/util/grpc_profiler.c', - 'test/core/util/parse_hexstring.c', - 'test/core/util/port_posix.c', - 'test/core/util/port_windows.c', - 'test/core/util/slice_splitter.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'grpc_test_util_unsecure', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'gpr', - 'gpr_test_util', - 'grpc', - ], - 'sources': [ - 'test/core/end2end/cq_verifier.c', - 'test/core/end2end/fixtures/proxy.c', - 'test/core/iomgr/endpoint_tests.c', - 'test/core/security/oauth2_utils.c', - 'test/core/util/grpc_profiler.c', - 'test/core/util/parse_hexstring.c', - 'test/core/util/port_posix.c', - 'test/core/util/port_windows.c', - 'test/core/util/slice_splitter.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'grpc_unsecure', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'gpr', - ], - 'sources': [ - 'src/core/surface/init_unsecure.c', - 'src/core/census/grpc_context.c', - 'src/core/census/grpc_filter.c', - 'src/core/channel/channel_args.c', - 'src/core/channel/channel_stack.c', - 'src/core/channel/client_channel.c', - 'src/core/channel/compress_filter.c', - 'src/core/channel/connected_channel.c', - 'src/core/channel/http_client_filter.c', - 'src/core/channel/http_server_filter.c', - 'src/core/channel/noop_filter.c', - 'src/core/client_config/client_config.c', - 'src/core/client_config/connector.c', - 'src/core/client_config/lb_policies/pick_first.c', - 'src/core/client_config/lb_policies/round_robin.c', - 'src/core/client_config/lb_policy.c', - 'src/core/client_config/lb_policy_factory.c', - 'src/core/client_config/lb_policy_registry.c', - 'src/core/client_config/resolver.c', - 'src/core/client_config/resolver_factory.c', - 'src/core/client_config/resolver_registry.c', - 'src/core/client_config/resolvers/dns_resolver.c', - 'src/core/client_config/resolvers/sockaddr_resolver.c', - 'src/core/client_config/subchannel.c', - 'src/core/client_config/subchannel_factory.c', - 'src/core/client_config/subchannel_factory_decorators/add_channel_arg.c', - 'src/core/client_config/subchannel_factory_decorators/merge_channel_args.c', - 'src/core/client_config/uri_parser.c', - 'src/core/compression/algorithm.c', - 'src/core/compression/message_compress.c', - 'src/core/debug/trace.c', - 'src/core/httpcli/format_request.c', - 'src/core/httpcli/httpcli.c', - 'src/core/httpcli/parser.c', - 'src/core/iomgr/alarm.c', - 'src/core/iomgr/alarm_heap.c', - 'src/core/iomgr/closure.c', - 'src/core/iomgr/endpoint.c', - 'src/core/iomgr/endpoint_pair_posix.c', - 'src/core/iomgr/endpoint_pair_windows.c', - 'src/core/iomgr/exec_ctx.c', - 'src/core/iomgr/executor.c', 'src/core/iomgr/fd_posix.c', 'src/core/iomgr/iocp_windows.c', 'src/core/iomgr/iomgr.c', @@ -487,12165 +291,5 @@ 'src/core/census/tracing.c', ], }, - # TODO: Add C++ targets - { - 'target_name': 'grpc_zookeeper', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'gpr', - 'grpc', - ], - 'sources': [ - 'src/core/client_config/resolvers/zookeeper_resolver.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'reconnect_server', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/util/reconnect_server.c', - ], - }, - # TODO: Add C++ targets - # TODO: Add C++ targets - # TODO: Add C++ targets - # TODO: Add C++ targets - # TODO: Add C++ targets - # TODO: Add C++ targets - # TODO: Add C++ targets - # TODO: Add C++ targets - # TODO: Add C++ targets - # TODO: Add C++ targets - # TODO: Add C++ targets - # TODO: Add C++ targets - { - 'target_name': 'end2end_fixture_h2_compress', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/fixtures/h2_compress.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_fixture_h2_fakesec', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/fixtures/h2_fakesec.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_fixture_h2_full', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/fixtures/h2_full.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_fixture_h2_full+poll', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/fixtures/h2_full+poll.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_fixture_h2_oauth2', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/fixtures/h2_oauth2.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_fixture_h2_proxy', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/fixtures/h2_proxy.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_fixture_h2_sockpair', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/fixtures/h2_sockpair.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_fixture_h2_sockpair+trace', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/fixtures/h2_sockpair+trace.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_fixture_h2_sockpair_1byte', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/fixtures/h2_sockpair_1byte.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_fixture_h2_ssl', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/fixtures/h2_ssl.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_fixture_h2_ssl+poll', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/fixtures/h2_ssl+poll.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_fixture_h2_ssl_proxy', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/fixtures/h2_ssl_proxy.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_fixture_h2_uds', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/fixtures/h2_uds.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_fixture_h2_uds+poll', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/fixtures/h2_uds+poll.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_bad_hostname', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/bad_hostname.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_binary_metadata', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/binary_metadata.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_call_creds', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/call_creds.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_cancel_after_accept', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/cancel_after_accept.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_cancel_after_client_done', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/cancel_after_client_done.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_cancel_after_invoke', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/cancel_after_invoke.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_cancel_before_invoke', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/cancel_before_invoke.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_cancel_in_a_vacuum', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/cancel_in_a_vacuum.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_census_simple_request', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/census_simple_request.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_channel_connectivity', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/channel_connectivity.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_compressed_payload', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/compressed_payload.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_default_host', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/default_host.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_disappearing_server', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/disappearing_server.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_empty_batch', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/empty_batch.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_graceful_server_shutdown', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/graceful_server_shutdown.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_high_initial_seqno', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/high_initial_seqno.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_invoke_large_request', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/invoke_large_request.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_large_metadata', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/large_metadata.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_max_concurrent_streams', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/max_concurrent_streams.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_max_message_length', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/max_message_length.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_metadata', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/metadata.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_no_op', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/no_op.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_payload', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/payload.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_ping_pong_streaming', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/ping_pong_streaming.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_registered_call', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/registered_call.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_request_with_flags', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/request_with_flags.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_request_with_payload', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/request_with_payload.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_server_finishes_request', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/server_finishes_request.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_shutdown_finishes_calls', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/shutdown_finishes_calls.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_shutdown_finishes_tags', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/shutdown_finishes_tags.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_simple_delayed_request', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/simple_delayed_request.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_simple_request', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/simple_request.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_test_trailing_metadata', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/tests/trailing_metadata.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'end2end_certs', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - ], - 'sources': [ - 'test/core/end2end/data/test_root_cert.c', - 'test/core/end2end/data/server1_cert.c', - 'test/core/end2end/data/server1_key.c', - ], - }, - # TODO: Add C++ targets - { - 'target_name': 'bad_client_test', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/bad_client/bad_client.c', - ], - }, - { - 'target_name': 'alarm_heap_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/iomgr/alarm_heap_test.c', - ] - }, - { - 'target_name': 'alarm_list_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/iomgr/alarm_list_test.c', - ] - }, - { - 'target_name': 'alpn_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/transport/chttp2/alpn_test.c', - ] - }, - { - 'target_name': 'bin_encoder_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/transport/chttp2/bin_encoder_test.c', - ] - }, - { - 'target_name': 'chttp2_status_conversion_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/transport/chttp2/status_conversion_test.c', - ] - }, - { - 'target_name': 'chttp2_stream_encoder_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/transport/chttp2/stream_encoder_test.c', - ] - }, - { - 'target_name': 'chttp2_stream_map_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/transport/chttp2/stream_map_test.c', - ] - }, - { - 'target_name': 'compression_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/compression/compression_test.c', - ] - }, - { - 'target_name': 'dualstack_socket_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/dualstack_socket_test.c', - ] - }, - { - 'target_name': 'endpoint_pair_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/iomgr/endpoint_pair_test.c', - ] - }, - { - 'target_name': 'fd_conservation_posix_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/iomgr/fd_conservation_posix_test.c', - ] - }, - { - 'target_name': 'fd_posix_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/iomgr/fd_posix_test.c', - ] - }, - { - 'target_name': 'fling_client', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/fling/client.c', - ] - }, - { - 'target_name': 'fling_server', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/fling/server.c', - ] - }, - { - 'target_name': 'fling_stream_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/fling/fling_stream_test.c', - ] - }, - { - 'target_name': 'fling_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/fling/fling_test.c', - ] - }, - { - 'target_name': 'gen_hpack_tables', - 'type': 'executable', - 'dependencies': [ - 'gpr', - 'grpc', - ], - 'sources': [ - 'tools/codegen/core/gen_hpack_tables.c', - ] - }, - { - 'target_name': 'gen_legal_metadata_characters', - 'type': 'executable', - 'dependencies': [ - ], - 'sources': [ - 'tools/codegen/core/gen_legal_metadata_characters.c', - ] - }, - { - 'target_name': 'gpr_cmdline_test', - 'type': 'executable', - 'dependencies': [ - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/support/cmdline_test.c', - ] - }, - { - 'target_name': 'gpr_env_test', - 'type': 'executable', - 'dependencies': [ - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/support/env_test.c', - ] - }, - { - 'target_name': 'gpr_file_test', - 'type': 'executable', - 'dependencies': [ - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/support/file_test.c', - ] - }, - { - 'target_name': 'gpr_histogram_test', - 'type': 'executable', - 'dependencies': [ - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/support/histogram_test.c', - ] - }, - { - 'target_name': 'gpr_host_port_test', - 'type': 'executable', - 'dependencies': [ - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/support/host_port_test.c', - ] - }, - { - 'target_name': 'gpr_log_test', - 'type': 'executable', - 'dependencies': [ - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/support/log_test.c', - ] - }, - { - 'target_name': 'gpr_slice_buffer_test', - 'type': 'executable', - 'dependencies': [ - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/support/slice_buffer_test.c', - ] - }, - { - 'target_name': 'gpr_slice_test', - 'type': 'executable', - 'dependencies': [ - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/support/slice_test.c', - ] - }, - { - 'target_name': 'gpr_stack_lockfree_test', - 'type': 'executable', - 'dependencies': [ - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/support/stack_lockfree_test.c', - ] - }, - { - 'target_name': 'gpr_string_test', - 'type': 'executable', - 'dependencies': [ - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/support/string_test.c', - ] - }, - { - 'target_name': 'gpr_sync_test', - 'type': 'executable', - 'dependencies': [ - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/support/sync_test.c', - ] - }, - { - 'target_name': 'gpr_thd_test', - 'type': 'executable', - 'dependencies': [ - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/support/thd_test.c', - ] - }, - { - 'target_name': 'gpr_time_test', - 'type': 'executable', - 'dependencies': [ - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/support/time_test.c', - ] - }, - { - 'target_name': 'gpr_tls_test', - 'type': 'executable', - 'dependencies': [ - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/support/tls_test.c', - ] - }, - { - 'target_name': 'gpr_useful_test', - 'type': 'executable', - 'dependencies': [ - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/support/useful_test.c', - ] - }, - { - 'target_name': 'grpc_auth_context_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/security/auth_context_test.c', - ] - }, - { - 'target_name': 'grpc_base64_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/security/base64_test.c', - ] - }, - { - 'target_name': 'grpc_byte_buffer_reader_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/surface/byte_buffer_reader_test.c', - ] - }, - { - 'target_name': 'grpc_channel_args_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/channel/channel_args_test.c', - ] - }, - { - 'target_name': 'grpc_channel_stack_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/channel/channel_stack_test.c', - ] - }, - { - 'target_name': 'grpc_completion_queue_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/surface/completion_queue_test.c', - ] - }, - { - 'target_name': 'grpc_create_jwt', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/security/create_jwt.c', - ] - }, - { - 'target_name': 'grpc_credentials_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/security/credentials_test.c', - ] - }, - { - 'target_name': 'grpc_fetch_oauth2', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/security/fetch_oauth2.c', - ] - }, - { - 'target_name': 'grpc_json_token_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/security/json_token_test.c', - ] - }, - { - 'target_name': 'grpc_jwt_verifier_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/security/jwt_verifier_test.c', - ] - }, - { - 'target_name': 'grpc_print_google_default_creds_token', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/security/print_google_default_creds_token.c', - ] - }, - { - 'target_name': 'grpc_security_connector_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/security/security_connector_test.c', - ] - }, - { - 'target_name': 'grpc_stream_op_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/transport/stream_op_test.c', - ] - }, - { - 'target_name': 'grpc_verify_jwt', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/security/verify_jwt.c', - ] - }, - { - 'target_name': 'hpack_parser_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/transport/chttp2/hpack_parser_test.c', - ] - }, - { - 'target_name': 'hpack_table_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/transport/chttp2/hpack_table_test.c', - ] - }, - { - 'target_name': 'httpcli_format_request_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/httpcli/format_request_test.c', - ] - }, - { - 'target_name': 'httpcli_parser_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/httpcli/parser_test.c', - ] - }, - { - 'target_name': 'httpcli_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/httpcli/httpcli_test.c', - ] - }, - { - 'target_name': 'json_rewrite', - 'type': 'executable', - 'dependencies': [ - 'grpc', - 'gpr', - ], - 'sources': [ - 'test/core/json/json_rewrite.c', - ] - }, - { - 'target_name': 'json_rewrite_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/json/json_rewrite_test.c', - ] - }, - { - 'target_name': 'json_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/json/json_test.c', - ] - }, - { - 'target_name': 'lame_client_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/surface/lame_client_test.c', - ] - }, - { - 'target_name': 'lb_policies_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/client_config/lb_policies_test.c', - ] - }, - { - 'target_name': 'low_level_ping_pong_benchmark', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/network_benchmarks/low_level_ping_pong.c', - ] - }, - { - 'target_name': 'message_compress_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/compression/message_compress_test.c', - ] - }, - { - 'target_name': 'multi_init_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/surface/multi_init_test.c', - ] - }, - { - 'target_name': 'multiple_server_queues_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/multiple_server_queues_test.c', - ] - }, - { - 'target_name': 'murmur_hash_test', - 'type': 'executable', - 'dependencies': [ - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/support/murmur_hash_test.c', - ] - }, - { - 'target_name': 'no_server_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/end2end/no_server_test.c', - ] - }, - { - 'target_name': 'resolve_address_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/iomgr/resolve_address_test.c', - ] - }, - { - 'target_name': 'secure_endpoint_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/security/secure_endpoint_test.c', - ] - }, - { - 'target_name': 'sockaddr_utils_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/iomgr/sockaddr_utils_test.c', - ] - }, - { - 'target_name': 'tcp_client_posix_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/iomgr/tcp_client_posix_test.c', - ] - }, - { - 'target_name': 'tcp_posix_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/iomgr/tcp_posix_test.c', - ] - }, - { - 'target_name': 'tcp_server_posix_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/iomgr/tcp_server_posix_test.c', - ] - }, - { - 'target_name': 'time_averaged_stats_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/iomgr/time_averaged_stats_test.c', - ] - }, - { - 'target_name': 'timeout_encoding_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/transport/chttp2/timeout_encoding_test.c', - ] - }, - { - 'target_name': 'timers_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/profiling/timers_test.c', - ] - }, - { - 'target_name': 'transport_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/transport/metadata_test.c', - ] - }, - { - 'target_name': 'transport_security_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/tsi/transport_security_test.c', - ] - }, - { - 'target_name': 'udp_server_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/iomgr/udp_server_test.c', - ] - }, - { - 'target_name': 'uri_parser_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/client_config/uri_parser_test.c', - ] - }, - { - 'target_name': 'workqueue_test', - 'type': 'executable', - 'dependencies': [ - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/iomgr/workqueue_test.c', - ] - }, - { - 'target_name': 'h2_compress_bad_hostname_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_bad_hostname', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_binary_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_binary_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_call_creds_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_call_creds', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_cancel_after_accept_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_cancel_after_accept', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_cancel_after_client_done_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_cancel_after_client_done', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_cancel_after_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_cancel_after_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_cancel_before_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_cancel_before_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_cancel_in_a_vacuum_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_cancel_in_a_vacuum', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_census_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_census_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_channel_connectivity_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_channel_connectivity', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_compressed_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_compressed_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_default_host_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_default_host', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_disappearing_server_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_disappearing_server', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_empty_batch_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_empty_batch', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_graceful_server_shutdown_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_graceful_server_shutdown', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_high_initial_seqno_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_high_initial_seqno', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_invoke_large_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_invoke_large_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_large_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_large_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_max_concurrent_streams_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_max_concurrent_streams', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_max_message_length_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_max_message_length', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_no_op_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_no_op', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_ping_pong_streaming_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_ping_pong_streaming', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_registered_call_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_registered_call', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_request_with_flags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_request_with_flags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_request_with_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_request_with_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_server_finishes_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_server_finishes_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_shutdown_finishes_calls_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_shutdown_finishes_calls', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_shutdown_finishes_tags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_shutdown_finishes_tags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_simple_delayed_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_simple_delayed_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_trailing_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_trailing_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_bad_hostname_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_bad_hostname', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_binary_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_binary_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_call_creds_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_call_creds', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_cancel_after_accept_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_cancel_after_accept', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_cancel_after_client_done_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_cancel_after_client_done', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_cancel_after_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_cancel_after_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_cancel_before_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_cancel_before_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_cancel_in_a_vacuum_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_cancel_in_a_vacuum', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_census_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_census_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_channel_connectivity_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_channel_connectivity', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_compressed_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_compressed_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_default_host_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_default_host', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_disappearing_server_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_disappearing_server', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_empty_batch_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_empty_batch', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_graceful_server_shutdown_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_graceful_server_shutdown', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_high_initial_seqno_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_high_initial_seqno', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_invoke_large_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_invoke_large_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_large_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_large_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_max_concurrent_streams_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_max_concurrent_streams', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_max_message_length_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_max_message_length', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_no_op_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_no_op', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_ping_pong_streaming_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_ping_pong_streaming', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_registered_call_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_registered_call', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_request_with_flags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_request_with_flags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_request_with_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_request_with_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_server_finishes_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_server_finishes_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_shutdown_finishes_calls_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_shutdown_finishes_calls', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_shutdown_finishes_tags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_shutdown_finishes_tags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_simple_delayed_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_simple_delayed_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_fakesec_trailing_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_fakesec', - 'end2end_test_trailing_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_bad_hostname_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_bad_hostname', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_binary_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_binary_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_call_creds_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_call_creds', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_cancel_after_accept_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_cancel_after_accept', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_cancel_after_client_done_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_cancel_after_client_done', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_cancel_after_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_cancel_after_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_cancel_before_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_cancel_before_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_cancel_in_a_vacuum_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_cancel_in_a_vacuum', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_census_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_census_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_channel_connectivity_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_channel_connectivity', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_compressed_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_compressed_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_default_host_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_default_host', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_disappearing_server_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_disappearing_server', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_empty_batch_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_empty_batch', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_graceful_server_shutdown_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_graceful_server_shutdown', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_high_initial_seqno_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_high_initial_seqno', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_invoke_large_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_invoke_large_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_large_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_large_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_max_concurrent_streams_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_max_concurrent_streams', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_max_message_length_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_max_message_length', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_no_op_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_no_op', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_ping_pong_streaming_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_ping_pong_streaming', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_registered_call_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_registered_call', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_request_with_flags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_request_with_flags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_request_with_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_request_with_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_server_finishes_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_server_finishes_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_shutdown_finishes_calls_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_shutdown_finishes_calls', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_shutdown_finishes_tags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_shutdown_finishes_tags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_simple_delayed_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_simple_delayed_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_trailing_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_trailing_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_bad_hostname_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_bad_hostname', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_binary_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_binary_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_call_creds_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_call_creds', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_cancel_after_accept_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_cancel_after_accept', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_cancel_after_client_done_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_cancel_after_client_done', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_cancel_after_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_cancel_after_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_cancel_before_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_cancel_before_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_cancel_in_a_vacuum_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_cancel_in_a_vacuum', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_census_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_census_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_channel_connectivity_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_channel_connectivity', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_compressed_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_compressed_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_default_host_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_default_host', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_disappearing_server_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_disappearing_server', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_empty_batch_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_empty_batch', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_graceful_server_shutdown_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_graceful_server_shutdown', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_high_initial_seqno_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_high_initial_seqno', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_invoke_large_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_invoke_large_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_large_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_large_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_max_concurrent_streams_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_max_concurrent_streams', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_max_message_length_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_max_message_length', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_no_op_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_no_op', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_ping_pong_streaming_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_ping_pong_streaming', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_registered_call_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_registered_call', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_request_with_flags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_request_with_flags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_request_with_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_request_with_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_server_finishes_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_server_finishes_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_shutdown_finishes_calls_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_shutdown_finishes_calls', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_shutdown_finishes_tags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_shutdown_finishes_tags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_simple_delayed_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_simple_delayed_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_trailing_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_trailing_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_bad_hostname_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_bad_hostname', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_binary_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_binary_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_call_creds_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_call_creds', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_cancel_after_accept_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_cancel_after_accept', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_cancel_after_client_done_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_cancel_after_client_done', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_cancel_after_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_cancel_after_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_cancel_before_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_cancel_before_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_cancel_in_a_vacuum_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_cancel_in_a_vacuum', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_census_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_census_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_channel_connectivity_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_channel_connectivity', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_compressed_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_compressed_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_default_host_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_default_host', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_disappearing_server_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_disappearing_server', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_empty_batch_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_empty_batch', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_graceful_server_shutdown_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_graceful_server_shutdown', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_high_initial_seqno_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_high_initial_seqno', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_invoke_large_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_invoke_large_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_large_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_large_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_max_concurrent_streams_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_max_concurrent_streams', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_max_message_length_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_max_message_length', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_no_op_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_no_op', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_ping_pong_streaming_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_ping_pong_streaming', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_registered_call_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_registered_call', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_request_with_flags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_request_with_flags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_request_with_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_request_with_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_server_finishes_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_server_finishes_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_shutdown_finishes_calls_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_shutdown_finishes_calls', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_shutdown_finishes_tags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_shutdown_finishes_tags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_simple_delayed_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_simple_delayed_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_oauth2_trailing_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_oauth2', - 'end2end_test_trailing_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_bad_hostname_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_bad_hostname', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_binary_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_binary_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_call_creds_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_call_creds', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_cancel_after_accept_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_cancel_after_accept', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_cancel_after_client_done_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_cancel_after_client_done', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_cancel_after_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_cancel_after_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_cancel_before_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_cancel_before_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_cancel_in_a_vacuum_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_cancel_in_a_vacuum', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_census_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_census_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_default_host_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_default_host', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_disappearing_server_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_disappearing_server', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_empty_batch_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_empty_batch', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_graceful_server_shutdown_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_graceful_server_shutdown', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_high_initial_seqno_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_high_initial_seqno', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_invoke_large_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_invoke_large_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_large_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_large_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_max_message_length_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_max_message_length', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_no_op_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_no_op', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_ping_pong_streaming_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_ping_pong_streaming', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_registered_call_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_registered_call', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_request_with_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_request_with_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_server_finishes_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_server_finishes_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_shutdown_finishes_calls_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_shutdown_finishes_calls', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_shutdown_finishes_tags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_shutdown_finishes_tags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_simple_delayed_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_simple_delayed_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_trailing_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_trailing_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_bad_hostname_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_bad_hostname', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_binary_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_binary_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_call_creds_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_call_creds', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_cancel_after_accept_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_cancel_after_accept', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_cancel_after_client_done_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_cancel_after_client_done', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_cancel_after_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_cancel_after_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_cancel_before_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_cancel_before_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_cancel_in_a_vacuum_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_cancel_in_a_vacuum', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_census_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_census_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_compressed_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_compressed_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_empty_batch_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_empty_batch', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_graceful_server_shutdown_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_graceful_server_shutdown', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_high_initial_seqno_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_high_initial_seqno', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_invoke_large_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_invoke_large_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_large_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_large_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_max_concurrent_streams_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_max_concurrent_streams', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_max_message_length_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_max_message_length', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_no_op_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_no_op', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_ping_pong_streaming_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_ping_pong_streaming', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_registered_call_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_registered_call', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_request_with_flags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_request_with_flags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_request_with_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_request_with_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_server_finishes_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_server_finishes_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_shutdown_finishes_calls_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_shutdown_finishes_calls', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_shutdown_finishes_tags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_shutdown_finishes_tags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_trailing_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_trailing_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_bad_hostname_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_bad_hostname', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_binary_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_binary_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_call_creds_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_call_creds', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_cancel_after_accept_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_cancel_after_accept', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_cancel_after_client_done_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_cancel_after_client_done', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_cancel_after_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_cancel_after_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_cancel_before_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_cancel_before_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_cancel_in_a_vacuum_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_cancel_in_a_vacuum', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_census_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_census_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_compressed_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_compressed_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_empty_batch_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_empty_batch', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_graceful_server_shutdown_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_graceful_server_shutdown', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_high_initial_seqno_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_high_initial_seqno', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_invoke_large_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_invoke_large_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_large_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_large_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_max_concurrent_streams_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_max_concurrent_streams', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_max_message_length_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_max_message_length', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_no_op_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_no_op', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_ping_pong_streaming_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_ping_pong_streaming', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_registered_call_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_registered_call', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_request_with_flags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_request_with_flags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_request_with_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_request_with_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_server_finishes_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_server_finishes_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_shutdown_finishes_calls_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_shutdown_finishes_calls', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_shutdown_finishes_tags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_shutdown_finishes_tags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_trailing_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_trailing_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_bad_hostname_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_bad_hostname', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_binary_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_binary_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_call_creds_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_call_creds', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_cancel_after_accept_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_cancel_after_accept', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_cancel_after_client_done_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_cancel_after_client_done', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_cancel_after_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_cancel_after_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_cancel_before_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_cancel_before_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_cancel_in_a_vacuum_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_cancel_in_a_vacuum', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_census_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_census_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_compressed_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_compressed_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_empty_batch_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_empty_batch', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_graceful_server_shutdown_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_graceful_server_shutdown', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_high_initial_seqno_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_high_initial_seqno', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_invoke_large_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_invoke_large_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_large_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_large_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_max_concurrent_streams_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_max_concurrent_streams', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_max_message_length_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_max_message_length', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_no_op_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_no_op', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_ping_pong_streaming_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_ping_pong_streaming', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_registered_call_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_registered_call', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_request_with_flags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_request_with_flags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_request_with_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_request_with_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_server_finishes_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_server_finishes_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_shutdown_finishes_calls_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_shutdown_finishes_calls', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_shutdown_finishes_tags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_shutdown_finishes_tags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_trailing_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_trailing_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_bad_hostname_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_bad_hostname', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_binary_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_binary_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_call_creds_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_call_creds', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_cancel_after_accept_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_cancel_after_accept', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_cancel_after_client_done_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_cancel_after_client_done', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_cancel_after_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_cancel_after_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_cancel_before_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_cancel_before_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_cancel_in_a_vacuum_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_cancel_in_a_vacuum', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_census_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_census_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_channel_connectivity_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_channel_connectivity', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_compressed_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_compressed_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_default_host_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_default_host', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_disappearing_server_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_disappearing_server', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_empty_batch_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_empty_batch', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_graceful_server_shutdown_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_graceful_server_shutdown', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_high_initial_seqno_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_high_initial_seqno', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_invoke_large_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_invoke_large_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_large_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_large_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_max_concurrent_streams_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_max_concurrent_streams', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_max_message_length_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_max_message_length', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_no_op_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_no_op', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_ping_pong_streaming_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_ping_pong_streaming', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_registered_call_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_registered_call', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_request_with_flags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_request_with_flags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_request_with_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_request_with_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_server_finishes_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_server_finishes_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_shutdown_finishes_calls_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_shutdown_finishes_calls', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_shutdown_finishes_tags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_shutdown_finishes_tags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_simple_delayed_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_simple_delayed_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_trailing_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl', - 'end2end_test_trailing_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_bad_hostname_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_bad_hostname', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_binary_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_binary_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_call_creds_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_call_creds', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_cancel_after_accept_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_cancel_after_accept', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_cancel_after_client_done_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_cancel_after_client_done', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_cancel_after_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_cancel_after_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_cancel_before_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_cancel_before_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_cancel_in_a_vacuum_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_cancel_in_a_vacuum', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_census_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_census_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_channel_connectivity_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_channel_connectivity', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_compressed_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_compressed_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_default_host_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_default_host', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_disappearing_server_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_disappearing_server', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_empty_batch_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_empty_batch', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_graceful_server_shutdown_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_graceful_server_shutdown', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_high_initial_seqno_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_high_initial_seqno', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_invoke_large_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_invoke_large_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_large_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_large_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_max_concurrent_streams_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_max_concurrent_streams', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_max_message_length_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_max_message_length', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_no_op_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_no_op', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_ping_pong_streaming_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_ping_pong_streaming', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_registered_call_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_registered_call', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_request_with_flags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_request_with_flags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_request_with_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_request_with_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_server_finishes_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_server_finishes_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_shutdown_finishes_calls_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_shutdown_finishes_calls', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_shutdown_finishes_tags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_shutdown_finishes_tags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_simple_delayed_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_simple_delayed_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl+poll_trailing_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl+poll', - 'end2end_test_trailing_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_bad_hostname_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_bad_hostname', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_binary_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_binary_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_call_creds_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_call_creds', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_cancel_after_accept_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_cancel_after_accept', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_cancel_after_client_done_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_cancel_after_client_done', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_cancel_after_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_cancel_after_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_cancel_before_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_cancel_before_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_cancel_in_a_vacuum_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_cancel_in_a_vacuum', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_census_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_census_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_default_host_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_default_host', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_disappearing_server_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_disappearing_server', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_empty_batch_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_empty_batch', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_graceful_server_shutdown_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_graceful_server_shutdown', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_high_initial_seqno_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_high_initial_seqno', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_invoke_large_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_invoke_large_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_large_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_large_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_max_message_length_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_max_message_length', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_no_op_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_no_op', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_ping_pong_streaming_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_ping_pong_streaming', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_registered_call_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_registered_call', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_request_with_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_request_with_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_server_finishes_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_server_finishes_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_shutdown_finishes_calls_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_shutdown_finishes_calls', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_shutdown_finishes_tags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_shutdown_finishes_tags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_simple_delayed_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_simple_delayed_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_ssl_proxy_trailing_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_ssl_proxy', - 'end2end_test_trailing_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_bad_hostname_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_bad_hostname', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_binary_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_binary_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_call_creds_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_call_creds', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_cancel_after_accept_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_cancel_after_accept', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_cancel_after_client_done_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_cancel_after_client_done', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_cancel_after_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_cancel_after_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_cancel_before_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_cancel_before_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_cancel_in_a_vacuum_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_cancel_in_a_vacuum', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_census_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_census_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_channel_connectivity_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_channel_connectivity', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_compressed_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_compressed_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_disappearing_server_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_disappearing_server', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_empty_batch_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_empty_batch', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_graceful_server_shutdown_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_graceful_server_shutdown', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_high_initial_seqno_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_high_initial_seqno', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_invoke_large_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_invoke_large_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_large_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_large_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_max_concurrent_streams_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_max_concurrent_streams', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_max_message_length_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_max_message_length', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_no_op_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_no_op', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_ping_pong_streaming_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_ping_pong_streaming', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_registered_call_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_registered_call', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_request_with_flags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_request_with_flags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_request_with_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_request_with_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_server_finishes_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_server_finishes_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_shutdown_finishes_calls_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_shutdown_finishes_calls', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_shutdown_finishes_tags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_shutdown_finishes_tags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_simple_delayed_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_simple_delayed_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_trailing_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_trailing_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_bad_hostname_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_bad_hostname', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_binary_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_binary_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_call_creds_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_call_creds', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_cancel_after_accept_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_cancel_after_accept', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_cancel_after_client_done_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_cancel_after_client_done', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_cancel_after_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_cancel_after_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_cancel_before_invoke_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_cancel_before_invoke', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_cancel_in_a_vacuum_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_cancel_in_a_vacuum', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_census_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_census_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_channel_connectivity_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_channel_connectivity', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_compressed_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_compressed_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_disappearing_server_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_disappearing_server', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_empty_batch_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_empty_batch', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_graceful_server_shutdown_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_graceful_server_shutdown', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_high_initial_seqno_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_high_initial_seqno', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_invoke_large_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_invoke_large_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_large_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_large_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_max_concurrent_streams_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_max_concurrent_streams', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_max_message_length_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_max_message_length', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_no_op_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_no_op', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_ping_pong_streaming_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_ping_pong_streaming', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_registered_call_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_registered_call', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_request_with_flags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_request_with_flags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_request_with_payload_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_request_with_payload', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_server_finishes_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_server_finishes_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_shutdown_finishes_calls_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_shutdown_finishes_calls', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_shutdown_finishes_tags_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_shutdown_finishes_tags', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_simple_delayed_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_simple_delayed_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_simple_request_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_simple_request', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_trailing_metadata_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_trailing_metadata', - 'end2end_certs', - 'grpc_test_util', - 'grpc', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_bad_hostname_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_bad_hostname', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_binary_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_binary_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_cancel_after_accept_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_cancel_after_accept', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_cancel_after_client_done_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_cancel_after_client_done', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_cancel_after_invoke_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_cancel_after_invoke', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_cancel_before_invoke_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_cancel_before_invoke', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_cancel_in_a_vacuum_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_cancel_in_a_vacuum', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_census_simple_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_census_simple_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_channel_connectivity_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_channel_connectivity', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_compressed_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_compressed_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_default_host_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_default_host', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_disappearing_server_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_disappearing_server', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_empty_batch_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_empty_batch', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_graceful_server_shutdown_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_graceful_server_shutdown', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_high_initial_seqno_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_high_initial_seqno', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_invoke_large_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_invoke_large_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_large_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_large_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_max_concurrent_streams_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_max_concurrent_streams', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_max_message_length_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_max_message_length', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_no_op_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_no_op', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_ping_pong_streaming_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_ping_pong_streaming', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_registered_call_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_registered_call', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_request_with_flags_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_request_with_flags', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_request_with_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_request_with_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_server_finishes_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_server_finishes_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_shutdown_finishes_calls_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_shutdown_finishes_calls', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_shutdown_finishes_tags_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_shutdown_finishes_tags', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_simple_delayed_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_simple_delayed_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_simple_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_simple_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_compress_trailing_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_compress', - 'end2end_test_trailing_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_bad_hostname_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_bad_hostname', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_binary_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_binary_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_cancel_after_accept_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_cancel_after_accept', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_cancel_after_client_done_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_cancel_after_client_done', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_cancel_after_invoke_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_cancel_after_invoke', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_cancel_before_invoke_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_cancel_before_invoke', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_cancel_in_a_vacuum_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_cancel_in_a_vacuum', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_census_simple_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_census_simple_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_channel_connectivity_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_channel_connectivity', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_compressed_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_compressed_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_default_host_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_default_host', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_disappearing_server_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_disappearing_server', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_empty_batch_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_empty_batch', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_graceful_server_shutdown_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_graceful_server_shutdown', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_high_initial_seqno_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_high_initial_seqno', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_invoke_large_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_invoke_large_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_large_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_large_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_max_concurrent_streams_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_max_concurrent_streams', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_max_message_length_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_max_message_length', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_no_op_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_no_op', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_ping_pong_streaming_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_ping_pong_streaming', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_registered_call_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_registered_call', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_request_with_flags_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_request_with_flags', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_request_with_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_request_with_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_server_finishes_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_server_finishes_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_shutdown_finishes_calls_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_shutdown_finishes_calls', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_shutdown_finishes_tags_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_shutdown_finishes_tags', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_simple_delayed_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_simple_delayed_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_simple_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_simple_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full_trailing_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full', - 'end2end_test_trailing_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_bad_hostname_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_bad_hostname', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_binary_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_binary_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_cancel_after_accept_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_cancel_after_accept', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_cancel_after_client_done_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_cancel_after_client_done', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_cancel_after_invoke_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_cancel_after_invoke', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_cancel_before_invoke_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_cancel_before_invoke', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_cancel_in_a_vacuum_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_cancel_in_a_vacuum', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_census_simple_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_census_simple_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_channel_connectivity_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_channel_connectivity', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_compressed_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_compressed_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_default_host_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_default_host', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_disappearing_server_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_disappearing_server', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_empty_batch_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_empty_batch', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_graceful_server_shutdown_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_graceful_server_shutdown', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_high_initial_seqno_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_high_initial_seqno', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_invoke_large_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_invoke_large_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_large_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_large_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_max_concurrent_streams_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_max_concurrent_streams', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_max_message_length_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_max_message_length', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_no_op_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_no_op', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_ping_pong_streaming_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_ping_pong_streaming', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_registered_call_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_registered_call', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_request_with_flags_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_request_with_flags', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_request_with_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_request_with_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_server_finishes_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_server_finishes_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_shutdown_finishes_calls_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_shutdown_finishes_calls', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_shutdown_finishes_tags_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_shutdown_finishes_tags', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_simple_delayed_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_simple_delayed_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_simple_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_simple_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_full+poll_trailing_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_full+poll', - 'end2end_test_trailing_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_bad_hostname_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_bad_hostname', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_binary_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_binary_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_cancel_after_accept_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_cancel_after_accept', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_cancel_after_client_done_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_cancel_after_client_done', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_cancel_after_invoke_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_cancel_after_invoke', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_cancel_before_invoke_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_cancel_before_invoke', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_cancel_in_a_vacuum_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_cancel_in_a_vacuum', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_census_simple_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_census_simple_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_default_host_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_default_host', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_disappearing_server_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_disappearing_server', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_empty_batch_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_empty_batch', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_graceful_server_shutdown_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_graceful_server_shutdown', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_high_initial_seqno_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_high_initial_seqno', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_invoke_large_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_invoke_large_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_large_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_large_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_max_message_length_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_max_message_length', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_no_op_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_no_op', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_ping_pong_streaming_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_ping_pong_streaming', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_registered_call_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_registered_call', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_request_with_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_request_with_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_server_finishes_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_server_finishes_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_shutdown_finishes_calls_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_shutdown_finishes_calls', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_shutdown_finishes_tags_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_shutdown_finishes_tags', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_simple_delayed_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_simple_delayed_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_simple_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_simple_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_proxy_trailing_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_proxy', - 'end2end_test_trailing_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_bad_hostname_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_bad_hostname', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_binary_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_binary_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_cancel_after_accept_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_cancel_after_accept', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_cancel_after_client_done_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_cancel_after_client_done', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_cancel_after_invoke_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_cancel_after_invoke', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_cancel_before_invoke_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_cancel_before_invoke', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_cancel_in_a_vacuum_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_cancel_in_a_vacuum', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_census_simple_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_census_simple_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_compressed_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_compressed_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_empty_batch_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_empty_batch', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_graceful_server_shutdown_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_graceful_server_shutdown', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_high_initial_seqno_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_high_initial_seqno', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_invoke_large_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_invoke_large_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_large_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_large_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_max_concurrent_streams_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_max_concurrent_streams', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_max_message_length_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_max_message_length', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_no_op_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_no_op', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_ping_pong_streaming_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_ping_pong_streaming', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_registered_call_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_registered_call', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_request_with_flags_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_request_with_flags', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_request_with_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_request_with_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_server_finishes_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_server_finishes_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_shutdown_finishes_calls_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_shutdown_finishes_calls', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_shutdown_finishes_tags_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_shutdown_finishes_tags', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_simple_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_simple_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_trailing_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair', - 'end2end_test_trailing_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_bad_hostname_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_bad_hostname', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_binary_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_binary_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_cancel_after_accept_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_cancel_after_accept', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_cancel_after_client_done_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_cancel_after_client_done', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_cancel_after_invoke_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_cancel_after_invoke', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_cancel_before_invoke_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_cancel_before_invoke', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_cancel_in_a_vacuum_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_cancel_in_a_vacuum', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_census_simple_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_census_simple_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_compressed_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_compressed_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_empty_batch_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_empty_batch', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_graceful_server_shutdown_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_graceful_server_shutdown', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_high_initial_seqno_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_high_initial_seqno', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_invoke_large_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_invoke_large_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_large_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_large_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_max_concurrent_streams_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_max_concurrent_streams', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_max_message_length_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_max_message_length', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_no_op_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_no_op', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_ping_pong_streaming_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_ping_pong_streaming', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_registered_call_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_registered_call', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_request_with_flags_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_request_with_flags', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_request_with_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_request_with_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_server_finishes_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_server_finishes_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_shutdown_finishes_calls_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_shutdown_finishes_calls', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_shutdown_finishes_tags_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_shutdown_finishes_tags', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_simple_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_simple_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair+trace_trailing_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair+trace', - 'end2end_test_trailing_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_bad_hostname_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_bad_hostname', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_binary_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_binary_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_cancel_after_accept_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_cancel_after_accept', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_cancel_after_client_done_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_cancel_after_client_done', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_cancel_after_invoke_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_cancel_after_invoke', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_cancel_before_invoke_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_cancel_before_invoke', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_cancel_in_a_vacuum_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_cancel_in_a_vacuum', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_census_simple_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_census_simple_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_compressed_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_compressed_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_empty_batch_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_empty_batch', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_graceful_server_shutdown_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_graceful_server_shutdown', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_high_initial_seqno_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_high_initial_seqno', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_invoke_large_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_invoke_large_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_large_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_large_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_max_concurrent_streams_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_max_concurrent_streams', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_max_message_length_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_max_message_length', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_no_op_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_no_op', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_ping_pong_streaming_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_ping_pong_streaming', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_registered_call_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_registered_call', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_request_with_flags_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_request_with_flags', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_request_with_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_request_with_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_server_finishes_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_server_finishes_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_shutdown_finishes_calls_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_shutdown_finishes_calls', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_shutdown_finishes_tags_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_shutdown_finishes_tags', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_simple_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_simple_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_sockpair_1byte_trailing_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_sockpair_1byte', - 'end2end_test_trailing_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_bad_hostname_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_bad_hostname', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_binary_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_binary_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_cancel_after_accept_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_cancel_after_accept', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_cancel_after_client_done_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_cancel_after_client_done', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_cancel_after_invoke_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_cancel_after_invoke', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_cancel_before_invoke_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_cancel_before_invoke', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_cancel_in_a_vacuum_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_cancel_in_a_vacuum', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_census_simple_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_census_simple_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_channel_connectivity_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_channel_connectivity', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_compressed_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_compressed_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_disappearing_server_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_disappearing_server', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_empty_batch_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_empty_batch', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_graceful_server_shutdown_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_graceful_server_shutdown', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_high_initial_seqno_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_high_initial_seqno', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_invoke_large_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_invoke_large_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_large_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_large_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_max_concurrent_streams_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_max_concurrent_streams', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_max_message_length_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_max_message_length', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_no_op_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_no_op', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_ping_pong_streaming_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_ping_pong_streaming', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_registered_call_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_registered_call', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_request_with_flags_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_request_with_flags', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_request_with_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_request_with_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_server_finishes_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_server_finishes_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_shutdown_finishes_calls_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_shutdown_finishes_calls', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_shutdown_finishes_tags_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_shutdown_finishes_tags', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_simple_delayed_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_simple_delayed_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_simple_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_simple_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds_trailing_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds', - 'end2end_test_trailing_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_bad_hostname_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_bad_hostname', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_binary_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_binary_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_cancel_after_accept_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_cancel_after_accept', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_cancel_after_client_done_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_cancel_after_client_done', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_cancel_after_invoke_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_cancel_after_invoke', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_cancel_before_invoke_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_cancel_before_invoke', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_cancel_in_a_vacuum_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_cancel_in_a_vacuum', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_census_simple_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_census_simple_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_channel_connectivity_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_channel_connectivity', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_compressed_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_compressed_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_disappearing_server_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_disappearing_server', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_empty_batch_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_empty_batch', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_graceful_server_shutdown_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_graceful_server_shutdown', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_high_initial_seqno_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_high_initial_seqno', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_invoke_large_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_invoke_large_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_large_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_large_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_max_concurrent_streams_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_max_concurrent_streams', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_max_message_length_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_max_message_length', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_no_op_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_no_op', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_ping_pong_streaming_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_ping_pong_streaming', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_registered_call_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_registered_call', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_request_with_flags_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_request_with_flags', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_request_with_payload_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_request_with_payload', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_server_finishes_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_server_finishes_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_shutdown_finishes_calls_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_shutdown_finishes_calls', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_shutdown_finishes_tags_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_shutdown_finishes_tags', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_simple_delayed_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_simple_delayed_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_simple_request_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_simple_request', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'h2_uds+poll_trailing_metadata_nosec_test', - 'type': 'executable', - 'dependencies': [ - 'end2end_fixture_h2_uds+poll', - 'end2end_test_trailing_metadata', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - ] - }, - { - 'target_name': 'connection_prefix_bad_client_test', - 'type': 'executable', - 'dependencies': [ - 'bad_client_test', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/bad_client/tests/connection_prefix.c', - ] - }, - { - 'target_name': 'initial_settings_frame_bad_client_test', - 'type': 'executable', - 'dependencies': [ - 'bad_client_test', - 'grpc_test_util_unsecure', - 'grpc_unsecure', - 'gpr_test_util', - 'gpr', - ], - 'sources': [ - 'test/core/bad_client/tests/initial_settings_frame.c', - ] - }, ] } diff --git a/src/node/package.json b/package.json similarity index 61% rename from src/node/package.json rename to package.json index 0aeca5f659a..0eea3475a34 100644 --- a/src/node/package.json +++ b/package.json @@ -16,14 +16,13 @@ } ], "directories": { - "lib": "src", - "example": "examples" + "lib": "src/node/src" }, "scripts": { - "lint": "node ./node_modules/jshint/bin/jshint src test examples interop index.js", - "test": "./node_modules/.bin/mocha && npm run-script lint", - "gen_docs": "./node_modules/.bin/jsdoc -c jsdoc_conf.json", - "coverage": "./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha" + "lint": "node ./node_modules/jshint/bin/jshint src/node/src src/node/test src/node/examples src/node/interop src/node/index.js", + "test": "./node_modules/.bin/mocha src/node/test && npm run-script lint", + "gen_docs": "./node_modules/.bin/jsdoc -c src/node/jsdoc_conf.json", + "coverage": "./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha src/node/test" }, "dependencies": { "bindings": "^1.2.0", @@ -39,26 +38,24 @@ "jshint": "^2.5.0", "minimist": "^1.1.0", "mocha": "~1.21.0", - "mustache": "^2.0.0", - "strftime": "^0.8.2" + "mustache": "^2.0.0" }, "engines": { "node": ">=0.10.13" }, "files": [ "LICENSE", - "README.md", - "index.js", - "binding.gyp", - "bin", - "cli", - "examples", - "ext", - "health_check", - "interop", - "src", - "test" + "src/node/README.md", + "src/node/index.js", + "src/node/ext", + "src/node/health_check", + "src/node/src", + "src/core", + "test/proto", + "include", + "grpc.gyp", + "binding.gyp" ], - "main": "index.js", + "main": "src/node/index.js", "license": "BSD-3-Clause" } diff --git a/src/core/channel/client_channel.c b/src/core/channel/client_channel.c index b59b62a6aa7..8e7cb27cfd2 100644 --- a/src/core/channel/client_channel.c +++ b/src/core/channel/client_channel.c @@ -51,7 +51,7 @@ typedef struct call_data call_data; -typedef struct { +typedef struct client_channel_channel_data { /** metadata context for this channel */ grpc_mdctx *mdctx; /** resolver for this channel */ diff --git a/src/core/client_config/lb_policies/pick_first.c b/src/core/client_config/lb_policies/pick_first.c index 28155d0fbc0..4b3aaab09cc 100644 --- a/src/core/client_config/lb_policies/pick_first.c +++ b/src/core/client_config/lb_policies/pick_first.c @@ -101,6 +101,9 @@ void pf_destroy(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) { for (i = 0; i < p->num_subchannels; i++) { GRPC_SUBCHANNEL_UNREF(exec_ctx, p->subchannels[i], "pick_first"); } + if (p->selected) { + GRPC_SUBCHANNEL_UNREF(exec_ctx, p->selected, "picked_first"); + } grpc_connectivity_state_destroy(exec_ctx, &p->state_tracker); gpr_free(p->subchannels); gpr_mu_destroy(&p->mu); @@ -172,6 +175,35 @@ void pf_pick(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol, } } +static void destroy_subchannels(grpc_exec_ctx *exec_ctx, void *arg, + int iomgr_success) { + pick_first_lb_policy *p = arg; + size_t i; + grpc_transport_op op; + size_t num_subchannels = p->num_subchannels; + grpc_subchannel **subchannels; + grpc_subchannel *exclude_subchannel; + + gpr_mu_lock(&p->mu); + subchannels = p->subchannels; + p->num_subchannels = 0; + p->subchannels = NULL; + exclude_subchannel = p->selected; + gpr_mu_unlock(&p->mu); + GRPC_LB_POLICY_UNREF(exec_ctx, &p->base, "destroy_subchannels"); + + for (i = 0; i < num_subchannels; i++) { + if (subchannels[i] != exclude_subchannel) { + memset(&op, 0, sizeof(op)); + op.disconnect = 1; + grpc_subchannel_process_transport_op(exec_ctx, subchannels[i], &op); + } + GRPC_SUBCHANNEL_UNREF(exec_ctx, subchannels[i], "pick_first"); + } + + gpr_free(subchannels); +} + static void pf_connectivity_changed(grpc_exec_ctx *exec_ctx, void *arg, int iomgr_success) { pick_first_lb_policy *p = arg; @@ -200,6 +232,11 @@ static void pf_connectivity_changed(grpc_exec_ctx *exec_ctx, void *arg, grpc_connectivity_state_set(exec_ctx, &p->state_tracker, GRPC_CHANNEL_READY, "connecting_ready"); p->selected = p->subchannels[p->checking_subchannel]; + GRPC_SUBCHANNEL_REF(p->selected, "picked_first"); + /* drop the pick list: we are connected now */ + GRPC_LB_POLICY_REF(&p->base, "destroy_subchannels"); + grpc_exec_ctx_enqueue(exec_ctx, grpc_closure_create(destroy_subchannels, p), 1); + /* update any calls that were waiting for a pick */ while ((pp = p->pending_picks)) { p->pending_picks = pp->next; *pp->target = p->selected; @@ -279,10 +316,15 @@ static void pf_broadcast(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol, size_t i; size_t n; grpc_subchannel **subchannels; + grpc_subchannel *selected; gpr_mu_lock(&p->mu); n = p->num_subchannels; subchannels = gpr_malloc(n * sizeof(*subchannels)); + selected = p->selected; + if (selected) { + GRPC_SUBCHANNEL_REF(selected, "pf_broadcast_to_selected"); + } for (i = 0; i < n; i++) { subchannels[i] = p->subchannels[i]; GRPC_SUBCHANNEL_REF(subchannels[i], "pf_broadcast"); @@ -290,9 +332,14 @@ static void pf_broadcast(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol, gpr_mu_unlock(&p->mu); for (i = 0; i < n; i++) { + if (selected == subchannels[i]) continue; grpc_subchannel_process_transport_op(exec_ctx, subchannels[i], op); GRPC_SUBCHANNEL_UNREF(exec_ctx, subchannels[i], "pf_broadcast"); } + if (p->selected) { + grpc_subchannel_process_transport_op(exec_ctx, selected, op); + GRPC_SUBCHANNEL_UNREF(exec_ctx, selected, "pf_broadcast_to_selected"); + } gpr_free(subchannels); } diff --git a/src/core/iomgr/closure.c b/src/core/iomgr/closure.c index 1e3cad00906..b4f1817de4f 100644 --- a/src/core/iomgr/closure.c +++ b/src/core/iomgr/closure.c @@ -33,6 +33,8 @@ #include "src/core/iomgr/closure.h" +#include + void grpc_closure_init(grpc_closure *closure, grpc_iomgr_cb_func cb, void *cb_arg) { closure->cb = cb; @@ -79,3 +81,25 @@ grpc_closure *grpc_closure_list_pop(grpc_closure_list *list) { list->head = list->head->next; return head; } + +typedef struct { + grpc_iomgr_cb_func cb; + void *cb_arg; + grpc_closure wrapper; +} wrapped_closure; + +static void closure_wrapper(grpc_exec_ctx *exec_ctx, void *arg, int success) { + wrapped_closure *wc = arg; + grpc_iomgr_cb_func cb = wc->cb; + void *cb_arg = wc->cb_arg; + gpr_free(wc); + cb(exec_ctx, cb_arg, success); +} + +grpc_closure *grpc_closure_create(grpc_iomgr_cb_func cb, void *cb_arg) { + wrapped_closure *wc = gpr_malloc(sizeof(*wc)); + wc->cb = cb; + wc->cb_arg = cb_arg; + grpc_closure_init(&wc->wrapper, closure_wrapper, wc); + return &wc->wrapper; +} diff --git a/src/core/iomgr/closure.h b/src/core/iomgr/closure.h index 709ef1afe93..7a9f7ccad0d 100644 --- a/src/core/iomgr/closure.h +++ b/src/core/iomgr/closure.h @@ -77,6 +77,9 @@ struct grpc_closure { void grpc_closure_init(grpc_closure *closure, grpc_iomgr_cb_func cb, void *cb_arg); +/* Create a heap allocated closure: try to avoid except for very rare events */ +grpc_closure *grpc_closure_create(grpc_iomgr_cb_func cb, void *cb_arg); + #define GRPC_CLOSURE_LIST_INIT \ { NULL, NULL } diff --git a/src/core/iomgr/tcp_server_windows.c b/src/core/iomgr/tcp_server_windows.c index db3319b3c6c..3fea8b5b350 100644 --- a/src/core/iomgr/tcp_server_windows.c +++ b/src/core/iomgr/tcp_server_windows.c @@ -336,6 +336,8 @@ static void on_accept(grpc_exec_ctx *exec_ctx, void *arg, int from_iocp) { peer_name_string); gpr_free(fd_name); gpr_free(peer_name_string); + } else { + closesocket(sock); } } diff --git a/src/core/iomgr/udp_server.c b/src/core/iomgr/udp_server.c index 1304f2067ea..9903e970e66 100644 --- a/src/core/iomgr/udp_server.c +++ b/src/core/iomgr/udp_server.c @@ -278,7 +278,7 @@ static void on_read(grpc_exec_ctx *exec_ctx, void *arg, int success) { /* Tell the registered callback that data is available to read. */ GPR_ASSERT(sp->read_cb); - sp->read_cb(sp->emfd, sp->server->grpc_server); + sp->read_cb(exec_ctx, sp->emfd, sp->server->grpc_server); /* Re-arm the notification event so we get another chance to read. */ grpc_fd_notify_on_read(exec_ctx, sp->emfd, &sp->read_closure); diff --git a/src/core/iomgr/udp_server.h b/src/core/iomgr/udp_server.h index dbbe0971093..de5736c4262 100644 --- a/src/core/iomgr/udp_server.h +++ b/src/core/iomgr/udp_server.h @@ -43,7 +43,8 @@ typedef struct grpc_server grpc_server; typedef struct grpc_udp_server grpc_udp_server; /* Called when data is available to read from the socket. */ -typedef void (*grpc_udp_server_read_cb)(grpc_fd *emfd, grpc_server *server); +typedef void (*grpc_udp_server_read_cb)(grpc_exec_ctx *exec_ctx, grpc_fd *emfd, + grpc_server *server); /* Create a server, initially not bound to any ports */ grpc_udp_server *grpc_udp_server_create(void); diff --git a/src/core/surface/call.c b/src/core/surface/call.c index 6b0395ab002..07c3ff6ae4e 100644 --- a/src/core/surface/call.c +++ b/src/core/surface/call.c @@ -936,6 +936,7 @@ static int add_slice_to_message(grpc_call *call, gpr_slice slice) { } /* we have to be reading a message to know what to do here */ if (!call->reading_message) { + gpr_slice_unref(slice); cancel_with_status(call, GRPC_STATUS_INVALID_ARGUMENT, "Received payload data while not reading a message"); return 0; diff --git a/src/node/LICENSE b/src/node/LICENSE deleted file mode 100644 index 0209b570e10..00000000000 --- a/src/node/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -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. diff --git a/src/node/README.md b/src/node/README.md index 7719d082900..5d89e2228db 100644 --- a/src/node/README.md +++ b/src/node/README.md @@ -5,51 +5,19 @@ Beta ## PREREQUISITES - `node`: This requires `node` to be installed. If you instead have the `nodejs` executable on Debian, you should install the [`nodejs-legacy`](https://packages.debian.org/sid/nodejs-legacy) package. -- [homebrew][] on Mac OS X. These simplify the installation of the gRPC C core. ## INSTALLATION -**Linux (Debian):** - -Add [Debian jessie-backports][] to your `sources.list` file. Example: - -```sh -echo "deb http://http.debian.net/debian jessie-backports main" | \ -sudo tee -a /etc/apt/sources.list -``` - -Install the gRPC Debian package - -```sh -sudo apt-get update -sudo apt-get install libgrpc-dev -``` - Install the gRPC NPM package ```sh npm install grpc ``` -**Mac OS X** - -Install [homebrew][]. Run the following command to install gRPC Node.js. -```sh -$ curl -fsSL https://goo.gl/getgrpc | bash -s nodejs -``` -This will download and run the [gRPC install script][], then install the latest version of gRPC Nodejs npm package. - ## BUILD FROM SOURCE 1. Clone [the grpc Git Repository](https://github.com/grpc/grpc). - 2. Follow the instructions in the `INSTALL` file in the root of that repository to install the C core library that this package depends on. 3. Run `npm install`. -If you install the gRPC C core library in a custom location, then you need to set some environment variables to install this library. The command will look like this: - -```sh -CXXFLAGS=-I/include LDFLAGS=-L/lib npm install [grpc] -``` - ## TESTING To run the test suite, simply run `npm test` in the install location. @@ -110,7 +78,3 @@ ServerCredentials ``` An object with factory methods for creating credential objects for servers. - -[homebrew]:http://brew.sh -[gRPC install script]:https://raw.githubusercontent.com/grpc/homebrew-grpc/master/scripts/install -[Debian jessie-backports]:http://backports.debian.org/Instructions/ diff --git a/src/node/bin/README.md b/src/node/bin/README.md deleted file mode 100644 index 2f856e428ef..00000000000 --- a/src/node/bin/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Command Line Tools - -# Service Packager - -The command line tool `bin/service_packager`, when called with the following command line: - -```bash -service_packager proto_file -o output_path -n name -v version [-i input_path...] -``` - -Populates `output_path` with a node package consisting of a `package.json` populated with `name` and `version`, an `index.js`, a `LICENSE` file copied from gRPC, and a `service.json`, which is compiled from `proto_file` and the given `input_path`s. `require('output_path')` returns an object that is equivalent to - -```js -{ client: require('grpc').load('service.json'), - auth: require('google-auth-library') } -``` diff --git a/src/node/bin/service_packager b/src/node/bin/service_packager deleted file mode 100755 index c7f24609977..00000000000 --- a/src/node/bin/service_packager +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env node -require(__dirname+'/../cli/service_packager.js').main(process.argv.slice(2)); \ No newline at end of file diff --git a/src/node/binding.gyp b/src/node/binding.gyp deleted file mode 100644 index 247719e9813..00000000000 --- a/src/node/binding.gyp +++ /dev/null @@ -1,100 +0,0 @@ -{ - "variables" : { - 'config': '/dev/null 2>&1 && echo true || echo false)' - }, - 'conditions': [ - ['config=="gcov"', { - 'cflags': [ - '-ftest-coverage', - '-fprofile-arcs', - '-O0' - ], - 'ldflags': [ - '-ftest-coverage', - '-fprofile-arcs' - ] - } - ], - ['pkg_config_grpc == "true"', { - 'link_settings': { - 'libraries': [ - ' ParseMetadata(const grpc_metadata_array *metadata_array) { } if (EndsWith(elem->key, "-bin")) { Nan::Set(array, index_map[elem->key], - Nan::CopyBuffer(elem->value, - elem->value_length).ToLocalChecked()); + MakeFastBuffer( + Nan::CopyBuffer(elem->value, + elem->value_length).ToLocalChecked())); } else { Nan::Set(array, index_map[elem->key], Nan::New(elem->value).ToLocalChecked()); @@ -501,6 +504,7 @@ void Call::Init(Local exports) { Nan::SetPrototypeMethod(tpl, "cancel", Cancel); Nan::SetPrototypeMethod(tpl, "cancelWithStatus", CancelWithStatus); Nan::SetPrototypeMethod(tpl, "getPeer", GetPeer); + Nan::SetPrototypeMethod(tpl, "setCredentials", SetCredentials); fun_tpl.Reset(tpl); Local ctr = Nan::GetFunction(tpl).ToLocalChecked(); Nan::Set(exports, Nan::New("Call").ToLocalChecked(), ctr); @@ -724,5 +728,26 @@ NAN_METHOD(Call::GetPeer) { info.GetReturnValue().Set(peer_value); } +NAN_METHOD(Call::SetCredentials) { + Nan::HandleScope scope; + if (!HasInstance(info.This())) { + return Nan::ThrowTypeError( + "setCredentials can only be called on Call objects"); + } + if (!CallCredentials::HasInstance(info[0])) { + return Nan::ThrowTypeError( + "setCredentials' first argument must be a CallCredentials"); + } + Call *call = ObjectWrap::Unwrap(info.This()); + CallCredentials *creds_object = ObjectWrap::Unwrap( + Nan::To(info[0]).ToLocalChecked()); + grpc_credentials *creds = creds_object->GetWrappedCredentials(); + grpc_call_error error = GRPC_CALL_ERROR; + if (creds) { + error = grpc_call_set_credentials(call->wrapped_call, creds); + } + info.GetReturnValue().Set(Nan::New(error)); +} + } // namespace node } // namespace grpc diff --git a/src/node/ext/call.h b/src/node/ext/call.h index 2f8e1f17aae..dd6c38e4f8e 100644 --- a/src/node/ext/call.h +++ b/src/node/ext/call.h @@ -73,6 +73,10 @@ struct Resources { std::vector > handles; }; +bool CreateMetadataArray(v8::Local metadata, + grpc_metadata_array *array, + shared_ptr resources); + class Op { public: virtual v8::Local GetNodeValue() const = 0; @@ -122,6 +126,7 @@ class Call : public Nan::ObjectWrap { static NAN_METHOD(Cancel); static NAN_METHOD(CancelWithStatus); static NAN_METHOD(GetPeer); + static NAN_METHOD(SetCredentials); static Nan::Callback *constructor; // Used for typechecking instances of this javascript class static Nan::Persistent fun_tpl; diff --git a/src/node/ext/call_credentials.cc b/src/node/ext/call_credentials.cc new file mode 100644 index 00000000000..839bb567e48 --- /dev/null +++ b/src/node/ext/call_credentials.cc @@ -0,0 +1,259 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include + +#include "grpc/grpc.h" +#include "grpc/grpc_security.h" +#include "grpc/support/log.h" +#include "call_credentials.h" +#include "call.h" + +namespace grpc { +namespace node { + +using Nan::Callback; +using Nan::EscapableHandleScope; +using Nan::HandleScope; +using Nan::Maybe; +using Nan::MaybeLocal; +using Nan::ObjectWrap; +using Nan::Persistent; +using Nan::Utf8String; + +using v8::Exception; +using v8::External; +using v8::Function; +using v8::FunctionTemplate; +using v8::Integer; +using v8::Local; +using v8::Object; +using v8::ObjectTemplate; +using v8::Value; + +Nan::Callback *CallCredentials::constructor; +Persistent CallCredentials::fun_tpl; + +CallCredentials::CallCredentials(grpc_credentials *credentials) + : wrapped_credentials(credentials) {} + +CallCredentials::~CallCredentials() { + grpc_credentials_release(wrapped_credentials); +} + +void CallCredentials::Init(Local exports) { + HandleScope scope; + Local tpl = Nan::New(New); + tpl->SetClassName(Nan::New("CallCredentials").ToLocalChecked()); + tpl->InstanceTemplate()->SetInternalFieldCount(1); + Nan::SetPrototypeMethod(tpl, "compose", Compose); + fun_tpl.Reset(tpl); + Local ctr = Nan::GetFunction(tpl).ToLocalChecked(); + Nan::Set(ctr, Nan::New("createFromPlugin").ToLocalChecked(), + Nan::GetFunction( + Nan::New(CreateFromPlugin)).ToLocalChecked()); + Nan::Set(exports, Nan::New("CallCredentials").ToLocalChecked(), ctr); + constructor = new Nan::Callback(ctr); +} + +bool CallCredentials::HasInstance(Local val) { + HandleScope scope; + return Nan::New(fun_tpl)->HasInstance(val); +} + +Local CallCredentials::WrapStruct(grpc_credentials *credentials) { + EscapableHandleScope scope; + const int argc = 1; + if (credentials == NULL) { + return scope.Escape(Nan::Null()); + } + Local argv[argc] = { + Nan::New(reinterpret_cast(credentials))}; + MaybeLocal maybe_instance = Nan::NewInstance( + constructor->GetFunction(), argc, argv); + if (maybe_instance.IsEmpty()) { + return scope.Escape(Nan::Null()); + } else { + return scope.Escape(maybe_instance.ToLocalChecked()); + } +} + +grpc_credentials *CallCredentials::GetWrappedCredentials() { + return wrapped_credentials; +} + +NAN_METHOD(CallCredentials::New) { + if (info.IsConstructCall()) { + if (!info[0]->IsExternal()) { + return Nan::ThrowTypeError( + "CallCredentials can only be created with the provided functions"); + } + Local ext = info[0].As(); + grpc_credentials *creds_value = + reinterpret_cast(ext->Value()); + CallCredentials *credentials = new CallCredentials(creds_value); + credentials->Wrap(info.This()); + info.GetReturnValue().Set(info.This()); + return; + } else { + const int argc = 1; + Local argv[argc] = {info[0]}; + MaybeLocal maybe_instance = constructor->GetFunction()->NewInstance( + argc, argv); + if (maybe_instance.IsEmpty()) { + // There's probably a pending exception + return; + } else { + info.GetReturnValue().Set(maybe_instance.ToLocalChecked()); + } + } +} + +NAN_METHOD(CallCredentials::Compose) { + if (!CallCredentials::HasInstance(info.This())) { + return Nan::ThrowTypeError( + "compose can only be called on CallCredentials objects"); + } + if (!CallCredentials::HasInstance(info[0])) { + return Nan::ThrowTypeError( + "compose's first argument must be a CallCredentials object"); + } + CallCredentials *self = ObjectWrap::Unwrap(info.This()); + CallCredentials *other = ObjectWrap::Unwrap( + Nan::To(info[0]).ToLocalChecked()); + grpc_credentials *creds = grpc_composite_credentials_create( + self->wrapped_credentials, other->wrapped_credentials, NULL); + info.GetReturnValue().Set(WrapStruct(creds)); +} + + + +NAN_METHOD(CallCredentials::CreateFromPlugin) { + if (!info[0]->IsFunction()) { + return Nan::ThrowTypeError( + "createFromPlugin's argument must be a function"); + } + grpc_metadata_credentials_plugin plugin; + plugin_state *state = new plugin_state; + state->callback = new Nan::Callback(info[0].As()); + plugin.get_metadata = plugin_get_metadata; + plugin.destroy = plugin_destroy_state; + plugin.state = reinterpret_cast(state); + grpc_credentials *creds = grpc_metadata_credentials_create_from_plugin(plugin, + NULL); + info.GetReturnValue().Set(WrapStruct(creds)); +} + +NAN_METHOD(PluginCallback) { + // Arguments: status code, error details, metadata + if (!info[0]->IsUint32()) { + return Nan::ThrowTypeError( + "The callback's first argument must be a status code"); + } + if (!info[1]->IsString()) { + return Nan::ThrowTypeError( + "The callback's second argument must be a string"); + } + if (!info[2]->IsObject()) { + return Nan::ThrowTypeError( + "The callback's third argument must be an object"); + } + shared_ptr resources(new Resources); + grpc_status_code code = static_cast( + Nan::To(info[0]).FromJust()); + char *details = *Utf8String(info[1]); + grpc_metadata_array array; + if (!CreateMetadataArray(Nan::To(info[2]).ToLocalChecked(), + &array, resources)){ + return Nan::ThrowError("Failed to parse metadata"); + } + grpc_credentials_plugin_metadata_cb cb = + reinterpret_cast( + Nan::Get(info.Callee(), + Nan::New("cb").ToLocalChecked() + ).ToLocalChecked().As()->Value()); + void *user_data = + Nan::Get(info.Callee(), + Nan::New("user_data").ToLocalChecked() + ).ToLocalChecked().As()->Value(); + cb(user_data, array.metadata, array.count, code, details); +} + +NAUV_WORK_CB(SendPluginCallback) { + Nan::HandleScope scope; + plugin_callback_data *data = reinterpret_cast( + async->data); + // Attach cb and user_data to plugin_callback so that it can access them later + v8::Local plugin_callback = Nan::GetFunction( + Nan::New(PluginCallback)).ToLocalChecked(); + Nan::Set(plugin_callback, Nan::New("cb").ToLocalChecked(), + Nan::New(reinterpret_cast(data->cb))); + Nan::Set(plugin_callback, Nan::New("user_data").ToLocalChecked(), + Nan::New(data->user_data)); + const int argc = 2; + v8::Local argv[argc] = { + Nan::New(data->service_url).ToLocalChecked(), + plugin_callback + }; + Nan::Callback *callback = data->state->callback; + callback->Call(argc, argv); + delete data; + uv_unref((uv_handle_t *)async); + uv_close((uv_handle_t *)async, (uv_close_cb)free); +} + +void plugin_get_metadata(void *state, const char *service_url, + grpc_credentials_plugin_metadata_cb cb, + void *user_data) { + uv_async_t *async = static_cast(malloc(sizeof(uv_async_t))); + uv_async_init(uv_default_loop(), + async, + SendPluginCallback); + plugin_callback_data *data = new plugin_callback_data; + data->state = reinterpret_cast(state); + data->service_url = service_url; + data->cb = cb; + data->user_data = user_data; + async->data = data; + /* libuv says that it will coalesce calls to uv_async_send. If there is ever a + * problem with a callback not getting called, that is probably the reason */ + uv_async_send(async); +} + +void plugin_destroy_state(void *ptr) { + plugin_state *state = reinterpret_cast(ptr); + delete state->callback; +} + +} // namespace node +} // namespace grpc diff --git a/src/node/ext/call_credentials.h b/src/node/ext/call_credentials.h new file mode 100644 index 00000000000..618292d19e8 --- /dev/null +++ b/src/node/ext/call_credentials.h @@ -0,0 +1,100 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_NODE_CALL_CREDENTIALS_H_ +#define GRPC_NODE_CALL_CREDENTIALS_H_ + +#include +#include +#include "grpc/grpc_security.h" + +namespace grpc { +namespace node { + +class CallCredentials : public Nan::ObjectWrap { + public: + static void Init(v8::Local exports); + static bool HasInstance(v8::Local val); + /* Wrap a grpc_credentials struct in a javascript object */ + static v8::Local WrapStruct(grpc_credentials *credentials); + + /* Returns the grpc_credentials struct that this object wraps */ + grpc_credentials *GetWrappedCredentials(); + + private: + explicit CallCredentials(grpc_credentials *credentials); + ~CallCredentials(); + + // Prevent copying + CallCredentials(const CallCredentials &); + CallCredentials &operator=(const CallCredentials &); + + static NAN_METHOD(New); + static NAN_METHOD(CreateSsl); + static NAN_METHOD(CreateFromPlugin); + + static NAN_METHOD(Compose); + static Nan::Callback *constructor; + // Used for typechecking instances of this javascript class + static Nan::Persistent fun_tpl; + + grpc_credentials *wrapped_credentials; +}; + +/* Auth metadata plugin functionality */ + +typedef struct plugin_state { + Nan::Callback *callback; +} plugin_state; + +typedef struct plugin_callback_data { + plugin_state *state; + const char *service_url; + grpc_credentials_plugin_metadata_cb cb; + void *user_data; +} plugin_callback_data; + +void plugin_get_metadata(void *state, const char *service_url, + grpc_credentials_plugin_metadata_cb cb, + void *user_data); + +void plugin_destroy_state(void *state); + +NAN_METHOD(PluginCallback); + +NAUV_WORK_CB(SendPluginCallback); + +} // namespace node +} // namepsace grpc + +#endif // GRPC_NODE_CALL_CREDENTIALS_H_ diff --git a/src/node/ext/channel.cc b/src/node/ext/channel.cc index 6eb1e776884..a328c017130 100644 --- a/src/node/ext/channel.cc +++ b/src/node/ext/channel.cc @@ -42,7 +42,7 @@ #include "call.h" #include "channel.h" #include "completion_queue_async_worker.h" -#include "credentials.h" +#include "channel_credentials.h" #include "timeval.h" namespace grpc { @@ -112,11 +112,11 @@ NAN_METHOD(Channel::New) { // Owned by the Channel object Utf8String host(info[0]); grpc_credentials *creds; - if (!Credentials::HasInstance(info[1])) { + if (!ChannelCredentials::HasInstance(info[1])) { return Nan::ThrowTypeError( - "Channel's second argument must be a credential"); + "Channel's second argument must be a ChannelCredentials"); } - Credentials *creds_object = ObjectWrap::Unwrap( + ChannelCredentials *creds_object = ObjectWrap::Unwrap( Nan::To(info[1]).ToLocalChecked()); creds = creds_object->GetWrappedCredentials(); grpc_channel_args *channel_args_ptr; diff --git a/src/node/ext/credentials.cc b/src/node/ext/channel_credentials.cc similarity index 64% rename from src/node/ext/credentials.cc rename to src/node/ext/channel_credentials.cc index 4f41c92f6a7..3d47ff293df 100644 --- a/src/node/ext/credentials.cc +++ b/src/node/ext/channel_credentials.cc @@ -36,7 +36,9 @@ #include "grpc/grpc.h" #include "grpc/grpc_security.h" #include "grpc/support/log.h" -#include "credentials.h" +#include "channel_credentials.h" +#include "call_credentials.h" +#include "call.h" namespace grpc { namespace node { @@ -60,51 +62,40 @@ using v8::Object; using v8::ObjectTemplate; using v8::Value; -Nan::Callback *Credentials::constructor; -Persistent Credentials::fun_tpl; +Nan::Callback *ChannelCredentials::constructor; +Persistent ChannelCredentials::fun_tpl; -Credentials::Credentials(grpc_credentials *credentials) +ChannelCredentials::ChannelCredentials(grpc_credentials *credentials) : wrapped_credentials(credentials) {} -Credentials::~Credentials() { +ChannelCredentials::~ChannelCredentials() { grpc_credentials_release(wrapped_credentials); } -void Credentials::Init(Local exports) { +void ChannelCredentials::Init(Local exports) { HandleScope scope; Local tpl = Nan::New(New); - tpl->SetClassName(Nan::New("Credentials").ToLocalChecked()); + tpl->SetClassName(Nan::New("ChannelCredentials").ToLocalChecked()); tpl->InstanceTemplate()->SetInternalFieldCount(1); + Nan::SetPrototypeMethod(tpl, "compose", Compose); fun_tpl.Reset(tpl); Local ctr = Nan::GetFunction(tpl).ToLocalChecked(); - Nan::Set(ctr, Nan::New("createDefault").ToLocalChecked(), - Nan::GetFunction( - Nan::New(CreateDefault)).ToLocalChecked()); Nan::Set(ctr, Nan::New("createSsl").ToLocalChecked(), Nan::GetFunction( Nan::New(CreateSsl)).ToLocalChecked()); - Nan::Set(ctr, Nan::New("createComposite").ToLocalChecked(), - Nan::GetFunction( - Nan::New(CreateComposite)).ToLocalChecked()); - Nan::Set(ctr, Nan::New("createGce").ToLocalChecked(), - Nan::GetFunction( - Nan::New(CreateGce)).ToLocalChecked()); - Nan::Set(ctr, Nan::New("createIam").ToLocalChecked(), - Nan::GetFunction( - Nan::New(CreateIam)).ToLocalChecked()); Nan::Set(ctr, Nan::New("createInsecure").ToLocalChecked(), Nan::GetFunction( Nan::New(CreateInsecure)).ToLocalChecked()); - Nan::Set(exports, Nan::New("Credentials").ToLocalChecked(), ctr); + Nan::Set(exports, Nan::New("ChannelCredentials").ToLocalChecked(), ctr); constructor = new Nan::Callback(ctr); } -bool Credentials::HasInstance(Local val) { +bool ChannelCredentials::HasInstance(Local val) { HandleScope scope; return Nan::New(fun_tpl)->HasInstance(val); } -Local Credentials::WrapStruct(grpc_credentials *credentials) { +Local ChannelCredentials::WrapStruct(grpc_credentials *credentials) { EscapableHandleScope scope; const int argc = 1; Local argv[argc] = { @@ -118,20 +109,20 @@ Local Credentials::WrapStruct(grpc_credentials *credentials) { } } -grpc_credentials *Credentials::GetWrappedCredentials() { +grpc_credentials *ChannelCredentials::GetWrappedCredentials() { return wrapped_credentials; } -NAN_METHOD(Credentials::New) { +NAN_METHOD(ChannelCredentials::New) { if (info.IsConstructCall()) { if (!info[0]->IsExternal()) { return Nan::ThrowTypeError( - "Credentials can only be created with the provided functions"); + "ChannelCredentials can only be created with the provided functions"); } Local ext = info[0].As(); grpc_credentials *creds_value = reinterpret_cast(ext->Value()); - Credentials *credentials = new Credentials(creds_value); + ChannelCredentials *credentials = new ChannelCredentials(creds_value); credentials->Wrap(info.This()); info.GetReturnValue().Set(info.This()); return; @@ -149,16 +140,7 @@ NAN_METHOD(Credentials::New) { } } -NAN_METHOD(Credentials::CreateDefault) { - grpc_credentials *creds = grpc_google_default_credentials_create(); - if (creds == NULL) { - info.GetReturnValue().SetNull(); - } else { - info.GetReturnValue().Set(WrapStruct(creds)); - } -} - -NAN_METHOD(Credentials::CreateSsl) { +NAN_METHOD(ChannelCredentials::CreateSsl) { char *root_certs = NULL; grpc_ssl_pem_key_cert_pair key_cert_pair = {NULL, NULL}; if (::node::Buffer::HasInstance(info[0])) { @@ -188,49 +170,25 @@ NAN_METHOD(Credentials::CreateSsl) { } } -NAN_METHOD(Credentials::CreateComposite) { - if (!HasInstance(info[0])) { +NAN_METHOD(ChannelCredentials::Compose) { + if (!ChannelCredentials::HasInstance(info.This())) { return Nan::ThrowTypeError( - "createComposite's first argument must be a Credentials object"); + "compose can only be called on ChannelCredentials objects"); } - if (!HasInstance(info[1])) { + if (!CallCredentials::HasInstance(info[0])) { return Nan::ThrowTypeError( - "createComposite's second argument must be a Credentials object"); + "compose's first argument must be a CallCredentials object"); } - Credentials *creds1 = ObjectWrap::Unwrap( + ChannelCredentials *self = ObjectWrap::Unwrap( + info.This()); + if (self->wrapped_credentials == NULL) { + return Nan::ThrowTypeError( + "Cannot compose insecure credential"); + } + CallCredentials *other = ObjectWrap::Unwrap( Nan::To(info[0]).ToLocalChecked()); - Credentials *creds2 = ObjectWrap::Unwrap( - Nan::To(info[1]).ToLocalChecked()); grpc_credentials *creds = grpc_composite_credentials_create( - creds1->wrapped_credentials, creds2->wrapped_credentials, NULL); - if (creds == NULL) { - info.GetReturnValue().SetNull(); - } else { - info.GetReturnValue().Set(WrapStruct(creds)); - } -} - -NAN_METHOD(Credentials::CreateGce) { - Nan::HandleScope scope; - grpc_credentials *creds = grpc_google_compute_engine_credentials_create(NULL); - if (creds == NULL) { - info.GetReturnValue().SetNull(); - } else { - info.GetReturnValue().Set(WrapStruct(creds)); - } -} - -NAN_METHOD(Credentials::CreateIam) { - if (!info[0]->IsString()) { - return Nan::ThrowTypeError("createIam's first argument must be a string"); - } - if (!info[1]->IsString()) { - return Nan::ThrowTypeError("createIam's second argument must be a string"); - } - Utf8String auth_token(info[0]); - Utf8String auth_selector(info[1]); - grpc_credentials *creds = - grpc_google_iam_credentials_create(*auth_token, *auth_selector, NULL); + self->wrapped_credentials, other->GetWrappedCredentials(), NULL); if (creds == NULL) { info.GetReturnValue().SetNull(); } else { @@ -238,7 +196,7 @@ NAN_METHOD(Credentials::CreateIam) { } } -NAN_METHOD(Credentials::CreateInsecure) { +NAN_METHOD(ChannelCredentials::CreateInsecure) { info.GetReturnValue().Set(WrapStruct(NULL)); } diff --git a/src/node/ext/credentials.h b/src/node/ext/channel_credentials.h similarity index 83% rename from src/node/ext/credentials.h rename to src/node/ext/channel_credentials.h index 1b211175d45..31ea0987bc6 100644 --- a/src/node/ext/credentials.h +++ b/src/node/ext/channel_credentials.h @@ -31,8 +31,8 @@ * */ -#ifndef NET_GRPC_NODE_CREDENTIALS_H_ -#define NET_GRPC_NODE_CREDENTIALS_H_ +#ifndef NET_GRPC_NODE_CHANNEL_CREDENTIALS_H_ +#define NET_GRPC_NODE_CHANNEL_CREDENTIALS_H_ #include #include @@ -43,7 +43,7 @@ namespace grpc { namespace node { /* Wrapper class for grpc_credentials structs */ -class Credentials : public Nan::ObjectWrap { +class ChannelCredentials : public Nan::ObjectWrap { public: static void Init(v8::Local exports); static bool HasInstance(v8::Local val); @@ -54,21 +54,18 @@ class Credentials : public Nan::ObjectWrap { grpc_credentials *GetWrappedCredentials(); private: - explicit Credentials(grpc_credentials *credentials); - ~Credentials(); + explicit ChannelCredentials(grpc_credentials *credentials); + ~ChannelCredentials(); // Prevent copying - Credentials(const Credentials &); - Credentials &operator=(const Credentials &); + ChannelCredentials(const ChannelCredentials &); + ChannelCredentials &operator=(const ChannelCredentials &); static NAN_METHOD(New); - static NAN_METHOD(CreateDefault); static NAN_METHOD(CreateSsl); - static NAN_METHOD(CreateComposite); - static NAN_METHOD(CreateGce); - static NAN_METHOD(CreateFake); - static NAN_METHOD(CreateIam); static NAN_METHOD(CreateInsecure); + + static NAN_METHOD(Compose); static Nan::Callback *constructor; // Used for typechecking instances of this javascript class static Nan::Persistent fun_tpl; @@ -79,4 +76,4 @@ class Credentials : public Nan::ObjectWrap { } // namespace node } // namespace grpc -#endif // NET_GRPC_NODE_CREDENTIALS_H_ +#endif // NET_GRPC_NODE_CHANNEL_CREDENTIALS_H_ diff --git a/src/node/ext/node_grpc.cc b/src/node/ext/node_grpc.cc index caca0fc4522..5b5f3c1c5b8 100644 --- a/src/node/ext/node_grpc.cc +++ b/src/node/ext/node_grpc.cc @@ -37,10 +37,11 @@ #include "grpc/grpc.h" #include "call.h" +#include "call_credentials.h" #include "channel.h" +#include "channel_credentials.h" #include "server.h" #include "completion_queue_async_worker.h" -#include "credentials.h" #include "server_credentials.h" using v8::Local; @@ -240,11 +241,12 @@ void init(Local exports) { InitWriteFlags(exports); grpc::node::Call::Init(exports); + grpc::node::CallCredentials::Init(exports); grpc::node::Channel::Init(exports); + grpc::node::ChannelCredentials::Init(exports); grpc::node::Server::Init(exports); grpc::node::CompletionQueueAsyncWorker::Init(exports); - grpc::node::Credentials::Init(exports); grpc::node::ServerCredentials::Init(exports); } -NODE_MODULE(grpc, init) +NODE_MODULE(grpc_node, init) diff --git a/src/node/index.js b/src/node/index.js index 02b73f66ee7..591d9dd9155 100644 --- a/src/node/index.js +++ b/src/node/index.js @@ -43,7 +43,7 @@ var server = require('./src/server.js'); var Metadata = require('./src/metadata.js'); -var grpc = require('bindings')('grpc'); +var grpc = require('bindings')('grpc_node'); /** * Load a gRPC object from an existing ProtoBuf.Reflect object. @@ -90,36 +90,9 @@ exports.load = function load(filename, format) { default: throw new Error('Unrecognized format "' + format + '"'); } - return loadObject(builder.ns); }; -/** - * Get a function that a client can use to update metadata with authentication - * information from a Google Auth credential object, which comes from the - * google-auth-library. - * @param {Object} credential The credential object to use - * @return {function(Object, callback)} Metadata updater function - */ -exports.getGoogleAuthDelegate = function getGoogleAuthDelegate(credential) { - /** - * Update a metadata object with authentication information. - * @param {string} authURI The uri to authenticate to - * @param {Object} metadata Metadata object - * @param {function(Error, Object)} callback - */ - return function updateMetadata(authURI, metadata, callback) { - credential.getRequestMetadata(authURI, function(err, header) { - if (err) { - callback(err); - return; - } - metadata.add('authorization', header.Authorization); - callback(null, metadata); - }); - }; -}; - /** * @see module:src/server.Server */ @@ -153,7 +126,7 @@ exports.writeFlags = grpc.writeFlags; /** * Credentials factories */ -exports.Credentials = grpc.Credentials; +exports.credentials = require('./src/credentials.js'); /** * ServerCredentials factories diff --git a/src/node/interop/empty.proto b/src/node/interop/empty.proto deleted file mode 100644 index 6d0eb937d67..00000000000 --- a/src/node/interop/empty.proto +++ /dev/null @@ -1,43 +0,0 @@ - -// 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. - -syntax = "proto3"; - -package grpc.testing; - -// An empty message that you can re-use to avoid defining duplicated empty -// messages in your project. A typical example is to use it as argument or the -// return value of a service API. For instance: -// -// service Foo { -// rpc Bar (grpc.testing.Empty) returns (grpc.testing.Empty) { }; -// }; -// -message Empty {} diff --git a/src/node/interop/interop_client.js b/src/node/interop/interop_client.js index 215d42121c6..14cc6c0efe1 100644 --- a/src/node/interop/interop_client.js +++ b/src/node/interop/interop_client.js @@ -37,7 +37,9 @@ var fs = require('fs'); var path = require('path'); var _ = require('lodash'); var grpc = require('..'); -var testProto = grpc.load(__dirname + '/test.proto').grpc.testing; +var testProto = grpc.load({ + root: __dirname + '/../../..', + file: 'test/proto/test.proto'}).grpc.testing; var GoogleAuth = require('google-auth-library'); var assert = require('assert'); @@ -49,6 +51,9 @@ var AUTH_USER = ('155450119199-vefjjaekcc6cmsd5914v6lqufunmh9ue' + var COMPUTE_ENGINE_USER = ('155450119199-r5aaqa2vqoa9g5mv2m6s3m1l293rlmel' + '@developer.gserviceaccount.com'); +var ECHO_INITIAL_KEY = 'x-grpc-test-echo-initial'; +var ECHO_TRAILING_KEY = 'x-grpc-test-echo-trailing-bin'; + /** * Create a buffer filled with size zeroes * @param {number} size The length of the buffer @@ -60,6 +65,27 @@ function zeroBuffer(size) { return zeros; } +/** + * This is used for testing functions with multiple asynchronous calls that + * can happen in different orders. This should be passed the number of async + * function invocations that can occur last, and each of those should call this + * function's return value + * @param {function()} done The function that should be called when a test is + * complete. + * @param {number} count The number of calls to the resulting function if the + * test passes. + * @return {function()} The function that should be called at the end of each + * sequence of asynchronous functions. + */ +function multiDone(done, count) { + return function() { + count -= 1; + if (count <= 0) { + done(); + } + }; +} + /** * Run the empty_unary test * @param {Client} client The client to test against @@ -271,6 +297,54 @@ function timeoutOnSleepingServer(client, done) { }); } +function customMetadata(client, done) { + done = multiDone(done, 5); + var metadata = new grpc.Metadata(); + metadata.set(ECHO_INITIAL_KEY, 'test_initial_metadata_value'); + metadata.set(ECHO_TRAILING_KEY, new Buffer('ababab', 'hex')); + var arg = { + response_type: 'COMPRESSABLE', + response_size: 314159, + payload: { + body: zeroBuffer(271828) + } + }; + var streaming_arg = { + payload: { + body: zeroBuffer(271828) + } + }; + var unary = client.unaryCall(arg, function(err, resp) { + assert.ifError(err); + done(); + }, metadata); + unary.on('metadata', function(metadata) { + assert.deepEqual(metadata.get(ECHO_INITIAL_KEY), + ['test_initial_metadata_value']); + done(); + }); + unary.on('status', function(status) { + var echo_trailer = status.metadata.get(ECHO_TRAILING_KEY); + assert(echo_trailer.length > 0); + assert.strictEqual(echo_trailer[0].toString('hex'), 'ababab'); + done(); + }); + var stream = client.fullDuplexCall(metadata); + stream.on('metadata', function(metadata) { + assert.deepEqual(metadata.get(ECHO_INITIAL_KEY), + ['test_initial_metadata_value']); + done(); + }); + stream.on('status', function(status) { + var echo_trailer = status.metadata.get(ECHO_TRAILING_KEY); + assert(echo_trailer.length > 0); + assert.strictEqual(echo_trailer[0].toString('hex'), 'ababab'); + done(); + }); + stream.write(streaming_arg); + stream.end(); +} + /** * Run one of the authentication tests. * @param {string} expected_user The expected username in the response @@ -280,33 +354,26 @@ function timeoutOnSleepingServer(client, done) { * primarily for use with mocha */ function authTest(expected_user, scope, client, done) { - (new GoogleAuth()).getApplicationDefault(function(err, credential) { + var arg = { + response_type: 'COMPRESSABLE', + response_size: 314159, + payload: { + body: zeroBuffer(271828) + }, + fill_username: true, + fill_oauth_scope: true + }; + client.unaryCall(arg, function(err, resp) { assert.ifError(err); - if (credential.createScopedRequired() && scope) { - credential = credential.createScoped(scope); + assert.strictEqual(resp.payload.type, 'COMPRESSABLE'); + assert.strictEqual(resp.payload.body.length, 314159); + assert.strictEqual(resp.username, expected_user); + if (scope) { + assert.strictEqual(resp.oauth_scope, AUTH_SCOPE_RESPONSE); + } + if (done) { + done(); } - client.$updateMetadata = grpc.getGoogleAuthDelegate(credential); - var arg = { - response_type: 'COMPRESSABLE', - response_size: 314159, - payload: { - body: zeroBuffer(271828) - }, - fill_username: true, - fill_oauth_scope: true - }; - client.unaryCall(arg, function(err, resp) { - assert.ifError(err); - assert.strictEqual(resp.payload.type, 'COMPRESSABLE'); - assert.strictEqual(resp.payload.body.length, 314159); - assert.strictEqual(resp.username, expected_user); - if (scope) { - assert.strictEqual(resp.oauth_scope, AUTH_SCOPE_RESPONSE); - } - if (done) { - done(); - } - }); }); } @@ -345,24 +412,86 @@ function oauth2Test(expected_user, scope, per_rpc, client, done) { }); } +function perRpcAuthTest(expected_user, scope, per_rpc, client, done) { + (new GoogleAuth()).getApplicationDefault(function(err, credential) { + assert.ifError(err); + var arg = { + fill_username: true, + fill_oauth_scope: true + }; + if (credential.createScopedRequired() && scope) { + credential = credential.createScoped(scope); + } + var creds = grpc.credentials.createFromGoogleCredential(credential); + client.unaryCall(arg, function(err, resp) { + assert.ifError(err); + assert.strictEqual(resp.username, expected_user); + assert.strictEqual(resp.oauth_scope, AUTH_SCOPE_RESPONSE); + if (done) { + done(); + } + }, null, {credentials: creds}); + }); +} + +function getApplicationCreds(scope, callback) { + (new GoogleAuth()).getApplicationDefault(function(err, credential) { + if (err) { + callback(err); + return; + } + if (credential.createScopedRequired() && scope) { + credential = credential.createScoped(scope); + } + callback(null, grpc.credentials.createFromGoogleCredential(credential)); + }); +} + +function getOauth2Creds(scope, callback) { + (new GoogleAuth()).getApplicationDefault(function(err, credential) { + if (err) { + callback(err); + return; + } + credential = credential.createScoped(scope); + credential.getAccessToken(function(err, token) { + if (err) { + callback(err); + return; + } + var updateMd = function(service_url, callback) { + var metadata = new grpc.Metadata(); + metadata.add('authorization', 'Bearer ' + token); + callback(null, metadata); + }; + callback(null, grpc.credentials.createFromMetadataGenerator(updateMd)); + }); + }); +} + /** * Map from test case names to test functions */ var test_cases = { - empty_unary: emptyUnary, - large_unary: largeUnary, - client_streaming: clientStreaming, - server_streaming: serverStreaming, - ping_pong: pingPong, - empty_stream: emptyStream, - cancel_after_begin: cancelAfterBegin, - cancel_after_first_response: cancelAfterFirstResponse, - timeout_on_sleeping_server: timeoutOnSleepingServer, - compute_engine_creds: _.partial(authTest, COMPUTE_ENGINE_USER, null), - service_account_creds: _.partial(authTest, AUTH_USER, AUTH_SCOPE), - jwt_token_creds: _.partial(authTest, AUTH_USER, null), - oauth2_auth_token: _.partial(oauth2Test, AUTH_USER, AUTH_SCOPE, false), - per_rpc_creds: _.partial(oauth2Test, AUTH_USER, AUTH_SCOPE, true) + empty_unary: {run: emptyUnary}, + large_unary: {run: largeUnary}, + client_streaming: {run: clientStreaming}, + server_streaming: {run: serverStreaming}, + ping_pong: {run: pingPong}, + empty_stream: {run: emptyStream}, + cancel_after_begin: {run: cancelAfterBegin}, + cancel_after_first_response: {run: cancelAfterFirstResponse}, + timeout_on_sleeping_server: {run: timeoutOnSleepingServer}, + custom_metadata: {run: customMetadata}, + compute_engine_creds: {run: _.partial(authTest, COMPUTE_ENGINE_USER, null), + getCreds: _.partial(getApplicationCreds, null)}, + service_account_creds: {run: _.partial(authTest, AUTH_USER, AUTH_SCOPE), + getCreds: _.partial(getApplicationCreds, AUTH_SCOPE)}, + jwt_token_creds: {run: _.partial(authTest, AUTH_USER, null), + getCreds: _.partial(getApplicationCreds, null)}, + oauth2_auth_token: {run: _.partial(oauth2Test, AUTH_USER, AUTH_SCOPE, false), + getCreds: _.partial(getOauth2Creds, AUTH_SCOPE)}, + per_rpc_creds: {run: _.partial(perRpcAuthTest, AUTH_USER, AUTH_SCOPE, true)} }; /** @@ -388,17 +517,30 @@ function runTest(address, host_override, test_case, tls, test_ca, done) { ca_path = process.env.SSL_CERT_FILE; } var ca_data = fs.readFileSync(ca_path); - creds = grpc.Credentials.createSsl(ca_data); + creds = grpc.credentials.createSsl(ca_data); if (host_override) { options['grpc.ssl_target_name_override'] = host_override; options['grpc.default_authority'] = host_override; } } else { - creds = grpc.Credentials.createInsecure(); + creds = grpc.credentials.createInsecure(); } - var client = new testProto.TestService(address, creds, options); + var test = test_cases[test_case]; - test_cases[test_case](client, done); + var execute = function(err, creds) { + assert.ifError(err); + var client = new testProto.TestService(address, creds, options); + test.run(client, done); + }; + + if (test.getCreds) { + test.getCreds(function(err, new_creds) { + execute(err, grpc.credentials.combineChannelCredentials( + creds, new_creds)); + }); + } else { + execute(null, creds); + } } if (require.main === module) { diff --git a/src/node/interop/interop_server.js b/src/node/interop/interop_server.js index 99155e99584..3e83304faa3 100644 --- a/src/node/interop/interop_server.js +++ b/src/node/interop/interop_server.js @@ -37,7 +37,12 @@ var fs = require('fs'); var path = require('path'); var _ = require('lodash'); var grpc = require('..'); -var testProto = grpc.load(__dirname + '/test.proto').grpc.testing; +var testProto = grpc.load({ + root: __dirname + '/../../..', + file: 'test/proto/test.proto'}).grpc.testing; + +var ECHO_INITIAL_KEY = 'x-grpc-test-echo-initial'; +var ECHO_TRAILING_KEY = 'x-grpc-test-echo-trailing-bin'; /** * Create a buffer filled with size zeroes @@ -50,6 +55,34 @@ function zeroBuffer(size) { return zeros; } +/** + * Echos a header metadata item as specified in the interop spec. + * @param {Call} call The call to echo metadata on + */ +function echoHeader(call) { + var echo_initial = call.metadata.get(ECHO_INITIAL_KEY); + if (echo_initial.length > 0) { + var response_metadata = new grpc.Metadata(); + response_metadata.set(ECHO_INITIAL_KEY, echo_initial[0]); + call.sendMetadata(response_metadata); + } +} + +/** + * Gets the trailer metadata that should be echoed when the call is done, + * as specified in the interop spec. + * @param {Call} call The call to get metadata from + * @return {grpc.Metadata} The metadata to send as a trailer + */ +function getEchoTrailer(call) { + var echo_trailer = call.metadata.get(ECHO_TRAILING_KEY); + var response_trailer = new grpc.Metadata(); + if (echo_trailer.length > 0) { + response_trailer.set(ECHO_TRAILING_KEY, echo_trailer[0]); + } + return response_trailer; +} + /** * Respond to an empty parameter with an empty response. * NOTE: this currently does not work due to issue #137 @@ -58,7 +91,8 @@ function zeroBuffer(size) { * or error */ function handleEmpty(call, callback) { - callback(null, {}); + echoHeader(call); + callback(null, {}, getEchoTrailer(call)); } /** @@ -68,6 +102,7 @@ function handleEmpty(call, callback) { * error */ function handleUnary(call, callback) { + echoHeader(call); var req = call.request; var zeros = zeroBuffer(req.response_size); var payload_type = req.response_type; @@ -75,7 +110,8 @@ function handleUnary(call, callback) { payload_type = ['COMPRESSABLE', 'UNCOMPRESSABLE'][Math.random() < 0.5 ? 0 : 1]; } - callback(null, {payload: {type: payload_type, body: zeros}}); + callback(null, {payload: {type: payload_type, body: zeros}}, + getEchoTrailer(call)); } /** @@ -85,12 +121,14 @@ function handleUnary(call, callback) { * error */ function handleStreamingInput(call, callback) { + echoHeader(call); var aggregate_size = 0; call.on('data', function(value) { aggregate_size += value.payload.body.length; }); call.on('end', function() { - callback(null, {aggregated_payload_size: aggregate_size}); + callback(null, {aggregated_payload_size: aggregate_size}, + getEchoTrailer(call)); }); } @@ -99,6 +137,7 @@ function handleStreamingInput(call, callback) { * @param {Call} call Call to handle */ function handleStreamingOutput(call) { + echoHeader(call); var req = call.request; var payload_type = req.response_type; if (payload_type === 'RANDOM') { @@ -113,7 +152,7 @@ function handleStreamingOutput(call) { } }); }); - call.end(); + call.end(getEchoTrailer(call)); } /** @@ -122,6 +161,7 @@ function handleStreamingOutput(call) { * @param {Call} call Call to handle */ function handleFullDuplex(call) { + echoHeader(call); call.on('data', function(value) { var payload_type = value.response_type; if (payload_type === 'RANDOM') { @@ -138,7 +178,7 @@ function handleFullDuplex(call) { }); }); call.on('end', function() { - call.end(); + call.end(getEchoTrailer(call)); }); } diff --git a/src/node/interop/messages.proto b/src/node/interop/messages.proto deleted file mode 100644 index 7df85e3c136..00000000000 --- a/src/node/interop/messages.proto +++ /dev/null @@ -1,132 +0,0 @@ - -// 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. - -// Message definitions to be used by integration test service definitions. - -syntax = "proto3"; - -package grpc.testing; - -// The type of payload that should be returned. -enum PayloadType { - // Compressable text format. - COMPRESSABLE = 0; - - // Uncompressable binary format. - UNCOMPRESSABLE = 1; - - // Randomly chosen from all other formats defined in this enum. - RANDOM = 2; -} - -// A block of data, to simply increase gRPC message size. -message Payload { - // The type of data in body. - PayloadType type = 1; - // Primary contents of payload. - bytes body = 2; -} - -// Unary request. -message SimpleRequest { - // Desired payload type in the response from the server. - // If response_type is RANDOM, server randomly chooses one from other formats. - PayloadType response_type = 1; - - // Desired payload size in the response from the server. - // If response_type is COMPRESSABLE, this denotes the size before compression. - int32 response_size = 2; - - // Optional input payload sent along with the request. - Payload payload = 3; - - // Whether SimpleResponse should include username. - bool fill_username = 4; - - // Whether SimpleResponse should include OAuth scope. - bool fill_oauth_scope = 5; -} - -// Unary response, as configured by the request. -message SimpleResponse { - // Payload to increase message size. - Payload payload = 1; - // The user the request came from, for verifying authentication was - // successful when the client expected it. - string username = 2; - // OAuth scope. - string oauth_scope = 3; -} - -// Client-streaming request. -message StreamingInputCallRequest { - // Optional input payload sent along with the request. - Payload payload = 1; - - // Not expecting any payload from the response. -} - -// Client-streaming response. -message StreamingInputCallResponse { - // Aggregated size of payloads received from the client. - int32 aggregated_payload_size = 1; -} - -// Configuration for a particular response. -message ResponseParameters { - // Desired payload sizes in responses from the server. - // If response_type is COMPRESSABLE, this denotes the size before compression. - int32 size = 1; - - // Desired interval between consecutive responses in the response stream in - // microseconds. - int32 interval_us = 2; -} - -// Server-streaming request. -message StreamingOutputCallRequest { - // Desired payload type in the response from the server. - // If response_type is RANDOM, the payload from each response in the stream - // might be of different types. This is to simulate a mixed type of payload - // stream. - PayloadType response_type = 1; - - // Configuration for each expected response message. - repeated ResponseParameters response_parameters = 2; - - // Optional input payload sent along with the request. - Payload payload = 3; -} - -// Server-streaming response, as configured by the request and parameters. -message StreamingOutputCallResponse { - // Payload to increase response size. - Payload payload = 1; -} diff --git a/src/node/interop/test.proto b/src/node/interop/test.proto deleted file mode 100644 index 24e67497fa6..00000000000 --- a/src/node/interop/test.proto +++ /dev/null @@ -1,72 +0,0 @@ - -// 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. - -// An integration test service that covers all the method signature permutations -// of unary/streaming requests/responses. - -syntax = "proto3"; - -import "empty.proto"; -import "messages.proto"; - -package grpc.testing; - -// A simple service to test the various types of RPCs and experiment with -// performance with various types of payload. -service TestService { - // One empty request followed by one empty response. - rpc EmptyCall(grpc.testing.Empty) returns (grpc.testing.Empty); - - // One request followed by one response. - rpc UnaryCall(SimpleRequest) returns (SimpleResponse); - - // One request followed by a sequence of responses (streamed download). - // The server returns the payload with client desired type and sizes. - rpc StreamingOutputCall(StreamingOutputCallRequest) - returns (stream StreamingOutputCallResponse); - - // A sequence of requests followed by one response (streamed upload). - // The server returns the aggregated size of client payload as the result. - rpc StreamingInputCall(stream StreamingInputCallRequest) - returns (StreamingInputCallResponse); - - // A sequence of requests with each request served by the server immediately. - // As one request could lead to multiple responses, this interface - // demonstrates the idea of full duplexing. - rpc FullDuplexCall(stream StreamingOutputCallRequest) - returns (stream StreamingOutputCallResponse); - - // A sequence of requests followed by a sequence of responses. - // The server buffers all the client requests and then serves them in order. A - // stream of responses are returned to the client when the server starts with - // first request. - rpc HalfDuplexCall(stream StreamingOutputCallRequest) - returns (stream StreamingOutputCallResponse); -} diff --git a/src/node/examples/perf_test.js b/src/node/performance/perf_test.js similarity index 98% rename from src/node/examples/perf_test.js rename to src/node/performance/perf_test.js index ba8fbf88d24..fe51e4a603e 100644 --- a/src/node/examples/perf_test.js +++ b/src/node/performance/perf_test.js @@ -42,7 +42,7 @@ function runTest(iterations, callback) { var testServer = interop_server.getServer(0, false); testServer.server.start(); var client = new testProto.TestService('localhost:' + testServer.port, - grpc.Credentials.createInsecure()); + grpc.credentials.createInsecure()); function runIterations(finish) { var start = process.hrtime(); diff --git a/src/node/examples/qps_test.js b/src/node/performance/qps_test.js similarity index 98% rename from src/node/examples/qps_test.js rename to src/node/performance/qps_test.js index ec968b8540b..491f47364c0 100644 --- a/src/node/examples/qps_test.js +++ b/src/node/performance/qps_test.js @@ -62,7 +62,7 @@ function runTest(concurrent_calls, seconds, callback) { var testServer = interop_server.getServer(0, false); testServer.server.start(); var client = new testProto.TestService('localhost:' + testServer.port, - grpc.Credentials.createInsecure()); + grpc.credentials.createInsecure()); var warmup_num = 100; diff --git a/src/node/src/client.js b/src/node/src/client.js index 7f510231b34..909376e7664 100644 --- a/src/node/src/client.js +++ b/src/node/src/client.js @@ -40,7 +40,7 @@ var _ = require('lodash'); -var grpc = require('bindings')('grpc.node'); +var grpc = require('bindings')('grpc_node'); var common = require('./common'); @@ -54,7 +54,7 @@ var Readable = stream.Readable; var Writable = stream.Writable; var Duplex = stream.Duplex; var util = require('util'); -var version = require('../package.json').version; +var version = require('../../../package.json').version; util.inherits(ClientWritableStream, Writable); @@ -233,17 +233,23 @@ function getCall(channel, method, options) { var host; var parent; var propagate_flags; + var credentials; if (options) { deadline = options.deadline; host = options.host; parent = _.get(options, 'parent.call'); propagate_flags = options.propagate_flags; + credentials = options.credentials; } if (deadline === undefined) { deadline = Infinity; } - return new grpc.Call(channel, method, deadline, host, - parent, propagate_flags); + var call = new grpc.Call(channel, method, deadline, host, + parent, propagate_flags); + if (credentials) { + call.setCredentials(credentials); + } + return call; } /** @@ -282,60 +288,53 @@ function makeUnaryRequestFunction(method, serialize, deserialize) { emitter.getPeer = function getPeer() { return call.getPeer(); }; - this.$updateMetadata(this.$auth_uri, metadata, function(error, metadata) { - if (error) { - call.cancel(); - callback(error); - return; - } - var client_batch = {}; - var message = serialize(argument); - if (options) { - message.grpcWriteFlags = options.flags; - } - client_batch[grpc.opType.SEND_INITIAL_METADATA] = - metadata._getCoreRepresentation(); - client_batch[grpc.opType.SEND_MESSAGE] = message; - client_batch[grpc.opType.SEND_CLOSE_FROM_CLIENT] = true; - client_batch[grpc.opType.RECV_INITIAL_METADATA] = true; - client_batch[grpc.opType.RECV_MESSAGE] = true; - client_batch[grpc.opType.RECV_STATUS_ON_CLIENT] = true; - call.startBatch(client_batch, function(err, response) { - response.status.metadata = Metadata._fromCoreRepresentation( - response.status.metadata); - var status = response.status; - var error; - var deserialized; - if (status.code === grpc.status.OK) { - if (err) { - // Got a batch error, but OK status. Something went wrong - callback(err); - return; - } else { - try { - deserialized = deserialize(response.read); - } catch (e) { - /* Change status to indicate bad server response. This will result - * in passing an error to the callback */ - status = { - code: grpc.status.INTERNAL, - details: 'Failed to parse server response' - }; - } - } - } - if (status.code !== grpc.status.OK) { - error = new Error(response.status.details); - error.code = status.code; - error.metadata = status.metadata; - callback(error); + var client_batch = {}; + var message = serialize(argument); + if (options) { + message.grpcWriteFlags = options.flags; + } + client_batch[grpc.opType.SEND_INITIAL_METADATA] = + metadata._getCoreRepresentation(); + client_batch[grpc.opType.SEND_MESSAGE] = message; + client_batch[grpc.opType.SEND_CLOSE_FROM_CLIENT] = true; + client_batch[grpc.opType.RECV_INITIAL_METADATA] = true; + client_batch[grpc.opType.RECV_MESSAGE] = true; + client_batch[grpc.opType.RECV_STATUS_ON_CLIENT] = true; + call.startBatch(client_batch, function(err, response) { + response.status.metadata = Metadata._fromCoreRepresentation( + response.status.metadata); + var status = response.status; + var error; + var deserialized; + if (status.code === grpc.status.OK) { + if (err) { + // Got a batch error, but OK status. Something went wrong + callback(err); + return; } else { - callback(null, deserialized); + try { + deserialized = deserialize(response.read); + } catch (e) { + /* Change status to indicate bad server response. This will result + * in passing an error to the callback */ + status = { + code: grpc.status.INTERNAL, + details: 'Failed to parse server response' + }; + } } - emitter.emit('status', status); - emitter.emit('metadata', Metadata._fromCoreRepresentation( - response.metadata)); - }); + } + if (status.code !== grpc.status.OK) { + error = new Error(response.status.details); + error.code = status.code; + error.metadata = status.metadata; + callback(error); + } else { + callback(null, deserialized); + } + emitter.emit('status', status); + emitter.emit('metadata', Metadata._fromCoreRepresentation( + response.metadata)); }); return emitter; } @@ -371,62 +370,55 @@ function makeClientStreamRequestFunction(method, serialize, deserialize) { metadata = metadata.clone(); } var stream = new ClientWritableStream(call, serialize); - this.$updateMetadata(this.$auth_uri, metadata, function(error, metadata) { - if (error) { - call.cancel(); - callback(error); + var metadata_batch = {}; + metadata_batch[grpc.opType.SEND_INITIAL_METADATA] = + metadata._getCoreRepresentation(); + metadata_batch[grpc.opType.RECV_INITIAL_METADATA] = true; + call.startBatch(metadata_batch, function(err, response) { + if (err) { + // The call has stopped for some reason. A non-OK status will arrive + // in the other batch. return; } - var metadata_batch = {}; - metadata_batch[grpc.opType.SEND_INITIAL_METADATA] = - metadata._getCoreRepresentation(); - metadata_batch[grpc.opType.RECV_INITIAL_METADATA] = true; - call.startBatch(metadata_batch, function(err, response) { + stream.emit('metadata', Metadata._fromCoreRepresentation( + response.metadata)); + }); + var client_batch = {}; + client_batch[grpc.opType.RECV_MESSAGE] = true; + client_batch[grpc.opType.RECV_STATUS_ON_CLIENT] = true; + call.startBatch(client_batch, function(err, response) { + response.status.metadata = Metadata._fromCoreRepresentation( + response.status.metadata); + var status = response.status; + var error; + var deserialized; + if (status.code === grpc.status.OK) { if (err) { - // The call has stopped for some reason. A non-OK status will arrive - // in the other batch. + // Got a batch error, but OK status. Something went wrong + callback(err); return; - } - stream.emit('metadata', Metadata._fromCoreRepresentation( - response.metadata)); - }); - var client_batch = {}; - client_batch[grpc.opType.RECV_MESSAGE] = true; - client_batch[grpc.opType.RECV_STATUS_ON_CLIENT] = true; - call.startBatch(client_batch, function(err, response) { - response.status.metadata = Metadata._fromCoreRepresentation( - response.status.metadata); - var status = response.status; - var error; - var deserialized; - if (status.code === grpc.status.OK) { - if (err) { - // Got a batch error, but OK status. Something went wrong - callback(err); - return; - } else { - try { - deserialized = deserialize(response.read); - } catch (e) { - /* Change status to indicate bad server response. This will result - * in passing an error to the callback */ - status = { - code: grpc.status.INTERNAL, - details: 'Failed to parse server response' - }; - } - } - } - if (status.code !== grpc.status.OK) { - error = new Error(response.status.details); - error.code = status.code; - error.metadata = status.metadata; - callback(error); } else { - callback(null, deserialized); + try { + deserialized = deserialize(response.read); + } catch (e) { + /* Change status to indicate bad server response. This will result + * in passing an error to the callback */ + status = { + code: grpc.status.INTERNAL, + details: 'Failed to parse server response' + }; + } } - stream.emit('status', status); - }); + } + if (status.code !== grpc.status.OK) { + error = new Error(response.status.details); + error.code = status.code; + error.metadata = status.metadata; + callback(error); + } else { + callback(null, deserialized); + } + stream.emit('status', status); }); return stream; } @@ -462,51 +454,44 @@ function makeServerStreamRequestFunction(method, serialize, deserialize) { metadata = metadata.clone(); } var stream = new ClientReadableStream(call, deserialize); - this.$updateMetadata(this.$auth_uri, metadata, function(error, metadata) { - if (error) { - call.cancel(); - stream.emit('error', error); + var start_batch = {}; + var message = serialize(argument); + if (options) { + message.grpcWriteFlags = options.flags; + } + start_batch[grpc.opType.SEND_INITIAL_METADATA] = + metadata._getCoreRepresentation(); + start_batch[grpc.opType.RECV_INITIAL_METADATA] = true; + start_batch[grpc.opType.SEND_MESSAGE] = message; + start_batch[grpc.opType.SEND_CLOSE_FROM_CLIENT] = true; + call.startBatch(start_batch, function(err, response) { + if (err) { + // The call has stopped for some reason. A non-OK status will arrive + // in the other batch. return; } - var start_batch = {}; - var message = serialize(argument); - if (options) { - message.grpcWriteFlags = options.flags; - } - start_batch[grpc.opType.SEND_INITIAL_METADATA] = - metadata._getCoreRepresentation(); - start_batch[grpc.opType.RECV_INITIAL_METADATA] = true; - start_batch[grpc.opType.SEND_MESSAGE] = message; - start_batch[grpc.opType.SEND_CLOSE_FROM_CLIENT] = true; - call.startBatch(start_batch, function(err, response) { + stream.emit('metadata', Metadata._fromCoreRepresentation( + response.metadata)); + }); + var status_batch = {}; + status_batch[grpc.opType.RECV_STATUS_ON_CLIENT] = true; + call.startBatch(status_batch, function(err, response) { + response.status.metadata = Metadata._fromCoreRepresentation( + response.status.metadata); + stream.emit('status', response.status); + if (response.status.code !== grpc.status.OK) { + var error = new Error(response.status.details); + error.code = response.status.code; + error.metadata = response.status.metadata; + stream.emit('error', error); + return; + } else { if (err) { - // The call has stopped for some reason. A non-OK status will arrive - // in the other batch. - return; - } - stream.emit('metadata', Metadata._fromCoreRepresentation( - response.metadata)); - }); - var status_batch = {}; - status_batch[grpc.opType.RECV_STATUS_ON_CLIENT] = true; - call.startBatch(status_batch, function(err, response) { - response.status.metadata = Metadata._fromCoreRepresentation( - response.status.metadata); - stream.emit('status', response.status); - if (response.status.code !== grpc.status.OK) { - var error = new Error(response.status.details); - error.code = response.status.code; - error.metadata = response.status.metadata; - stream.emit('error', error); + // Got a batch error, but OK status. Something went wrong + stream.emit('error', err); return; - } else { - if (err) { - // Got a batch error, but OK status. Something went wrong - stream.emit('error', err); - return; - } } - }); + } }); return stream; } @@ -540,45 +525,38 @@ function makeBidiStreamRequestFunction(method, serialize, deserialize) { metadata = metadata.clone(); } var stream = new ClientDuplexStream(call, serialize, deserialize); - this.$updateMetadata(this.$auth_uri, metadata, function(error, metadata) { - if (error) { - call.cancel(); - stream.emit('error', error); + var start_batch = {}; + start_batch[grpc.opType.SEND_INITIAL_METADATA] = + metadata._getCoreRepresentation(); + start_batch[grpc.opType.RECV_INITIAL_METADATA] = true; + call.startBatch(start_batch, function(err, response) { + if (err) { + // The call has stopped for some reason. A non-OK status will arrive + // in the other batch. return; } - var start_batch = {}; - start_batch[grpc.opType.SEND_INITIAL_METADATA] = - metadata._getCoreRepresentation(); - start_batch[grpc.opType.RECV_INITIAL_METADATA] = true; - call.startBatch(start_batch, function(err, response) { + stream.emit('metadata', Metadata._fromCoreRepresentation( + response.metadata)); + }); + var status_batch = {}; + status_batch[grpc.opType.RECV_STATUS_ON_CLIENT] = true; + call.startBatch(status_batch, function(err, response) { + response.status.metadata = Metadata._fromCoreRepresentation( + response.status.metadata); + stream.emit('status', response.status); + if (response.status.code !== grpc.status.OK) { + var error = new Error(response.status.details); + error.code = response.status.code; + error.metadata = response.status.metadata; + stream.emit('error', error); + return; + } else { if (err) { - // The call has stopped for some reason. A non-OK status will arrive - // in the other batch. + // Got a batch error, but OK status. Something went wrong + stream.emit('error', err); return; } - stream.emit('metadata', Metadata._fromCoreRepresentation( - response.metadata)); - }); - var status_batch = {}; - status_batch[grpc.opType.RECV_STATUS_ON_CLIENT] = true; - call.startBatch(status_batch, function(err, response) { - response.status.metadata = Metadata._fromCoreRepresentation( - response.status.metadata); - stream.emit('status', response.status); - if (response.status.code !== grpc.status.OK) { - var error = new Error(response.status.details); - error.code = response.status.code; - error.metadata = response.status.metadata; - stream.emit('error', error); - return; - } else { - if (err) { - // Got a batch error, but OK status. Something went wrong - stream.emit('error', err); - return; - } - } - }); + } }); return stream; } @@ -618,15 +596,8 @@ exports.makeClientConstructor = function(methods, serviceName) { * @param {grpc.Credentials} credentials Credentials to use to connect * to the server * @param {Object} options Options to pass to the underlying channel - * @param {function(string, Object, function)=} updateMetadata function to - * update the metadata for each request */ - function Client(address, credentials, options, updateMetadata) { - if (!updateMetadata) { - updateMetadata = function(uri, metadata, callback) { - callback(null, metadata); - }; - } + function Client(address, credentials, options) { if (!options) { options = {}; } @@ -634,11 +605,6 @@ exports.makeClientConstructor = function(methods, serviceName) { /* Private fields use $ as a prefix instead of _ because it is an invalid * prefix of a method name */ this.$channel = new grpc.Channel(address, credentials, options); - // Remove the optional DNS scheme, trailing port, and trailing backslash - address = address.replace(/^(dns:\/{3})?([^:\/]+)(:\d+)?\/?$/, '$2'); - this.$server_address = address; - this.$auth_uri = 'https://' + this.$server_address + '/' + serviceName; - this.$updateMetadata = updateMetadata; } _.each(methods, function(attrs, name) { diff --git a/src/node/src/credentials.js b/src/node/src/credentials.js new file mode 100644 index 00000000000..009ff633067 --- /dev/null +++ b/src/node/src/credentials.js @@ -0,0 +1,163 @@ +/* + * + * 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. + * + */ + +/** + * Credentials module + * + * This module contains factory methods for two different credential types: + * CallCredentials and ChannelCredentials. ChannelCredentials are things like + * SSL credentials that can be used to secure a connection, and are used to + * construct a Client object. CallCredentials genrally modify metadata, so they + * can be attached to an individual method call. + * + * CallCredentials can be composed with other CallCredentials to create + * CallCredentials. ChannelCredentials can be composed with CallCredentials + * to create ChannelCredentials. No combined credential can have more than + * one ChannelCredentials. + * + * For example, to create a client secured with SSL that uses Google + * default application credentials to authenticate: + * + * var channel_creds = credentials.createSsl(root_certs); + * (new GoogleAuth()).getApplicationDefault(function(err, credential) { + * var call_creds = credentials.createFromGoogleCredential(credential); + * var combined_creds = credentials.combineChannelCredentials( + * channel_creds, call_creds); + * var client = new Client(address, combined_creds); + * }); + * + * @module + */ + +'use strict'; + +var grpc = require('bindings')('grpc_node.node'); + +var CallCredentials = grpc.CallCredentials; + +var ChannelCredentials = grpc.ChannelCredentials; + +var Metadata = require('./metadata.js'); + +/** + * Create an SSL Credentials object. If using a client-side certificate, both + * the second and third arguments must be passed. + * @param {Buffer} root_certs The root certificate data + * @param {Buffer=} private_key The client certificate private key, if + * applicable + * @param {Buffer=} cert_chain The client certificate cert chain, if applicable + * @return {ChannelCredentials} The SSL Credentials object + */ +exports.createSsl = ChannelCredentials.createSsl; + +/** + * Create a gRPC credentials object from a metadata generation function. This + * function gets the service URL and a callback as parameters. The error + * passed to the callback can optionally have a 'code' value attached to it, + * which corresponds to a status code that this library uses. + * @param {function(String, function(Error, Metadata))} metadata_generator The + * function that generates metadata + * @return {CallCredentials} The credentials object + */ +exports.createFromMetadataGenerator = function(metadata_generator) { + return CallCredentials.createFromPlugin(function(service_url, callback) { + metadata_generator(service_url, function(error, metadata) { + var code = grpc.status.OK; + var message = ''; + if (error) { + message = error.message; + if (error.hasOwnProperty('code')) { + code = error.code; + } + } + callback(code, message, metadata._getCoreRepresentation()); + }); + }); +}; + +/** + * Create a gRPC credential from a Google credential object. + * @param {Object} google_credential The Google credential object to use + * @return {CallCredentials} The resulting credentials object + */ +exports.createFromGoogleCredential = function(google_credential) { + return exports.createFromMetadataGenerator(function(service_url, callback) { + google_credential.getRequestMetadata(service_url, function(err, header) { + if (err) { + callback(err); + return; + } + var metadata = new Metadata(); + metadata.add('authorization', header.Authorization); + callback(null, metadata); + }); + }); +}; + +/** + * Combine a ChannelCredentials with any number of CallCredentials into a single + * ChannelCredentials object. + * @param {ChannelCredentials} channel_credential The ChannelCredentials to + * start with + * @param {...CallCredentials} credentials The CallCredentials to compose + * @return ChannelCredentials A credentials object that combines all of the + * input credentials + */ +exports.combineChannelCredentials = function(channel_credential) { + var current = channel_credential; + for (var i = 1; i < arguments.length; i++) { + current = current.compose(arguments[i]); + } + return current; +}; + +/** + * Combine any number of CallCredentials into a single CallCredentials object + * @param {...CallCredentials} credentials the CallCredentials to compose + * @return CallCredentials A credentials object that combines all of the input + * credentials + */ +exports.combineCallCredentials = function() { + var current = arguments[0]; + for (var i = 1; i < arguments.length; i++) { + current = current.compose(arguments[i]); + } + return current; +} + +/** + * Create an insecure credentials object. This is used to create a channel that + * does not use SSL. This cannot be composed with anything. + * @return {ChannelCredentials} The insecure credentials object + */ +exports.createInsecure = ChannelCredentials.createInsecure; diff --git a/src/node/src/metadata.js b/src/node/src/metadata.js index c1da70b1974..5c24e46c9b2 100644 --- a/src/node/src/metadata.js +++ b/src/node/src/metadata.js @@ -59,6 +59,7 @@ function normalizeKey(key) { function validate(key, value) { if (_.endsWith(key, '-bin')) { if (!(value instanceof Buffer)) { + console.log(value.constructor.toString()); throw new Error('keys that end with \'-bin\' must have Buffer values'); } } else { @@ -173,7 +174,9 @@ Metadata.prototype._getCoreRepresentation = function() { Metadata._fromCoreRepresentation = function(metadata) { var newMetadata = new Metadata(); if (metadata) { - newMetadata._internal_repr = _.cloneDeep(metadata); + _.forOwn(metadata, function(value, key) { + newMetadata._internal_repr[key] = _.clone(value); + }); } return newMetadata; }; diff --git a/src/node/src/server.js b/src/node/src/server.js index 70b4a9d80e3..87b5b7ad06e 100644 --- a/src/node/src/server.js +++ b/src/node/src/server.js @@ -40,7 +40,7 @@ var _ = require('lodash'); -var grpc = require('bindings')('grpc.node'); +var grpc = require('bindings')('grpc_node'); var common = require('./common'); diff --git a/src/node/test/async_test.js b/src/node/test/async_test.js index e81de62bc93..ce3ce50a2d6 100644 --- a/src/node/test/async_test.js +++ b/src/node/test/async_test.js @@ -36,7 +36,7 @@ var assert = require('assert'); var grpc = require('..'); -var math = grpc.load(__dirname + '/../examples/math.proto').math; +var math = grpc.load(__dirname + '/math/math.proto').math; /** @@ -47,7 +47,7 @@ var math_client; /** * Server to test against */ -var getServer = require('../examples/math_server.js'); +var getServer = require('./math/math_server.js'); var server = getServer(); diff --git a/src/node/test/call_test.js b/src/node/test/call_test.js index e7f071bcd53..c316fe7f10d 100644 --- a/src/node/test/call_test.js +++ b/src/node/test/call_test.js @@ -34,7 +34,7 @@ 'use strict'; var assert = require('assert'); -var grpc = require('bindings')('grpc.node'); +var grpc = require('bindings')('grpc_node'); /** * Helper function to return an absolute deadline given a relative timeout in @@ -48,7 +48,7 @@ function getDeadline(timeout_secs) { return deadline; } -var insecureCreds = grpc.Credentials.createInsecure(); +var insecureCreds = grpc.ChannelCredentials.createInsecure(); describe('call', function() { var channel; diff --git a/src/node/test/channel_test.js b/src/node/test/channel_test.js index d81df2a36d8..b86f89b8a85 100644 --- a/src/node/test/channel_test.js +++ b/src/node/test/channel_test.js @@ -34,7 +34,7 @@ 'use strict'; var assert = require('assert'); -var grpc = require('bindings')('grpc.node'); +var grpc = require('bindings')('grpc_node'); /** * This is used for testing functions with multiple asynchronous calls that @@ -56,7 +56,7 @@ function multiDone(done, count) { } }; } -var insecureCreds = grpc.Credentials.createInsecure(); +var insecureCreds = grpc.ChannelCredentials.createInsecure(); describe('channel', function() { describe('constructor', function() { @@ -149,12 +149,13 @@ describe('channel', function() { afterEach(function() { channel.close(); }); - it('should time out if called alone', function(done) { + it.only('should time out if called alone', function(done) { var old_state = channel.getConnectivityState(); var deadline = new Date(); deadline.setSeconds(deadline.getSeconds() + 1); channel.watchConnectivityState(old_state, deadline, function(err, value) { assert(err); + console.log('Callback from watchConnectivityState'); done(); }); }); diff --git a/src/node/test/constant_test.js b/src/node/test/constant_test.js index fa06ad4e4d4..b17cd339cb0 100644 --- a/src/node/test/constant_test.js +++ b/src/node/test/constant_test.js @@ -34,7 +34,7 @@ 'use strict'; var assert = require('assert'); -var grpc = require('bindings')('grpc.node'); +var grpc = require('bindings')('grpc_node'); /** * List of all status names diff --git a/src/node/test/credentials_test.js b/src/node/test/credentials_test.js new file mode 100644 index 00000000000..8eb91ee69e6 --- /dev/null +++ b/src/node/test/credentials_test.js @@ -0,0 +1,243 @@ +/* + * + * 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. + * + */ + +'use strict'; + +var assert = require('assert'); +var fs = require('fs'); +var path = require('path'); + +var grpc = require('..'); + +/** + * This is used for testing functions with multiple asynchronous calls that + * can happen in different orders. This should be passed the number of async + * function invocations that can occur last, and each of those should call this + * function's return value + * @param {function()} done The function that should be called when a test is + * complete. + * @param {number} count The number of calls to the resulting function if the + * test passes. + * @return {function()} The function that should be called at the end of each + * sequence of asynchronous functions. + */ +function multiDone(done, count) { + return function() { + count -= 1; + if (count <= 0) { + done(); + } + }; +} + +describe('client credentials', function() { + var Client; + var server; + var port; + var client_ssl_creds; + var client_options = {}; + before(function() { + var proto = grpc.load(__dirname + '/test_service.proto'); + server = new grpc.Server(); + server.addProtoService(proto.TestService.service, { + unary: function(call, cb) { + call.sendMetadata(call.metadata); + cb(null, {}); + }, + clientStream: function(stream, cb){ + stream.on('data', function(data) {}); + stream.on('end', function() { + stream.sendMetadata(stream.metadata); + cb(null, {}); + }); + }, + serverStream: function(stream) { + stream.sendMetadata(stream.metadata); + stream.end(); + }, + bidiStream: function(stream) { + stream.on('data', function(data) {}); + stream.on('end', function() { + stream.sendMetadata(stream.metadata); + stream.end(); + }); + } + }); + var key_path = path.join(__dirname, './data/server1.key'); + var pem_path = path.join(__dirname, './data/server1.pem'); + var key_data = fs.readFileSync(key_path); + var pem_data = fs.readFileSync(pem_path); + var creds = grpc.ServerCredentials.createSsl(null, + [{private_key: key_data, + cert_chain: pem_data}]); + //creds = grpc.ServerCredentials.createInsecure(); + port = server.bind('localhost:0', creds); + server.start(); + + Client = proto.TestService; + var ca_path = path.join(__dirname, '../test/data/ca.pem'); + var ca_data = fs.readFileSync(ca_path); + client_ssl_creds = grpc.credentials.createSsl(ca_data); + var host_override = 'foo.test.google.fr'; + client_options['grpc.ssl_target_name_override'] = host_override; + client_options['grpc.default_authority'] = host_override; + }); + after(function() { + server.forceShutdown(); + }); + it('Should accept SSL creds for a client', function(done) { + var client = new Client('localhost:' + port, client_ssl_creds, + client_options); + client.unary({}, function(err, data) { + assert.ifError(err); + done(); + }); + }); + it('Should update metadata with SSL creds', function(done) { + var metadataUpdater = function(service_url, callback) { + var metadata = new grpc.Metadata(); + metadata.set('plugin_key', 'plugin_value'); + callback(null, metadata); + }; + var creds = grpc.credentials.createFromMetadataGenerator(metadataUpdater); + var combined_creds = grpc.credentials.combineCredentials(client_ssl_creds, + creds); + var client = new Client('localhost:' + port, combined_creds, + client_options); + var call = client.unary({}, function(err, data) { + assert.ifError(err); + }); + call.on('metadata', function(metadata) { + assert.deepEqual(metadata.get('plugin_key'), ['plugin_value']); + done(); + }); + }); + it('Should update metadata for two simultaneous calls', function(done) { + done = multiDone(done, 2); + var metadataUpdater = function(service_url, callback) { + var metadata = new grpc.Metadata(); + metadata.set('plugin_key', 'plugin_value'); + callback(null, metadata); + }; + var creds = grpc.credentials.createFromMetadataGenerator(metadataUpdater); + var combined_creds = grpc.credentials.combineCredentials(client_ssl_creds, + creds); + var client = new Client('localhost:' + port, combined_creds, + client_options); + var call = client.unary({}, function(err, data) { + assert.ifError(err); + }); + call.on('metadata', function(metadata) { + assert.deepEqual(metadata.get('plugin_key'), ['plugin_value']); + done(); + }); + var call2 = client.unary({}, function(err, data) { + assert.ifError(err); + }); + call2.on('metadata', function(metadata) { + assert.deepEqual(metadata.get('plugin_key'), ['plugin_value']); + done(); + }); + }); + describe('Per-rpc creds', function() { + var client; + var updater_creds; + before(function() { + client = new Client('localhost:' + port, client_ssl_creds, + client_options); + var metadataUpdater = function(service_url, callback) { + var metadata = new grpc.Metadata(); + metadata.set('plugin_key', 'plugin_value'); + callback(null, metadata); + }; + updater_creds = grpc.credentials.createFromMetadataGenerator( + metadataUpdater); + }); + it('Should update metadata on a unary call', function(done) { + var call = client.unary({}, function(err, data) { + assert.ifError(err); + }, null, {credentials: updater_creds}); + call.on('metadata', function(metadata) { + assert.deepEqual(metadata.get('plugin_key'), ['plugin_value']); + done(); + }); + }); + it('should update metadata on a client streaming call', function(done) { + var call = client.clientStream(function(err, data) { + assert.ifError(err); + }, null, {credentials: updater_creds}); + call.on('metadata', function(metadata) { + assert.deepEqual(metadata.get('plugin_key'), ['plugin_value']); + done(); + }); + call.end(); + }); + it('should update metadata on a server streaming call', function(done) { + var call = client.serverStream({}, null, {credentials: updater_creds}); + call.on('data', function() {}); + call.on('metadata', function(metadata) { + assert.deepEqual(metadata.get('plugin_key'), ['plugin_value']); + done(); + }); + }); + it('should update metadata on a bidi streaming call', function(done) { + var call = client.bidiStream(null, {credentials: updater_creds}); + call.on('data', function() {}); + call.on('metadata', function(metadata) { + assert.deepEqual(metadata.get('plugin_key'), ['plugin_value']); + done(); + }); + call.end(); + }); + it('should be able to use multiple plugin credentials', function(done) { + var altMetadataUpdater = function(service_url, callback) { + var metadata = new grpc.Metadata(); + metadata.set('other_plugin_key', 'other_plugin_value'); + callback(null, metadata); + }; + var alt_updater_creds = grpc.credentials.createFromMetadataGenerator( + altMetadataUpdater); + var combined_updater = grpc.credentials.combineCallCredentials( + updater_creds, alt_updater_creds); + var call = client.unary({}, function(err, data) { + assert.ifError(err); + }, null, {credentials: updater_creds}); + call.on('metadata', function(metadata) { + assert.deepEqual(metadata.get('plugin_key'), ['plugin_value']); + assert.deepEqual(metadata.get('other_plugin_key'), + ['other_plugin_value']); + done(); + }); + }); + }); +}); diff --git a/src/node/test/end_to_end_test.js b/src/node/test/end_to_end_test.js index 4b8da3bfb17..0f6c5941c4d 100644 --- a/src/node/test/end_to_end_test.js +++ b/src/node/test/end_to_end_test.js @@ -34,7 +34,7 @@ 'use strict'; var assert = require('assert'); -var grpc = require('bindings')('grpc.node'); +var grpc = require('bindings')('grpc_node'); /** * This is used for testing functions with multiple asynchronous calls that @@ -57,7 +57,7 @@ function multiDone(done, count) { }; } -var insecureCreds = grpc.Credentials.createInsecure(); +var insecureCreds = grpc.ChannelCredentials.createInsecure(); describe('end-to-end', function() { var server; diff --git a/src/node/test/health_test.js b/src/node/test/health_test.js index 9267bff7ebe..a4dc24cf467 100644 --- a/src/node/test/health_test.js +++ b/src/node/test/health_test.js @@ -54,7 +54,7 @@ describe('Health Checking', function() { grpc.ServerCredentials.createInsecure()); healthServer.start(); healthClient = new health.Client('localhost:' + port_num, - grpc.Credentials.createInsecure()); + grpc.credentials.createInsecure()); }); after(function() { healthServer.forceShutdown(); diff --git a/src/node/test/interop_sanity_test.js b/src/node/test/interop_sanity_test.js index 2ca07c1d50d..804c1d45e4a 100644 --- a/src/node/test/interop_sanity_test.js +++ b/src/node/test/interop_sanity_test.js @@ -90,4 +90,8 @@ describe('Interop tests', function() { interop_client.runTest(port, name_override, 'timeout_on_sleeping_server', true, true, done); }); + it('should pass custom_metadata', function(done) { + interop_client.runTest(port, name_override, 'custom_metadata', + true, true, done); + }); }); diff --git a/src/node/examples/math.proto b/src/node/test/math/math.proto similarity index 100% rename from src/node/examples/math.proto rename to src/node/test/math/math.proto diff --git a/src/node/examples/math_server.js b/src/node/test/math/math_server.js similarity index 99% rename from src/node/examples/math_server.js rename to src/node/test/math/math_server.js index a4b237aeebf..9d06596f3d3 100644 --- a/src/node/examples/math_server.js +++ b/src/node/test/math/math_server.js @@ -33,7 +33,7 @@ 'use strict'; -var grpc = require('..'); +var grpc = require('../..'); var math = grpc.load(__dirname + '/math.proto').math; /** diff --git a/src/node/test/math_client_test.js b/src/node/test/math_client_test.js index 6a6607ec748..6361d97857a 100644 --- a/src/node/test/math_client_test.js +++ b/src/node/test/math_client_test.js @@ -36,7 +36,7 @@ var assert = require('assert'); var grpc = require('..'); -var math = grpc.load(__dirname + '/../examples/math.proto').math; +var math = grpc.load(__dirname + '/math/math.proto').math; /** * Client to use to make requests to a running server. @@ -46,7 +46,7 @@ var math_client; /** * Server to test against */ -var getServer = require('../examples/math_server.js'); +var getServer = require('./math/math_server.js'); var server = getServer(); @@ -56,7 +56,7 @@ describe('Math client', function() { grpc.ServerCredentials.createInsecure()); server.start(); math_client = new math.Math('localhost:' + port_num, - grpc.Credentials.createInsecure()); + grpc.credentials.createInsecure()); done(); }); after(function() { diff --git a/src/node/test/server_test.js b/src/node/test/server_test.js index 1e69d52e583..999a183b3cb 100644 --- a/src/node/test/server_test.js +++ b/src/node/test/server_test.js @@ -36,7 +36,7 @@ var assert = require('assert'); var fs = require('fs'); var path = require('path'); -var grpc = require('bindings')('grpc.node'); +var grpc = require('bindings')('grpc_node'); describe('server', function() { describe('constructor', function() { diff --git a/src/node/test/surface_test.js b/src/node/test/surface_test.js index 989fe5fd659..395ea887ecb 100644 --- a/src/node/test/surface_test.js +++ b/src/node/test/surface_test.js @@ -41,7 +41,7 @@ var ProtoBuf = require('protobufjs'); var grpc = require('..'); -var math_proto = ProtoBuf.loadProtoFile(__dirname + '/../examples/math.proto'); +var math_proto = ProtoBuf.loadProtoFile(__dirname + '/math/math.proto'); var mathService = math_proto.lookup('math.Math'); @@ -163,7 +163,7 @@ describe('waitForClientReady', function() { Client = surface_client.makeProtobufClientConstructor(mathService); }); beforeEach(function() { - client = new Client('localhost:' + port, grpc.Credentials.createInsecure()); + client = new Client('localhost:' + port, grpc.credentials.createInsecure()); }); after(function() { server.forceShutdown(); @@ -217,7 +217,7 @@ describe('Echo service', function() { }); var port = server.bind('localhost:0', server_insecure_creds); var Client = surface_client.makeProtobufClientConstructor(echo_service); - client = new Client('localhost:' + port, grpc.Credentials.createInsecure()); + client = new Client('localhost:' + port, grpc.credentials.createInsecure()); server.start(); }); after(function() { @@ -263,7 +263,7 @@ describe('Generic client and server', function() { server.start(); var Client = grpc.makeGenericClientConstructor(string_service_attrs); client = new Client('localhost:' + port, - grpc.Credentials.createInsecure()); + grpc.credentials.createInsecure()); }); after(function() { server.forceShutdown(); @@ -311,7 +311,7 @@ describe('Echo metadata', function() { }); var port = server.bind('localhost:0', server_insecure_creds); var Client = surface_client.makeProtobufClientConstructor(test_service); - client = new Client('localhost:' + port, grpc.Credentials.createInsecure()); + client = new Client('localhost:' + port, grpc.credentials.createInsecure()); server.start(); metadata = new grpc.Metadata(); metadata.set('key', 'value'); @@ -356,7 +356,7 @@ describe('Echo metadata', function() { call.end(); }); it('shows the correct user-agent string', function(done) { - var version = require('../package.json').version; + var version = require('../../../package.json').version; var call = client.unary({}, function(err, data) { assert.ifError(err); }, metadata); call.on('metadata', function(metadata) { @@ -437,7 +437,7 @@ describe('Other conditions', function() { }); port = server.bind('localhost:0', server_insecure_creds); Client = surface_client.makeProtobufClientConstructor(test_service); - client = new Client('localhost:' + port, grpc.Credentials.createInsecure()); + client = new Client('localhost:' + port, grpc.credentials.createInsecure()); server.start(); }); after(function() { @@ -484,7 +484,7 @@ describe('Other conditions', function() { var Client = surface_client.makeClientConstructor(test_service_attrs, 'TestService'); misbehavingClient = new Client('localhost:' + port, - grpc.Credentials.createInsecure()); + grpc.credentials.createInsecure()); }); it('should respond correctly to a unary call', function(done) { misbehavingClient.unary(badArg, function(err, data) { @@ -711,7 +711,7 @@ describe('Call propagation', function() { }); var port = server.bind('localhost:0', server_insecure_creds); Client = surface_client.makeProtobufClientConstructor(test_service); - client = new Client('localhost:' + port, grpc.Credentials.createInsecure()); + client = new Client('localhost:' + port, grpc.credentials.createInsecure()); server.start(); }); after(function() { @@ -748,7 +748,7 @@ describe('Call propagation', function() { var proxy_port = proxy.bind('localhost:0', server_insecure_creds); proxy.start(); var proxy_client = new Client('localhost:' + proxy_port, - grpc.Credentials.createInsecure()); + grpc.credentials.createInsecure()); var call = proxy_client.unary({}, function(err, value) { done(); }); @@ -771,7 +771,7 @@ describe('Call propagation', function() { var proxy_port = proxy.bind('localhost:0', server_insecure_creds); proxy.start(); var proxy_client = new Client('localhost:' + proxy_port, - grpc.Credentials.createInsecure()); + grpc.credentials.createInsecure()); var call = proxy_client.clientStream(function(err, value) { done(); }); @@ -792,7 +792,7 @@ describe('Call propagation', function() { var proxy_port = proxy.bind('localhost:0', server_insecure_creds); proxy.start(); var proxy_client = new Client('localhost:' + proxy_port, - grpc.Credentials.createInsecure()); + grpc.credentials.createInsecure()); var call = proxy_client.serverStream({}); call.on('error', function(err) { done(); @@ -813,7 +813,7 @@ describe('Call propagation', function() { var proxy_port = proxy.bind('localhost:0', server_insecure_creds); proxy.start(); var proxy_client = new Client('localhost:' + proxy_port, - grpc.Credentials.createInsecure()); + grpc.credentials.createInsecure()); var call = proxy_client.bidiStream(); call.on('error', function(err) { done(); @@ -842,7 +842,7 @@ describe('Call propagation', function() { var proxy_port = proxy.bind('localhost:0', server_insecure_creds); proxy.start(); var proxy_client = new Client('localhost:' + proxy_port, - grpc.Credentials.createInsecure()); + grpc.credentials.createInsecure()); var deadline = new Date(); deadline.setSeconds(deadline.getSeconds() + 1); proxy_client.clientStream(function(err, value) { @@ -865,7 +865,7 @@ describe('Call propagation', function() { var proxy_port = proxy.bind('localhost:0', server_insecure_creds); proxy.start(); var proxy_client = new Client('localhost:' + proxy_port, - grpc.Credentials.createInsecure()); + grpc.credentials.createInsecure()); var deadline = new Date(); deadline.setSeconds(deadline.getSeconds() + 1); var call = proxy_client.bidiStream(null, {deadline: deadline}); @@ -888,7 +888,7 @@ describe('Cancelling surface client', function() { }); var port = server.bind('localhost:0', server_insecure_creds); var Client = surface_client.makeProtobufClientConstructor(mathService); - client = new Client('localhost:' + port, grpc.Credentials.createInsecure()); + client = new Client('localhost:' + port, grpc.credentials.createInsecure()); server.start(); }); after(function() { diff --git a/src/php/ext/grpc/php_grpc.c b/src/php/ext/grpc/php_grpc.c index 0f730ea7567..4ad78ea0a31 100644 --- a/src/php/ext/grpc/php_grpc.c +++ b/src/php/ext/grpc/php_grpc.c @@ -109,91 +109,120 @@ PHP_MINIT_FUNCTION(grpc) { */ /* Register call error constants */ grpc_init(); - REGISTER_LONG_CONSTANT("Grpc\\CALL_OK", GRPC_CALL_OK, CONST_CS); - REGISTER_LONG_CONSTANT("Grpc\\CALL_ERROR", GRPC_CALL_ERROR, CONST_CS); + REGISTER_LONG_CONSTANT("Grpc\\CALL_OK", GRPC_CALL_OK, + CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("Grpc\\CALL_ERROR", GRPC_CALL_ERROR, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\CALL_ERROR_NOT_ON_SERVER", - GRPC_CALL_ERROR_NOT_ON_SERVER, CONST_CS); + GRPC_CALL_ERROR_NOT_ON_SERVER, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\CALL_ERROR_NOT_ON_CLIENT", - GRPC_CALL_ERROR_NOT_ON_CLIENT, CONST_CS); + GRPC_CALL_ERROR_NOT_ON_CLIENT, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\CALL_ERROR_ALREADY_INVOKED", - GRPC_CALL_ERROR_ALREADY_INVOKED, CONST_CS); + GRPC_CALL_ERROR_ALREADY_INVOKED, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\CALL_ERROR_NOT_INVOKED", - GRPC_CALL_ERROR_NOT_INVOKED, CONST_CS); + GRPC_CALL_ERROR_NOT_INVOKED, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\CALL_ERROR_ALREADY_FINISHED", - GRPC_CALL_ERROR_ALREADY_FINISHED, CONST_CS); + GRPC_CALL_ERROR_ALREADY_FINISHED, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\CALL_ERROR_TOO_MANY_OPERATIONS", - GRPC_CALL_ERROR_TOO_MANY_OPERATIONS, CONST_CS); + GRPC_CALL_ERROR_TOO_MANY_OPERATIONS, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\CALL_ERROR_INVALID_FLAGS", - GRPC_CALL_ERROR_INVALID_FLAGS, CONST_CS); + GRPC_CALL_ERROR_INVALID_FLAGS, + CONST_CS | CONST_PERSISTENT); /* Register flag constants */ REGISTER_LONG_CONSTANT("Grpc\\WRITE_BUFFER_HINT", GRPC_WRITE_BUFFER_HINT, - CONST_CS); + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\WRITE_NO_COMPRESS", GRPC_WRITE_NO_COMPRESS, - CONST_CS); + CONST_CS | CONST_PERSISTENT); /* Register status constants */ - REGISTER_LONG_CONSTANT("Grpc\\STATUS_OK", GRPC_STATUS_OK, CONST_CS); + REGISTER_LONG_CONSTANT("Grpc\\STATUS_OK", GRPC_STATUS_OK, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\STATUS_CANCELLED", GRPC_STATUS_CANCELLED, - CONST_CS); - REGISTER_LONG_CONSTANT("Grpc\\STATUS_UNKNOWN", GRPC_STATUS_UNKNOWN, CONST_CS); + CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("Grpc\\STATUS_UNKNOWN", GRPC_STATUS_UNKNOWN, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\STATUS_INVALID_ARGUMENT", - GRPC_STATUS_INVALID_ARGUMENT, CONST_CS); + GRPC_STATUS_INVALID_ARGUMENT, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\STATUS_DEADLINE_EXCEEDED", - GRPC_STATUS_DEADLINE_EXCEEDED, CONST_CS); + GRPC_STATUS_DEADLINE_EXCEEDED, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\STATUS_NOT_FOUND", GRPC_STATUS_NOT_FOUND, - CONST_CS); + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\STATUS_ALREADY_EXISTS", - GRPC_STATUS_ALREADY_EXISTS, CONST_CS); + GRPC_STATUS_ALREADY_EXISTS, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\STATUS_PERMISSION_DENIED", - GRPC_STATUS_PERMISSION_DENIED, CONST_CS); + GRPC_STATUS_PERMISSION_DENIED, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\STATUS_UNAUTHENTICATED", - GRPC_STATUS_UNAUTHENTICATED, CONST_CS); + GRPC_STATUS_UNAUTHENTICATED, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\STATUS_RESOURCE_EXHAUSTED", - GRPC_STATUS_RESOURCE_EXHAUSTED, CONST_CS); + GRPC_STATUS_RESOURCE_EXHAUSTED, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\STATUS_FAILED_PRECONDITION", - GRPC_STATUS_FAILED_PRECONDITION, CONST_CS); - REGISTER_LONG_CONSTANT("Grpc\\STATUS_ABORTED", GRPC_STATUS_ABORTED, CONST_CS); + GRPC_STATUS_FAILED_PRECONDITION, + CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("Grpc\\STATUS_ABORTED", GRPC_STATUS_ABORTED, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\STATUS_OUT_OF_RANGE", GRPC_STATUS_OUT_OF_RANGE, - CONST_CS); + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\STATUS_UNIMPLEMENTED", - GRPC_STATUS_UNIMPLEMENTED, CONST_CS); + GRPC_STATUS_UNIMPLEMENTED, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\STATUS_INTERNAL", GRPC_STATUS_INTERNAL, - CONST_CS); + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\STATUS_UNAVAILABLE", GRPC_STATUS_UNAVAILABLE, - CONST_CS); + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\STATUS_DATA_LOSS", GRPC_STATUS_DATA_LOSS, - CONST_CS); + CONST_CS | CONST_PERSISTENT); /* Register op type constants */ REGISTER_LONG_CONSTANT("Grpc\\OP_SEND_INITIAL_METADATA", - GRPC_OP_SEND_INITIAL_METADATA, CONST_CS); + GRPC_OP_SEND_INITIAL_METADATA, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\OP_SEND_MESSAGE", - GRPC_OP_SEND_MESSAGE, CONST_CS); + GRPC_OP_SEND_MESSAGE, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\OP_SEND_CLOSE_FROM_CLIENT", - GRPC_OP_SEND_CLOSE_FROM_CLIENT, CONST_CS); + GRPC_OP_SEND_CLOSE_FROM_CLIENT, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\OP_SEND_STATUS_FROM_SERVER", - GRPC_OP_SEND_STATUS_FROM_SERVER, CONST_CS); + GRPC_OP_SEND_STATUS_FROM_SERVER, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\OP_RECV_INITIAL_METADATA", - GRPC_OP_RECV_INITIAL_METADATA, CONST_CS); + GRPC_OP_RECV_INITIAL_METADATA, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\OP_RECV_MESSAGE", - GRPC_OP_RECV_MESSAGE, CONST_CS); + GRPC_OP_RECV_MESSAGE, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\OP_RECV_STATUS_ON_CLIENT", - GRPC_OP_RECV_STATUS_ON_CLIENT, CONST_CS); + GRPC_OP_RECV_STATUS_ON_CLIENT, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\OP_RECV_CLOSE_ON_SERVER", - GRPC_OP_RECV_CLOSE_ON_SERVER, CONST_CS); + GRPC_OP_RECV_CLOSE_ON_SERVER, + CONST_CS | CONST_PERSISTENT); /* Register connectivity state constants */ REGISTER_LONG_CONSTANT("Grpc\\CHANNEL_IDLE", - GRPC_CHANNEL_IDLE, CONST_CS); + GRPC_CHANNEL_IDLE, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\CHANNEL_CONNECTING", - GRPC_CHANNEL_CONNECTING, CONST_CS); + GRPC_CHANNEL_CONNECTING, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\CHANNEL_READY", - GRPC_CHANNEL_READY, CONST_CS); + GRPC_CHANNEL_READY, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\CHANNEL_TRANSIENT_FAILURE", - GRPC_CHANNEL_TRANSIENT_FAILURE, CONST_CS); + GRPC_CHANNEL_TRANSIENT_FAILURE, + CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("Grpc\\CHANNEL_FATAL_FAILURE", - GRPC_CHANNEL_FATAL_FAILURE, CONST_CS); + GRPC_CHANNEL_FATAL_FAILURE, + CONST_CS | CONST_PERSISTENT); grpc_init_call(TSRMLS_C); grpc_init_channel(TSRMLS_C); diff --git a/templates/grpc.gyp.template b/templates/grpc.gyp.template index 873606202a1..9a7637d8bf4 100644 --- a/templates/grpc.gyp.template +++ b/templates/grpc.gyp.template @@ -80,12 +80,17 @@ '-ldl', '-lpthread', '-lz' - ] + ], + 'direct_dependent_settings': { + 'include_dirs': [ + '.', + 'include' + ], + } }, 'targets': [ % for lib in libs: - # TODO: Add C++ targets - % if lib.language == 'c': + % if lib.name == 'gpr' or lib.name == 'grpc': { 'target_name': '${lib.name}', 'product_prefix': 'lib', @@ -103,23 +108,5 @@ }, % endif % endfor - % for tgt in targets: - % if tgt.language == 'c': - { - 'target_name': '${tgt.name}', - 'type': 'executable', - 'dependencies': [ - % for dep in getattr(tgt, 'deps', []): - '${dep}', - % endfor - ], - 'sources': [ - % for source in tgt.src: - '${source}', - % endfor - ] - }, - % endif - % endfor ] } diff --git a/test/core/iomgr/udp_server_test.c b/test/core/iomgr/udp_server_test.c index fc0026da4df..86e87679378 100644 --- a/test/core/iomgr/udp_server_test.c +++ b/test/core/iomgr/udp_server_test.c @@ -49,7 +49,8 @@ static grpc_pollset g_pollset; static int g_number_of_reads = 0; static int g_number_of_bytes_read = 0; -static void on_read(grpc_fd *emfd, grpc_server *server) { +static void on_read(grpc_exec_ctx *exec_ctx, grpc_fd *emfd, + grpc_server *server) { char read_buffer[512]; ssize_t byte_count; diff --git a/tools/jenkins/build_docker_and_run_tests.sh b/tools/jenkins/build_docker_and_run_tests.sh index 2c562e992aa..8b7809f2e23 100755 --- a/tools/jenkins/build_docker_and_run_tests.sh +++ b/tools/jenkins/build_docker_and_run_tests.sh @@ -37,8 +37,13 @@ cd `dirname $0`/../.. git_root=`pwd` cd - +# Ensure existence of ccache directory mkdir -p /tmp/ccache +# Ensure existence of the home directory for XDG caches (e.g. what pip uses for +# its cache location now that --download-cache is deprecated). +mkdir -p /tmp/xdg-cache-home + # Create a local branch so the child Docker script won't complain git branch -f jenkins-docker @@ -57,9 +62,11 @@ docker run \ -e "config=$config" \ -e "arch=$arch" \ -e CCACHE_DIR=/tmp/ccache \ + -e XDG_CACHE_HOME=/tmp/xdg-cache-home \ -i $TTY_FLAG \ -v "$git_root:/var/local/jenkins/grpc" \ -v /tmp/ccache:/tmp/ccache \ + -v /tmp/xdg-cache-home:/tmp/xdg-cache-home \ -v /var/run/docker.sock:/var/run/docker.sock \ -v $(which docker):/bin/docker \ -w /var/local/git/grpc \ diff --git a/tools/jenkins/docker_run_tests.sh b/tools/jenkins/docker_run_tests.sh index 2e39bc6f51e..8bafeea6200 100755 --- a/tools/jenkins/docker_run_tests.sh +++ b/tools/jenkins/docker_run_tests.sh @@ -36,6 +36,10 @@ set -e export CONFIG=$config export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-3.5 +# Ensure that programs depending on current-user-ownership of cache directories +# are satisfied (it's being mounted from outside the image). +chown `whoami` $XDG_CACHE_HOME + mkdir -p /var/local/git git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc diff --git a/tools/jenkins/grpc_jenkins_slave/Dockerfile b/tools/jenkins/grpc_jenkins_slave/Dockerfile index 4f5387eeb55..5f2b425c8c2 100644 --- a/tools/jenkins/grpc_jenkins_slave/Dockerfile +++ b/tools/jenkins/grpc_jenkins_slave/Dockerfile @@ -126,10 +126,11 @@ RUN /bin/bash -l -c "gem install bundler --no-ri --no-rdoc" RUN apt-get update && apt-get install -y \ python-all-dev \ python3-all-dev \ - python-pip \ - python-virtualenv + python-pip # Install Python packages from PyPI +RUN pip install pip --upgrade +RUN pip install virtualenv RUN pip install futures==2.2.0 enum34==1.0.4 protobuf==3.0.0a2 # For sanity test diff --git a/tools/run_tests/build_node.sh b/tools/run_tests/build_node.sh index 95ffb94c6ea..faa7b624b8e 100755 --- a/tools/run_tests/build_node.sh +++ b/tools/run_tests/build_node.sh @@ -36,9 +36,4 @@ CONFIG=${CONFIG:-opt} # change to grpc repo root cd $(dirname $0)/../.. -export CXXFLAGS=-I`pwd`/include -export LDFLAGS=-L`pwd`/libs/$CONFIG - -cd src/node - npm install --unsafe-perm diff --git a/tools/run_tests/build_python.sh b/tools/run_tests/build_python.sh index 2efc2c714d0..24cf6ba7c88 100755 --- a/tools/run_tests/build_python.sh +++ b/tools/run_tests/build_python.sh @@ -39,6 +39,33 @@ GRPCIO=$ROOT/src/python/grpcio GRPCIO_TEST=$ROOT/src/python/grpcio_test GRPCIO_HEALTH_CHECKING=$ROOT/src/python/grpcio_health_checking +install_grpcio_deps() { + cd $GRPCIO + pip install -r requirements.txt +} +install_grpcio_test_deps() { + cd $GRPCIO_TEST + pip install -r requirements.txt +} + +install_grpcio() { + CFLAGS="-I$ROOT/include -std=c89" LDFLAGS=-L$ROOT/libs/$CONFIG GRPC_PYTHON_BUILD_WITH_CYTHON=1 pip install $GRPCIO +} +install_grpcio_test() { + pip install $GRPCIO_TEST +} +install_grpcio_health_checking() { + pip install $GRPCIO_HEALTH_CHECKING +} + +# Cleans the environment of previous installations +clean_grpcio_all() { + (yes | pip uninstall grpcio) || true + (yes | pip uninstall grpcio_test) || true + (yes | pip uninstall grpcio_health_checking) || true +} + +# Builds the testing environment. make_virtualenv() { virtualenv_name="python"$1"_virtual_environment" if [ ! -d $virtualenv_name ] @@ -48,33 +75,29 @@ make_virtualenv() { source $virtualenv_name/bin/activate # Install grpcio - cd $GRPCIO - pip install -r requirements.txt - CFLAGS="-I$ROOT/include -std=c89" LDFLAGS=-L$ROOT/libs/$CONFIG GRPC_PYTHON_BUILD_WITH_CYTHON=1 pip install $GRPCIO + install_grpcio_deps + install_grpcio # Install grpcio_test - cd $GRPCIO_TEST - pip install -r requirements.txt - pip install $GRPCIO_TEST + install_grpcio_test_deps + install_grpcio_test # Install grpcio_health_checking - pip install $GRPCIO_HEALTH_CHECKING + install_grpcio_health_checking else source $virtualenv_name/bin/activate # Uninstall and re-install the packages we care about. Don't use # --force-reinstall or --ignore-installed to avoid propagating this # unnecessarily to dependencies. Don't use --no-deps to avoid missing # dependency upgrades. - (yes | pip uninstall grpcio) || true - (yes | pip uninstall grpcio_test) || true - (yes | pip uninstall grpcio_health_checking) || true - (CFLAGS="-I$ROOT/include -std=c89" LDFLAGS=-L$ROOT/libs/$CONFIG GRPC_PYTHON_BUILD_WITH_CYTHON=1 pip install $GRPCIO) || ( + clean_grpcio_all + install_grpcio || ( # Fall back to rebuilding the entire environment rm -rf $virtualenv_name make_virtualenv $1 ) - pip install $GRPCIO_TEST - pip install $GRPCIO_HEALTH_CHECKING + install_grpcio_test + install_grpcio_health_checking fi } diff --git a/tools/run_tests/port_server.py b/tools/run_tests/port_server.py index 48b6214b958..b953df952cb 100755 --- a/tools/run_tests/port_server.py +++ b/tools/run_tests/port_server.py @@ -38,6 +38,18 @@ import socket import sys import time + +# increment this number whenever making a change to ensure that +# the changes are picked up by running CI servers +# note that all changes must be backwards compatible +_MY_VERSION = 2 + + +if len(sys.argv) == 2 and sys.argv[1] == 'dump_version': + print _MY_VERSION + sys.exit(0) + + argp = argparse.ArgumentParser(description='Server for httpcli_test') argp.add_argument('-p', '--port', default=12345, type=int) args = argp.parse_args() @@ -47,9 +59,6 @@ print 'port server running on port %d' % args.port pool = [] in_use = {} -with open(__file__) as f: - _MY_VERSION = hashlib.sha1(f.read()).hexdigest() - def refill_pool(max_timeout, req): """Scan for ports not marked for being in use""" @@ -113,7 +122,7 @@ class Handler(BaseHTTPServer.BaseHTTPRequestHandler): del in_use[p] pool.append(p) self.log_message('drop port %d' % p) - elif self.path == '/version': + elif self.path == '/version_number': # fetch a version string and the current process pid self.send_response(200) self.send_header('Content-Type', 'text/plain') @@ -128,7 +137,7 @@ class Handler(BaseHTTPServer.BaseHTTPRequestHandler): self.end_headers() now = time.time() self.wfile.write(yaml.dump({'pool': pool, 'in_use': dict((k, now - v) for k, v in in_use.iteritems())})) - elif self.path == '/quit': + elif self.path == '/quitquitquit': self.send_response(200) self.end_headers() keep_running = False diff --git a/tools/run_tests/run_node.sh b/tools/run_tests/run_node.sh index e322ab1995a..780969089da 100755 --- a/tools/run_tests/run_node.sh +++ b/tools/run_tests/run_node.sh @@ -37,19 +37,15 @@ cd $(dirname $0)/../.. root=`pwd` -cd $root/src/node - -export LD_LIBRARY_PATH=$root/libs/$CONFIG - if [ "$CONFIG" = "gcov" ] then - ./node_modules/.bin/istanbul cover --dir ../../reports/node_coverage \ - ./node_modules/.bin/_mocha -- --timeout 8000 + ./node_modules/.bin/istanbul cover --dir reports/node_coverage \ + ./node_modules/.bin/_mocha -- --timeout 8000 src/node/test cd build gcov Release/obj.target/grpc/ext/*.o lcov --base-directory . --directory . -c -o coverage.info - genhtml -o ../../../reports/node_ext_coverage --num-spaces 2 \ + genhtml -o ../reports/node_ext_coverage --num-spaces 2 \ -t 'Node gRPC test coverage' coverage.info else - ./node_modules/mocha/bin/mocha --timeout 8000 + ./node_modules/mocha/bin/mocha --timeout 8000 src/node/test fi diff --git a/tools/run_tests/run_python.sh b/tools/run_tests/run_python.sh index e2135be04c5..848775e9b19 100755 --- a/tools/run_tests/run_python.sh +++ b/tools/run_tests/run_python.sh @@ -40,4 +40,4 @@ export DYLD_LIBRARY_PATH=$ROOT/libs/$CONFIG export PATH=$ROOT/bins/$CONFIG:$ROOT/bins/$CONFIG/protobuf:$PATH source "python"$PYVER"_virtual_environment"/bin/activate -"python"$PYVER $GRPCIO_TEST/setup.py test -a "-n8 --cov=grpc --junitxml=./report.xml --timeout=300" +"python"$PYVER $GRPCIO_TEST/setup.py test -a "-n8 --cov=grpc --junitxml=./report.xml --timeout=300 -v --boxed --timeout_method=thread" diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index e938520403d..6423ecfd7cb 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -181,45 +181,6 @@ class CLanguage(object): def __str__(self): return self.make_target - -def gyp_test_paths(travis, config=None): - binaries = get_c_tests(travis, 'c') - out = [] - for target in binaries: - if config is not None and config.build_config in target['exclude_configs']: - continue - binary = 'out/Debug/%s' % target['name'] - out.append(binary) - return sorted(out) - - -class GYPCLanguage(object): - - def test_specs(self, config, travis): - return [config.job_spec([binary], [binary]) - for binary in gyp_test_paths(travis, config)] - - def pre_build_steps(self): - return [['gyp', '--depth=.', '--suffix=-gyp', 'grpc.gyp']] - - def make_targets(self): - # HACK(ctiller): force fling_client and fling_server to be built, as fling_test - # needs these - return gyp_test_paths(False) + ['fling_client', 'fling_server'] - - def build_steps(self): - return [] - - def makefile_name(self): - return 'Makefile-gyp' - - def supports_multi_config(self): - return False - - def __str__(self): - return 'gyp' - - class NodeLanguage(object): def test_specs(self, config, travis): @@ -230,7 +191,7 @@ class NodeLanguage(object): return [] def make_targets(self): - return ['static_c', 'shared_c'] + return [] def build_steps(self): return [['tools/run_tests/build_node.sh']] @@ -483,7 +444,6 @@ _DEFAULT = ['opt'] _LANGUAGES = { 'c++': CLanguage('cxx', 'c++'), 'c': CLanguage('c', 'c'), - 'gyp': GYPCLanguage(), 'node': NodeLanguage(), 'php': PhpLanguage(), 'python': PythonLanguage(), @@ -624,7 +584,9 @@ if platform.system() == 'Windows': def make_jobspec(cfg, targets, makefile='Makefile'): extra_args = [] # better do parallel compilation - extra_args.extend(["/m"]) + # empirically /m:2 gives the best performance/price and should prevent + # overloading the windows workers. + extra_args.extend(["/m:2"]) # disable PDB generation: it's broken, and we don't need it during CI extra_args.extend(["/p:Jenkins=true"]) return [ @@ -658,7 +620,7 @@ if make_targets: make_commands = itertools.chain.from_iterable(make_jobspec(cfg, list(targets), makefile) for cfg in build_configs for (makefile, targets) in make_targets.iteritems()) build_steps.extend(set(make_commands)) build_steps.extend(set( - jobset.JobSpec(cmdline, environ={'CONFIG': cfg}) + jobset.JobSpec(cmdline, environ={'CONFIG': cfg}, timeout_seconds=10*60) for cfg in build_configs for l in languages for cmdline in l.build_steps())) @@ -713,21 +675,24 @@ def _start_port_server(port_server_port): # if not running ==> start a new one # otherwise, leave it up try: - version = urllib2.urlopen('http://localhost:%d/version' % port_server_port, - timeout=1).read() - print 'detected port server running' + version = int(urllib2.urlopen( + 'http://localhost:%d/version_number' % port_server_port, + timeout=1).read()) + print 'detected port server running version %d' % version running = True - except Exception: + except Exception as e: print 'failed to detect port server: %s' % sys.exc_info()[0] + print e.strerror running = False if running: - with open('tools/run_tests/port_server.py') as f: - current_version = hashlib.sha1(f.read()).hexdigest() - running = (version == current_version) - if not running: - print 'port_server version mismatch: killing the old one' - urllib2.urlopen('http://localhost:%d/quit' % port_server_port).read() - time.sleep(1) + current_version = int(subprocess.check_output( + [sys.executable, 'tools/run_tests/port_server.py', 'dump_version'])) + print 'my port server is version %d' % current_version + running = (version >= current_version) + if not running: + print 'port_server version mismatch: killing the old one' + urllib2.urlopen('http://localhost:%d/quitquitquit' % port_server_port).read() + time.sleep(1) if not running: print 'starting port_server' port_log = open('portlog.txt', 'w') @@ -773,7 +738,7 @@ def _build_and_run( # start antagonists antagonists = [subprocess.Popen(['tools/run_tests/antagonist.py']) for _ in range(0, args.antagonists)] - port_server_port = 9999 + port_server_port = 32767 _start_port_server(port_server_port) try: infinite_runs = runs_per_test == 0