Resolved merge conflicts
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 0000000..a2431a3
--- /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 0a4248c..0000000
--- 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 ddc8abb..175f8e6 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 44b44af..3600c8b 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 f0a044f..0000000
--- 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 1da6c69..525d68f 100644
--- a/examples/node/route_guide/route_guide_client.js
+++ b/examples/node/route_guide/route_guide_client.js
@@ -31,8 +31,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 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 faae308..5bb8144 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 0000000..7b48c82
--- /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 070b9e8..e889863 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 0000000..1b2674e
--- /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 cb1aa7d..17b8a8e 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 2225ca4..08185ac 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 0faca7d..0eea347 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 b59b62a..8e7cb27 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 28155d0..4b3aaab 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 @@
   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 @@
   }
 }
 
+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 @@
         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 @@
   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 @@
   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 3265425..d916819 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 @@
   }
   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 982ffa4..d812659 100644
--- a/src/core/iomgr/closure.h
+++ b/src/core/iomgr/closure.h
@@ -77,6 +77,9 @@
 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 b48b7f0..231bc98 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 @@
   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 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 @@
   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 @@
                     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 @@
   } 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_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();
-  }
-  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;
+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();
   }
 }
 
-static void set_ready(grpc_exec_ctx *exec_ctx, grpc_fd *fd, gpr_atm *st) {
+/* 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, 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 @@
     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 @@
     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 089aa4d..dc917eb 100644
--- a/src/core/iomgr/fd_posix.h
+++ b/src/core/iomgr/fd_posix.h
@@ -46,6 +46,7 @@
   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 @@
      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 @@
      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 @@
    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 faf0a63..ba9ba73 100644
--- a/src/core/iomgr/pollset_multipoller_with_epoll.c
+++ b/src/core/iomgr/pollset_multipoller_with_epoll.c
@@ -72,7 +72,7 @@
   /* 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 1356ebe..faa6c14 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_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 @@
   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 @@
   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 b663780..d056866 100644
--- a/src/core/iomgr/pollset_posix.c
+++ b/src/core/iomgr/pollset_posix.c
@@ -98,31 +98,63 @@
   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 @@
   /* 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;
+  /* 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;
+    }
   }
-done:
-  if (!locked) {
-    grpc_exec_ctx_flush(exec_ctx);
-    gpr_mu_lock(&pollset->mu);
-    locked = 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 @@
                                                 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 @@
     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 @@
   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 83c5258..34f76db 100644
--- a/src/core/iomgr/pollset_posix.h
+++ b/src/core/iomgr/pollset_posix.h
@@ -50,6 +50,7 @@
 
 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 @@
 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 db3319b..3fea8b5 100644
--- a/src/core/iomgr/tcp_server_windows.c
+++ b/src/core/iomgr/tcp_server_windows.c
@@ -336,6 +336,8 @@
                            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 1304f20..9903e97 100644
--- a/src/core/iomgr/udp_server.c
+++ b/src/core/iomgr/udp_server.c
@@ -278,7 +278,7 @@
 
   /* 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 dbbe097..de5736c 100644
--- a/src/core/iomgr/udp_server.h
+++ b/src/core/iomgr/udp_server.h
@@ -43,7 +43,8 @@
 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 d15a3bc..07c3ff6 100644
--- a/src/core/surface/call.c
+++ b/src/core/surface/call.c
@@ -425,7 +425,12 @@
     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 @@
   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 @@
   }
   /* 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 @@
                            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 f1bbf9a..9c9070e 100644
--- a/src/core/transport/chttp2/bin_encoder.c
+++ b/src/core/transport/chttp2/bin_encoder.c
@@ -185,8 +185,12 @@
   }
 
   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 @@
   }
 
   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 cbb6f17..a40268a 100644
--- a/src/core/tsi/fake_transport_security.c
+++ b/src/core/tsi/fake_transport_security.c
@@ -118,10 +118,10 @@
 }
 
 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 0209b57..0000000
--- 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 7719d08..5d89e22 100644
--- a/src/node/README.md
+++ b/src/node/README.md
@@ -5,51 +5,19 @@
 
 ## 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 @@
 ```
 
 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 247719e..0000000
--- 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 b08a9f9..f98fe24 100644
--- a/src/node/ext/call.cc
+++ b/src/node/ext/call.cc
@@ -168,8 +168,9 @@
     }
     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 caca0fc..8ea0c64 100644
--- a/src/node/ext/node_grpc.cc
+++ b/src/node/ext/node_grpc.cc
@@ -247,4 +247,4 @@
   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 02b73f6..c49fdc8 100644
--- a/src/node/index.js
+++ b/src/node/index.js
@@ -43,7 +43,7 @@
 
 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 @@
     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 6d0eb93..0000000
--- 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 215d4212..da614ad 100644
--- a/src/node/interop/interop_client.js
+++ b/src/node/interop/interop_client.js
@@ -37,7 +37,9 @@
 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 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
@@ -61,6 +66,27 @@
 }
 
 /**
+ * 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
  * @param {function} done Callback to call when the test is completed. Included
@@ -271,6 +297,54 @@
   });
 }
 
+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 @@
   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 99155e9..3e83304 100644
--- a/src/node/interop/interop_server.js
+++ b/src/node/interop/interop_server.js
@@ -37,7 +37,12 @@
 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
@@ -51,6 +56,34 @@
 }
 
 /**
+ * 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
  * @param {Call} call Call to handle
@@ -58,7 +91,8 @@
  *     or error
  */
 function handleEmpty(call, callback) {
-  callback(null, {});
+  echoHeader(call);
+  callback(null, {}, getEchoTrailer(call));
 }
 
 /**
@@ -68,6 +102,7 @@
  *     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 @@
     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 @@
  *     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 @@
  * @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 @@
       }
     });
   });
-  call.end();
+  call.end(getEchoTrailer(call));
 }
 
 /**
@@ -122,6 +161,7 @@
  * @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 @@
     });
   });
   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 7df85e3..0000000
--- 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 24e6749..0000000
--- 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 7f51023..33ddb3c 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 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 c1da70b..5c24e46 100644
--- a/src/node/src/metadata.js
+++ b/src/node/src/metadata.js
@@ -59,6 +59,7 @@
 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._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 70b4a9d..87b5b7a 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 e7f071b..ec50218 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 d81df2a..4418dff 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 fa06ad4..b17cd33 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 4b8da3b..813221d 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 2ca07c1..804c1d4 100644
--- a/src/node/test/interop_sanity_test.js
+++ b/src/node/test/interop_sanity_test.js
@@ -90,4 +90,8 @@
     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 1e69d52..999a183 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 85f399c..49643f9 100644
--- a/src/node/test/surface_test.js
+++ b/src/node/test/surface_test.js
@@ -356,7 +356,7 @@
     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 8736062..9a7637d 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 fc0026d..86e8767 100644
--- a/test/core/iomgr/udp_server_test.c
+++ b/test/core/iomgr/udp_server_test.c
@@ -49,7 +49,8 @@
 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 d924aba..bae4e4c 100644
--- a/tools/codegen/core/gen_hpack_tables.c
+++ b/tools/codegen/core/gen_hpack_tables.c
@@ -71,7 +71,11 @@
   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 @@
     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 2ffda54..677fa5c 100644
--- a/tools/codegen/core/gen_legal_metadata_characters.c
+++ b/tools/codegen/core/gen_legal_metadata_characters.c
@@ -41,7 +41,12 @@
 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 2c562e9..8b7809f 100755
--- a/tools/jenkins/build_docker_and_run_tests.sh
+++ b/tools/jenkins/build_docker_and_run_tests.sh
@@ -37,8 +37,13 @@
 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 @@
   -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 b595858..3664eed 100755
--- a/tools/jenkins/build_interop_image.sh
+++ b/tools/jenkins/build_interop_image.sh
@@ -35,12 +35,12 @@
 
 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 @@
 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 @@
 #  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 2e39bc6..8bafeea 100755
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/jenkins/docker_run_tests.sh
@@ -36,6 +36,10 @@
 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 e91cbed..8fde687 100755
--- a/tools/jenkins/grpc_interop_csharp/build_interop.sh
+++ b/tools/jenkins/grpc_interop_csharp/build_interop.sh
@@ -34,6 +34,9 @@
 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 4163e11..1c0828d 100755
--- a/tools/jenkins/grpc_interop_cxx/build_interop.sh
+++ b/tools/jenkins/grpc_interop_cxx/build_interop.sh
@@ -34,6 +34,9 @@
 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 78dd4ea..05fc6df 100755
--- a/tools/jenkins/grpc_interop_go/build_interop.sh
+++ b/tools/jenkins/grpc_interop_go/build_interop.sh
@@ -36,6 +36,9 @@
 # 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 4ee2f44..9997c63 100755
--- a/tools/jenkins/grpc_interop_java/build_interop.sh
+++ b/tools/jenkins/grpc_interop_java/build_interop.sh
@@ -34,6 +34,9 @@
 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 55e2a40..84e25e3 100755
--- a/tools/jenkins/grpc_interop_node/build_interop.sh
+++ b/tools/jenkins/grpc_interop_node/build_interop.sh
@@ -34,6 +34,9 @@
 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 745dea8..cd9d678 100755
--- a/tools/jenkins/grpc_interop_php/build_interop.sh
+++ b/tools/jenkins/grpc_interop_php/build_interop.sh
@@ -34,6 +34,9 @@
 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 7d407e7..c5023f5 100755
--- a/tools/jenkins/grpc_interop_ruby/build_interop.sh
+++ b/tools/jenkins/grpc_interop_ruby/build_interop.sh
@@ -34,6 +34,9 @@
 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 4f5387e..5f2b425 100644
--- a/tools/jenkins/grpc_jenkins_slave/Dockerfile
+++ b/tools/jenkins/grpc_jenkins_slave/Dockerfile
@@ -126,10 +126,11 @@
 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 95ffb94..faa7b62 100755
--- a/tools/run_tests/build_node.sh
+++ b/tools/run_tests/build_node.sh
@@ -36,9 +36,4 @@
 # 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 2efc2c7..24cf6ba 100755
--- a/tools/run_tests/build_python.sh
+++ b/tools/run_tests/build_python.sh
@@ -39,6 +39,33 @@
 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 @@
     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 48b6214..b953df9 100755
--- a/tools/run_tests/port_server.py
+++ b/tools/run_tests/port_server.py
@@ -38,6 +38,18 @@
 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 @@
 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 @@
       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 @@
       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 f0935fb..48c34f6 100755
--- a/tools/run_tests/run_interop_tests.py
+++ b/tools/run_tests/run_interop_tests.py
@@ -82,7 +82,7 @@
             ['--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 @@
             ['--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 @@
             ['--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 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 @@
                '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 @@
   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 @@
                   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 @@
                                          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 e322ab1..7809690 100755
--- a/tools/run_tests/run_node.sh
+++ b/tools/run_tests/run_node.sh
@@ -37,19 +37,15 @@
 
 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 e2135be..848775e 100755
--- a/tools/run_tests/run_python.sh
+++ b/tools/run_tests/run_python.sh
@@ -40,4 +40,4 @@
 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 e938520..122102e 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -181,45 +181,6 @@
   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 @@
     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 @@
 _LANGUAGES = {
     'c++': CLanguage('cxx', 'c++'),
     'c': CLanguage('c', 'c'),
-    'gyp': GYPCLanguage(),
     'node': NodeLanguage(),
     'php': PhpLanguage(),
     'python': PythonLanguage(),
@@ -713,21 +673,24 @@
   # 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 @@
   # 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