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 0000000000000000000000000000000000000000..a2431a38e2c0f88c55a661eb4c816012b431de34
--- /dev/null
+++ b/binding.gyp
@@ -0,0 +1,94 @@
+# 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': '<!(echo $CONFIG)'
+  },
+  "targets" : [
+    {
+      'include_dirs': [
+        "<!(node -e \"require('nan')\")"
+      ],
+      'cflags': [
+        '-std=c++0x',
+        '-Wall',
+        '-pthread',
+        '-g',
+        '-zdefs',
+        '-Werror',
+        '-Wno-error=deprecated-declarations'
+      ],
+      'ldflags': [
+        '-g'
+      ],
+      "conditions": [
+        ['OS != "win"', {
+          'conditions': [
+            ['config=="gcov"', {
+              'cflags': [
+                '-ftest-coverage',
+                '-fprofile-arcs',
+                '-O0'
+              ],
+              'ldflags': [
+                '-ftest-coverage',
+                '-fprofile-arcs'
+              ]
+            }
+           ]
+          ]
+        }],
+        ['OS == "mac"', {
+          'xcode_settings': {
+            'MACOSX_DEPLOYMENT_TARGET': '10.9',
+            'OTHER_CFLAGS': [
+              '-std=c++11',
+              '-stdlib=libc++'
+            ]
+          }
+        }]
+      ],
+      "target_name": "grpc_node",
+      "sources": [
+        "src/node/ext/byte_buffer.cc",
+        "src/node/ext/call.cc",
+        "src/node/ext/channel.cc",
+        "src/node/ext/completion_queue_async_worker.cc",
+        "src/node/ext/credentials.cc",
+        "src/node/ext/node_grpc.cc",
+        "src/node/ext/server.cc",
+        "src/node/ext/server_credentials.cc",
+        "src/node/ext/timeval.cc"
+      ],
+      "dependencies": [
+        "grpc.gyp:grpc"
+      ]
+    }
+  ]
+}
diff --git a/build.json b/build.json
deleted file mode 100644
index 0a4248c7a8da834c1a605fc3c88fe436ef82b438..0000000000000000000000000000000000000000
--- a/build.json
+++ /dev/null
@@ -1,2729 +0,0 @@
-{
-  "#1": "This file describes the list of targets and dependencies.",
-  "#2": "It is used among other things to generate all of our project files.",
-  "#3": "Please refer to the templates directory for more information.",
-  "settings": {
-    "#": "The public version number of the library.",
-    "version": {
-      "major": 0,
-      "minor": 10,
-      "micro": 1,
-      "build": 0
-    }
-  },
-  "filegroups": [
-    {
-      "name": "census",
-      "public_headers": [
-        "include/grpc/census.h"
-      ],
-      "headers": [
-        "src/core/census/context.h",
-        "src/core/census/rpc_stat_id.h"
-      ],
-      "src": [
-        "src/core/census/context.c",
-        "src/core/census/initialize.c",
-        "src/core/census/record_stat.c"
-      ]
-    },
-    {
-      "name": "grpc++_base",
-      "public_headers": [
-        "include/grpc++/channel.h",
-        "include/grpc++/client_context.h",
-        "include/grpc++/completion_queue.h",
-        "include/grpc++/create_channel.h",
-        "include/grpc++/credentials.h",
-        "include/grpc++/generic/async_generic_service.h",
-        "include/grpc++/generic/generic_stub.h",
-        "include/grpc++/impl/call.h",
-        "include/grpc++/impl/client_unary_call.h",
-        "include/grpc++/impl/grpc_library.h",
-        "include/grpc++/impl/proto_utils.h",
-        "include/grpc++/impl/rpc_method.h",
-        "include/grpc++/impl/rpc_service_method.h",
-        "include/grpc++/impl/serialization_traits.h",
-        "include/grpc++/impl/service_type.h",
-        "include/grpc++/impl/sync.h",
-        "include/grpc++/impl/sync_cxx11.h",
-        "include/grpc++/impl/sync_no_cxx11.h",
-        "include/grpc++/impl/thd.h",
-        "include/grpc++/impl/thd_cxx11.h",
-        "include/grpc++/impl/thd_no_cxx11.h",
-        "include/grpc++/server.h",
-        "include/grpc++/server_builder.h",
-        "include/grpc++/server_context.h",
-        "include/grpc++/server_credentials.h",
-        "include/grpc++/support/async_stream.h",
-        "include/grpc++/support/async_unary_call.h",
-        "include/grpc++/support/auth_context.h",
-        "include/grpc++/support/byte_buffer.h",
-        "include/grpc++/support/channel_arguments.h",
-        "include/grpc++/support/config.h",
-        "include/grpc++/support/config_protobuf.h",
-        "include/grpc++/support/slice.h",
-        "include/grpc++/support/status.h",
-        "include/grpc++/support/status_code_enum.h",
-        "include/grpc++/support/string_ref.h",
-        "include/grpc++/support/stub_options.h",
-        "include/grpc++/support/sync_stream.h",
-        "include/grpc++/support/time.h"
-      ],
-      "headers": [
-        "src/cpp/client/create_channel_internal.h",
-        "src/cpp/common/create_auth_context.h",
-        "src/cpp/server/dynamic_thread_pool.h",
-        "src/cpp/server/fixed_size_thread_pool.h",
-        "src/cpp/server/thread_pool_interface.h"
-      ],
-      "src": [
-        "src/cpp/client/channel.cc",
-        "src/cpp/client/channel_arguments.cc",
-        "src/cpp/client/client_context.cc",
-        "src/cpp/client/create_channel.cc",
-        "src/cpp/client/create_channel_internal.cc",
-        "src/cpp/client/credentials.cc",
-        "src/cpp/client/generic_stub.cc",
-        "src/cpp/client/insecure_credentials.cc",
-        "src/cpp/common/call.cc",
-        "src/cpp/common/completion_queue.cc",
-        "src/cpp/common/rpc_method.cc",
-        "src/cpp/proto/proto_utils.cc",
-        "src/cpp/server/async_generic_service.cc",
-        "src/cpp/server/create_default_thread_pool.cc",
-        "src/cpp/server/dynamic_thread_pool.cc",
-        "src/cpp/server/fixed_size_thread_pool.cc",
-        "src/cpp/server/insecure_server_credentials.cc",
-        "src/cpp/server/server.cc",
-        "src/cpp/server/server_builder.cc",
-        "src/cpp/server/server_context.cc",
-        "src/cpp/server/server_credentials.cc",
-        "src/cpp/util/byte_buffer.cc",
-        "src/cpp/util/slice.cc",
-        "src/cpp/util/status.cc",
-        "src/cpp/util/string_ref.cc",
-        "src/cpp/util/time.cc"
-      ]
-    },
-    {
-      "name": "grpc_base",
-      "public_headers": [
-        "include/grpc/byte_buffer.h",
-        "include/grpc/byte_buffer_reader.h",
-        "include/grpc/compression.h",
-        "include/grpc/grpc.h",
-        "include/grpc/status.h"
-      ],
-      "headers": [
-        "src/core/census/grpc_filter.h",
-        "src/core/channel/channel_args.h",
-        "src/core/channel/channel_stack.h",
-        "src/core/channel/client_channel.h",
-        "src/core/channel/compress_filter.h",
-        "src/core/channel/connected_channel.h",
-        "src/core/channel/context.h",
-        "src/core/channel/http_client_filter.h",
-        "src/core/channel/http_server_filter.h",
-        "src/core/channel/noop_filter.h",
-        "src/core/client_config/client_config.h",
-        "src/core/client_config/connector.h",
-        "src/core/client_config/lb_policies/pick_first.h",
-        "src/core/client_config/lb_policy.h",
-        "src/core/client_config/resolver.h",
-        "src/core/client_config/resolver_factory.h",
-        "src/core/client_config/resolver_registry.h",
-        "src/core/client_config/resolvers/dns_resolver.h",
-        "src/core/client_config/resolvers/sockaddr_resolver.h",
-        "src/core/client_config/subchannel.h",
-        "src/core/client_config/subchannel_factory.h",
-        "src/core/client_config/subchannel_factory_decorators/add_channel_arg.h",
-        "src/core/client_config/subchannel_factory_decorators/merge_channel_args.h",
-        "src/core/client_config/uri_parser.h",
-        "src/core/compression/message_compress.h",
-        "src/core/debug/trace.h",
-        "src/core/httpcli/format_request.h",
-        "src/core/httpcli/httpcli.h",
-        "src/core/httpcli/parser.h",
-        "src/core/iomgr/alarm.h",
-        "src/core/iomgr/alarm_heap.h",
-        "src/core/iomgr/alarm_internal.h",
-        "src/core/iomgr/endpoint.h",
-        "src/core/iomgr/endpoint_pair.h",
-        "src/core/iomgr/fd_posix.h",
-        "src/core/iomgr/iocp_windows.h",
-        "src/core/iomgr/iomgr.h",
-        "src/core/iomgr/iomgr_internal.h",
-        "src/core/iomgr/iomgr_posix.h",
-        "src/core/iomgr/pollset.h",
-        "src/core/iomgr/pollset_posix.h",
-        "src/core/iomgr/pollset_set.h",
-        "src/core/iomgr/pollset_set_posix.h",
-        "src/core/iomgr/pollset_set_windows.h",
-        "src/core/iomgr/pollset_windows.h",
-        "src/core/iomgr/resolve_address.h",
-        "src/core/iomgr/sockaddr.h",
-        "src/core/iomgr/sockaddr_posix.h",
-        "src/core/iomgr/sockaddr_utils.h",
-        "src/core/iomgr/sockaddr_win32.h",
-        "src/core/iomgr/socket_utils_posix.h",
-        "src/core/iomgr/socket_windows.h",
-        "src/core/iomgr/tcp_client.h",
-        "src/core/iomgr/tcp_posix.h",
-        "src/core/iomgr/tcp_server.h",
-        "src/core/iomgr/tcp_windows.h",
-        "src/core/iomgr/time_averaged_stats.h",
-        "src/core/iomgr/udp_server.h",
-        "src/core/iomgr/wakeup_fd_pipe.h",
-        "src/core/iomgr/wakeup_fd_posix.h",
-        "src/core/json/json.h",
-        "src/core/json/json_common.h",
-        "src/core/json/json_reader.h",
-        "src/core/json/json_writer.h",
-        "src/core/profiling/timers.h",
-        "src/core/profiling/timers_preciseclock.h",
-        "src/core/statistics/census_interface.h",
-        "src/core/statistics/census_rpc_stats.h",
-        "src/core/surface/api_trace.h",
-        "src/core/surface/byte_buffer_queue.h",
-        "src/core/surface/call.h",
-        "src/core/surface/channel.h",
-        "src/core/surface/completion_queue.h",
-        "src/core/surface/event_string.h",
-        "src/core/surface/init.h",
-        "src/core/surface/server.h",
-        "src/core/surface/surface_trace.h",
-        "src/core/transport/chttp2/alpn.h",
-        "src/core/transport/chttp2/bin_encoder.h",
-        "src/core/transport/chttp2/frame.h",
-        "src/core/transport/chttp2/frame_data.h",
-        "src/core/transport/chttp2/frame_goaway.h",
-        "src/core/transport/chttp2/frame_ping.h",
-        "src/core/transport/chttp2/frame_rst_stream.h",
-        "src/core/transport/chttp2/frame_settings.h",
-        "src/core/transport/chttp2/frame_window_update.h",
-        "src/core/transport/chttp2/hpack_parser.h",
-        "src/core/transport/chttp2/hpack_table.h",
-        "src/core/transport/chttp2/http2_errors.h",
-        "src/core/transport/chttp2/huffsyms.h",
-        "src/core/transport/chttp2/incoming_metadata.h",
-        "src/core/transport/chttp2/internal.h",
-        "src/core/transport/chttp2/status_conversion.h",
-        "src/core/transport/chttp2/stream_encoder.h",
-        "src/core/transport/chttp2/stream_map.h",
-        "src/core/transport/chttp2/timeout_encoding.h",
-        "src/core/transport/chttp2/varint.h",
-        "src/core/transport/chttp2_transport.h",
-        "src/core/transport/connectivity_state.h",
-        "src/core/transport/metadata.h",
-        "src/core/transport/stream_op.h",
-        "src/core/transport/transport.h",
-        "src/core/transport/transport_impl.h"
-      ],
-      "src": [
-        "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_policy.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/endpoint.c",
-        "src/core/iomgr/endpoint_pair_posix.c",
-        "src/core/iomgr/endpoint_pair_windows.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/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"
-      ]
-    },
-    {
-      "name": "grpc_test_util_base",
-      "headers": [
-        "test/core/end2end/cq_verifier.h",
-        "test/core/end2end/fixtures/proxy.h",
-        "test/core/iomgr/endpoint_tests.h",
-        "test/core/security/oauth2_utils.h",
-        "test/core/util/grpc_profiler.h",
-        "test/core/util/parse_hexstring.h",
-        "test/core/util/port.h",
-        "test/core/util/slice_splitter.h"
-      ],
-      "src": [
-        "test/core/end2end/cq_verifier.c",
-        "test/core/end2end/fixtures/proxy.c",
-        "test/core/iomgr/endpoint_tests.c",
-        "test/core/security/oauth2_utils.c",
-        "test/core/util/grpc_profiler.c",
-        "test/core/util/parse_hexstring.c",
-        "test/core/util/port_posix.c",
-        "test/core/util/port_windows.c",
-        "test/core/util/slice_splitter.c"
-      ]
-    }
-  ],
-  "libs": [
-    {
-      "name": "gpr",
-      "build": "all",
-      "language": "c",
-      "public_headers": [
-        "include/grpc/support/alloc.h",
-        "include/grpc/support/atm.h",
-        "include/grpc/support/atm_gcc_atomic.h",
-        "include/grpc/support/atm_gcc_sync.h",
-        "include/grpc/support/atm_win32.h",
-        "include/grpc/support/cmdline.h",
-        "include/grpc/support/cpu.h",
-        "include/grpc/support/histogram.h",
-        "include/grpc/support/host_port.h",
-        "include/grpc/support/log.h",
-        "include/grpc/support/log_win32.h",
-        "include/grpc/support/port_platform.h",
-        "include/grpc/support/slice.h",
-        "include/grpc/support/slice_buffer.h",
-        "include/grpc/support/string_util.h",
-        "include/grpc/support/subprocess.h",
-        "include/grpc/support/sync.h",
-        "include/grpc/support/sync_generic.h",
-        "include/grpc/support/sync_posix.h",
-        "include/grpc/support/sync_win32.h",
-        "include/grpc/support/thd.h",
-        "include/grpc/support/time.h",
-        "include/grpc/support/tls.h",
-        "include/grpc/support/tls_gcc.h",
-        "include/grpc/support/tls_msvc.h",
-        "include/grpc/support/tls_pthread.h",
-        "include/grpc/support/useful.h"
-      ],
-      "headers": [
-        "src/core/support/env.h",
-        "src/core/support/file.h",
-        "src/core/support/murmur_hash.h",
-        "src/core/support/stack_lockfree.h",
-        "src/core/support/string.h",
-        "src/core/support/string_win32.h",
-        "src/core/support/thd_internal.h"
-      ],
-      "src": [
-        "src/core/support/alloc.c",
-        "src/core/support/cmdline.c",
-        "src/core/support/cpu_iphone.c",
-        "src/core/support/cpu_linux.c",
-        "src/core/support/cpu_posix.c",
-        "src/core/support/cpu_windows.c",
-        "src/core/support/env_linux.c",
-        "src/core/support/env_posix.c",
-        "src/core/support/env_win32.c",
-        "src/core/support/file.c",
-        "src/core/support/file_posix.c",
-        "src/core/support/file_win32.c",
-        "src/core/support/histogram.c",
-        "src/core/support/host_port.c",
-        "src/core/support/log.c",
-        "src/core/support/log_android.c",
-        "src/core/support/log_linux.c",
-        "src/core/support/log_posix.c",
-        "src/core/support/log_win32.c",
-        "src/core/support/murmur_hash.c",
-        "src/core/support/slice.c",
-        "src/core/support/slice_buffer.c",
-        "src/core/support/stack_lockfree.c",
-        "src/core/support/string.c",
-        "src/core/support/string_posix.c",
-        "src/core/support/string_win32.c",
-        "src/core/support/subprocess_posix.c",
-        "src/core/support/sync.c",
-        "src/core/support/sync_posix.c",
-        "src/core/support/sync_win32.c",
-        "src/core/support/thd.c",
-        "src/core/support/thd_posix.c",
-        "src/core/support/thd_win32.c",
-        "src/core/support/time.c",
-        "src/core/support/time_posix.c",
-        "src/core/support/time_win32.c",
-        "src/core/support/tls_pthread.c"
-      ],
-      "secure": "no",
-      "vs_project_guid": "{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}"
-    },
-    {
-      "name": "gpr_test_util",
-      "build": "private",
-      "language": "c",
-      "headers": [
-        "test/core/util/test_config.h"
-      ],
-      "src": [
-        "test/core/util/test_config.c"
-      ],
-      "deps": [
-        "gpr"
-      ],
-      "secure": "no",
-      "vs_project_guid": "{EAB0A629-17A9-44DB-B5FF-E91A721FE037}"
-    },
-    {
-      "name": "grpc",
-      "build": "all",
-      "language": "c",
-      "public_headers": [
-        "include/grpc/grpc_security.h"
-      ],
-      "headers": [
-        "src/core/security/auth_filters.h",
-        "src/core/security/base64.h",
-        "src/core/security/credentials.h",
-        "src/core/security/json_token.h",
-        "src/core/security/jwt_verifier.h",
-        "src/core/security/secure_endpoint.h",
-        "src/core/security/secure_transport_setup.h",
-        "src/core/security/security_connector.h",
-        "src/core/security/security_context.h",
-        "src/core/tsi/fake_transport_security.h",
-        "src/core/tsi/ssl_transport_security.h",
-        "src/core/tsi/transport_security.h",
-        "src/core/tsi/transport_security_interface.h"
-      ],
-      "src": [
-        "src/core/httpcli/httpcli_security_connector.c",
-        "src/core/security/base64.c",
-        "src/core/security/client_auth_filter.c",
-        "src/core/security/credentials.c",
-        "src/core/security/credentials_metadata.c",
-        "src/core/security/credentials_posix.c",
-        "src/core/security/credentials_win32.c",
-        "src/core/security/google_default_credentials.c",
-        "src/core/security/json_token.c",
-        "src/core/security/jwt_verifier.c",
-        "src/core/security/secure_endpoint.c",
-        "src/core/security/secure_transport_setup.c",
-        "src/core/security/security_connector.c",
-        "src/core/security/security_context.c",
-        "src/core/security/server_auth_filter.c",
-        "src/core/security/server_secure_chttp2.c",
-        "src/core/surface/init_secure.c",
-        "src/core/surface/secure_channel_create.c",
-        "src/core/tsi/fake_transport_security.c",
-        "src/core/tsi/ssl_transport_security.c",
-        "src/core/tsi/transport_security.c"
-      ],
-      "deps": [
-        "gpr"
-      ],
-      "baselib": true,
-      "dll": "yes",
-      "filegroups": [
-        "grpc_base",
-        "census"
-      ],
-      "secure": "yes",
-      "vs_project_guid": "{29D16885-7228-4C31-81ED-5F9187C7F2A9}"
-    },
-    {
-      "name": "grpc_test_util",
-      "build": "private",
-      "language": "c",
-      "headers": [
-        "test/core/end2end/data/ssl_test_data.h"
-      ],
-      "src": [
-        "test/core/end2end/data/server1_cert.c",
-        "test/core/end2end/data/server1_key.c",
-        "test/core/end2end/data/test_root_cert.c"
-      ],
-      "deps": [
-        "gpr",
-        "gpr_test_util",
-        "grpc"
-      ],
-      "filegroups": [
-        "grpc_test_util_base"
-      ],
-      "vs_project_guid": "{17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}"
-    },
-    {
-      "name": "grpc_test_util_unsecure",
-      "build": "private",
-      "language": "c",
-      "deps": [
-        "gpr",
-        "gpr_test_util",
-        "grpc"
-      ],
-      "filegroups": [
-        "grpc_test_util_base"
-      ],
-      "secure": "no",
-      "vs_project_guid": "{0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}"
-    },
-    {
-      "name": "grpc_unsecure",
-      "build": "all",
-      "language": "c",
-      "src": [
-        "src/core/surface/init_unsecure.c"
-      ],
-      "deps": [
-        "gpr"
-      ],
-      "baselib": true,
-      "dll": "yes",
-      "filegroups": [
-        "grpc_base",
-        "census"
-      ],
-      "secure": "no",
-      "vs_project_guid": "{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}"
-    },
-    {
-      "name": "grpc_zookeeper",
-      "build": "all",
-      "language": "c",
-      "public_headers": [
-        "include/grpc/grpc_zookeeper.h"
-      ],
-      "headers": [
-        "src/core/client_config/resolvers/zookeeper_resolver.h"
-      ],
-      "src": [
-        "src/core/client_config/resolvers/zookeeper_resolver.c"
-      ],
-      "deps": [
-        "gpr",
-        "grpc"
-      ],
-      "external_deps": [
-        "zookeeper"
-      ],
-      "secure": "no"
-    },
-    {
-      "name": "reconnect_server",
-      "build": "private",
-      "language": "c",
-      "headers": [
-        "test/core/util/reconnect_server.h"
-      ],
-      "src": [
-        "test/core/util/reconnect_server.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "grpc++",
-      "build": "all",
-      "language": "c++",
-      "headers": [
-        "src/cpp/client/secure_credentials.h",
-        "src/cpp/common/secure_auth_context.h",
-        "src/cpp/server/secure_server_credentials.h"
-      ],
-      "src": [
-        "src/cpp/client/secure_channel_arguments.cc",
-        "src/cpp/client/secure_credentials.cc",
-        "src/cpp/common/auth_property_iterator.cc",
-        "src/cpp/common/secure_auth_context.cc",
-        "src/cpp/common/secure_create_auth_context.cc",
-        "src/cpp/server/secure_server_credentials.cc"
-      ],
-      "deps": [
-        "gpr",
-        "grpc"
-      ],
-      "baselib": true,
-      "dll": "yes",
-      "filegroups": [
-        "grpc++_base"
-      ],
-      "secure": "check",
-      "vs_project_guid": "{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}"
-    },
-    {
-      "name": "grpc++_test_config",
-      "build": "private",
-      "language": "c++",
-      "headers": [
-        "test/cpp/util/test_config.h"
-      ],
-      "src": [
-        "test/cpp/util/test_config.cc"
-      ]
-    },
-    {
-      "name": "grpc++_test_util",
-      "build": "private",
-      "language": "c++",
-      "headers": [
-        "test/cpp/util/cli_call.h",
-        "test/cpp/util/create_test_channel.h",
-        "test/cpp/util/subprocess.h"
-      ],
-      "src": [
-        "test/cpp/util/messages.proto",
-        "test/cpp/util/echo.proto",
-        "test/cpp/util/echo_duplicate.proto",
-        "test/cpp/util/cli_call.cc",
-        "test/cpp/util/create_test_channel.cc",
-        "test/cpp/util/subprocess.cc"
-      ],
-      "deps": [
-        "grpc++",
-        "grpc_test_util"
-      ]
-    },
-    {
-      "name": "grpc++_unsecure",
-      "build": "all",
-      "language": "c++",
-      "src": [
-        "src/cpp/common/insecure_create_auth_context.cc"
-      ],
-      "deps": [
-        "gpr",
-        "grpc_unsecure"
-      ],
-      "baselib": true,
-      "dll": "yes",
-      "filegroups": [
-        "grpc++_base"
-      ],
-      "secure": "no",
-      "vs_project_guid": "{6EE56155-DF7C-4F6E-BFC4-F6F776BEB211}"
-    },
-    {
-      "name": "grpc_plugin_support",
-      "build": "protoc",
-      "language": "c++",
-      "headers": [
-        "include/grpc++/support/config.h",
-        "include/grpc++/support/config_protobuf.h",
-        "src/compiler/config.h",
-        "src/compiler/cpp_generator.h",
-        "src/compiler/cpp_generator_helpers.h",
-        "src/compiler/csharp_generator.h",
-        "src/compiler/csharp_generator_helpers.h",
-        "src/compiler/generator_helpers.h",
-        "src/compiler/objective_c_generator.h",
-        "src/compiler/objective_c_generator_helpers.h",
-        "src/compiler/python_generator.h",
-        "src/compiler/ruby_generator.h",
-        "src/compiler/ruby_generator_helpers-inl.h",
-        "src/compiler/ruby_generator_map-inl.h",
-        "src/compiler/ruby_generator_string-inl.h"
-      ],
-      "src": [
-        "src/compiler/cpp_generator.cc",
-        "src/compiler/csharp_generator.cc",
-        "src/compiler/objective_c_generator.cc",
-        "src/compiler/python_generator.cc",
-        "src/compiler/ruby_generator.cc"
-      ],
-      "deps": [],
-      "secure": "no",
-      "vs_project_guid": "{B6E81D84-2ACB-41B8-8781-493A944C7817}"
-    },
-    {
-      "name": "interop_client_helper",
-      "build": "private",
-      "language": "c++",
-      "headers": [
-        "test/cpp/interop/client_helper.h"
-      ],
-      "src": [
-        "test/proto/messages.proto",
-        "test/cpp/interop/client_helper.cc"
-      ],
-      "deps": [
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr"
-      ]
-    },
-    {
-      "name": "interop_client_main",
-      "build": "private",
-      "language": "c++",
-      "headers": [
-        "test/cpp/interop/interop_client.h"
-      ],
-      "src": [
-        "test/proto/empty.proto",
-        "test/proto/messages.proto",
-        "test/proto/test.proto",
-        "test/cpp/interop/client.cc",
-        "test/cpp/interop/interop_client.cc"
-      ],
-      "deps": [
-        "interop_client_helper",
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr",
-        "grpc++_test_config"
-      ]
-    },
-    {
-      "name": "interop_server_helper",
-      "build": "private",
-      "language": "c++",
-      "headers": [
-        "test/cpp/interop/server_helper.h"
-      ],
-      "src": [
-        "test/cpp/interop/server_helper.cc"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr"
-      ]
-    },
-    {
-      "name": "interop_server_main",
-      "build": "private",
-      "language": "c++",
-      "src": [
-        "test/proto/empty.proto",
-        "test/proto/messages.proto",
-        "test/proto/test.proto",
-        "test/cpp/interop/server.cc"
-      ],
-      "deps": [
-        "interop_server_helper",
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr",
-        "grpc++_test_config"
-      ]
-    },
-    {
-      "name": "pubsub_client_lib",
-      "build": "do_not_build",
-      "language": "c++",
-      "headers": [
-        "examples/pubsub/publisher.h",
-        "examples/pubsub/subscriber.h"
-      ],
-      "src": [
-        "examples/pubsub/label.proto",
-        "examples/pubsub/empty.proto",
-        "examples/pubsub/pubsub.proto",
-        "examples/pubsub/publisher.cc",
-        "examples/pubsub/subscriber.cc"
-      ],
-      "deps": [
-        "grpc++",
-        "grpc",
-        "gpr"
-      ]
-    },
-    {
-      "name": "qps",
-      "build": "private",
-      "language": "c++",
-      "headers": [
-        "test/cpp/qps/client.h",
-        "test/cpp/qps/driver.h",
-        "test/cpp/qps/histogram.h",
-        "test/cpp/qps/interarrival.h",
-        "test/cpp/qps/perf_db_client.h",
-        "test/cpp/qps/qps_worker.h",
-        "test/cpp/qps/report.h",
-        "test/cpp/qps/server.h",
-        "test/cpp/qps/stats.h",
-        "test/cpp/qps/timer.h",
-        "test/cpp/util/benchmark_config.h"
-      ],
-      "src": [
-        "test/cpp/qps/qpstest.proto",
-        "test/cpp/qps/perf_db.proto",
-        "test/cpp/qps/client_async.cc",
-        "test/cpp/qps/client_sync.cc",
-        "test/cpp/qps/driver.cc",
-        "test/cpp/qps/perf_db_client.cc",
-        "test/cpp/qps/qps_worker.cc",
-        "test/cpp/qps/report.cc",
-        "test/cpp/qps/server_async.cc",
-        "test/cpp/qps/server_sync.cc",
-        "test/cpp/qps/timer.cc",
-        "test/cpp/util/benchmark_config.cc"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc++_test_util",
-        "grpc++"
-      ]
-    },
-    {
-      "name": "grpc_csharp_ext",
-      "build": "all",
-      "language": "csharp",
-      "src": [
-        "src/csharp/ext/grpc_csharp_ext.c"
-      ],
-      "deps": [
-        "gpr",
-        "grpc"
-      ],
-      "dll": "only",
-      "vs_project_guid": "{D64C6D63-4458-4A88-AB38-35678384A7E4}"
-    }
-  ],
-  "targets": [
-    {
-      "name": "alarm_heap_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/iomgr/alarm_heap_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "alarm_list_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/iomgr/alarm_list_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "alarm_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/iomgr/alarm_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "alpn_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/transport/chttp2/alpn_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "bin_encoder_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/transport/chttp2/bin_encoder_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "chttp2_status_conversion_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/transport/chttp2/status_conversion_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "chttp2_stream_encoder_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/transport/chttp2/stream_encoder_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "chttp2_stream_map_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/transport/chttp2/stream_map_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "compression_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/compression/compression_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "dualstack_socket_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/end2end/dualstack_socket_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "fd_conservation_posix_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/iomgr/fd_conservation_posix_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "fd_posix_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/iomgr/fd_posix_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "fling_client",
-      "build": "test",
-      "run": false,
-      "language": "c",
-      "src": [
-        "test/core/fling/client.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "fling_server",
-      "build": "test",
-      "run": false,
-      "language": "c",
-      "src": [
-        "test/core/fling/server.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "fling_stream_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/fling/fling_stream_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "fling_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/fling/fling_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "gen_hpack_tables",
-      "build": "tool",
-      "language": "c",
-      "src": [
-        "tools/codegen/core/gen_hpack_tables.c"
-      ],
-      "deps": [
-        "gpr",
-        "grpc"
-      ]
-    },
-    {
-      "name": "gpr_cmdline_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/support/cmdline_test.c"
-      ],
-      "deps": [
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "gpr_env_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/support/env_test.c"
-      ],
-      "deps": [
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "gpr_file_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/support/file_test.c"
-      ],
-      "deps": [
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "gpr_histogram_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/support/histogram_test.c"
-      ],
-      "deps": [
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "gpr_host_port_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/support/host_port_test.c"
-      ],
-      "deps": [
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "gpr_log_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/support/log_test.c"
-      ],
-      "deps": [
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "gpr_slice_buffer_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/support/slice_buffer_test.c"
-      ],
-      "deps": [
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "gpr_slice_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/support/slice_test.c"
-      ],
-      "deps": [
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "gpr_stack_lockfree_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/support/stack_lockfree_test.c"
-      ],
-      "deps": [
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "gpr_string_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/support/string_test.c"
-      ],
-      "deps": [
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "gpr_sync_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/support/sync_test.c"
-      ],
-      "deps": [
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "gpr_thd_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/support/thd_test.c"
-      ],
-      "deps": [
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "gpr_time_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/support/time_test.c"
-      ],
-      "deps": [
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "gpr_tls_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/support/tls_test.c"
-      ],
-      "deps": [
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "gpr_useful_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/support/useful_test.c"
-      ],
-      "deps": [
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "grpc_auth_context_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/security/auth_context_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "grpc_base64_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/security/base64_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "grpc_byte_buffer_reader_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/surface/byte_buffer_reader_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "grpc_channel_args_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/channel/channel_args_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "grpc_channel_stack_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/channel/channel_stack_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "grpc_completion_queue_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/surface/completion_queue_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "grpc_create_jwt",
-      "build": "tool",
-      "language": "c",
-      "src": [
-        "test/core/security/create_jwt.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "grpc_credentials_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/security/credentials_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "grpc_fetch_oauth2",
-      "build": "tool",
-      "language": "c",
-      "src": [
-        "test/core/security/fetch_oauth2.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "grpc_json_token_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/security/json_token_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "grpc_jwt_verifier_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/security/jwt_verifier_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "grpc_print_google_default_creds_token",
-      "build": "tool",
-      "language": "c",
-      "src": [
-        "test/core/security/print_google_default_creds_token.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "grpc_security_connector_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/security/security_connector_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "grpc_stream_op_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/transport/stream_op_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "grpc_verify_jwt",
-      "build": "tool",
-      "language": "c",
-      "src": [
-        "test/core/security/verify_jwt.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "hpack_parser_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/transport/chttp2/hpack_parser_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "hpack_table_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/transport/chttp2/hpack_table_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "httpcli_format_request_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/httpcli/format_request_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "httpcli_parser_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/httpcli/parser_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "httpcli_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/httpcli/httpcli_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "json_rewrite",
-      "build": "test",
-      "run": false,
-      "language": "c",
-      "src": [
-        "test/core/json/json_rewrite.c"
-      ],
-      "deps": [
-        "grpc",
-        "gpr"
-      ]
-    },
-    {
-      "name": "json_rewrite_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/json/json_rewrite_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "json_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/json/json_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "lame_client_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/surface/lame_client_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "low_level_ping_pong_benchmark",
-      "build": "benchmark",
-      "language": "c",
-      "src": [
-        "test/core/network_benchmarks/low_level_ping_pong.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "message_compress_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/compression/message_compress_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "multi_init_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/surface/multi_init_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "multiple_server_queues_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/end2end/multiple_server_queues_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "murmur_hash_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/support/murmur_hash_test.c"
-      ],
-      "deps": [
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "no_server_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/end2end/no_server_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "resolve_address_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/iomgr/resolve_address_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "secure_endpoint_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/security/secure_endpoint_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "sockaddr_utils_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/iomgr/sockaddr_utils_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "tcp_client_posix_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/iomgr/tcp_client_posix_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "tcp_posix_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/iomgr/tcp_posix_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "tcp_server_posix_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/iomgr/tcp_server_posix_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "time_averaged_stats_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/iomgr/time_averaged_stats_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "timeout_encoding_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/transport/chttp2/timeout_encoding_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "timers_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/profiling/timers_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "transport_metadata_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/transport/metadata_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "transport_security_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/tsi/transport_security_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "udp_server_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/iomgr/udp_server_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ],
-      "platforms": [
-        "posix"
-      ]
-    },
-    {
-      "name": "uri_parser_test",
-      "build": "test",
-      "language": "c",
-      "src": [
-        "test/core/client_config/uri_parser_test.c"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "async_end2end_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/end2end/async_end2end_test.cc"
-      ],
-      "deps": [
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "async_streaming_ping_pong_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/qps/async_streaming_ping_pong_test.cc"
-      ],
-      "deps": [
-        "qps",
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "async_unary_ping_pong_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/qps/async_unary_ping_pong_test.cc"
-      ],
-      "deps": [
-        "qps",
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "auth_property_iterator_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/common/auth_property_iterator_test.cc"
-      ],
-      "deps": [
-        "grpc++",
-        "grpc",
-        "gpr"
-      ]
-    },
-    {
-      "name": "channel_arguments_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/client/channel_arguments_test.cc"
-      ],
-      "deps": [
-        "grpc++",
-        "grpc",
-        "gpr"
-      ]
-    },
-    {
-      "name": "cli_call_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/util/cli_call_test.cc"
-      ],
-      "deps": [
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "client_crash_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/end2end/client_crash_test.cc"
-      ],
-      "deps": [
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "client_crash_test_server",
-      "build": "test",
-      "run": false,
-      "language": "c++",
-      "src": [
-        "test/cpp/end2end/client_crash_test_server.cc"
-      ],
-      "deps": [
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "credentials_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/client/credentials_test.cc"
-      ],
-      "deps": [
-        "grpc++",
-        "grpc",
-        "gpr"
-      ]
-    },
-    {
-      "name": "cxx_byte_buffer_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/util/byte_buffer_test.cc"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "cxx_slice_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/util/slice_test.cc"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "cxx_string_ref_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/util/string_ref_test.cc"
-      ],
-      "deps": [
-        "grpc++"
-      ]
-    },
-    {
-      "name": "cxx_time_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/util/time_test.cc"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "end2end_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/end2end/end2end_test.cc"
-      ],
-      "deps": [
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "generic_end2end_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/end2end/generic_end2end_test.cc"
-      ],
-      "deps": [
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "grpc_cli",
-      "build": "test",
-      "run": false,
-      "language": "c++",
-      "src": [
-        "test/cpp/util/grpc_cli.cc"
-      ],
-      "deps": [
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr",
-        "grpc++_test_config"
-      ]
-    },
-    {
-      "name": "grpc_cpp_plugin",
-      "build": "protoc",
-      "language": "c++",
-      "src": [
-        "src/compiler/cpp_plugin.cc"
-      ],
-      "deps": [
-        "grpc_plugin_support"
-      ],
-      "secure": "no",
-      "vs_project_guid": "{7E51A25F-AC59-488F-906C-C60FAAE706AA}"
-    },
-    {
-      "name": "grpc_csharp_plugin",
-      "build": "protoc",
-      "language": "c++",
-      "src": [
-        "src/compiler/csharp_plugin.cc"
-      ],
-      "deps": [
-        "grpc_plugin_support"
-      ],
-      "secure": "no",
-      "vs_project_guid": "{3C813052-A49A-4662-B90A-1ADBEC7EE453}"
-    },
-    {
-      "name": "grpc_objective_c_plugin",
-      "build": "protoc",
-      "language": "c++",
-      "src": [
-        "src/compiler/objective_c_plugin.cc"
-      ],
-      "deps": [
-        "grpc_plugin_support"
-      ],
-      "secure": "no",
-      "vs_project_guid": "{19564640-CEE6-4921-ABA5-676ED79A36F6}"
-    },
-    {
-      "name": "grpc_python_plugin",
-      "build": "protoc",
-      "language": "c++",
-      "src": [
-        "src/compiler/python_plugin.cc"
-      ],
-      "deps": [
-        "grpc_plugin_support"
-      ],
-      "secure": "no",
-      "vs_project_guid": "{DF52D501-A6CF-4E6F-BA38-6EBE2E8DAFB2}"
-    },
-    {
-      "name": "grpc_ruby_plugin",
-      "build": "protoc",
-      "language": "c++",
-      "src": [
-        "src/compiler/ruby_plugin.cc"
-      ],
-      "deps": [
-        "grpc_plugin_support"
-      ],
-      "secure": "no",
-      "vs_project_guid": "{069E9D05-B78B-4751-9252-D21EBAE7DE8E}"
-    },
-    {
-      "name": "interop_client",
-      "build": "test",
-      "run": false,
-      "language": "c++",
-      "src": [],
-      "deps": [
-        "interop_client_main",
-        "interop_client_helper",
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr",
-        "grpc++_test_config"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "interop_server",
-      "build": "test",
-      "run": false,
-      "language": "c++",
-      "src": [],
-      "deps": [
-        "interop_server_main",
-        "interop_server_helper",
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr",
-        "grpc++_test_config"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "interop_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/interop/interop_test.cc"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "mock_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/end2end/mock_test.cc"
-      ],
-      "deps": [
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "pubsub_client",
-      "build": "do_not_build",
-      "run": false,
-      "language": "c++",
-      "src": [
-        "examples/pubsub/main.cc"
-      ],
-      "deps": [
-        "pubsub_client_lib",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr",
-        "grpc++_test_config"
-      ]
-    },
-    {
-      "name": "pubsub_publisher_test",
-      "build": "do_not_build",
-      "language": "c++",
-      "src": [
-        "examples/pubsub/publisher_test.cc"
-      ],
-      "deps": [
-        "pubsub_client_lib",
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "pubsub_subscriber_test",
-      "build": "do_not_build",
-      "language": "c++",
-      "src": [
-        "examples/pubsub/subscriber_test.cc"
-      ],
-      "deps": [
-        "pubsub_client_lib",
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "qps_driver",
-      "build": "benchmark",
-      "language": "c++",
-      "src": [
-        "test/cpp/qps/qps_driver.cc"
-      ],
-      "deps": [
-        "qps",
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr",
-        "grpc++_test_config"
-      ]
-    },
-    {
-      "name": "qps_interarrival_test",
-      "build": "test",
-      "run": false,
-      "language": "c++",
-      "src": [
-        "test/cpp/qps/qps_interarrival_test.cc"
-      ],
-      "deps": [
-        "qps",
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "qps_openloop_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/qps/qps_openloop_test.cc"
-      ],
-      "deps": [
-        "qps",
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr",
-        "grpc++_test_config"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "qps_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/qps/qps_test.cc"
-      ],
-      "deps": [
-        "qps",
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr",
-        "grpc++_test_config"
-      ],
-      "exclude_configs": [
-        "tsan"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "qps_worker",
-      "build": "benchmark",
-      "language": "c++",
-      "headers": [
-        "test/cpp/qps/client.h",
-        "test/cpp/qps/server.h"
-      ],
-      "src": [
-        "test/cpp/qps/worker.cc"
-      ],
-      "deps": [
-        "qps",
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr",
-        "grpc++_test_config"
-      ]
-    },
-    {
-      "name": "reconnect_interop_client",
-      "build": "test",
-      "run": false,
-      "language": "c++",
-      "src": [
-        "test/proto/empty.proto",
-        "test/proto/messages.proto",
-        "test/proto/test.proto",
-        "test/cpp/interop/reconnect_interop_client.cc"
-      ],
-      "deps": [
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr",
-        "grpc++_test_config"
-      ]
-    },
-    {
-      "name": "reconnect_interop_server",
-      "build": "test",
-      "run": false,
-      "language": "c++",
-      "src": [
-        "test/proto/empty.proto",
-        "test/proto/messages.proto",
-        "test/proto/test.proto",
-        "test/cpp/interop/reconnect_interop_server.cc"
-      ],
-      "deps": [
-        "reconnect_server",
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr",
-        "grpc++_test_config"
-      ]
-    },
-    {
-      "name": "secure_auth_context_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/common/secure_auth_context_test.cc"
-      ],
-      "deps": [
-        "grpc++",
-        "grpc",
-        "gpr"
-      ]
-    },
-    {
-      "name": "server_crash_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/end2end/server_crash_test.cc"
-      ],
-      "deps": [
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "server_crash_test_client",
-      "build": "test",
-      "run": false,
-      "language": "c++",
-      "src": [
-        "test/cpp/end2end/server_crash_test_client.cc"
-      ],
-      "deps": [
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "shutdown_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/end2end/shutdown_test.cc"
-      ],
-      "deps": [
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "status_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/util/status_test.cc"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "sync_streaming_ping_pong_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/qps/sync_streaming_ping_pong_test.cc"
-      ],
-      "deps": [
-        "qps",
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "sync_unary_ping_pong_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/qps/sync_unary_ping_pong_test.cc"
-      ],
-      "deps": [
-        "qps",
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ],
-      "platforms": [
-        "mac",
-        "linux",
-        "posix"
-      ]
-    },
-    {
-      "name": "thread_stress_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/end2end/thread_stress_test.cc"
-      ],
-      "deps": [
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
-    {
-      "name": "zookeeper_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/end2end/zookeeper_test.cc"
-      ],
-      "deps": [
-        "grpc++_test_util",
-        "grpc_test_util",
-        "grpc++",
-        "grpc_zookeeper",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ],
-      "external_deps": [
-        "zookeeper"
-      ]
-    }
-  ]
-}
diff --git a/examples/node/greeter_client.js b/examples/node/greeter_client.js
index ddc8abbbed24e9f46d55ee116e7201bfad6840e2..175f8e6b5a8f7346279073cd18472b28487fc6b8 100644
--- a/examples/node/greeter_client.js
+++ b/examples/node/greeter_client.js
@@ -33,7 +33,7 @@
 
 var PROTO_PATH = __dirname + '/helloworld.proto';
 
-var grpc = require('grpc');
+var grpc = require('../../');
 var hello_proto = grpc.load(PROTO_PATH).helloworld;
 
 function main() {
diff --git a/examples/node/greeter_server.js b/examples/node/greeter_server.js
index 44b44afaafb799b65474efe02b5e544c0641d844..3600c8bfbf469247b896584bdf5860e991cd28f2 100644
--- a/examples/node/greeter_server.js
+++ b/examples/node/greeter_server.js
@@ -33,7 +33,7 @@
 
 var PROTO_PATH = __dirname + '/helloworld.proto';
 
-var grpc = require('grpc');
+var grpc = require('../../');
 var hello_proto = grpc.load(PROTO_PATH).helloworld;
 
 /**
diff --git a/examples/node/package.json b/examples/node/package.json
deleted file mode 100644
index f0a044f05e13dc8aa5ee3e1cf0b69c9e1cb5f681..0000000000000000000000000000000000000000
--- a/examples/node/package.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "name": "grpc-demo",
-  "version": "0.11.0",
-  "dependencies": {
-    "async": "^0.9.0",
-    "grpc": "~0.11.0",
-    "minimist": "^1.1.0",
-    "underscore": "^1.8.2"
-  }
-}
diff --git a/examples/node/route_guide/route_guide_client.js b/examples/node/route_guide/route_guide_client.js
index 1da6c690252c0ba824003e65009fa49de3994ae7..525d68f44cac947c36014f92c04983219952acf9 100644
--- a/examples/node/route_guide/route_guide_client.js
+++ b/examples/node/route_guide/route_guide_client.js
@@ -31,8 +31,8 @@ var async = require('async');
 var fs = require('fs');
 var parseArgs = require('minimist');
 var path = require('path');
-var _ = require('underscore');
-var grpc = require('grpc');
+var _ = require('lodash');
+var grpc = require('../../../');
 var routeguide = grpc.load(__dirname + '/route_guide.proto').routeguide;
 var client = new routeguide.RouteGuide('localhost:50051',
                                        grpc.Credentials.createInsecure());
diff --git a/examples/node/route_guide/route_guide_server.js b/examples/node/route_guide/route_guide_server.js
index faae3087fd1aba8a70d978841c72ffbe755ed2b6..5bb81446f0510974555473e025f187435e617dac 100644
--- a/examples/node/route_guide/route_guide_server.js
+++ b/examples/node/route_guide/route_guide_server.js
@@ -30,8 +30,8 @@
 var fs = require('fs');
 var parseArgs = require('minimist');
 var path = require('path');
-var _ = require('underscore');
-var grpc = require('grpc');
+var _ = require('lodash');
+var grpc = require('../../../');
 var routeguide = grpc.load(__dirname + '/route_guide.proto').routeguide;
 
 var COORD_FACTOR = 1e7;
diff --git a/examples/python/README.md b/examples/python/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..7b48c824baea41fa358c5a5c9a1d7426902de900
--- /dev/null
+++ b/examples/python/README.md
@@ -0,0 +1,55 @@
+gRPC in 3 minutes (Python)
+========================
+
+Background
+-------------
+For this sample, we've already generated the server and client stubs from
+[helloworld.proto][] and we'll be using a specific reference platform.
+
+Prerequisites
+-------------
+
+- Debian 8.2 "Jessie" platform with `root` access
+- `git`
+- `python2.7`
+- `pip`
+- Python development headers
+
+Set-up
+-------
+  ```sh
+  $ # install the gRPC Core:
+  $ sudo apt-get install libgrpc-dev
+  $ # install gRPC Python:
+  $ sudo pip install -U grpcio==0.11.0b1
+  $ # Since this "hello, world" example uses protocol buffers:
+  $ sudo pip install -U protobuf==3.0.0a3
+  $ # Clone the repository to get the example code:
+  $ git clone https://github.com/grpc/grpc
+  $ # Navigate to the "hello, world" Python example:
+  $ cd grpc/examples/python/helloworld
+  ```
+
+Try it!
+-------
+
+- Run the server
+
+  ```sh
+  $ python2.7 greeter_server.py &
+  ```
+
+- Run the client
+
+  ```sh
+  $ python2.7 greeter_client.py
+  ```
+
+Tutorial
+--------
+
+You can find a more detailed tutorial in [gRPC Basics: Python][]
+
+[helloworld.proto]:../protos/helloworld.proto
+[Install gRPC Python]:../../src/python#installation
+[gRPC Basics: Python]:http://www.grpc.io/docs/tutorials/basic/python.html
diff --git a/examples/python/helloworld/README.md b/examples/python/helloworld/README.md
index 070b9e8837690ec9354c8cbe1c027347551606b1..e889863a23dada241145155a320863580c0d5b6b 100644
--- a/examples/python/helloworld/README.md
+++ b/examples/python/helloworld/README.md
@@ -1,113 +1 @@
-# gRPC Python Hello World
-
-This is a quick introduction with a simple example and installation instructions: for a more complete tutorial see [gRPC Basics: Python](../route_guide).
-
-### Install gRPC
-Make sure you have built gRPC Python from source on your system. Follow the instructions here:
-[https://github.com/grpc/grpc/blob/master/src/python/README.md](https://github.com/grpc/grpc/blob/master/src/python/README.md).
-
-This gives you a python virtual environment with installed gRPC Python
-in GRPC_ROOT/python2.7_virtual_environment. GRPC_ROOT is the path to which you
-have cloned the [gRPC git repo](https://github.com/grpc/grpc).
-
-### Get the source code
-
-The example code for our Hello World and our other examples live in the `examples`
-directory. Clone this repository to your local machine by running the
-following command:
-
-
-```sh
-$ git clone https://github.com/grpc/grpc.git
-```
-
-Change your current directory to examples/python/helloworld
-
-```sh
-$ cd examples/python/helloworld/
-```
-
-### Defining a service
-
-The first step in creating our example is to define a *service*: an RPC
-service specifies the methods that can be called remotely with their parameters
-and return types. As you saw in the
-[overview](#protocolbuffers) above, gRPC does this using [protocol
-buffers](https://developers.google.com/protocol-buffers/docs/overview). We
-use the protocol buffers interface definition language (IDL) to define our
-service methods, and define the parameters and return
-types as protocol buffer message types. Both the client and the
-server use interface code generated from the service definition.
-
-Here's our example service definition. The `Greeting`
-service has one method, `hello`, that lets the server receive a single
-`HelloRequest`
-message from the remote client containing the user's name, then send back
-a greeting in a single `HelloReply`. This is the simplest type of RPC you
-can specify in gRPC.
-
-```
-syntax = "proto3";
-
-option java_package = "io.grpc.examples";
-
-package helloworld;
-
-// The greeting service definition.
-service Greeter {
-  // Sends a greeting
-  rpc SayHello (HelloRequest) returns (HelloReply) {}
-}
-
-// The request message containing the user's name.
-message HelloRequest {
-  string name = 1;
-}
-
-// The response message containing the greetings
-message HelloReply {
-  string message = 1;
-}
-
-```
-
-<a name="generating"></a>
-### Generating gRPC code
-
-Once we've defined our service, we use the protocol buffer compiler
-`protoc` to generate the special client and server code we need to create
-our application. The generated code contains both stub code for clients to
-use and an abstract interface for servers to implement, both with the method
-defined in our `Greeting` service.
-
-To generate the client and server side interfaces:
-
-```sh
-$ ./run_codegen.sh
-```
-Which internally invokes the proto-compiler as:
-
-```sh
-$ protoc -I ../../protos --python_out=. --grpc_out=. --plugin=protoc-gen-grpc=`which grpc_python_plugin` ../../protos/helloworld.proto
-```
-
-### The client
-
-Client-side code can be found in [greeter_client.py](greeter_client.py).
-
-You can run the client using:
-
-```sh
-$ ./run_client.sh
-```
-
-
-### The server
-
-Server side code can be found in [greeter_server.py](greeter_server.py). 
-
-You can run the server using:
-
-```sh
-$ ./run_server.sh
-```
+[This code's documentation lives on the grpc.io site.](http://www.grpc.io/docs)
diff --git a/examples/python/helloworld/helloworld_pb2.py b/examples/python/helloworld/helloworld_pb2.py
new file mode 100644
index 0000000000000000000000000000000000000000..1b2674e4c8e8b26550374429da6ad74925a5bb5f
--- /dev/null
+++ b/examples/python/helloworld/helloworld_pb2.py
@@ -0,0 +1,202 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: helloworld.proto
+
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+from google.protobuf import descriptor_pb2
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='helloworld.proto',
+  package='helloworld',
+  syntax='proto3',
+  serialized_pb=b'\n\x10helloworld.proto\x12\nhelloworld\"\x1c\n\x0cHelloRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x1d\n\nHelloReply\x12\x0f\n\x07message\x18\x01 \x01(\t2I\n\x07Greeter\x12>\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):
+  """<fill me in later!>"""
+  __metaclass__ = abc.ABCMeta
+  @abc.abstractmethod
+  def SayHello(self, request, context):
+    raise NotImplementedError()
+class EarlyAdopterGreeterServer(object):
+  """<fill me in later!>"""
+  __metaclass__ = abc.ABCMeta
+  @abc.abstractmethod
+  def start(self):
+    raise NotImplementedError()
+  @abc.abstractmethod
+  def stop(self):
+    raise NotImplementedError()
+class EarlyAdopterGreeterStub(object):
+  """<fill me in later!>"""
+  __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):
+  """<fill me in later!>"""
+  __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/examples/python/route_guide/README.md b/examples/python/route_guide/README.md
index cb1aa7d78ae34cda62b57f04a6f39e424dbaf4ed..17b8a8edd5e14f1e5968bab0c2c2e99c24c267bb 100644
--- a/examples/python/route_guide/README.md
+++ b/examples/python/route_guide/README.md
@@ -1,299 +1 @@
-#gRPC Basics: Python
-
-This tutorial provides a basic Python programmer's introduction to working with gRPC. By walking through this example you'll learn how to:
-
-- Define a service in a .proto file.
-- Generate server and client code using the protocol buffer compiler.
-- Use the Python gRPC API to write a simple client and server for your service.
-
-It assumes that you have read the [Getting started](https://github.com/grpc/grpc/tree/master/examples) guide and are familiar with [protocol buffers] (https://developers.google.com/protocol-buffers/docs/overview). Note that the example in this tutorial uses the proto3 version of the protocol buffers language, which is currently in alpha release:you can find out more in the [proto3 language guide](https://developers.google.com/protocol-buffers/docs/proto3) and see the [release notes](https://github.com/google/protobuf/releases) for the new version in the protocol buffers Github repository.
-
-This isn't a comprehensive guide to using gRPC in Python: more reference documentation is coming soon.
-
-
-## Why use gRPC?
-
-This example is a simple route mapping application that lets clients get information about features on their route, create a summary of their route, and exchange route information such as traffic updates with the server and other clients.
-
-With gRPC you can define your service once in a .proto file and implement clients and servers in any of gRPC's supported languages, which in turn can be run in environments ranging from servers inside Google to your own tablet, with all the complexity of communication between different languages and environments is handled for you by gRPC. You also get all the advantages of working with protocol buffers, including efficient serialization, a simple IDL, and easy interface updating.
-
-## Example code and setup
-
-The example code for this tutorial is in [examples/python/route_guide](.). To download the example, clone this repository by running the following command:
-```shell
-$ git clone https://github.com/grpc/grpc.git
-```
-
-Then change your current directory to `examples/python/route_guide`:
-```shell
-$ cd examples/python/route_guide
-```
-
-You also should have the relevant tools installed to generate the server and client interface code - if you don't already, follow the setup instructions in [the Python quick start guide](../helloworld).
-
-## Defining the service
-
-Your first step (as you'll know from [Getting started](https://github.com/grpc/grpc/tree/master/examples)) is to define the gRPC *service* and the method *request* and *response* types using [protocol buffers](https://developers.google.com/protocol-buffers/docs/overview). You can see the complete .proto file in [`examples/protos/route_guide.proto`](../../protos/route_guide.proto).
-
-To define a service, you specify a named `service` in your .proto file:
-
-```protobuf
-service RouteGuide {
-   // (Method definitions not shown)
-}
-```
-
-Then you define `rpc` methods inside your service definition, specifying their request and response types. gRPC lets you define four kinds of service method, all of which are used in the `RouteGuide` service:
-
-- A *simple RPC* where the client sends a request to the server using the stub and waits for a response to come back, just like a normal function call.
-```protobuf
-   // Obtains the feature at a given position.
-   rpc GetFeature(Point) returns (Feature) {}
-```
-
-- A *response-streaming RPC* where the client sends a request to the server and gets a stream to read a sequence of messages back. The client reads from the returned stream until there are no more messages. As you can see in the example, you specify a response-streaming method by placing the `stream` keyword before the *response* type.
-```protobuf
-  // Obtains the Features available within the given Rectangle.  Results are
-  // streamed rather than returned at once (e.g. in a response message with a
-  // repeated field), as the rectangle may cover a large area and contain a
-  // huge number of features.
-  rpc ListFeatures(Rectangle) returns (stream Feature) {}
-```
-
-- A *request-streaming RPC* where the client writes a sequence of messages and sends them to the server, again using a provided stream. Once the client has finished writing the messages, it waits for the server to read them all and return its response. You specify a request-streaming method by placing the `stream` keyword before the *request* type.
-```protobuf
-  // Accepts a stream of Points on a route being traversed, returning a
-  // RouteSummary when traversal is completed.
-  rpc RecordRoute(stream Point) returns (RouteSummary) {}
-```
-
-- A *bidirectionally-streaming RPC* where both sides send a sequence of messages using a read-write stream. The two streams operate independently, so clients and servers can read and write in whatever order they like: for example, the server could wait to receive all the client messages before writing its responses, or it could alternately read a message then write a message, or some other combination of reads and writes. The order of messages in each stream is preserved. You specify this type of method by placing the `stream` keyword before both the request and the response.
-```protobuf
-  // Accepts a stream of RouteNotes sent while a route is being traversed,
-  // while receiving other RouteNotes (e.g. from other users).
-  rpc RouteChat(stream RouteNote) returns (stream RouteNote) {}
-```
-
-Your .proto file also contains protocol buffer message type definitions for all the request and response types used in our service methods - for example, here's the `Point` message type:
-```protobuf
-// Points are represented as latitude-longitude pairs in the E7 representation
-// (degrees multiplied by 10**7 and rounded to the nearest integer).
-// Latitudes should be in the range +/- 90 degrees and longitude should be in
-// the range +/- 180 degrees (inclusive).
-message Point {
-  int32 latitude = 1;
-  int32 longitude = 2;
-}
-```
-
-## Generating client and server code
-
-Next you need to generate the gRPC client and server interfaces from your .proto service definition. You do this using the protocol buffer compiler `protoc` with a special gRPC Python plugin. Make sure you've installed protoc and followed the gRPC Python plugin [installation instructions](https://github.com/grpc/grpc/blob/master/INSTALL) first):
-
-With `protoc` and the gRPC Python plugin installed, use the following command to generate the Python code:
-
-```shell
-$ protoc -I ../../protos --python_out=. --grpc_out=. --plugin=protoc-gen-grpc=`which grpc_python_plugin` ../../protos/route_guide.proto
-```
-
-Note that as we've already provided a version of the generated code in the example repository, running this command regenerates the appropriate file rather than creates a new one. The generated code file is called `route_guide_pb2.py` and contains:
-- classes for the messages defined in route_guide.proto
-- abstract classes for the service defined in route_guide.proto
-   - `BetaRouteGuideServicer`, which defines the interface for implementations of the RouteGuide service
-   - `BetaRouteGuideStub`, which can be used by clients to invoke RouteGuide RPCs
-- functions for application use
-   - `beta_create_RouteGuide_server`, which creates a gRPC server given a `BetaRouteGuideServicer` object
-   - `beta_create_RouteGuide_stub`, which can be used by clients to create a stub object
-
-<a name="server"></a>
-## Creating the server
-
-First let's look at how you create a `RouteGuide` server. If you're only interested in creating gRPC clients, you can skip this section and go straight to [Creating the client](#client) (though you might find it interesting anyway!).
-
-Creating and running a `RouteGuide` server breaks down into two work items:
-- Implementing the servicer interface generated from our service definition with functions that perform the actual "work" of the service.
-- Running a gRPC server to listen for requests from clients and transmit responses.
-
-You can find the example `RouteGuide` server in [route_guide_server.py](route_guide_server.py).
-
-### Implementing RouteGuide
-
-`route_guide_server.py` has a `RouteGuideServicer` class that implements the generated interface `route_guide_pb2.BetaRouteGuideServicer`:
-
-```python
-# RouteGuideServicer provides an implementation of the methods of the RouteGuide service.
-class RouteGuideServicer(route_guide_pb2.BetaRouteGuideServicer):
-```
-
-`RouteGuideServicer` implements all the `RouteGuide` service methods.
-
-#### Simple RPC
-
-Let's look at the simplest type first, `GetFeature`, which just gets a `Point` from the client and returns the corresponding feature information from its database in a `Feature`.
-
-```python
-  def GetFeature(self, request, context):
-    feature = get_feature(self.db, request)
-    if feature is None:
-      return route_guide_pb2.Feature(name="", location=request)
-    else:
-      return feature
-```
-
-The method is passed a `route_guide_pb2.Point` request for the RPC, and a `ServicerContext` object that provides RPC-specific information such as timeout limits. It returns a `route_guide_pb2.Feature` response.
-
-#### Response-streaming RPC
-
-Now let's look at the next method. `ListFeatures` is a response-streaming RPC that sends multiple `Feature`s to the client.
-
-```python
-  def ListFeatures(self, request, context):
-    left = min(request.lo.longitude, request.hi.longitude)
-    right = max(request.lo.longitude, request.hi.longitude)
-    top = max(request.lo.latitude, request.hi.latitude)
-    bottom = min(request.lo.latitude, request.hi.latitude)
-    for feature in self.db:
-      if (feature.location.longitude >= left and
-          feature.location.longitude <= right and
-          feature.location.latitude >= bottom and
-          feature.location.latitude <= top):
-        yield feature
-```
-
-Here the request message is a `route_guide_pb2.Rectangle` within which the client wants to find `Feature`s. Instead of returning a single response the method yields zero or more responses.
-
-#### Request-streaming RPC
-
-The request-streaming method `RecordRoute` uses an [iterator](https://docs.python.org/2/library/stdtypes.html#iterator-types) of request values and returns a single response value.
-
-```python
-  def RecordRoute(self, request_iterator, context):
-    point_count = 0
-    feature_count = 0
-    distance = 0.0
-    prev_point = None
-
-    start_time = time.time()
-    for point in request_iterator:
-      point_count += 1
-      if get_feature(self.db, point):
-        feature_count += 1
-      if prev_point:
-        distance += get_distance(prev_point, point)
-      prev_point = point
-
-    elapsed_time = time.time() - start_time
-    return route_guide_pb2.RouteSummary(point_count=point_count,
-                                        feature_count=feature_count,
-                                        distance=int(distance),
-                                        elapsed_time=int(elapsed_time))
-```
-
-#### Bidirectional streaming RPC
-
-Lastly let's look at the bidirectionally-streaming method `RouteChat`.
-
-```python
-  def RouteChat(self, request_iterator, context):
-    prev_notes = []
-    for new_note in request_iterator:
-      for prev_note in prev_notes:
-        if prev_note.location == new_note.location:
-          yield prev_note
-      prev_notes.append(new_note)
-```
-
-This method's semantics are a combination of those of the request-streaming method and the response-streaming method. It is passed an iterator of request values and is itself an iterator of response values.
-
-### Starting the server
-
-Once you have implemented all the `RouteGuide` methods, the next step is to start up a gRPC server so that clients can actually use your service:
-
-```python
-def serve():
-  server = route_guide_pb2.beta_create_RouteGuide_server(RouteGuideServicer())
-  server.add_insecure_port('[::]:50051')
-  server.start()
-```
-
-Because `start()` does not block you may need to sleep-loop if there is nothing else for your code to do while serving.
-
-<a name="client"></a>
-## Creating the client
-
-You can see the complete example client code in [route_guide_client.py](route_guide_client.py).
-
-### Creating a stub
-
-To call service methods, we first need to create a *stub*.
-
-We use the `beta_create_RouteGuide_stub` function of the `route_guide_pb2` module, generated from our .proto.
-
-```python
-channel = implementations.insecure_channel('localhost', 50051)
-stub = beta_create_RouteGuide_stub(channel)
-```
-
-The returned object implements all the methods defined by the `BetaRouteGuideStub` interface.
-
-### Calling service methods
-
-For RPC methods that return a single response ("response-unary" methods), gRPC Python supports both synchronous (blocking) and asynchronous (non-blocking) control flow semantics. For response-streaming RPC methods, calls immediately return an iterator of response values. Calls to that iterator's `next()` method block until the response to be yielded from the iterator becomes available.
-
-#### Simple RPC
-
-A synchronous call to the simple RPC `GetFeature` is nearly as straightforward as calling a local method. The RPC call waits for the server to respond, and will either return a response or raise an exception:
-
-```python
-feature = stub.GetFeature(point, timeout_in_seconds)
-```
-
-An asynchronous call to `GetFeature` is similar, but like calling a local method asynchronously in a thread pool:
-
-```python
-feature_future = stub.GetFeature.future(point, timeout_in_seconds)
-feature = feature_future.result()
-```
-
-#### Response-streaming RPC
-
-Calling the response-streaming `ListFeatures` is similar to working with sequence types:
-
-```python
-for feature in stub.ListFeatures(rectangle, timeout_in_seconds):
-```
-
-#### Request-streaming RPC
-
-Calling the request-streaming `RecordRoute` is similar to passing a sequence to a local method. Like the simple RPC above that also returns a single response, it can be called synchronously or asynchronously:
-
-```python
-route_summary = stub.RecordRoute(point_sequence, timeout_in_seconds)
-```
-
-```python
-route_summary_future = stub.RecordRoute.future(point_sequence, timeout_in_seconds)
-route_summary = route_summary_future.result()
-```
-
-#### Bidirectional streaming RPC
-
-Calling the bidirectionally-streaming `RouteChat` has (as is the case on the service-side) a combination of the request-streaming and response-streaming semantics:
-
-```python
-for received_route_note in stub.RouteChat(sent_routes, timeout_in_seconds):
-```
-
-## Try it out!
-
-Run the server, which will listen on port 50051:
-
-```shell
-$ python route_guide_server.py
-```
-
-Run the client (in a different terminal):
-
-```shell
-$ python route_guide_client.py
-```
+[This code's documentation lives on the grpc.io site.](http://www.grpc.io/docs/tutorials/basic/python.html)
diff --git a/grpc.gyp b/grpc.gyp
index 2225ca4e0454262d1233a36d87a801417984c4c0..08185ac592ef0a9546e9e17e5a443211a8deba00 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',
@@ -299,12351 +291,5 @@
         '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/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_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 62%
rename from src/node/package.json
rename to package.json
index 0faca7ddf16f7b50578e80f70ff7e50a25850b93..0eea3475a34b2b1e46ce7ca3ba3b506a2fc72e58 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",
@@ -46,13 +45,17 @@
   },
   "files": [
     "LICENSE",
-    "README.md",
-    "index.js",
-    "binding.gyp",
-    "ext",
-    "health_check",
-    "src"
+    "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 b59b62a6aa7c09bc675b5c03c6a515c944322be5..8e7cb27cfd2bb3e7d6f23a6f9ea91bcadc512dc2 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 28155d0fbc0490934e892360c82c884bbf6d8a60..4b3aaab09cca198abce236b2beca4320fdf2db82 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 326542578923e19105e3336ebde5f2c4507641e9..d91681990f29104d022687c37ce3790e203dd137 100644
--- a/src/core/iomgr/closure.c
+++ b/src/core/iomgr/closure.c
@@ -33,6 +33,8 @@
 
 #include "src/core/iomgr/closure.h"
 
+#include <grpc/support/alloc.h>
+
 void grpc_closure_init(grpc_closure *closure, grpc_iomgr_cb_func cb,
                        void *cb_arg) {
   closure->cb = cb;
@@ -69,3 +71,25 @@ void grpc_closure_list_move(grpc_closure_list *src, grpc_closure_list *dst) {
   }
   src->head = src->tail = NULL;
 }
+
+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 982ffa4e1be246a279745f85ab250ee2fee51bef..d812659af0ce914607a4a0e86f6f0544aefdd2c9 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/fd_posix.c b/src/core/iomgr/fd_posix.c
index b48b7f050aaaa11f5c62145734001a04f16b51e7..231bc988a8746dd774d352ce0e3852c7b7f7b2cf 100644
--- a/src/core/iomgr/fd_posix.c
+++ b/src/core/iomgr/fd_posix.c
@@ -45,10 +45,8 @@
 #include <grpc/support/log.h>
 #include <grpc/support/useful.h>
 
-enum descriptor_state {
-  NOT_READY = 0,
-  READY = 1
-}; /* or a pointer to a closure to call */
+#define CLOSURE_NOT_READY ((grpc_closure *)0)
+#define CLOSURE_READY ((grpc_closure *)1)
 
 /* We need to keep a freelist not because of any concerns of malloc performance
  * but instead so that implementations with multiple threads in (for example)
@@ -88,14 +86,13 @@ static grpc_fd *alloc_fd(int fd) {
   gpr_mu_unlock(&fd_freelist_mu);
   if (r == NULL) {
     r = gpr_malloc(sizeof(grpc_fd));
-    gpr_mu_init(&r->set_state_mu);
-    gpr_mu_init(&r->watcher_mu);
+    gpr_mu_init(&r->mu);
   }
 
   gpr_atm_rel_store(&r->refst, 1);
-  gpr_atm_rel_store(&r->readst, NOT_READY);
-  gpr_atm_rel_store(&r->writest, NOT_READY);
-  gpr_atm_rel_store(&r->shutdown, 0);
+  r->shutdown = 0;
+  r->read_closure = CLOSURE_NOT_READY;
+  r->write_closure = CLOSURE_NOT_READY;
   r->fd = fd;
   r->inactive_watcher_root.next = r->inactive_watcher_root.prev =
       &r->inactive_watcher_root;
@@ -107,8 +104,7 @@ static grpc_fd *alloc_fd(int fd) {
 }
 
 static void destroy(grpc_fd *fd) {
-  gpr_mu_destroy(&fd->set_state_mu);
-  gpr_mu_destroy(&fd->watcher_mu);
+  gpr_mu_destroy(&fd->mu);
   gpr_free(fd);
 }
 
@@ -173,39 +169,35 @@ int grpc_fd_is_orphaned(grpc_fd *fd) {
   return (gpr_atm_acq_load(&fd->refst) & 1) == 0;
 }
 
-static void pollset_kick_locked(grpc_pollset *pollset) {
-  gpr_mu_lock(GRPC_POLLSET_MU(pollset));
-  grpc_pollset_kick(pollset, NULL);
-  gpr_mu_unlock(GRPC_POLLSET_MU(pollset));
+static void pollset_kick_locked(grpc_fd_watcher *watcher) {
+  gpr_mu_lock(GRPC_POLLSET_MU(watcher->pollset));
+  GPR_ASSERT(watcher->worker);
+  grpc_pollset_kick_ext(watcher->pollset, watcher->worker,
+                        GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP);
+  gpr_mu_unlock(GRPC_POLLSET_MU(watcher->pollset));
 }
 
 static void maybe_wake_one_watcher_locked(grpc_fd *fd) {
   if (fd->inactive_watcher_root.next != &fd->inactive_watcher_root) {
-    pollset_kick_locked(fd->inactive_watcher_root.next->pollset);
+    pollset_kick_locked(fd->inactive_watcher_root.next);
   } else if (fd->read_watcher) {
-    pollset_kick_locked(fd->read_watcher->pollset);
+    pollset_kick_locked(fd->read_watcher);
   } else if (fd->write_watcher) {
-    pollset_kick_locked(fd->write_watcher->pollset);
+    pollset_kick_locked(fd->write_watcher);
   }
 }
 
-static void maybe_wake_one_watcher(grpc_fd *fd) {
-  gpr_mu_lock(&fd->watcher_mu);
-  maybe_wake_one_watcher_locked(fd);
-  gpr_mu_unlock(&fd->watcher_mu);
-}
-
 static void wake_all_watchers_locked(grpc_fd *fd) {
   grpc_fd_watcher *watcher;
   for (watcher = fd->inactive_watcher_root.next;
        watcher != &fd->inactive_watcher_root; watcher = watcher->next) {
-    pollset_kick_locked(watcher->pollset);
+    pollset_kick_locked(watcher);
   }
   if (fd->read_watcher) {
-    pollset_kick_locked(fd->read_watcher->pollset);
+    pollset_kick_locked(fd->read_watcher);
   }
   if (fd->write_watcher && fd->write_watcher != fd->read_watcher) {
-    pollset_kick_locked(fd->write_watcher->pollset);
+    pollset_kick_locked(fd->write_watcher);
   }
 }
 
@@ -218,7 +210,7 @@ void grpc_fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure *on_done,
                     const char *reason) {
   fd->on_done_closure = on_done;
   shutdown(fd->fd, SHUT_RDWR);
-  gpr_mu_lock(&fd->watcher_mu);
+  gpr_mu_lock(&fd->mu);
   REF_BY(fd, 1, reason); /* remove active status, but keep referenced */
   if (!has_watchers(fd)) {
     fd->closed = 1;
@@ -227,7 +219,7 @@ void grpc_fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure *on_done,
   } else {
     wake_all_watchers_locked(fd);
   }
-  gpr_mu_unlock(&fd->watcher_mu);
+  gpr_mu_unlock(&fd->mu);
   UNREF_BY(fd, 2, reason); /* drop the reference */
 }
 
@@ -247,136 +239,121 @@ void grpc_fd_ref(grpc_fd *fd) { ref_by(fd, 2); }
 void grpc_fd_unref(grpc_fd *fd) { unref_by(fd, 2); }
 #endif
 
-static void notify_on(grpc_exec_ctx *exec_ctx, grpc_fd *fd, gpr_atm *st,
-                      grpc_closure *closure) {
-  switch (gpr_atm_acq_load(st)) {
-    case NOT_READY:
-      /* There is no race if the descriptor is already ready, so we skip
-         the interlocked op in that case.  As long as the app doesn't
-         try to set the same upcall twice (which it shouldn't) then
-         oldval should never be anything other than READY or NOT_READY.  We
-         don't
-         check for user error on the fast path. */
-      if (gpr_atm_rel_cas(st, NOT_READY, (gpr_intptr)closure)) {
-        /* swap was successful -- the closure will run after the next
-           set_ready call.  NOTE: we don't have an ABA problem here,
-           since we should never have concurrent calls to the same
-           notify_on function. */
-        maybe_wake_one_watcher(fd);
-        return;
-      }
-    /* swap was unsuccessful due to an intervening set_ready call.
-       Fall through to the READY code below */
-    case READY:
-      GPR_ASSERT(gpr_atm_no_barrier_load(st) == READY);
-      gpr_atm_rel_store(st, NOT_READY);
-      grpc_exec_ctx_enqueue(exec_ctx, closure,
-                            !gpr_atm_acq_load(&fd->shutdown));
-      return;
-    default: /* WAITING */
-      /* upcallptr was set to a different closure.  This is an error! */
-      gpr_log(GPR_ERROR,
-              "User called a notify_on function with a previous callback still "
-              "pending");
-      abort();
+static void notify_on_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+                             grpc_closure **st, grpc_closure *closure) {
+  if (*st == CLOSURE_NOT_READY) {
+    /* not ready ==> switch to a waiting state by setting the closure */
+    *st = closure;
+  } else if (*st == CLOSURE_READY) {
+    /* already ready ==> queue the closure to run immediately */
+    *st = CLOSURE_NOT_READY;
+    grpc_exec_ctx_enqueue(exec_ctx, closure, !fd->shutdown);
+    maybe_wake_one_watcher_locked(fd);
+  } else {
+    /* upcallptr was set to a different closure.  This is an error! */
+    gpr_log(GPR_ERROR,
+            "User called a notify_on function with a previous callback still "
+            "pending");
+    abort();
   }
-  gpr_log(GPR_ERROR, "Corrupt memory in &st->state");
-  abort();
 }
 
-static void set_ready_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
-                             gpr_atm *st) {
-  gpr_intptr state = gpr_atm_acq_load(st);
-
-  switch (state) {
-    case READY:
-      /* duplicate ready, ignore */
-      return;
-    case NOT_READY:
-      if (gpr_atm_rel_cas(st, NOT_READY, READY)) {
-        /* swap was successful -- the closure will run after the next
-           notify_on call. */
-        return;
-      }
-      /* swap was unsuccessful due to an intervening set_ready call.
-         Fall through to the WAITING code below */
-      state = gpr_atm_acq_load(st);
-    default: /* waiting */
-      GPR_ASSERT(gpr_atm_no_barrier_load(st) != READY &&
-                 gpr_atm_no_barrier_load(st) != NOT_READY);
-      grpc_exec_ctx_enqueue(exec_ctx, (grpc_closure *)state,
-                            !gpr_atm_acq_load(&fd->shutdown));
-      gpr_atm_rel_store(st, NOT_READY);
-      return;
+/* returns 1 if state becomes not ready */
+static int set_ready_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+                            grpc_closure **st) {
+  if (*st == CLOSURE_READY) {
+    /* duplicate ready ==> ignore */
+    return 0;
+  } else if (*st == CLOSURE_NOT_READY) {
+    /* not ready, and not waiting ==> flag ready */
+    *st = CLOSURE_READY;
+    return 0;
+  } else {
+    /* waiting ==> queue closure */
+    grpc_exec_ctx_enqueue(exec_ctx, *st, !fd->shutdown);
+    *st = CLOSURE_NOT_READY;
+    return 1;
   }
 }
 
-static void set_ready(grpc_exec_ctx *exec_ctx, grpc_fd *fd, gpr_atm *st) {
+static void set_ready(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure **st) {
   /* only one set_ready can be active at once (but there may be a racing
      notify_on) */
-  gpr_mu_lock(&fd->set_state_mu);
+  gpr_mu_lock(&fd->mu);
   set_ready_locked(exec_ctx, fd, st);
-  gpr_mu_unlock(&fd->set_state_mu);
+  gpr_mu_unlock(&fd->mu);
 }
 
 void grpc_fd_shutdown(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
-  gpr_mu_lock(&fd->set_state_mu);
+  gpr_mu_lock(&fd->mu);
   GPR_ASSERT(!gpr_atm_no_barrier_load(&fd->shutdown));
-  gpr_atm_rel_store(&fd->shutdown, 1);
-  set_ready_locked(exec_ctx, fd, &fd->readst);
-  set_ready_locked(exec_ctx, fd, &fd->writest);
-  gpr_mu_unlock(&fd->set_state_mu);
+  fd->shutdown = 1;
+  set_ready_locked(exec_ctx, fd, &fd->read_closure);
+  set_ready_locked(exec_ctx, fd, &fd->write_closure);
+  gpr_mu_unlock(&fd->mu);
 }
 
 void grpc_fd_notify_on_read(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
                             grpc_closure *closure) {
-  notify_on(exec_ctx, fd, &fd->readst, closure);
+  gpr_mu_lock(&fd->mu);
+  notify_on_locked(exec_ctx, fd, &fd->read_closure, closure);
+  gpr_mu_unlock(&fd->mu);
 }
 
 void grpc_fd_notify_on_write(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
                              grpc_closure *closure) {
-  notify_on(exec_ctx, fd, &fd->writest, closure);
+  gpr_mu_lock(&fd->mu);
+  notify_on_locked(exec_ctx, fd, &fd->write_closure, closure);
+  gpr_mu_unlock(&fd->mu);
 }
 
 gpr_uint32 grpc_fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
-                              gpr_uint32 read_mask, gpr_uint32 write_mask,
-                              grpc_fd_watcher *watcher) {
+                              grpc_pollset_worker *worker, gpr_uint32 read_mask,
+                              gpr_uint32 write_mask, grpc_fd_watcher *watcher) {
   gpr_uint32 mask = 0;
+  grpc_closure *cur;
+  int requested;
   /* keep track of pollers that have requested our events, in case they change
    */
   GRPC_FD_REF(fd, "poll");
 
-  gpr_mu_lock(&fd->watcher_mu);
+  gpr_mu_lock(&fd->mu);
+
   /* if we are shutdown, then don't add to the watcher set */
   if (gpr_atm_no_barrier_load(&fd->shutdown)) {
     watcher->fd = NULL;
     watcher->pollset = NULL;
-    gpr_mu_unlock(&fd->watcher_mu);
+    watcher->worker = NULL;
+    gpr_mu_unlock(&fd->mu);
     GRPC_FD_UNREF(fd, "poll");
     return 0;
   }
+
   /* if there is nobody polling for read, but we need to, then start doing so */
-  if (read_mask && !fd->read_watcher &&
-      (gpr_uintptr)gpr_atm_acq_load(&fd->readst) > READY) {
+  cur = fd->read_closure;
+  requested = cur != CLOSURE_READY;
+  if (read_mask && fd->read_watcher == NULL && requested) {
     fd->read_watcher = watcher;
     mask |= read_mask;
   }
   /* if there is nobody polling for write, but we need to, then start doing so
    */
-  if (write_mask && !fd->write_watcher &&
-      (gpr_uintptr)gpr_atm_acq_load(&fd->writest) > READY) {
+  cur = fd->write_closure;
+  requested = cur != CLOSURE_READY;
+  if (write_mask && fd->write_watcher == NULL && requested) {
     fd->write_watcher = watcher;
     mask |= write_mask;
   }
   /* if not polling, remember this watcher in case we need someone to later */
-  if (mask == 0) {
+  if (mask == 0 && worker != NULL) {
     watcher->next = &fd->inactive_watcher_root;
     watcher->prev = watcher->next->prev;
     watcher->next->prev = watcher->prev->next = watcher;
   }
   watcher->pollset = pollset;
+  watcher->worker = worker;
   watcher->fd = fd;
-  gpr_mu_unlock(&fd->watcher_mu);
+  gpr_mu_unlock(&fd->mu);
 
   return mask;
 }
@@ -391,24 +368,39 @@ void grpc_fd_end_poll(grpc_exec_ctx *exec_ctx, grpc_fd_watcher *watcher,
     return;
   }
 
-  gpr_mu_lock(&fd->watcher_mu);
+  gpr_mu_lock(&fd->mu);
+
   if (watcher == fd->read_watcher) {
     /* remove read watcher, kick if we still need a read */
     was_polling = 1;
-    kick = kick || !got_read;
+    if (!got_read) {
+      kick = 1;
+    }
     fd->read_watcher = NULL;
   }
   if (watcher == fd->write_watcher) {
     /* remove write watcher, kick if we still need a write */
     was_polling = 1;
-    kick = kick || !got_write;
+    if (!got_write) {
+      kick = 1;
+    }
     fd->write_watcher = NULL;
   }
-  if (!was_polling) {
+  if (!was_polling && watcher->worker != NULL) {
     /* remove from inactive list */
     watcher->next->prev = watcher->prev;
     watcher->prev->next = watcher->next;
   }
+  if (got_read) {
+    if (set_ready_locked(exec_ctx, fd, &fd->read_closure)) {
+      kick = 1;
+    }
+  }
+  if (got_write) {
+    if (set_ready_locked(exec_ctx, fd, &fd->write_closure)) {
+      kick = 1;
+    }
+  }
   if (kick) {
     maybe_wake_one_watcher_locked(fd);
   }
@@ -417,17 +409,17 @@ void grpc_fd_end_poll(grpc_exec_ctx *exec_ctx, grpc_fd_watcher *watcher,
     close(fd->fd);
     grpc_exec_ctx_enqueue(exec_ctx, fd->on_done_closure, 1);
   }
-  gpr_mu_unlock(&fd->watcher_mu);
+  gpr_mu_unlock(&fd->mu);
 
   GRPC_FD_UNREF(fd, "poll");
 }
 
 void grpc_fd_become_readable(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
-  set_ready(exec_ctx, fd, &fd->readst);
+  set_ready(exec_ctx, fd, &fd->read_closure);
 }
 
 void grpc_fd_become_writable(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
-  set_ready(exec_ctx, fd, &fd->writest);
+  set_ready(exec_ctx, fd, &fd->write_closure);
 }
 
 #endif
diff --git a/src/core/iomgr/fd_posix.h b/src/core/iomgr/fd_posix.h
index 089aa4d7175641f6c04ce3360c3b87e0a0c53e5c..dc917ebbc0ff195ff36569a85b8e32c67ea14985 100644
--- a/src/core/iomgr/fd_posix.h
+++ b/src/core/iomgr/fd_posix.h
@@ -46,6 +46,7 @@ typedef struct grpc_fd_watcher {
   struct grpc_fd_watcher *next;
   struct grpc_fd_watcher *prev;
   grpc_pollset *pollset;
+  grpc_pollset_worker *worker;
   grpc_fd *fd;
 } grpc_fd_watcher;
 
@@ -58,8 +59,8 @@ struct grpc_fd {
      and just unref by 1 when we're ready to flag the object as orphaned */
   gpr_atm refst;
 
-  gpr_mu set_state_mu;
-  gpr_atm shutdown;
+  gpr_mu mu;
+  int shutdown;
   int closed;
 
   /* The watcher list.
@@ -84,18 +85,16 @@ struct grpc_fd {
      If at a later time there becomes need of a poller to poll, one of
      the inactive pollers may be kicked out of their poll loops to take
      that responsibility. */
-  gpr_mu watcher_mu;
   grpc_fd_watcher inactive_watcher_root;
   grpc_fd_watcher *read_watcher;
   grpc_fd_watcher *write_watcher;
 
-  gpr_atm readst;
-  gpr_atm writest;
+  grpc_closure *read_closure;
+  grpc_closure *write_closure;
 
   struct grpc_fd *freelist_next;
 
   grpc_closure *on_done_closure;
-  grpc_closure *shutdown_closures[2];
 
   grpc_iomgr_object iomgr_object;
 };
@@ -126,10 +125,12 @@ void grpc_fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure *on_done,
    fd's current interest (such as epoll) do not need to call this function.
    MUST NOT be called with a pollset lock taken */
 gpr_uint32 grpc_fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
-                              gpr_uint32 read_mask, gpr_uint32 write_mask,
-                              grpc_fd_watcher *rec);
+                              grpc_pollset_worker *worker, gpr_uint32 read_mask,
+                              gpr_uint32 write_mask, grpc_fd_watcher *rec);
 /* Complete polling previously started with grpc_fd_begin_poll
-   MUST NOT be called with a pollset lock taken */
+   MUST NOT be called with a pollset lock taken
+   if got_read or got_write are 1, also does the become_{readable,writable} as
+   appropriate. */
 void grpc_fd_end_poll(grpc_exec_ctx *exec_ctx, grpc_fd_watcher *rec,
                       int got_read, int got_write);
 
diff --git a/src/core/iomgr/pollset_multipoller_with_epoll.c b/src/core/iomgr/pollset_multipoller_with_epoll.c
index faf0a6362b41184991c9c9beeaf22d69ed7f501d..ba9ba73f9d5220494f4fe41f0d1e2ac7b853afce 100644
--- a/src/core/iomgr/pollset_multipoller_with_epoll.c
+++ b/src/core/iomgr/pollset_multipoller_with_epoll.c
@@ -72,7 +72,7 @@ static void finally_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
   /* We pretend to be polling whilst adding an fd to keep the fd from being
      closed during the add. This may result in a spurious wakeup being assigned
      to this pollset whilst adding, but that should be benign. */
-  GPR_ASSERT(grpc_fd_begin_poll(fd, pollset, 0, 0, &watcher) == 0);
+  GPR_ASSERT(grpc_fd_begin_poll(fd, pollset, NULL, 0, 0, &watcher) == 0);
   if (watcher.fd != NULL) {
     ev.events = (uint32_t)(EPOLLIN | EPOLLOUT | EPOLLET);
     ev.data.ptr = fd;
diff --git a/src/core/iomgr/pollset_multipoller_with_poll_posix.c b/src/core/iomgr/pollset_multipoller_with_poll_posix.c
index 1356ebe7a0659a40b3204a225b97b36e8c1d4d44..faa6c1449133bbafb507a69f3a56b37e8155d638 100644
--- a/src/core/iomgr/pollset_multipoller_with_poll_posix.c
+++ b/src/core/iomgr/pollset_multipoller_with_poll_posix.c
@@ -102,6 +102,9 @@ static void multipoll_with_poll_pollset_del_fd(grpc_exec_ctx *exec_ctx,
 static void multipoll_with_poll_pollset_maybe_work_and_unlock(
     grpc_exec_ctx *exec_ctx, grpc_pollset *pollset, grpc_pollset_worker *worker,
     gpr_timespec deadline, gpr_timespec now) {
+#define POLLOUT_CHECK (POLLOUT | POLLHUP | POLLERR)
+#define POLLIN_CHECK (POLLIN | POLLHUP | POLLERR)
+
   int timeout;
   int r;
   size_t i, j, fd_count;
@@ -147,8 +150,8 @@ static void multipoll_with_poll_pollset_maybe_work_and_unlock(
   gpr_mu_unlock(&pollset->mu);
 
   for (i = 2; i < pfd_count; i++) {
-    pfds[i].events = (short)grpc_fd_begin_poll(watchers[i].fd, pollset, POLLIN,
-                                               POLLOUT, &watchers[i]);
+    pfds[i].events = (short)grpc_fd_begin_poll(watchers[i].fd, pollset, worker,
+                                               POLLIN, POLLOUT, &watchers[i]);
   }
 
   /* TODO(vpai): Consider first doing a 0 timeout poll here to avoid
@@ -157,34 +160,29 @@ static void multipoll_with_poll_pollset_maybe_work_and_unlock(
   r = grpc_poll_function(pfds, pfd_count, timeout);
   GRPC_SCHEDULING_END_BLOCKING_REGION;
 
-  for (i = 2; i < pfd_count; i++) {
-    grpc_fd_end_poll(exec_ctx, &watchers[i], pfds[i].revents & POLLIN,
-                     pfds[i].revents & POLLOUT);
-  }
-
   if (r < 0) {
-    if (errno != EINTR) {
-      gpr_log(GPR_ERROR, "poll() failed: %s", strerror(errno));
+    gpr_log(GPR_ERROR, "poll() failed: %s", strerror(errno));
+    for (i = 2; i < pfd_count; i++) {
+      grpc_fd_end_poll(exec_ctx, &watchers[i], 0, 0);
     }
   } else if (r == 0) {
-    /* do nothing */
+    for (i = 2; i < pfd_count; i++) {
+      grpc_fd_end_poll(exec_ctx, &watchers[i], 0, 0);
+    }
   } else {
-    if (pfds[0].revents & POLLIN) {
+    if (pfds[0].revents & POLLIN_CHECK) {
       grpc_wakeup_fd_consume_wakeup(&grpc_global_wakeup_fd);
     }
-    if (pfds[1].revents & POLLIN) {
+    if (pfds[1].revents & POLLIN_CHECK) {
       grpc_wakeup_fd_consume_wakeup(&worker->wakeup_fd);
     }
     for (i = 2; i < pfd_count; i++) {
       if (watchers[i].fd == NULL) {
+        grpc_fd_end_poll(exec_ctx, &watchers[i], 0, 0);
         continue;
       }
-      if (pfds[i].revents & (POLLIN | POLLHUP | POLLERR)) {
-        grpc_fd_become_readable(exec_ctx, watchers[i].fd);
-      }
-      if (pfds[i].revents & (POLLOUT | POLLHUP | POLLERR)) {
-        grpc_fd_become_writable(exec_ctx, watchers[i].fd);
-      }
+      grpc_fd_end_poll(exec_ctx, &watchers[i], pfds[i].revents & POLLIN_CHECK,
+                       pfds[i].revents & POLLOUT_CHECK);
     }
   }
 
diff --git a/src/core/iomgr/pollset_posix.c b/src/core/iomgr/pollset_posix.c
index b663780a02af304d5de79f52057a44133991faa5..d056866d13de5aa25ee1eb09e45f906060c8a9bd 100644
--- a/src/core/iomgr/pollset_posix.c
+++ b/src/core/iomgr/pollset_posix.c
@@ -98,31 +98,63 @@ static void push_front_worker(grpc_pollset *p, grpc_pollset_worker *worker) {
   worker->prev->next = worker->next->prev = worker;
 }
 
-void grpc_pollset_kick(grpc_pollset *p, grpc_pollset_worker *specific_worker) {
+void grpc_pollset_kick_ext(grpc_pollset *p,
+                           grpc_pollset_worker *specific_worker,
+                           gpr_uint32 flags) {
   /* pollset->mu already held */
   if (specific_worker != NULL) {
     if (specific_worker == GRPC_POLLSET_KICK_BROADCAST) {
+      GPR_ASSERT((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) == 0);
       for (specific_worker = p->root_worker.next;
            specific_worker != &p->root_worker;
            specific_worker = specific_worker->next) {
         grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd);
       }
       p->kicked_without_pollers = 1;
+      return;
     } else if (gpr_tls_get(&g_current_thread_worker) !=
                (gpr_intptr)specific_worker) {
+      if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) {
+        specific_worker->reevaluate_polling_on_wakeup = 1;
+      }
+      grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd);
+      return;
+    } else if ((flags & GRPC_POLLSET_CAN_KICK_SELF) != 0) {
+      if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) {
+        specific_worker->reevaluate_polling_on_wakeup = 1;
+      }
       grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd);
+      return;
     }
   } else if (gpr_tls_get(&g_current_thread_poller) != (gpr_intptr)p) {
+    GPR_ASSERT((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) == 0);
     specific_worker = pop_front_worker(p);
     if (specific_worker != NULL) {
+      if (gpr_tls_get(&g_current_thread_worker) ==
+          (gpr_intptr)specific_worker) {
+        push_back_worker(p, specific_worker);
+        specific_worker = pop_front_worker(p);
+        if ((flags & GRPC_POLLSET_CAN_KICK_SELF) == 0 &&
+            gpr_tls_get(&g_current_thread_worker) ==
+                (gpr_intptr)specific_worker) {
+          push_back_worker(p, specific_worker);
+          return;
+        }
+      }
       push_back_worker(p, specific_worker);
       grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd);
+      return;
     } else {
       p->kicked_without_pollers = 1;
+      return;
     }
   }
 }
 
+void grpc_pollset_kick(grpc_pollset *p, grpc_pollset_worker *specific_worker) {
+  grpc_pollset_kick_ext(p, specific_worker, 0);
+}
+
 /* global state management */
 
 void grpc_pollset_global_init(void) {
@@ -195,52 +227,88 @@ void grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
   /* pollset->mu already held */
   int added_worker = 0;
   int locked = 1;
+  int queued_work = 0;
+  int keep_polling = 0;
   /* this must happen before we (potentially) drop pollset->mu */
   worker->next = worker->prev = NULL;
+  worker->reevaluate_polling_on_wakeup = 0;
   /* TODO(ctiller): pool these */
   grpc_wakeup_fd_init(&worker->wakeup_fd);
+  /* If there's work waiting for the pollset to be idle, and the
+     pollset is idle, then do that work */
   if (!grpc_pollset_has_workers(pollset) &&
       !grpc_closure_list_empty(pollset->idle_jobs)) {
     grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs);
     goto done;
   }
+  /* Check alarms - these are a global resource so we just ping
+     each time through on every pollset.
+     May update deadline to ensure timely wakeups.
+     TODO(ctiller): can this work be localized? */
   if (grpc_alarm_check(exec_ctx, now, &deadline)) {
     gpr_mu_unlock(&pollset->mu);
     locked = 0;
     goto done;
   }
+  /* If we're shutting down then we don't execute any extended work */
   if (pollset->shutting_down) {
     goto done;
   }
+  /* Give do_promote priority so we don't starve it out */
   if (pollset->in_flight_cbs) {
-    /* Give do_promote priority so we don't starve it out */
     gpr_mu_unlock(&pollset->mu);
     locked = 0;
     goto done;
   }
-  if (!pollset->kicked_without_pollers) {
-    push_front_worker(pollset, worker);
-    added_worker = 1;
-    gpr_tls_set(&g_current_thread_poller, (gpr_intptr)pollset);
-    gpr_tls_set(&g_current_thread_worker, (gpr_intptr)worker);
-    pollset->vtable->maybe_work_and_unlock(exec_ctx, pollset, worker, deadline,
-                                           now);
-    locked = 0;
-    gpr_tls_set(&g_current_thread_poller, 0);
-    gpr_tls_set(&g_current_thread_worker, 0);
-  } else {
-    pollset->kicked_without_pollers = 0;
-  }
-done:
-  if (!locked) {
-    grpc_exec_ctx_flush(exec_ctx);
-    gpr_mu_lock(&pollset->mu);
-    locked = 1;
+  /* Start polling, and keep doing so while we're being asked to
+     re-evaluate our pollers (this allows poll() based pollers to
+     ensure they don't miss wakeups) */
+  keep_polling = 1;
+  while (keep_polling) {
+    keep_polling = 0;
+    if (!pollset->kicked_without_pollers) {
+      if (!added_worker) {
+        push_front_worker(pollset, worker);
+        added_worker = 1;
+      }
+      gpr_tls_set(&g_current_thread_poller, (gpr_intptr)pollset);
+      gpr_tls_set(&g_current_thread_worker, (gpr_intptr)worker);
+      pollset->vtable->maybe_work_and_unlock(exec_ctx, pollset, worker,
+                                             deadline, now);
+      locked = 0;
+      gpr_tls_set(&g_current_thread_poller, 0);
+      gpr_tls_set(&g_current_thread_worker, 0);
+    } else {
+      pollset->kicked_without_pollers = 0;
+    }
+  /* Finished execution - start cleaning up.
+     Note that we may arrive here from outside the enclosing while() loop.
+     In that case we won't loop though as we haven't added worker to the
+     worker list, which means nobody could ask us to re-evaluate polling). */
+  done:
+    if (!locked) {
+      queued_work |= grpc_exec_ctx_flush(exec_ctx);
+      gpr_mu_lock(&pollset->mu);
+      locked = 1;
+    }
+    /* If we're forced to re-evaluate polling (via grpc_pollset_kick with
+       GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) then we land here and force
+       a loop */
+    if (worker->reevaluate_polling_on_wakeup) {
+      worker->reevaluate_polling_on_wakeup = 0;
+      pollset->kicked_without_pollers = 0;
+      if (queued_work) {
+        /* If there's queued work on the list, then set the deadline to be
+           immediate so we get back out of the polling loop quickly */
+        deadline = gpr_inf_past(GPR_CLOCK_MONOTONIC);
+      }
+      keep_polling = 1;
+    }
   }
-  grpc_wakeup_fd_destroy(&worker->wakeup_fd);
   if (added_worker) {
     remove_worker(pollset, worker);
   }
+  grpc_wakeup_fd_destroy(&worker->wakeup_fd);
   if (pollset->shutting_down) {
     if (grpc_pollset_has_workers(pollset)) {
       grpc_pollset_kick(pollset, NULL);
@@ -454,6 +522,9 @@ static void basic_pollset_maybe_work_and_unlock(grpc_exec_ctx *exec_ctx,
                                                 grpc_pollset_worker *worker,
                                                 gpr_timespec deadline,
                                                 gpr_timespec now) {
+#define POLLOUT_CHECK (POLLOUT | POLLHUP | POLLERR)
+#define POLLIN_CHECK (POLLIN | POLLHUP | POLLERR)
+
   struct pollfd pfd[3];
   grpc_fd *fd;
   grpc_fd_watcher fd_watcher;
@@ -479,8 +550,8 @@ static void basic_pollset_maybe_work_and_unlock(grpc_exec_ctx *exec_ctx,
     pfd[2].revents = 0;
     GRPC_FD_REF(fd, "basicpoll_begin");
     gpr_mu_unlock(&pollset->mu);
-    pfd[2].events =
-        (short)grpc_fd_begin_poll(fd, pollset, POLLIN, POLLOUT, &fd_watcher);
+    pfd[2].events = (short)grpc_fd_begin_poll(fd, pollset, worker, POLLIN,
+                                              POLLOUT, &fd_watcher);
     if (pfd[2].events != 0) {
       nfds++;
     }
@@ -497,31 +568,27 @@ static void basic_pollset_maybe_work_and_unlock(grpc_exec_ctx *exec_ctx,
   GRPC_SCHEDULING_END_BLOCKING_REGION;
   GRPC_TIMER_MARK(GRPC_PTAG_POLL_FINISHED, r);
 
-  if (fd) {
-    grpc_fd_end_poll(exec_ctx, &fd_watcher, pfd[2].revents & POLLIN,
-                     pfd[2].revents & POLLOUT);
-  }
-
   if (r < 0) {
-    if (errno != EINTR) {
-      gpr_log(GPR_ERROR, "poll() failed: %s", strerror(errno));
+    gpr_log(GPR_ERROR, "poll() failed: %s", strerror(errno));
+    if (fd) {
+      grpc_fd_end_poll(exec_ctx, &fd_watcher, 0, 0);
     }
   } else if (r == 0) {
-    /* do nothing */
+    if (fd) {
+      grpc_fd_end_poll(exec_ctx, &fd_watcher, 0, 0);
+    }
   } else {
-    if (pfd[0].revents & POLLIN) {
+    if (pfd[0].revents & POLLIN_CHECK) {
       grpc_wakeup_fd_consume_wakeup(&grpc_global_wakeup_fd);
     }
-    if (pfd[1].revents & POLLIN) {
+    if (pfd[1].revents & POLLIN_CHECK) {
       grpc_wakeup_fd_consume_wakeup(&worker->wakeup_fd);
     }
     if (nfds > 2) {
-      if (pfd[2].revents & (POLLIN | POLLHUP | POLLERR)) {
-        grpc_fd_become_readable(exec_ctx, fd);
-      }
-      if (pfd[2].revents & (POLLOUT | POLLHUP | POLLERR)) {
-        grpc_fd_become_writable(exec_ctx, fd);
-      }
+      grpc_fd_end_poll(exec_ctx, &fd_watcher, pfd[2].revents & POLLIN_CHECK,
+                       pfd[2].revents & POLLOUT_CHECK);
+    } else if (fd) {
+      grpc_fd_end_poll(exec_ctx, &fd_watcher, 0, 0);
     }
   }
 
diff --git a/src/core/iomgr/pollset_posix.h b/src/core/iomgr/pollset_posix.h
index 83c525853905b41dd0f06ace430362fa3dd7be48..34f76db2afa93190047d8e827e5a862d180bf690 100644
--- a/src/core/iomgr/pollset_posix.h
+++ b/src/core/iomgr/pollset_posix.h
@@ -50,6 +50,7 @@ struct grpc_fd;
 
 typedef struct grpc_pollset_worker {
   grpc_wakeup_fd wakeup_fd;
+  int reevaluate_polling_on_wakeup;
   struct grpc_pollset_worker *next;
   struct grpc_pollset_worker *prev;
 } grpc_pollset_worker;
@@ -111,6 +112,16 @@ void grpc_kick_drain(grpc_pollset *p);
 int grpc_poll_deadline_to_millis_timeout(gpr_timespec deadline,
                                          gpr_timespec now);
 
+/* Allow kick to wakeup the currently polling worker */
+#define GRPC_POLLSET_CAN_KICK_SELF 1
+/* Force the wakee to repoll when awoken */
+#define GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP 2
+/* As per grpc_pollset_kick, with an extended set of flags (defined above)
+   -- mostly for fd_posix's use. */
+void grpc_pollset_kick_ext(grpc_pollset *p,
+                           grpc_pollset_worker *specific_worker,
+                           gpr_uint32 flags);
+
 /* turn a pollset into a multipoller: platform specific */
 typedef void (*grpc_platform_become_multipoller_type)(grpc_exec_ctx *exec_ctx,
                                                       grpc_pollset *pollset,
diff --git a/src/core/iomgr/tcp_server_windows.c b/src/core/iomgr/tcp_server_windows.c
index db3319b3c6c3ab79dff03d1e4e3f9af8bb29d283..3fea8b5b35059cebda7c044de874415662f2844f 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 1304f2067ea53133d6aaebb4d422a96ff83e82e4..9903e970e6643d1286be825c71d77d0cc50a2ee8 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 dbbe09710932d615875ee77f53dca2b357222291..de5736c426221ff5a7e909f29fb857b3cc2525a4 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 d15a3bcbade6ebf2d8b7038dbf3d1e45de1dc5e0..07c3ff6ae4ec7871e028a0105e35465c01e24a3c 100644
--- a/src/core/surface/call.c
+++ b/src/core/surface/call.c
@@ -425,7 +425,12 @@ static grpc_cq_completion *allocate_completion(grpc_call *call) {
     if (call->allocated_completions & (1u << i)) {
       continue;
     }
-    call->allocated_completions |= (gpr_uint8)(1u << i);
+    /* NB: the following integer arithmetic operation needs to be in its
+     * expanded form due to the "integral promotion" performed (see section
+     * 3.2.1.1 of the C89 draft standard). A cast to the smaller container type
+     * is then required to avoid the compiler warning */
+    call->allocated_completions =
+        (gpr_uint8)(call->allocated_completions | (1u << i));
     gpr_mu_unlock(&call->completion_mu);
     return &call->completions[i];
   }
@@ -736,7 +741,11 @@ static void finish_live_ioreq_op(grpc_call *call, grpc_ioreq_op op,
   size_t i;
   /* ioreq is live: we need to do something */
   master = &call->masters[master_set];
-  master->complete_mask |= (gpr_uint16)(1u << op);
+  /* NB: the following integer arithmetic operation needs to be in its
+   * expanded form due to the "integral promotion" performed (see section
+   * 3.2.1.1 of the C89 draft standard). A cast to the smaller container type
+   * is then required to avoid the compiler warning */
+  master->complete_mask = (gpr_uint16)(master->complete_mask | (1u << op));
   if (!success) {
     master->success = 0;
   }
@@ -927,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;
@@ -1246,7 +1256,11 @@ static grpc_call_error start_ioreq(grpc_call *call, const grpc_ioreq *reqs,
                            GRPC_MDSTR_REF(reqs[i].data.send_status.details));
       }
     }
-    have_ops |= (gpr_uint16)(1u << op);
+    /* NB: the following integer arithmetic operation needs to be in its
+     * expanded form due to the "integral promotion" performed (see section
+     * 3.2.1.1 of the C89 draft standard). A cast to the smaller container type
+     * is then required to avoid the compiler warning */
+    have_ops = (gpr_uint16)(have_ops | (1u << op));
 
     call->request_data[op] = data;
     call->request_flags[op] = reqs[i].flags;
diff --git a/src/core/transport/chttp2/bin_encoder.c b/src/core/transport/chttp2/bin_encoder.c
index f1bbf9aa918160f2a2fc58ac3304486739d4529c..9c9070ede4f46a19a3b03dcaac8a06fdea516059 100644
--- a/src/core/transport/chttp2/bin_encoder.c
+++ b/src/core/transport/chttp2/bin_encoder.c
@@ -185,8 +185,12 @@ gpr_slice grpc_chttp2_huffman_compress(gpr_slice input) {
   }
 
   if (temp_length) {
-    *out++ = (gpr_uint8)(temp << (8u - temp_length)) |
-             (gpr_uint8)(0xffu >> temp_length);
+    /* NB: the following integer arithmetic operation needs to be in its
+     * expanded form due to the "integral promotion" performed (see section
+     * 3.2.1.1 of the C89 draft standard). A cast to the smaller container type
+     * is then required to avoid the compiler warning */
+    *out++ = (gpr_uint8)((gpr_uint8)(temp << (8u - temp_length)) |
+                         (gpr_uint8)(0xffu >> temp_length));
   }
 
   GPR_ASSERT(out == GPR_SLICE_END_PTR(output));
@@ -265,8 +269,12 @@ gpr_slice grpc_chttp2_base64_encode_and_huffman_compress(gpr_slice input) {
   }
 
   if (out.temp_length) {
-    *out.out++ = (gpr_uint8)(out.temp << (8u - out.temp_length)) |
-                 (gpr_uint8)(0xffu >> out.temp_length);
+    /* NB: the following integer arithmetic operation needs to be in its
+     * expanded form due to the "integral promotion" performed (see section
+     * 3.2.1.1 of the C89 draft standard). A cast to the smaller container type
+     * is then required to avoid the compiler warning */
+    *out.out++ = (gpr_uint8)((gpr_uint8)(out.temp << (8u - out.temp_length)) |
+                             (gpr_uint8)(0xffu >> out.temp_length));
   }
 
   GPR_ASSERT(out.out <= GPR_SLICE_END_PTR(output));
diff --git a/src/core/tsi/fake_transport_security.c b/src/core/tsi/fake_transport_security.c
index cbb6f17ae185911bab0a69abe5db3f910488f744..a40268a7f0b32f71f1e06daf967d4bb7935118ec 100644
--- a/src/core/tsi/fake_transport_security.c
+++ b/src/core/tsi/fake_transport_security.c
@@ -118,10 +118,10 @@ static gpr_uint32 load32_little_endian(const unsigned char *buf) {
 }
 
 static void store32_little_endian(gpr_uint32 value, unsigned char *buf) {
-  buf[3] = (unsigned char)(value >> 24) & 0xFF;
-  buf[2] = (unsigned char)(value >> 16) & 0xFF;
-  buf[1] = (unsigned char)(value >> 8) & 0xFF;
-  buf[0] = (unsigned char)(value)&0xFF;
+  buf[3] = (unsigned char)((value >> 24) & 0xFF);
+  buf[2] = (unsigned char)((value >> 16) & 0xFF);
+  buf[1] = (unsigned char)((value >> 8) & 0xFF);
+  buf[0] = (unsigned char)((value) & 0xFF);
 }
 
 static void tsi_fake_frame_reset(tsi_fake_frame *frame, int needs_draining) {
diff --git a/src/node/LICENSE b/src/node/LICENSE
deleted file mode 100644
index 0209b570e10da54c158654433c5d3212b548c352..0000000000000000000000000000000000000000
--- 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 7719d082900c2122b8d9e684b05ba42f19e0b0fc..5d89e2228db79f1da5c8e38c665916a344030c53 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<custom location>/include LDFLAGS=-L<custom location>/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/binding.gyp b/src/node/binding.gyp
deleted file mode 100644
index 247719e981367e5feb416abf69b106cf5b5dde5e..0000000000000000000000000000000000000000
--- a/src/node/binding.gyp
+++ /dev/null
@@ -1,100 +0,0 @@
-{
-  "variables" : {
-    'config': '<!(echo $CONFIG)'
-  },
-  "targets" : [
-    {
-      'include_dirs': [
-        "<!(node -e \"require('nan')\")"
-      ],
-      'cflags': [
-        '-std=c++0x',
-        '-Wall',
-        '-pthread',
-        '-g',
-        '-zdefs',
-        '-Werror',
-        '-Wno-error=deprecated-declarations'
-      ],
-      'ldflags': [
-        '-g'
-      ],
-      "conditions": [
-        ['OS != "win"', {
-          'variables': {
-            'pkg_config_grpc': '<!(pkg-config --exists grpc >/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': [
-                  '<!@(pkg-config --libs-only-l --static grpc)'
-                ]
-              },
-              'cflags': [
-                '<!@(pkg-config --cflags grpc)'
-              ],
-              'libraries': [
-                '<!@(pkg-config --libs-only-L --static grpc)'
-              ],
-              'ldflags': [
-                '<!@(pkg-config --libs-only-other --static grpc)'
-              ]
-              }, {
-                'link_settings': {
-                  'libraries': [
-                    '-lpthread',
-                    '-lgrpc',
-                    '-lgpr'
-                  ],
-                },
-                'conditions':[
-                  ['OS != "mac"', {
-                    'link_settings': {
-                      'libraries': [
-                        '-lrt'
-                      ]
-                    }
-                  }]
-                ]
-              }
-           ]
-          ]
-        }],
-        ['OS == "mac"', {
-          'xcode_settings': {
-            'MACOSX_DEPLOYMENT_TARGET': '10.9',
-            'OTHER_CFLAGS': [
-              '-std=c++11',
-              '-stdlib=libc++'
-            ]
-          }
-        }]
-      ],
-      "target_name": "grpc",
-      "sources": [
-        "ext/byte_buffer.cc",
-        "ext/call.cc",
-        "ext/channel.cc",
-        "ext/completion_queue_async_worker.cc",
-        "ext/credentials.cc",
-        "ext/node_grpc.cc",
-        "ext/server.cc",
-        "ext/server_credentials.cc",
-        "ext/timeval.cc"
-      ]
-    }
-  ]
-}
diff --git a/src/node/ext/call.cc b/src/node/ext/call.cc
index b08a9f96d8120624b6f9df4197f99a58420af045..f98fe2463b694f77a414b4dfc349bb8bb8f8eea5 100644
--- a/src/node/ext/call.cc
+++ b/src/node/ext/call.cc
@@ -168,8 +168,9 @@ Local<Value> 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());
diff --git a/src/node/ext/node_grpc.cc b/src/node/ext/node_grpc.cc
index caca0fc4522db45923410bd498af0cab61f65559..8ea0c64b99c4c2b9ed6ee722b42d4e10f9a40a07 100644
--- a/src/node/ext/node_grpc.cc
+++ b/src/node/ext/node_grpc.cc
@@ -247,4 +247,4 @@ void init(Local<Object> 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 02b73f66ee70fcc0283e0928b3ebf4094db53544..c49fdc8431a6835286f98aa99e202624b0d4d39b 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,7 +90,6 @@ exports.load = function load(filename, format) {
     default:
     throw new Error('Unrecognized format "' + format + '"');
   }
-
   return loadObject(builder.ns);
 };
 
diff --git a/src/node/interop/empty.proto b/src/node/interop/empty.proto
deleted file mode 100644
index 6d0eb937d674ca3ee9aaf9c2ed8313250cd76647..0000000000000000000000000000000000000000
--- 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 215d42121c674c2df24fe6ee1216a52bdb0788a8..da614ad7b9224a33f2ef74681f566f8cffb0f107 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
@@ -358,6 +432,7 @@ var test_cases = {
   cancel_after_begin: cancelAfterBegin,
   cancel_after_first_response: cancelAfterFirstResponse,
   timeout_on_sleeping_server: timeoutOnSleepingServer,
+  custom_metadata: customMetadata,
   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),
diff --git a/src/node/interop/interop_server.js b/src/node/interop/interop_server.js
index 99155e99584cb0689e29f1c2fad1d1861ca2499b..3e83304faa39490dd0293c352dc14dbe79284cb8 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 7df85e3c13601ddc64e85a07eeadd502759a5761..0000000000000000000000000000000000000000
--- 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 24e67497fa66ba175f99eab6d0c28573eac0235d..0000000000000000000000000000000000000000
--- 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/src/client.js b/src/node/src/client.js
index 7f510231b34a4a1058b92bf604ab6b1976d90bad..33ddb3cec4c258a5db42c7089410b805b98c08df 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);
 
diff --git a/src/node/src/metadata.js b/src/node/src/metadata.js
index c1da70b1974f61aaef7e529a9f31de78ce46751e..5c24e46c9b2c8dc70003d442116725aaded38a70 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 70b4a9d80e3589e8543816df842f702db0f4bfb4..87b5b7ad06ee739ea2ab6d21c765ea39cd70a37c 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/call_test.js b/src/node/test/call_test.js
index e7f071bcd537699a892d9fdac608e473de3a2264..ec502183c139037846df4d8220e8460b5483b162 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
diff --git a/src/node/test/channel_test.js b/src/node/test/channel_test.js
index d81df2a36d88d4c81ddd9c8d133c42702e79bd26..4418dfff4ceb732297d55578d909153af86e9db2 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
diff --git a/src/node/test/constant_test.js b/src/node/test/constant_test.js
index fa06ad4e4d45d18564e4504cdcc07a3b06abd07a..b17cd339cb0effafdacfd574606376e8f73646f5 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/end_to_end_test.js b/src/node/test/end_to_end_test.js
index 4b8da3bfb171172bfee92fb023632aa17814046d..813221dafe9a55de6ae5d036cdae45b21e4153cc 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
diff --git a/src/node/test/interop_sanity_test.js b/src/node/test/interop_sanity_test.js
index 2ca07c1d50d28a8e0f865327b87a89eeef4be0ef..804c1d45e4a8cafcb60fc6252b288e9c98d22ec8 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/test/server_test.js b/src/node/test/server_test.js
index 1e69d52e5831fb805deaaaa1d1f1a99dcba050a8..999a183b3cb5043b81c861a36eb8a6adbaea4e54 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 85f399c448ebd1daac25691d8e679c61849bf476..49643f9004425917ce54f6c815794f73c2262ac7 100644
--- a/src/node/test/surface_test.js
+++ b/src/node/test/surface_test.js
@@ -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) {
diff --git a/templates/grpc.gyp.template b/templates/grpc.gyp.template
index 873606202a1d74a80d6b0f5b22f859750b63fe4b..9a7637d8bf48a0e3aab979abaafcdb911043d57d 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 fc0026da4df9a5b2ebf43650ef686de6460fe02e..86e8767937825dcd16e4606091a117446b9b3dd8 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/codegen/core/gen_hpack_tables.c b/tools/codegen/core/gen_hpack_tables.c
index d924aba6022ecadf77bbb0a6c3fae541c7b05ef8..bae4e4cd7340f3b591cac3892a68090e6164ba8b 100644
--- a/tools/codegen/core/gen_hpack_tables.c
+++ b/tools/codegen/core/gen_hpack_tables.c
@@ -71,7 +71,11 @@ static unsigned char prefix_mask(unsigned char prefix_len) {
   unsigned char i;
   unsigned char out = 0;
   for (i = 0; i < prefix_len; i++) {
-    out |= (unsigned char)(1 << (7 - i));
+    /* NB: the following integer arithmetic operation needs to be in its
+     * expanded form due to the "integral promotion" performed (see section
+     * 3.2.1.1 of the C89 draft standard). A cast to the smaller container type
+     * is then required to avoid the compiler warning */
+    out = (unsigned char)(out | (unsigned char)(1 << (7 - i)));
   }
   return out;
 }
@@ -92,7 +96,12 @@ static void generate_first_byte_lut(void) {
     chrspec = NULL;
     for (j = 0; j < num_fields; j++) {
       if ((prefix_mask(fields[j].prefix_length) & i) == fields[j].prefix) {
-        suffix = suffix_mask(fields[j].prefix_length) & (unsigned char)i;
+        /* NB: the following integer arithmetic operation needs to be in its
+         * expanded form due to the "integral promotion" performed (see section
+         * 3.2.1.1 of the C89 draft standard). A cast to the smaller container
+         * type is then required to avoid the compiler warning */
+        suffix = (unsigned char)(suffix_mask(fields[j].prefix_length) &
+                                 (unsigned char)i);
         if (suffix == suffix_mask(fields[j].prefix_length)) {
           if (fields[j].index != 2) continue;
         } else if (suffix == 0) {
diff --git a/tools/codegen/core/gen_legal_metadata_characters.c b/tools/codegen/core/gen_legal_metadata_characters.c
index 2ffda54a21f0d69b586f2f2a5d74d533487a2f48..677fa5c15569a842731af80a1dc9c5e78d76a664 100644
--- a/tools/codegen/core/gen_legal_metadata_characters.c
+++ b/tools/codegen/core/gen_legal_metadata_characters.c
@@ -41,7 +41,12 @@ static unsigned char legal_bits[256 / 8];
 static void legal(int x) {
   int byte = x / 8;
   int bit = x % 8;
-  legal_bits[byte] |= (unsigned char)(1 << bit);
+  /* NB: the following integer arithmetic operation needs to be in its
+   * expanded form due to the "integral promotion" performed (see section
+   * 3.2.1.1 of the C89 draft standard). A cast to the smaller container type
+   * is then required to avoid the compiler warning */
+  legal_bits[byte] =
+      (unsigned char)((legal_bits[byte] | (unsigned char)(1 << bit)));
 }
 
 static void dump(void) {
diff --git a/tools/jenkins/build_docker_and_run_tests.sh b/tools/jenkins/build_docker_and_run_tests.sh
index 2c562e992aa4771da617336254b037096d065769..8b7809f2e23d213493f2e8871c4c6b56ba65b77a 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/build_interop_image.sh b/tools/jenkins/build_interop_image.sh
index b5958588f2bc1ba6c8115ffed4f1141b7fd6cc29..3664eed84d9b0567f1ae53c10f0453f3593789e3 100755
--- a/tools/jenkins/build_interop_image.sh
+++ b/tools/jenkins/build_interop_image.sh
@@ -35,12 +35,12 @@ set -x
 
 cd `dirname $0`/../..
 GRPC_ROOT=`pwd`
-MOUNT_ARGS="-v $GRPC_ROOT:/var/local/jenkins/grpc"
+MOUNT_ARGS="-v $GRPC_ROOT:/var/local/jenkins/grpc:ro"
 
 GRPC_JAVA_ROOT=`cd ../grpc-java && pwd`
 if [ "$GRPC_JAVA_ROOT" != "" ]
 then
-  MOUNT_ARGS+=" -v $GRPC_JAVA_ROOT:/var/local/jenkins/grpc-java"
+  MOUNT_ARGS+=" -v $GRPC_JAVA_ROOT:/var/local/jenkins/grpc-java:ro"
 else
   echo "WARNING: grpc-java not found, it won't be mounted to the docker container."
 fi
@@ -48,7 +48,7 @@ fi
 GRPC_GO_ROOT=`cd ../grpc-go && pwd`
 if [ "$GRPC_GO_ROOT" != "" ]
 then
-  MOUNT_ARGS+=" -v $GRPC_GO_ROOT:/var/local/jenkins/grpc-go"
+  MOUNT_ARGS+=" -v $GRPC_GO_ROOT:/var/local/jenkins/grpc-go:ro"
 else
   echo "WARNING: grpc-go not found, it won't be mounted to the docker container."
 fi
@@ -60,6 +60,14 @@ mkdir -p /tmp/ccache
 #  BASE_NAME - base name used to locate the base Dockerfile and build script
 #  TTY_FLAG - optional -t flag to make docker allocate tty.
 
+# Mount service account dir if available.
+# If service_directory does not contain the service account JSON file,
+# some of the tests will fail.
+if [ -e $HOME/service_account ]
+then
+  MOUNT_ARGS+=" -v $HOME/service_account:/var/local/jenkins/service_account:ro"
+fi
+
 # Use image name based on Dockerfile checksum
 BASE_IMAGE=${BASE_NAME}_base:`sha1sum tools/jenkins/$BASE_NAME/Dockerfile | cut -f1 -d\ `
 
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/jenkins/docker_run_tests.sh
index 2e39bc6f51e2a4ef208342c004dad339fae66ea7..8bafeea6200f290ec78a1697254613f1688036ea 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_interop_csharp/build_interop.sh b/tools/jenkins/grpc_interop_csharp/build_interop.sh
index e91cbed81ea7fb265c81422689db2d905200bd46..8fde687900a380025ccd023adc68f73d47eb1732 100755
--- a/tools/jenkins/grpc_interop_csharp/build_interop.sh
+++ b/tools/jenkins/grpc_interop_csharp/build_interop.sh
@@ -34,6 +34,9 @@ set -e
 mkdir -p /var/local/git
 git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
 
+# copy service account keys if available
+cp -r /var/local/jenkins/service_account $HOME || true
+
 cd /var/local/git/grpc
 
 make install-certs
diff --git a/tools/jenkins/grpc_interop_cxx/build_interop.sh b/tools/jenkins/grpc_interop_cxx/build_interop.sh
index 4163e11ecc786f18c94231e53d635817c06b8108..1c0828d23a6ea6ced82f87b80fc91ce7c306bcde 100755
--- a/tools/jenkins/grpc_interop_cxx/build_interop.sh
+++ b/tools/jenkins/grpc_interop_cxx/build_interop.sh
@@ -34,6 +34,9 @@ set -e
 mkdir -p /var/local/git
 git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
 
+# copy service account keys if available
+cp -r /var/local/jenkins/service_account $HOME || true
+
 cd /var/local/git/grpc
 
 make install-certs
diff --git a/tools/jenkins/grpc_interop_go/build_interop.sh b/tools/jenkins/grpc_interop_go/build_interop.sh
index 78dd4ea9cf5eb8495a4e53835598a0953d0a3559..05fc6dfdfb62af86ddace04317f2d348f4c26d20 100755
--- a/tools/jenkins/grpc_interop_go/build_interop.sh
+++ b/tools/jenkins/grpc_interop_go/build_interop.sh
@@ -36,6 +36,9 @@ set -e
 # to test instead of using "go get" to download from Github directly.
 git clone --recursive /var/local/jenkins/grpc-go src/gooogle.golang.org/grpc
 
+# copy service account keys if available
+cp -r /var/local/jenkins/service_account $HOME || true
+
 # Get dependencies from GitHub
 # NOTE: once grpc-go dependencies change, this needs to be updated manually
 # but we don't expect this to happen any time soon.
diff --git a/tools/jenkins/grpc_interop_java/build_interop.sh b/tools/jenkins/grpc_interop_java/build_interop.sh
index 4ee2f44e3d5b42b68b5a1932ee8c7af8647c5852..9997c63308b50fa739840c84b7d0100d47570b60 100755
--- a/tools/jenkins/grpc_interop_java/build_interop.sh
+++ b/tools/jenkins/grpc_interop_java/build_interop.sh
@@ -34,6 +34,9 @@ set -e
 mkdir -p /var/local/git
 git clone --recursive --depth 1 /var/local/jenkins/grpc-java /var/local/git/grpc-java
 
+# copy service account keys if available
+cp -r /var/local/jenkins/service_account $HOME || true
+
 cd /var/local/git/grpc-java
 
 ./gradlew :grpc-interop-testing:installDist -PskipCodegen=true
diff --git a/tools/jenkins/grpc_interop_node/build_interop.sh b/tools/jenkins/grpc_interop_node/build_interop.sh
index 55e2a4081bcc89a7e7213276a830f7abf1c11e2f..84e25e330886ab3c15cacea0af121a25e49bd3d3 100755
--- a/tools/jenkins/grpc_interop_node/build_interop.sh
+++ b/tools/jenkins/grpc_interop_node/build_interop.sh
@@ -34,6 +34,9 @@ set -e
 mkdir -p /var/local/git
 git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
 
+# copy service account keys if available
+cp -r /var/local/jenkins/service_account $HOME || true
+
 cd /var/local/git/grpc
 nvm use 0.12
 nvm alias default 0.12  # prevent the need to run 'nvm use' in every shell
diff --git a/tools/jenkins/grpc_interop_php/build_interop.sh b/tools/jenkins/grpc_interop_php/build_interop.sh
index 745dea845d6f2ed6b51d994f9dc340502f83233b..cd9d67804af685ed987362423e401be1d32a98ba 100755
--- a/tools/jenkins/grpc_interop_php/build_interop.sh
+++ b/tools/jenkins/grpc_interop_php/build_interop.sh
@@ -34,6 +34,9 @@ set -e
 mkdir -p /var/local/git
 git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
 
+# copy service account keys if available
+cp -r /var/local/jenkins/service_account $HOME || true
+
 cd /var/local/git/grpc
 rvm --default use ruby-2.1
 
diff --git a/tools/jenkins/grpc_interop_ruby/build_interop.sh b/tools/jenkins/grpc_interop_ruby/build_interop.sh
index 7d407e7d0a9e2971df9187aef0dda32db6365fd5..c5023f5c1d4e18cbe371b5dfbcf7fd4f2c39782b 100755
--- a/tools/jenkins/grpc_interop_ruby/build_interop.sh
+++ b/tools/jenkins/grpc_interop_ruby/build_interop.sh
@@ -34,6 +34,9 @@ set -e
 mkdir -p /var/local/git
 git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
 
+# copy service account keys if available
+cp -r /var/local/jenkins/service_account $HOME || true
+
 cd /var/local/git/grpc
 rvm --default use ruby-2.1
 
diff --git a/tools/jenkins/grpc_jenkins_slave/Dockerfile b/tools/jenkins/grpc_jenkins_slave/Dockerfile
index 4f5387eeb55f2f5a786aab6972163854bb40801f..5f2b425c8c27e2ef171365c6e4126546c23c88a0 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 95ffb94c6eada11b03a3eb68024136a0085b6ca3..faa7b624b8e44e8a7e62cc4fd6aa48944f7f4877 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 2efc2c714d09eaed0eba5509ab405c51e9feae42..24cf6ba7c88e5222afd8a73fe72e1078536dc663 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 48b6214b9589260ce0e3c6f7b4029cf2e3e47f5a..b953df952cbcac3af22e64223535fbf87cd47b06 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_interop_tests.py b/tools/run_tests/run_interop_tests.py
index f0935fb5d6140194f9905ba236fa3ba4a9886517..48c34f68713639b7f21466d50678f6621930fe68 100755
--- a/tools/run_tests/run_interop_tests.py
+++ b/tools/run_tests/run_interop_tests.py
@@ -82,7 +82,7 @@ class CXXLanguage:
             ['--use_tls=true'])
 
   def cloud_to_prod_env(self):
-    return None
+    return {}
 
   def server_args(self):
     return ['bins/opt/interop_server', '--use_tls=true']
@@ -132,7 +132,7 @@ class JavaLanguage:
             ['--use_tls=true', '--use_test_ca=true'])
 
   def cloud_to_prod_env(self):
-    return None
+    return {}
 
   def server_args(self):
     return ['./run-test-server.sh', '--use_tls=true']
@@ -158,7 +158,7 @@ class GoLanguage:
             ['--use_tls=true'])
 
   def cloud_to_prod_env(self):
-    return None
+    return {}
 
   def server_args(self):
     return ['go', 'run', 'server.go', '--use_tls=true']
@@ -250,8 +250,7 @@ _LANGUAGES = {
 }
 
 # languages supported as cloud_to_cloud servers
-# TODO(jtattermusch): enable other languages as servers as well
-_SERVERS = ['c++', 'node', 'csharp', 'java', 'go']
+_SERVERS = ['c++', 'node', 'csharp', 'java', 'go', 'ruby']
 
 # TODO(jtattermusch): add empty_stream once PHP starts supporting it.
 # TODO(jtattermusch): add timeout_on_sleeping_server once java starts supporting it.
@@ -260,6 +259,9 @@ _TEST_CASES = ['large_unary', 'empty_unary', 'ping_pong',
                'client_streaming', 'server_streaming',
                'cancel_after_begin', 'cancel_after_first_response']
 
+_AUTH_TEST_CASES = ['compute_engine_creds', 'jwt_token_creds',
+                    'oauth2_auth_token', 'per_rpc_creds']
+
 
 def docker_run_cmdline(cmdline, image, docker_args=[], cwd=None, environ=None):
   """Wraps given cmdline array to create 'docker run' cmdline from it."""
@@ -288,22 +290,54 @@ def bash_login_cmdline(cmdline):
   return ['bash', '-l', '-c', ' '.join(cmdline)]
 
 
-def cloud_to_prod_jobspec(language, test_case, docker_image=None):
+def add_auth_options(language, test_case, cmdline, env):
+  """Returns (cmdline, env) tuple with cloud_to_prod_auth test options."""
+
+  language = str(language)
+  cmdline = list(cmdline)
+  env = env.copy()
+
+  # TODO(jtattermusch): this file path only works inside docker
+  key_filepath = '/root/service_account/stubbyCloudTestingTest-ee3fce360ac5.json'
+  oauth_scope_arg = '--oauth_scope=https://www.googleapis.com/auth/xapi.zoo'
+  key_file_arg = '--service_account_key_file=%s' % key_filepath
+  default_account_arg = '--default_service_account=830293263384-compute@developer.gserviceaccount.com'
+
+  if test_case in ['jwt_token_creds', 'per_rpc_creds', 'oauth2_auth_token']:
+    if language in ['csharp', 'node', 'php', 'ruby']:
+      env['GOOGLE_APPLICATION_CREDENTIALS'] = key_filepath
+    else:
+      cmdline += [key_file_arg]
+
+  if test_case in ['per_rpc_creds', 'oauth2_auth_token']:
+    cmdline += [oauth_scope_arg]
+
+  if test_case == 'compute_engine_creds':
+    cmdline += [oauth_scope_arg, default_account_arg]
+
+  return (cmdline, env)
+
+
+def cloud_to_prod_jobspec(language, test_case, docker_image=None, auth=False):
   """Creates jobspec for cloud-to-prod interop test"""
-  cmdline = bash_login_cmdline(language.cloud_to_prod_args() +
-                               ['--test_case=%s' % test_case])
+  cmdline = language.cloud_to_prod_args() + ['--test_case=%s' % test_case]
   cwd = language.client_cwd
   environ = language.cloud_to_prod_env()
+  if auth:
+    cmdline, environ = add_auth_options(language, test_case, cmdline, environ)
+  cmdline = bash_login_cmdline(cmdline)
+
   if docker_image:
     cmdline = docker_run_cmdline(cmdline, image=docker_image, cwd=cwd, environ=environ)
     cwd = None
     environ = None
 
+  suite_name='cloud_to_prod_auth' if auth else 'cloud_to_prod'
   test_job = jobset.JobSpec(
           cmdline=cmdline,
           cwd=cwd,
           environ=environ,
-          shortname="cloud_to_prod:%s:%s" % (language, test_case),
+          shortname="%s:%s:%s" % (suite_name, language, test_case),
           timeout_seconds=2*60,
           flake_retries=5 if args.allow_flakes else 0,
           timeout_retries=2 if args.allow_flakes else 0)
@@ -382,6 +416,11 @@ argp.add_argument('--cloud_to_prod',
                   action='store_const',
                   const=True,
                   help='Run cloud_to_prod tests.')
+argp.add_argument('--cloud_to_prod_auth',
+                  default=False,
+                  action='store_const',
+                  const=True,
+                  help='Run cloud_to_prod_auth tests.')
 argp.add_argument('-s', '--server',
                   choices=['all'] + sorted(_SERVERS),
                   action='append',
@@ -476,6 +515,14 @@ try:
                                          docker_image=docker_images.get(str(language)))
         jobs.append(test_job)
 
+  if args.cloud_to_prod_auth:
+    for language in languages:
+      for test_case in _AUTH_TEST_CASES:
+        test_job = cloud_to_prod_jobspec(language, test_case,
+                                         docker_image=docker_images.get(str(language)),
+                                         auth=True)
+        jobs.append(test_job)
+
   for server in args.override_server:
     server_name = server[0]
     (server_host, server_port) = server[1].split(':')
diff --git a/tools/run_tests/run_node.sh b/tools/run_tests/run_node.sh
index e322ab1995a40c711af632dd6348ee1343917dec..780969089daec2bb8d3540ee95d9251fce14f72a 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 e2135be04c563da4c9c971725b080ea967ea2442..848775e9b199e7c55361424a6f91c763785c85a3 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 e938520403d68ab7a68d0a53c1b8517533c09561..122102ea052f05cedcaa6dcdb78871b688fb20fd 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(),
@@ -713,21 +673,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 +736,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