aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--BUILD162
-rw-r--r--Makefile465
-rw-r--r--README.md2
-rw-r--r--binding.gyp31
-rw-r--r--build.yaml97
-rw-r--r--config.m436
-rw-r--r--gRPC.podspec75
-rwxr-xr-xgrpc.gemspec53
-rw-r--r--include/grpc++/impl/codegen/async_stream.h36
-rw-r--r--include/grpc++/impl/codegen/async_unary_call.h12
-rw-r--r--include/grpc++/impl/codegen/call.h7
-rw-r--r--include/grpc++/impl/codegen/client_context.h13
-rw-r--r--include/grpc++/impl/codegen/client_unary_call.h3
-rw-r--r--include/grpc++/impl/codegen/method_handler_impl.h15
-rw-r--r--include/grpc++/impl/codegen/server_context.h2
-rw-r--r--include/grpc++/impl/codegen/sync_stream.h24
-rw-r--r--include/grpc/grpc.h15
-rw-r--r--include/grpc/impl/codegen/grpc_types.h12
-rw-r--r--package.json53
-rw-r--r--package.xml53
-rw-r--r--src/compiler/csharp_generator.cc157
-rw-r--r--src/core/ext/census/README.md (renamed from src/core/lib/census/README.md)0
-rw-r--r--src/core/ext/census/aggregation.h (renamed from src/core/lib/census/aggregation.h)6
-rw-r--r--src/core/ext/census/census_init.c (renamed from src/core/lib/statistics/census_init.c)6
-rw-r--r--src/core/ext/census/census_interface.h (renamed from src/core/lib/statistics/census_interface.h)6
-rw-r--r--src/core/ext/census/census_log.c (renamed from src/core/lib/statistics/census_log.c)2
-rw-r--r--src/core/ext/census/census_log.h (renamed from src/core/lib/statistics/census_log.h)6
-rw-r--r--src/core/ext/census/census_rpc_stats.c (renamed from src/core/lib/statistics/census_rpc_stats.c)10
-rw-r--r--src/core/ext/census/census_rpc_stats.h (renamed from src/core/lib/statistics/census_rpc_stats.h)8
-rw-r--r--src/core/ext/census/census_tracing.c (renamed from src/core/lib/statistics/census_tracing.c)6
-rw-r--r--src/core/ext/census/census_tracing.h (renamed from src/core/lib/statistics/census_tracing.h)8
-rw-r--r--src/core/ext/census/context.c (renamed from src/core/lib/census/context.c)0
-rw-r--r--src/core/ext/census/grpc_context.c (renamed from src/core/lib/census/grpc_context.c)0
-rw-r--r--src/core/ext/census/grpc_filter.c (renamed from src/core/lib/census/grpc_filter.c)6
-rw-r--r--src/core/ext/census/grpc_filter.h (renamed from src/core/lib/census/grpc_filter.h)6
-rw-r--r--src/core/ext/census/grpc_plugin.c (renamed from src/core/lib/census/grpc_plugin.c)6
-rw-r--r--src/core/ext/census/hash_table.c (renamed from src/core/lib/statistics/hash_table.c)2
-rw-r--r--src/core/ext/census/hash_table.h (renamed from src/core/lib/statistics/hash_table.h)6
-rw-r--r--src/core/ext/census/initialize.c (renamed from src/core/lib/census/initialize.c)0
-rw-r--r--src/core/ext/census/mlog.c (renamed from src/core/lib/census/mlog.c)2
-rw-r--r--src/core/ext/census/mlog.h (renamed from src/core/lib/census/mlog.h)6
-rw-r--r--src/core/ext/census/operation.c (renamed from src/core/lib/census/operation.c)0
-rw-r--r--src/core/ext/census/placeholders.c (renamed from src/core/lib/census/placeholders.c)0
-rw-r--r--src/core/ext/census/rpc_metric_id.h (renamed from src/core/lib/census/rpc_metric_id.h)6
-rw-r--r--src/core/ext/census/tracing.c (renamed from src/core/lib/census/tracing.c)0
-rw-r--r--src/core/ext/census/window_stats.c (renamed from src/core/lib/statistics/window_stats.c)2
-rw-r--r--src/core/ext/census/window_stats.h (renamed from src/core/lib/statistics/window_stats.h)6
-rw-r--r--src/core/ext/lb_policy/pick_first/pick_first.c54
-rw-r--r--src/core/ext/lb_policy/round_robin/round_robin.c46
-rw-r--r--src/core/ext/resolver/dns/native/README.md2
-rw-r--r--src/core/ext/resolver/dns/native/dns_resolver.c (renamed from src/core/lib/client_config/resolvers/dns_resolver.c)25
-rw-r--r--src/core/ext/resolver/sockaddr/README.md1
-rw-r--r--src/core/ext/resolver/sockaddr/sockaddr_resolver.c (renamed from src/core/lib/client_config/resolvers/sockaddr_resolver.c)69
-rw-r--r--src/core/ext/resolver/zookeeper/README.md1
-rw-r--r--src/core/ext/resolver/zookeeper/zookeeper_resolver.c (renamed from src/core/lib/client_config/resolvers/zookeeper_resolver.c)33
-rw-r--r--src/core/ext/transport/chttp2/client/insecure/channel_create.c91
-rw-r--r--src/core/ext/transport/chttp2/client/secure/secure_channel_create.c101
-rw-r--r--src/core/lib/channel/client_channel.c40
-rw-r--r--src/core/lib/channel/http_client_filter.c10
-rw-r--r--src/core/lib/channel/subchannel_call_holder.c5
-rw-r--r--src/core/lib/channel/subchannel_call_holder.h1
-rw-r--r--src/core/lib/client_config/README.md2
-rw-r--r--src/core/lib/client_config/client_channel_factory.c (renamed from src/core/lib/client_config/subchannel_factory.c)20
-rw-r--r--src/core/lib/client_config/client_channel_factory.h85
-rw-r--r--src/core/lib/client_config/lb_policy.c11
-rw-r--r--src/core/lib/client_config/lb_policy.h13
-rw-r--r--src/core/lib/client_config/lb_policy_factory.h4
-rw-r--r--src/core/lib/client_config/resolver_factory.h4
-rw-r--r--src/core/lib/client_config/resolver_registry.c26
-rw-r--r--src/core/lib/client_config/resolver_registry.h6
-rw-r--r--src/core/lib/client_config/resolvers/zookeeper_resolver.h42
-rw-r--r--src/core/lib/client_config/subchannel.c21
-rw-r--r--src/core/lib/client_config/uri_parser.c68
-rw-r--r--src/core/lib/client_config/uri_parser.h12
-rw-r--r--src/core/lib/iomgr/ev_poll_and_epoll_posix.c1936
-rw-r--r--src/core/lib/iomgr/ev_poll_and_epoll_posix.h (renamed from src/core/lib/census/grpc_plugin.h)11
-rw-r--r--src/core/lib/iomgr/ev_posix.c165
-rw-r--r--src/core/lib/iomgr/ev_posix.h158
-rw-r--r--src/core/lib/iomgr/fd_posix.c454
-rw-r--r--src/core/lib/iomgr/fd_posix.h192
-rw-r--r--src/core/lib/iomgr/iomgr.c2
-rw-r--r--src/core/lib/iomgr/iomgr_internal.h4
-rw-r--r--src/core/lib/iomgr/iomgr_posix.c6
-rw-r--r--src/core/lib/iomgr/iomgr_windows.c3
-rw-r--r--src/core/lib/iomgr/pollset_multipoller_with_epoll.c324
-rw-r--r--src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c234
-rw-r--r--src/core/lib/iomgr/pollset_posix.c633
-rw-r--r--src/core/lib/iomgr/pollset_posix.h153
-rw-r--r--src/core/lib/iomgr/pollset_set_posix.c202
-rw-r--r--src/core/lib/iomgr/pollset_set_posix.h45
-rw-r--r--src/core/lib/iomgr/pollset_windows.c4
-rw-r--r--src/core/lib/iomgr/pollset_windows.h3
-rw-r--r--src/core/lib/iomgr/tcp_client_posix.c6
-rw-r--r--src/core/lib/iomgr/tcp_posix.c5
-rw-r--r--src/core/lib/iomgr/tcp_posix.h2
-rw-r--r--src/core/lib/iomgr/tcp_server_posix.c1
-rw-r--r--src/core/lib/iomgr/udp_server.c4
-rw-r--r--src/core/lib/iomgr/udp_server.h2
-rw-r--r--src/core/lib/iomgr/workqueue_posix.c3
-rw-r--r--src/core/lib/json/json_reader.c11
-rw-r--r--src/core/lib/surface/call.c10
-rw-r--r--src/core/lib/surface/channel.h2
-rw-r--r--src/core/lib/surface/init.c12
-rw-r--r--src/core/lib/surface/server.c259
-rw-r--r--src/core/lib/transport/transport.h6
-rw-r--r--src/core/plugin_registry/grpc_plugin_registry.c12
-rw-r--r--src/core/plugin_registry/grpc_unsecure_plugin_registry.c12
-rw-r--r--src/cpp/client/client_context.cc2
-rw-r--r--src/cpp/server/server.cc18
-rw-r--r--src/csharp/.nuget/packages.config4
-rw-r--r--src/csharp/Grpc.Auth/Grpc.Auth.csproj51
-rw-r--r--src/csharp/Grpc.Auth/Grpc.Auth.nuspec2
-rw-r--r--src/csharp/Grpc.Auth/app.config19
-rw-r--r--src/csharp/Grpc.Auth/packages.config8
-rw-r--r--src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj1
-rw-r--r--src/csharp/Grpc.Core.Tests/HalfcloseTest.cs97
-rw-r--r--src/csharp/Grpc.Core.Tests/PInvokeTest.cs6
-rw-r--r--src/csharp/Grpc.Core/CallInvoker.cs84
-rw-r--r--src/csharp/Grpc.Core/ClientBase.cs161
-rw-r--r--src/csharp/Grpc.Core/DefaultCallInvoker.cs112
-rw-r--r--src/csharp/Grpc.Core/Grpc.Core.csproj4
-rw-r--r--src/csharp/Grpc.Core/Internal/AsyncCall.cs14
-rw-r--r--src/csharp/Grpc.Core/Internal/AsyncCallBase.cs38
-rw-r--r--src/csharp/Grpc.Core/Internal/AsyncCallServer.cs6
-rw-r--r--src/csharp/Grpc.Core/Internal/InterceptingCallInvoker.cs134
-rw-r--r--src/csharp/Grpc.Core/Internal/UnimplementedCallInvoker.cs75
-rw-r--r--src/csharp/Grpc.Examples.MathClient/MathClient.cs4
-rw-r--r--src/csharp/Grpc.Examples/MathExamples.cs14
-rw-r--r--src/csharp/Grpc.Examples/MathGrpc.cs105
-rw-r--r--src/csharp/Grpc.Examples/MathServiceImpl.cs12
-rw-r--r--src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs2
-rw-r--r--src/csharp/Grpc.HealthCheck/HealthGrpc.cs57
-rw-r--r--src/csharp/Grpc.HealthCheck/HealthServiceImpl.cs4
-rw-r--r--src/csharp/Grpc.IntegrationTesting.Client/Grpc.IntegrationTesting.Client.csproj39
-rw-r--r--src/csharp/Grpc.IntegrationTesting.Client/app.config19
-rw-r--r--src/csharp/Grpc.IntegrationTesting.Client/packages.config8
-rw-r--r--src/csharp/Grpc.IntegrationTesting.QpsWorker/app.config4
-rw-r--r--src/csharp/Grpc.IntegrationTesting.Server/Grpc.IntegrationTesting.Server.csproj39
-rw-r--r--src/csharp/Grpc.IntegrationTesting.Server/app.config19
-rw-r--r--src/csharp/Grpc.IntegrationTesting.Server/packages.config8
-rw-r--r--src/csharp/Grpc.IntegrationTesting/BenchmarkServiceImpl.cs8
-rw-r--r--src/csharp/Grpc.IntegrationTesting/ClientRunners.cs123
-rw-r--r--src/csharp/Grpc.IntegrationTesting/GeneratedClientTest.cs106
-rw-r--r--src/csharp/Grpc.IntegrationTesting/GeneratedServiceBaseTest.cs116
-rw-r--r--src/csharp/Grpc.IntegrationTesting/Grpc.IntegrationTesting.csproj53
-rw-r--r--src/csharp/Grpc.IntegrationTesting/InterarrivalTimers.cs148
-rw-r--r--src/csharp/Grpc.IntegrationTesting/InteropClient.cs26
-rw-r--r--src/csharp/Grpc.IntegrationTesting/InteropClientServerTest.cs2
-rw-r--r--src/csharp/Grpc.IntegrationTesting/MetadataCredentialsTest.cs8
-rw-r--r--src/csharp/Grpc.IntegrationTesting/ServicesGrpc.cs188
-rw-r--r--src/csharp/Grpc.IntegrationTesting/SslCredentialsTest.cs4
-rw-r--r--src/csharp/Grpc.IntegrationTesting/TestGrpc.cs287
-rw-r--r--src/csharp/Grpc.IntegrationTesting/TestServiceImpl.cs16
-rw-r--r--src/csharp/Grpc.IntegrationTesting/WorkerServiceImpl.cs10
-rw-r--r--src/csharp/Grpc.IntegrationTesting/app.config19
-rw-r--r--src/csharp/Grpc.IntegrationTesting/packages.config8
-rw-r--r--src/csharp/grpc.native.csharp/grpc.native.csharp.nuspec2
-rw-r--r--src/csharp/tests.json4
-rw-r--r--src/node/interop/interop_client.js2
-rw-r--r--src/node/stress/metrics_client.js (renamed from src/core/lib/client_config/resolvers/sockaddr_resolver.h)39
-rw-r--r--src/node/stress/metrics_server.js (renamed from src/core/lib/client_config/subchannel_factory.h)75
-rw-r--r--src/node/stress/stress_client.js126
-rw-r--r--src/proto/grpc/testing/messages.proto8
-rw-r--r--src/proto/grpc/testing/test.proto4
-rw-r--r--src/python/grpcio/grpc/_cython/imports.generated.h2
-rw-r--r--src/python/grpcio/grpc/beta/implementations.py9
-rw-r--r--src/python/grpcio/grpc_core_dependencies.py31
-rw-r--r--src/python/grpcio/tests/interop/_secure_interop_test.py2
-rw-r--r--src/python/grpcio/tests/interop/client.py2
-rw-r--r--src/python/grpcio/tests/unit/beta/_beta_features_test.py4
-rw-r--r--src/python/grpcio/tests/unit/beta/_face_interface_test.py2
-rw-r--r--src/python/grpcio/tests/unit/beta/_implementations_test.py5
-rw-r--r--src/ruby/ext/grpc/rb_grpc_imports.generated.h2
-rw-r--r--src/ruby/lib/grpc/generic/rpc_server.rb4
-rwxr-xr-xsrc/ruby/pb/generate_proto_ruby.sh9
-rw-r--r--src/ruby/qps/client.rb164
-rw-r--r--src/ruby/qps/histogram.rb88
-rw-r--r--src/ruby/qps/qps-common.rb76
-rw-r--r--src/ruby/qps/server.rb91
-rw-r--r--src/ruby/qps/src/proto/grpc/testing/control.rb129
-rw-r--r--src/ruby/qps/src/proto/grpc/testing/messages.rb80
-rw-r--r--src/ruby/qps/src/proto/grpc/testing/payloads.rb33
-rw-r--r--src/ruby/qps/src/proto/grpc/testing/services.rb14
-rw-r--r--src/ruby/qps/src/proto/grpc/testing/services_services.rb46
-rw-r--r--src/ruby/qps/src/proto/grpc/testing/stats.rb39
-rwxr-xr-xsrc/ruby/qps/worker.rb128
-rw-r--r--src/ruby/spec/generic/rpc_server_spec.rb5
-rw-r--r--test/core/bad_client/bad_client.c3
-rwxr-xr-xtest/core/bad_client/gen_build_yaml.py1
-rw-r--r--test/core/bad_client/tests/head_of_line_blocking.c151
-rw-r--r--test/core/bad_ssl/bad_ssl_test.c2
-rw-r--r--test/core/census/mlog_test.c2
-rw-r--r--test/core/client_config/resolvers/dns_resolver_connectivity_test.c33
-rw-r--r--test/core/client_config/resolvers/dns_resolver_test.c36
-rw-r--r--test/core/client_config/resolvers/sockaddr_resolver_test.c39
-rw-r--r--test/core/client_config/uri_parser_test.c68
-rw-r--r--test/core/end2end/dualstack_socket_test.c4
-rw-r--r--test/core/end2end/fixtures/h2_full+poll+pipe.c122
-rw-r--r--test/core/end2end/fixtures/h2_full+poll.c120
-rw-r--r--test/core/end2end/fixtures/h2_ssl+poll.c194
-rw-r--r--test/core/end2end/fixtures/h2_uds+poll.c126
-rw-r--r--test/core/end2end/fixtures/proxy.c2
-rwxr-xr-xtest/core/end2end/gen_build_yaml.py6
-rw-r--r--test/core/end2end/goaway_server_test.c301
-rw-r--r--test/core/end2end/tests/idempotent_request.c2
-rw-r--r--test/core/end2end/tests/simple_delayed_request.c2
-rw-r--r--test/core/internal_api_canaries/iomgr.c2
-rw-r--r--test/core/internal_api_canaries/support.c2
-rw-r--r--test/core/internal_api_canaries/transport.c2
-rw-r--r--test/core/iomgr/endpoint_pair_test.c4
-rw-r--r--test/core/iomgr/fd_posix_test.c11
-rw-r--r--test/core/iomgr/tcp_client_posix_test.c1
-rw-r--r--test/core/iomgr/udp_server_test.c2
-rw-r--r--test/core/json/corpus/15a8f2e7f94aa00b46f1b991416aa015dd6335801
-rw-r--r--test/core/json/corpus/56cd60743c2cee939f5f357905bd36ec9363f4411
-rw-r--r--test/core/json/corpus/743e89b768af4bd591ea7228118550b1bfb8e7d11
-rw-r--r--test/core/json/corpus/775e8ffda1f5d340dba472d06dc7c8bf8159e3791
-rw-r--r--test/core/json/corpus/8d952ec2e33b2a6a1c7876898719a610f55463881
-rw-r--r--test/core/json/corpus/a0d4af29c6c223b48fe34d6a09b3a7466242f33c1
-rw-r--r--test/core/json/fuzzer.c39
-rw-r--r--test/core/json/json_test.c2
-rw-r--r--test/core/security/jwt_verifier_test.c12
-rw-r--r--test/core/statistics/census_log_tests.c2
-rw-r--r--test/core/statistics/census_stub_test.c4
-rw-r--r--test/core/statistics/hash_table_test.c2
-rw-r--r--test/core/statistics/rpc_stats_test.c6
-rw-r--r--test/core/statistics/trace_test.c6
-rw-r--r--test/core/statistics/window_stats_test.c2
-rw-r--r--test/core/surface/server_test.c22
-rw-r--r--test/core/util/one_corpus_entry_fuzzer.c (renamed from src/core/lib/client_config/resolvers/dns_resolver.h)20
-rw-r--r--test/core/util/reconnect_server.c9
-rw-r--r--test/core/util/reconnect_server.h3
-rw-r--r--test/cpp/end2end/async_end2end_test.cc2
-rw-r--r--test/cpp/end2end/client_crash_test.cc2
-rw-r--r--test/cpp/end2end/server_crash_test_client.cc1
-rw-r--r--test/cpp/end2end/thread_stress_test.cc1
-rw-r--r--test/cpp/interop/reconnect_interop_client.cc26
-rw-r--r--test/cpp/interop/reconnect_interop_server.cc10
-rw-r--r--test/cpp/interop/stress_test.cc4
-rw-r--r--test/cpp/util/create_test_channel.cc15
-rw-r--r--test/cpp/util/create_test_channel.h8
-rw-r--r--tools/buildgen/plugins/make_fuzzer_tests.py57
-rwxr-xr-xtools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh2
-rw-r--r--tools/doxygen/Doxyfile.core.internal53
-rwxr-xr-xtools/gce/create_interop_worker.sh2
-rwxr-xr-xtools/gce/create_linux_performance_worker.sh10
-rwxr-xr-xtools/gce/linux_performance_worker_init.sh11
-rw-r--r--tools/run_tests/performance/__init__.py28
-rwxr-xr-xtools/run_tests/performance/build_performance.sh19
-rwxr-xr-xtools/run_tests/performance/remote_host_build.sh4
-rwxr-xr-xtools/run_tests/performance/remote_host_prepare.sh7
-rwxr-xr-xtools/run_tests/performance/run_worker_csharp.sh38
-rwxr-xr-xtools/run_tests/performance/run_worker_node.sh38
-rw-r--r--tools/run_tests/performance/scenario_config.py153
-rw-r--r--tools/run_tests/run_csharp.bat4
-rwxr-xr-xtools/run_tests/run_node.sh3
-rwxr-xr-xtools/run_tests/run_performance_tests.py157
-rw-r--r--tools/run_tests/sources_and_headers.json339
-rw-r--r--tools/run_tests/stress_test/README.md4
-rw-r--r--tools/run_tests/stress_test/STRESS_CLIENT_SPEC.md6
-rwxr-xr-xtools/run_tests/stress_test/run_on_gke.py3
-rw-r--r--tools/run_tests/tests.json18092
-rw-r--r--vsprojects/buildtests_c.sln52
-rw-r--r--vsprojects/grpc.sln24
-rw-r--r--vsprojects/vcxproj/grpc/grpc.vcxproj84
-rw-r--r--vsprojects/vcxproj/grpc/grpc.vcxproj.filters183
-rw-r--r--vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj84
-rw-r--r--vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters183
-rw-r--r--vsprojects/vcxproj/one_input_fuzzer/one_input_fuzzer.vcxproj167
-rw-r--r--vsprojects/vcxproj/one_input_fuzzer/one_input_fuzzer.vcxproj.filters21
-rw-r--r--vsprojects/vcxproj/test/head_of_line_blocking_bad_client_test/head_of_line_blocking_bad_client_test.vcxproj202
-rw-r--r--vsprojects/vcxproj/test/head_of_line_blocking_bad_client_test/head_of_line_blocking_bad_client_test.vcxproj.filters24
272 files changed, 24383 insertions, 7728 deletions
diff --git a/BUILD b/BUILD
index 32ff4b4d9a..e5c5599020 100644
--- a/BUILD
+++ b/BUILD
@@ -159,6 +159,12 @@ cc_library(
cc_library(
name = "grpc",
srcs = [
+ "src/core/ext/census/aggregation.h",
+ "src/core/ext/census/census_interface.h",
+ "src/core/ext/census/census_rpc_stats.h",
+ "src/core/ext/census/grpc_filter.h",
+ "src/core/ext/census/mlog.h",
+ "src/core/ext/census/rpc_metric_id.h",
"src/core/ext/lb_policy/grpclb/load_balancer_api.h",
"src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
"src/core/ext/transport/chttp2/transport/alpn.h",
@@ -182,11 +188,6 @@ cc_library(
"src/core/ext/transport/chttp2/transport/stream_map.h",
"src/core/ext/transport/chttp2/transport/timeout_encoding.h",
"src/core/ext/transport/chttp2/transport/varint.h",
- "src/core/lib/census/aggregation.h",
- "src/core/lib/census/grpc_filter.h",
- "src/core/lib/census/grpc_plugin.h",
- "src/core/lib/census/mlog.h",
- "src/core/lib/census/rpc_metric_id.h",
"src/core/lib/channel/channel_args.h",
"src/core/lib/channel/channel_stack.h",
"src/core/lib/channel/channel_stack_builder.h",
@@ -197,6 +198,7 @@ cc_library(
"src/core/lib/channel/http_client_filter.h",
"src/core/lib/channel/http_server_filter.h",
"src/core/lib/channel/subchannel_call_holder.h",
+ "src/core/lib/client_config/client_channel_factory.h",
"src/core/lib/client_config/client_config.h",
"src/core/lib/client_config/connector.h",
"src/core/lib/client_config/initial_connect_string.h",
@@ -206,10 +208,7 @@ cc_library(
"src/core/lib/client_config/resolver.h",
"src/core/lib/client_config/resolver_factory.h",
"src/core/lib/client_config/resolver_registry.h",
- "src/core/lib/client_config/resolvers/dns_resolver.h",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.h",
"src/core/lib/client_config/subchannel.h",
- "src/core/lib/client_config/subchannel_factory.h",
"src/core/lib/client_config/subchannel_index.h",
"src/core/lib/client_config/uri_parser.h",
"src/core/lib/compression/algorithm_metadata.h",
@@ -221,17 +220,16 @@ cc_library(
"src/core/lib/iomgr/closure.h",
"src/core/lib/iomgr/endpoint.h",
"src/core/lib/iomgr/endpoint_pair.h",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.h",
+ "src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.h",
"src/core/lib/iomgr/executor.h",
- "src/core/lib/iomgr/fd_posix.h",
"src/core/lib/iomgr/iocp_windows.h",
"src/core/lib/iomgr/iomgr.h",
"src/core/lib/iomgr/iomgr_internal.h",
"src/core/lib/iomgr/iomgr_posix.h",
"src/core/lib/iomgr/pollset.h",
- "src/core/lib/iomgr/pollset_posix.h",
"src/core/lib/iomgr/pollset_set.h",
- "src/core/lib/iomgr/pollset_set_posix.h",
"src/core/lib/iomgr/pollset_set_windows.h",
"src/core/lib/iomgr/pollset_windows.h",
"src/core/lib/iomgr/resolve_address.h",
@@ -268,8 +266,6 @@ cc_library(
"src/core/lib/security/secure_endpoint.h",
"src/core/lib/security/security_connector.h",
"src/core/lib/security/security_context.h",
- "src/core/lib/statistics/census_interface.h",
- "src/core/lib/statistics/census_rpc_stats.h",
"src/core/lib/surface/api_trace.h",
"src/core/lib/surface/call.h",
"src/core/lib/surface/call_test_only.h",
@@ -294,10 +290,21 @@ cc_library(
"src/core/lib/tsi/ssl_types.h",
"src/core/lib/tsi/transport_security.h",
"src/core/lib/tsi/transport_security_interface.h",
+ "src/core/ext/census/context.c",
+ "src/core/ext/census/grpc_context.c",
+ "src/core/ext/census/grpc_filter.c",
+ "src/core/ext/census/grpc_plugin.c",
+ "src/core/ext/census/initialize.c",
+ "src/core/ext/census/mlog.c",
+ "src/core/ext/census/operation.c",
+ "src/core/ext/census/placeholders.c",
+ "src/core/ext/census/tracing.c",
"src/core/ext/lb_policy/grpclb/load_balancer_api.c",
"src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c",
"src/core/ext/lb_policy/pick_first/pick_first.c",
"src/core/ext/lb_policy/round_robin/round_robin.c",
+ "src/core/ext/resolver/dns/native/dns_resolver.c",
+ "src/core/ext/resolver/sockaddr/sockaddr_resolver.c",
"src/core/ext/transport/chttp2/client/insecure/channel_create.c",
"src/core/ext/transport/chttp2/client/secure/secure_channel_create.c",
"src/core/ext/transport/chttp2/server/insecure/server_chttp2.c",
@@ -323,15 +330,6 @@ cc_library(
"src/core/ext/transport/chttp2/transport/timeout_encoding.c",
"src/core/ext/transport/chttp2/transport/varint.c",
"src/core/ext/transport/chttp2/transport/writing.c",
- "src/core/lib/census/context.c",
- "src/core/lib/census/grpc_context.c",
- "src/core/lib/census/grpc_filter.c",
- "src/core/lib/census/grpc_plugin.c",
- "src/core/lib/census/initialize.c",
- "src/core/lib/census/mlog.c",
- "src/core/lib/census/operation.c",
- "src/core/lib/census/placeholders.c",
- "src/core/lib/census/tracing.c",
"src/core/lib/channel/channel_args.c",
"src/core/lib/channel/channel_stack.c",
"src/core/lib/channel/channel_stack_builder.c",
@@ -341,6 +339,7 @@ cc_library(
"src/core/lib/channel/http_client_filter.c",
"src/core/lib/channel/http_server_filter.c",
"src/core/lib/channel/subchannel_call_holder.c",
+ "src/core/lib/client_config/client_channel_factory.c",
"src/core/lib/client_config/client_config.c",
"src/core/lib/client_config/connector.c",
"src/core/lib/client_config/default_initial_connect_string.c",
@@ -351,10 +350,7 @@ cc_library(
"src/core/lib/client_config/resolver.c",
"src/core/lib/client_config/resolver_factory.c",
"src/core/lib/client_config/resolver_registry.c",
- "src/core/lib/client_config/resolvers/dns_resolver.c",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.c",
"src/core/lib/client_config/subchannel.c",
- "src/core/lib/client_config/subchannel_factory.c",
"src/core/lib/client_config/subchannel_index.c",
"src/core/lib/client_config/uri_parser.c",
"src/core/lib/compression/compression_algorithm.c",
@@ -368,17 +364,14 @@ cc_library(
"src/core/lib/iomgr/endpoint.c",
"src/core/lib/iomgr/endpoint_pair_posix.c",
"src/core/lib/iomgr/endpoint_pair_windows.c",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.c",
+ "src/core/lib/iomgr/ev_posix.c",
"src/core/lib/iomgr/exec_ctx.c",
"src/core/lib/iomgr/executor.c",
- "src/core/lib/iomgr/fd_posix.c",
"src/core/lib/iomgr/iocp_windows.c",
"src/core/lib/iomgr/iomgr.c",
"src/core/lib/iomgr/iomgr_posix.c",
"src/core/lib/iomgr/iomgr_windows.c",
- "src/core/lib/iomgr/pollset_multipoller_with_epoll.c",
- "src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c",
- "src/core/lib/iomgr/pollset_posix.c",
- "src/core/lib/iomgr/pollset_set_posix.c",
"src/core/lib/iomgr/pollset_set_windows.c",
"src/core/lib/iomgr/pollset_windows.c",
"src/core/lib/iomgr/resolve_address_posix.c",
@@ -529,6 +522,12 @@ cc_library(
cc_library(
name = "grpc_unsecure",
srcs = [
+ "src/core/ext/census/aggregation.h",
+ "src/core/ext/census/census_interface.h",
+ "src/core/ext/census/census_rpc_stats.h",
+ "src/core/ext/census/grpc_filter.h",
+ "src/core/ext/census/mlog.h",
+ "src/core/ext/census/rpc_metric_id.h",
"src/core/ext/lb_policy/grpclb/load_balancer_api.h",
"src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
"src/core/ext/transport/chttp2/transport/alpn.h",
@@ -552,11 +551,6 @@ cc_library(
"src/core/ext/transport/chttp2/transport/stream_map.h",
"src/core/ext/transport/chttp2/transport/timeout_encoding.h",
"src/core/ext/transport/chttp2/transport/varint.h",
- "src/core/lib/census/aggregation.h",
- "src/core/lib/census/grpc_filter.h",
- "src/core/lib/census/grpc_plugin.h",
- "src/core/lib/census/mlog.h",
- "src/core/lib/census/rpc_metric_id.h",
"src/core/lib/channel/channel_args.h",
"src/core/lib/channel/channel_stack.h",
"src/core/lib/channel/channel_stack_builder.h",
@@ -567,6 +561,7 @@ cc_library(
"src/core/lib/channel/http_client_filter.h",
"src/core/lib/channel/http_server_filter.h",
"src/core/lib/channel/subchannel_call_holder.h",
+ "src/core/lib/client_config/client_channel_factory.h",
"src/core/lib/client_config/client_config.h",
"src/core/lib/client_config/connector.h",
"src/core/lib/client_config/initial_connect_string.h",
@@ -576,10 +571,7 @@ cc_library(
"src/core/lib/client_config/resolver.h",
"src/core/lib/client_config/resolver_factory.h",
"src/core/lib/client_config/resolver_registry.h",
- "src/core/lib/client_config/resolvers/dns_resolver.h",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.h",
"src/core/lib/client_config/subchannel.h",
- "src/core/lib/client_config/subchannel_factory.h",
"src/core/lib/client_config/subchannel_index.h",
"src/core/lib/client_config/uri_parser.h",
"src/core/lib/compression/algorithm_metadata.h",
@@ -591,17 +583,16 @@ cc_library(
"src/core/lib/iomgr/closure.h",
"src/core/lib/iomgr/endpoint.h",
"src/core/lib/iomgr/endpoint_pair.h",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.h",
+ "src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.h",
"src/core/lib/iomgr/executor.h",
- "src/core/lib/iomgr/fd_posix.h",
"src/core/lib/iomgr/iocp_windows.h",
"src/core/lib/iomgr/iomgr.h",
"src/core/lib/iomgr/iomgr_internal.h",
"src/core/lib/iomgr/iomgr_posix.h",
"src/core/lib/iomgr/pollset.h",
- "src/core/lib/iomgr/pollset_posix.h",
"src/core/lib/iomgr/pollset_set.h",
- "src/core/lib/iomgr/pollset_set_posix.h",
"src/core/lib/iomgr/pollset_set_windows.h",
"src/core/lib/iomgr/pollset_windows.h",
"src/core/lib/iomgr/resolve_address.h",
@@ -629,8 +620,6 @@ cc_library(
"src/core/lib/json/json_common.h",
"src/core/lib/json/json_reader.h",
"src/core/lib/json/json_writer.h",
- "src/core/lib/statistics/census_interface.h",
- "src/core/lib/statistics/census_rpc_stats.h",
"src/core/lib/surface/api_trace.h",
"src/core/lib/surface/call.h",
"src/core/lib/surface/call_test_only.h",
@@ -650,10 +639,21 @@ cc_library(
"src/core/lib/transport/static_metadata.h",
"src/core/lib/transport/transport.h",
"src/core/lib/transport/transport_impl.h",
+ "src/core/ext/census/context.c",
+ "src/core/ext/census/grpc_context.c",
+ "src/core/ext/census/grpc_filter.c",
+ "src/core/ext/census/grpc_plugin.c",
+ "src/core/ext/census/initialize.c",
+ "src/core/ext/census/mlog.c",
+ "src/core/ext/census/operation.c",
+ "src/core/ext/census/placeholders.c",
+ "src/core/ext/census/tracing.c",
"src/core/ext/lb_policy/grpclb/load_balancer_api.c",
"src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c",
"src/core/ext/lb_policy/pick_first/pick_first.c",
"src/core/ext/lb_policy/round_robin/round_robin.c",
+ "src/core/ext/resolver/dns/native/dns_resolver.c",
+ "src/core/ext/resolver/sockaddr/sockaddr_resolver.c",
"src/core/ext/transport/chttp2/client/insecure/channel_create.c",
"src/core/ext/transport/chttp2/server/insecure/server_chttp2.c",
"src/core/ext/transport/chttp2/transport/alpn.c",
@@ -677,15 +677,6 @@ cc_library(
"src/core/ext/transport/chttp2/transport/timeout_encoding.c",
"src/core/ext/transport/chttp2/transport/varint.c",
"src/core/ext/transport/chttp2/transport/writing.c",
- "src/core/lib/census/context.c",
- "src/core/lib/census/grpc_context.c",
- "src/core/lib/census/grpc_filter.c",
- "src/core/lib/census/grpc_plugin.c",
- "src/core/lib/census/initialize.c",
- "src/core/lib/census/mlog.c",
- "src/core/lib/census/operation.c",
- "src/core/lib/census/placeholders.c",
- "src/core/lib/census/tracing.c",
"src/core/lib/channel/channel_args.c",
"src/core/lib/channel/channel_stack.c",
"src/core/lib/channel/channel_stack_builder.c",
@@ -695,6 +686,7 @@ cc_library(
"src/core/lib/channel/http_client_filter.c",
"src/core/lib/channel/http_server_filter.c",
"src/core/lib/channel/subchannel_call_holder.c",
+ "src/core/lib/client_config/client_channel_factory.c",
"src/core/lib/client_config/client_config.c",
"src/core/lib/client_config/connector.c",
"src/core/lib/client_config/default_initial_connect_string.c",
@@ -705,10 +697,7 @@ cc_library(
"src/core/lib/client_config/resolver.c",
"src/core/lib/client_config/resolver_factory.c",
"src/core/lib/client_config/resolver_registry.c",
- "src/core/lib/client_config/resolvers/dns_resolver.c",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.c",
"src/core/lib/client_config/subchannel.c",
- "src/core/lib/client_config/subchannel_factory.c",
"src/core/lib/client_config/subchannel_index.c",
"src/core/lib/client_config/uri_parser.c",
"src/core/lib/compression/compression_algorithm.c",
@@ -721,17 +710,14 @@ cc_library(
"src/core/lib/iomgr/endpoint.c",
"src/core/lib/iomgr/endpoint_pair_posix.c",
"src/core/lib/iomgr/endpoint_pair_windows.c",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.c",
+ "src/core/lib/iomgr/ev_posix.c",
"src/core/lib/iomgr/exec_ctx.c",
"src/core/lib/iomgr/executor.c",
- "src/core/lib/iomgr/fd_posix.c",
"src/core/lib/iomgr/iocp_windows.c",
"src/core/lib/iomgr/iomgr.c",
"src/core/lib/iomgr/iomgr_posix.c",
"src/core/lib/iomgr/iomgr_windows.c",
- "src/core/lib/iomgr/pollset_multipoller_with_epoll.c",
- "src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c",
- "src/core/lib/iomgr/pollset_posix.c",
- "src/core/lib/iomgr/pollset_set_posix.c",
"src/core/lib/iomgr/pollset_set_windows.c",
"src/core/lib/iomgr/pollset_windows.c",
"src/core/lib/iomgr/resolve_address_posix.c",
@@ -825,8 +811,7 @@ cc_library(
cc_library(
name = "grpc_zookeeper",
srcs = [
- "src/core/lib/client_config/resolvers/zookeeper_resolver.h",
- "src/core/lib/client_config/resolvers/zookeeper_resolver.c",
+ "src/core/ext/resolver/zookeeper/zookeeper_resolver.c",
],
hdrs = [
"include/grpc/grpc_zookeeper.h",
@@ -1359,10 +1344,21 @@ objc_library(
objc_library(
name = "grpc_objc",
srcs = [
+ "src/core/ext/census/context.c",
+ "src/core/ext/census/grpc_context.c",
+ "src/core/ext/census/grpc_filter.c",
+ "src/core/ext/census/grpc_plugin.c",
+ "src/core/ext/census/initialize.c",
+ "src/core/ext/census/mlog.c",
+ "src/core/ext/census/operation.c",
+ "src/core/ext/census/placeholders.c",
+ "src/core/ext/census/tracing.c",
"src/core/ext/lb_policy/grpclb/load_balancer_api.c",
"src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c",
"src/core/ext/lb_policy/pick_first/pick_first.c",
"src/core/ext/lb_policy/round_robin/round_robin.c",
+ "src/core/ext/resolver/dns/native/dns_resolver.c",
+ "src/core/ext/resolver/sockaddr/sockaddr_resolver.c",
"src/core/ext/transport/chttp2/client/insecure/channel_create.c",
"src/core/ext/transport/chttp2/client/secure/secure_channel_create.c",
"src/core/ext/transport/chttp2/server/insecure/server_chttp2.c",
@@ -1388,15 +1384,6 @@ objc_library(
"src/core/ext/transport/chttp2/transport/timeout_encoding.c",
"src/core/ext/transport/chttp2/transport/varint.c",
"src/core/ext/transport/chttp2/transport/writing.c",
- "src/core/lib/census/context.c",
- "src/core/lib/census/grpc_context.c",
- "src/core/lib/census/grpc_filter.c",
- "src/core/lib/census/grpc_plugin.c",
- "src/core/lib/census/initialize.c",
- "src/core/lib/census/mlog.c",
- "src/core/lib/census/operation.c",
- "src/core/lib/census/placeholders.c",
- "src/core/lib/census/tracing.c",
"src/core/lib/channel/channel_args.c",
"src/core/lib/channel/channel_stack.c",
"src/core/lib/channel/channel_stack_builder.c",
@@ -1406,6 +1393,7 @@ objc_library(
"src/core/lib/channel/http_client_filter.c",
"src/core/lib/channel/http_server_filter.c",
"src/core/lib/channel/subchannel_call_holder.c",
+ "src/core/lib/client_config/client_channel_factory.c",
"src/core/lib/client_config/client_config.c",
"src/core/lib/client_config/connector.c",
"src/core/lib/client_config/default_initial_connect_string.c",
@@ -1416,10 +1404,7 @@ objc_library(
"src/core/lib/client_config/resolver.c",
"src/core/lib/client_config/resolver_factory.c",
"src/core/lib/client_config/resolver_registry.c",
- "src/core/lib/client_config/resolvers/dns_resolver.c",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.c",
"src/core/lib/client_config/subchannel.c",
- "src/core/lib/client_config/subchannel_factory.c",
"src/core/lib/client_config/subchannel_index.c",
"src/core/lib/client_config/uri_parser.c",
"src/core/lib/compression/compression_algorithm.c",
@@ -1433,17 +1418,14 @@ objc_library(
"src/core/lib/iomgr/endpoint.c",
"src/core/lib/iomgr/endpoint_pair_posix.c",
"src/core/lib/iomgr/endpoint_pair_windows.c",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.c",
+ "src/core/lib/iomgr/ev_posix.c",
"src/core/lib/iomgr/exec_ctx.c",
"src/core/lib/iomgr/executor.c",
- "src/core/lib/iomgr/fd_posix.c",
"src/core/lib/iomgr/iocp_windows.c",
"src/core/lib/iomgr/iomgr.c",
"src/core/lib/iomgr/iomgr_posix.c",
"src/core/lib/iomgr/iomgr_windows.c",
- "src/core/lib/iomgr/pollset_multipoller_with_epoll.c",
- "src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c",
- "src/core/lib/iomgr/pollset_posix.c",
- "src/core/lib/iomgr/pollset_set_posix.c",
"src/core/lib/iomgr/pollset_set_windows.c",
"src/core/lib/iomgr/pollset_windows.c",
"src/core/lib/iomgr/resolve_address_posix.c",
@@ -1536,6 +1518,12 @@ objc_library(
"include/grpc/impl/codegen/propagation_bits.h",
"include/grpc/impl/codegen/status.h",
"include/grpc/status.h",
+ "src/core/ext/census/aggregation.h",
+ "src/core/ext/census/census_interface.h",
+ "src/core/ext/census/census_rpc_stats.h",
+ "src/core/ext/census/grpc_filter.h",
+ "src/core/ext/census/mlog.h",
+ "src/core/ext/census/rpc_metric_id.h",
"src/core/ext/lb_policy/grpclb/load_balancer_api.h",
"src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
"src/core/ext/transport/chttp2/transport/alpn.h",
@@ -1559,11 +1547,6 @@ objc_library(
"src/core/ext/transport/chttp2/transport/stream_map.h",
"src/core/ext/transport/chttp2/transport/timeout_encoding.h",
"src/core/ext/transport/chttp2/transport/varint.h",
- "src/core/lib/census/aggregation.h",
- "src/core/lib/census/grpc_filter.h",
- "src/core/lib/census/grpc_plugin.h",
- "src/core/lib/census/mlog.h",
- "src/core/lib/census/rpc_metric_id.h",
"src/core/lib/channel/channel_args.h",
"src/core/lib/channel/channel_stack.h",
"src/core/lib/channel/channel_stack_builder.h",
@@ -1574,6 +1557,7 @@ objc_library(
"src/core/lib/channel/http_client_filter.h",
"src/core/lib/channel/http_server_filter.h",
"src/core/lib/channel/subchannel_call_holder.h",
+ "src/core/lib/client_config/client_channel_factory.h",
"src/core/lib/client_config/client_config.h",
"src/core/lib/client_config/connector.h",
"src/core/lib/client_config/initial_connect_string.h",
@@ -1583,10 +1567,7 @@ objc_library(
"src/core/lib/client_config/resolver.h",
"src/core/lib/client_config/resolver_factory.h",
"src/core/lib/client_config/resolver_registry.h",
- "src/core/lib/client_config/resolvers/dns_resolver.h",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.h",
"src/core/lib/client_config/subchannel.h",
- "src/core/lib/client_config/subchannel_factory.h",
"src/core/lib/client_config/subchannel_index.h",
"src/core/lib/client_config/uri_parser.h",
"src/core/lib/compression/algorithm_metadata.h",
@@ -1598,17 +1579,16 @@ objc_library(
"src/core/lib/iomgr/closure.h",
"src/core/lib/iomgr/endpoint.h",
"src/core/lib/iomgr/endpoint_pair.h",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.h",
+ "src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.h",
"src/core/lib/iomgr/executor.h",
- "src/core/lib/iomgr/fd_posix.h",
"src/core/lib/iomgr/iocp_windows.h",
"src/core/lib/iomgr/iomgr.h",
"src/core/lib/iomgr/iomgr_internal.h",
"src/core/lib/iomgr/iomgr_posix.h",
"src/core/lib/iomgr/pollset.h",
- "src/core/lib/iomgr/pollset_posix.h",
"src/core/lib/iomgr/pollset_set.h",
- "src/core/lib/iomgr/pollset_set_posix.h",
"src/core/lib/iomgr/pollset_set_windows.h",
"src/core/lib/iomgr/pollset_windows.h",
"src/core/lib/iomgr/resolve_address.h",
@@ -1645,8 +1625,6 @@ objc_library(
"src/core/lib/security/secure_endpoint.h",
"src/core/lib/security/security_connector.h",
"src/core/lib/security/security_context.h",
- "src/core/lib/statistics/census_interface.h",
- "src/core/lib/statistics/census_rpc_stats.h",
"src/core/lib/surface/api_trace.h",
"src/core/lib/surface/call.h",
"src/core/lib/surface/call_test_only.h",
diff --git a/Makefile b/Makefile
index e9ae6f3072..6c7336312d 100644
--- a/Makefile
+++ b/Makefile
@@ -902,6 +902,7 @@ fling_stream_test: $(BINDIR)/$(CONFIG)/fling_stream_test
fling_test: $(BINDIR)/$(CONFIG)/fling_test
gen_hpack_tables: $(BINDIR)/$(CONFIG)/gen_hpack_tables
gen_legal_metadata_characters: $(BINDIR)/$(CONFIG)/gen_legal_metadata_characters
+goaway_server_test: $(BINDIR)/$(CONFIG)/goaway_server_test
gpr_avl_test: $(BINDIR)/$(CONFIG)/gpr_avl_test
gpr_backoff_test: $(BINDIR)/$(CONFIG)/gpr_backoff_test
gpr_cmdline_test: $(BINDIR)/$(CONFIG)/gpr_cmdline_test
@@ -1075,6 +1076,7 @@ boringssl_pqueue_test: $(BINDIR)/$(CONFIG)/boringssl_pqueue_test
boringssl_ssl_test: $(BINDIR)/$(CONFIG)/boringssl_ssl_test
badreq_bad_client_test: $(BINDIR)/$(CONFIG)/badreq_bad_client_test
connection_prefix_bad_client_test: $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test
+head_of_line_blocking_bad_client_test: $(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test
headers_bad_client_test: $(BINDIR)/$(CONFIG)/headers_bad_client_test
initial_settings_frame_bad_client_test: $(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test
server_registered_method_bad_client_test: $(BINDIR)/$(CONFIG)/server_registered_method_bad_client_test
@@ -1090,8 +1092,6 @@ h2_compress_test: $(BINDIR)/$(CONFIG)/h2_compress_test
h2_fakesec_test: $(BINDIR)/$(CONFIG)/h2_fakesec_test
h2_full_test: $(BINDIR)/$(CONFIG)/h2_full_test
h2_full+pipe_test: $(BINDIR)/$(CONFIG)/h2_full+pipe_test
-h2_full+poll_test: $(BINDIR)/$(CONFIG)/h2_full+poll_test
-h2_full+poll+pipe_test: $(BINDIR)/$(CONFIG)/h2_full+poll+pipe_test
h2_full+trace_test: $(BINDIR)/$(CONFIG)/h2_full+trace_test
h2_oauth2_test: $(BINDIR)/$(CONFIG)/h2_oauth2_test
h2_proxy_test: $(BINDIR)/$(CONFIG)/h2_proxy_test
@@ -1099,23 +1099,22 @@ h2_sockpair_test: $(BINDIR)/$(CONFIG)/h2_sockpair_test
h2_sockpair+trace_test: $(BINDIR)/$(CONFIG)/h2_sockpair+trace_test
h2_sockpair_1byte_test: $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_test
h2_ssl_test: $(BINDIR)/$(CONFIG)/h2_ssl_test
-h2_ssl+poll_test: $(BINDIR)/$(CONFIG)/h2_ssl+poll_test
h2_ssl_proxy_test: $(BINDIR)/$(CONFIG)/h2_ssl_proxy_test
h2_uds_test: $(BINDIR)/$(CONFIG)/h2_uds_test
-h2_uds+poll_test: $(BINDIR)/$(CONFIG)/h2_uds+poll_test
h2_census_nosec_test: $(BINDIR)/$(CONFIG)/h2_census_nosec_test
h2_compress_nosec_test: $(BINDIR)/$(CONFIG)/h2_compress_nosec_test
h2_full_nosec_test: $(BINDIR)/$(CONFIG)/h2_full_nosec_test
h2_full+pipe_nosec_test: $(BINDIR)/$(CONFIG)/h2_full+pipe_nosec_test
-h2_full+poll_nosec_test: $(BINDIR)/$(CONFIG)/h2_full+poll_nosec_test
-h2_full+poll+pipe_nosec_test: $(BINDIR)/$(CONFIG)/h2_full+poll+pipe_nosec_test
h2_full+trace_nosec_test: $(BINDIR)/$(CONFIG)/h2_full+trace_nosec_test
h2_proxy_nosec_test: $(BINDIR)/$(CONFIG)/h2_proxy_nosec_test
h2_sockpair_nosec_test: $(BINDIR)/$(CONFIG)/h2_sockpair_nosec_test
h2_sockpair+trace_nosec_test: $(BINDIR)/$(CONFIG)/h2_sockpair+trace_nosec_test
h2_sockpair_1byte_nosec_test: $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_nosec_test
h2_uds_nosec_test: $(BINDIR)/$(CONFIG)/h2_uds_nosec_test
-h2_uds+poll_nosec_test: $(BINDIR)/$(CONFIG)/h2_uds+poll_nosec_test
+hpack_parser_fuzzer_test_one_entry: $(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test_one_entry
+http_fuzzer_test_one_entry: $(BINDIR)/$(CONFIG)/http_fuzzer_test_one_entry
+json_fuzzer_test_one_entry: $(BINDIR)/$(CONFIG)/json_fuzzer_test_one_entry
+uri_fuzzer_test_one_entry: $(BINDIR)/$(CONFIG)/uri_fuzzer_test_one_entry
run_dep_checks:
$(OPENSSL_ALPN_CHECK_CMD) || true
@@ -1172,7 +1171,7 @@ plugins: $(PROTOC_PLUGINS)
privatelibs: privatelibs_c privatelibs_cxx
-privatelibs_c: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libz.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a
+privatelibs_c: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libz.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a
pc_c: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc.pc
pc_c_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_unsecure.pc
@@ -1222,6 +1221,7 @@ buildtests_c: privatelibs_c \
$(BINDIR)/$(CONFIG)/fling_server \
$(BINDIR)/$(CONFIG)/fling_stream_test \
$(BINDIR)/$(CONFIG)/fling_test \
+ $(BINDIR)/$(CONFIG)/goaway_server_test \
$(BINDIR)/$(CONFIG)/gpr_avl_test \
$(BINDIR)/$(CONFIG)/gpr_backoff_test \
$(BINDIR)/$(CONFIG)/gpr_cmdline_test \
@@ -1299,6 +1299,7 @@ buildtests_c: privatelibs_c \
$(BINDIR)/$(CONFIG)/public_headers_must_be_c89 \
$(BINDIR)/$(CONFIG)/badreq_bad_client_test \
$(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test \
+ $(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test \
$(BINDIR)/$(CONFIG)/headers_bad_client_test \
$(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test \
$(BINDIR)/$(CONFIG)/server_registered_method_bad_client_test \
@@ -1314,8 +1315,6 @@ buildtests_c: privatelibs_c \
$(BINDIR)/$(CONFIG)/h2_fakesec_test \
$(BINDIR)/$(CONFIG)/h2_full_test \
$(BINDIR)/$(CONFIG)/h2_full+pipe_test \
- $(BINDIR)/$(CONFIG)/h2_full+poll_test \
- $(BINDIR)/$(CONFIG)/h2_full+poll+pipe_test \
$(BINDIR)/$(CONFIG)/h2_full+trace_test \
$(BINDIR)/$(CONFIG)/h2_oauth2_test \
$(BINDIR)/$(CONFIG)/h2_proxy_test \
@@ -1323,23 +1322,22 @@ buildtests_c: privatelibs_c \
$(BINDIR)/$(CONFIG)/h2_sockpair+trace_test \
$(BINDIR)/$(CONFIG)/h2_sockpair_1byte_test \
$(BINDIR)/$(CONFIG)/h2_ssl_test \
- $(BINDIR)/$(CONFIG)/h2_ssl+poll_test \
$(BINDIR)/$(CONFIG)/h2_ssl_proxy_test \
$(BINDIR)/$(CONFIG)/h2_uds_test \
- $(BINDIR)/$(CONFIG)/h2_uds+poll_test \
$(BINDIR)/$(CONFIG)/h2_census_nosec_test \
$(BINDIR)/$(CONFIG)/h2_compress_nosec_test \
$(BINDIR)/$(CONFIG)/h2_full_nosec_test \
$(BINDIR)/$(CONFIG)/h2_full+pipe_nosec_test \
- $(BINDIR)/$(CONFIG)/h2_full+poll_nosec_test \
- $(BINDIR)/$(CONFIG)/h2_full+poll+pipe_nosec_test \
$(BINDIR)/$(CONFIG)/h2_full+trace_nosec_test \
$(BINDIR)/$(CONFIG)/h2_proxy_nosec_test \
$(BINDIR)/$(CONFIG)/h2_sockpair_nosec_test \
$(BINDIR)/$(CONFIG)/h2_sockpair+trace_nosec_test \
$(BINDIR)/$(CONFIG)/h2_sockpair_1byte_nosec_test \
$(BINDIR)/$(CONFIG)/h2_uds_nosec_test \
- $(BINDIR)/$(CONFIG)/h2_uds+poll_nosec_test \
+ $(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test_one_entry \
+ $(BINDIR)/$(CONFIG)/http_fuzzer_test_one_entry \
+ $(BINDIR)/$(CONFIG)/json_fuzzer_test_one_entry \
+ $(BINDIR)/$(CONFIG)/uri_fuzzer_test_one_entry \
buildtests_cxx: buildtests_zookeeper privatelibs_cxx \
@@ -1480,6 +1478,8 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/fling_stream_test || ( echo test fling_stream_test failed ; exit 1 )
$(E) "[RUN] Testing fling_test"
$(Q) $(BINDIR)/$(CONFIG)/fling_test || ( echo test fling_test failed ; exit 1 )
+ $(E) "[RUN] Testing goaway_server_test"
+ $(Q) $(BINDIR)/$(CONFIG)/goaway_server_test || ( echo test goaway_server_test failed ; exit 1 )
$(E) "[RUN] Testing gpr_avl_test"
$(Q) $(BINDIR)/$(CONFIG)/gpr_avl_test || ( echo test gpr_avl_test failed ; exit 1 )
$(E) "[RUN] Testing gpr_backoff_test"
@@ -1622,6 +1622,8 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/badreq_bad_client_test || ( echo test badreq_bad_client_test failed ; exit 1 )
$(E) "[RUN] Testing connection_prefix_bad_client_test"
$(Q) $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test || ( echo test connection_prefix_bad_client_test failed ; exit 1 )
+ $(E) "[RUN] Testing head_of_line_blocking_bad_client_test"
+ $(Q) $(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test || ( echo test head_of_line_blocking_bad_client_test failed ; exit 1 )
$(E) "[RUN] Testing headers_bad_client_test"
$(Q) $(BINDIR)/$(CONFIG)/headers_bad_client_test || ( echo test headers_bad_client_test failed ; exit 1 )
$(E) "[RUN] Testing initial_settings_frame_bad_client_test"
@@ -2440,10 +2442,21 @@ endif
LIBGRPC_SRC = \
+ src/core/ext/census/context.c \
+ src/core/ext/census/grpc_context.c \
+ src/core/ext/census/grpc_filter.c \
+ src/core/ext/census/grpc_plugin.c \
+ src/core/ext/census/initialize.c \
+ src/core/ext/census/mlog.c \
+ src/core/ext/census/operation.c \
+ src/core/ext/census/placeholders.c \
+ src/core/ext/census/tracing.c \
src/core/ext/lb_policy/grpclb/load_balancer_api.c \
src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c \
src/core/ext/lb_policy/pick_first/pick_first.c \
src/core/ext/lb_policy/round_robin/round_robin.c \
+ src/core/ext/resolver/dns/native/dns_resolver.c \
+ src/core/ext/resolver/sockaddr/sockaddr_resolver.c \
src/core/ext/transport/chttp2/client/insecure/channel_create.c \
src/core/ext/transport/chttp2/client/secure/secure_channel_create.c \
src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \
@@ -2469,15 +2482,6 @@ LIBGRPC_SRC = \
src/core/ext/transport/chttp2/transport/timeout_encoding.c \
src/core/ext/transport/chttp2/transport/varint.c \
src/core/ext/transport/chttp2/transport/writing.c \
- src/core/lib/census/context.c \
- src/core/lib/census/grpc_context.c \
- src/core/lib/census/grpc_filter.c \
- src/core/lib/census/grpc_plugin.c \
- src/core/lib/census/initialize.c \
- src/core/lib/census/mlog.c \
- src/core/lib/census/operation.c \
- src/core/lib/census/placeholders.c \
- src/core/lib/census/tracing.c \
src/core/lib/channel/channel_args.c \
src/core/lib/channel/channel_stack.c \
src/core/lib/channel/channel_stack_builder.c \
@@ -2487,6 +2491,7 @@ LIBGRPC_SRC = \
src/core/lib/channel/http_client_filter.c \
src/core/lib/channel/http_server_filter.c \
src/core/lib/channel/subchannel_call_holder.c \
+ src/core/lib/client_config/client_channel_factory.c \
src/core/lib/client_config/client_config.c \
src/core/lib/client_config/connector.c \
src/core/lib/client_config/default_initial_connect_string.c \
@@ -2497,10 +2502,7 @@ LIBGRPC_SRC = \
src/core/lib/client_config/resolver.c \
src/core/lib/client_config/resolver_factory.c \
src/core/lib/client_config/resolver_registry.c \
- src/core/lib/client_config/resolvers/dns_resolver.c \
- src/core/lib/client_config/resolvers/sockaddr_resolver.c \
src/core/lib/client_config/subchannel.c \
- src/core/lib/client_config/subchannel_factory.c \
src/core/lib/client_config/subchannel_index.c \
src/core/lib/client_config/uri_parser.c \
src/core/lib/compression/compression_algorithm.c \
@@ -2514,17 +2516,14 @@ LIBGRPC_SRC = \
src/core/lib/iomgr/endpoint.c \
src/core/lib/iomgr/endpoint_pair_posix.c \
src/core/lib/iomgr/endpoint_pair_windows.c \
+ src/core/lib/iomgr/ev_poll_and_epoll_posix.c \
+ src/core/lib/iomgr/ev_posix.c \
src/core/lib/iomgr/exec_ctx.c \
src/core/lib/iomgr/executor.c \
- src/core/lib/iomgr/fd_posix.c \
src/core/lib/iomgr/iocp_windows.c \
src/core/lib/iomgr/iomgr.c \
src/core/lib/iomgr/iomgr_posix.c \
src/core/lib/iomgr/iomgr_windows.c \
- src/core/lib/iomgr/pollset_multipoller_with_epoll.c \
- src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c \
- src/core/lib/iomgr/pollset_posix.c \
- src/core/lib/iomgr/pollset_set_posix.c \
src/core/lib/iomgr/pollset_set_windows.c \
src/core/lib/iomgr/pollset_windows.c \
src/core/lib/iomgr/resolve_address_posix.c \
@@ -2802,10 +2801,21 @@ endif
LIBGRPC_UNSECURE_SRC = \
+ src/core/ext/census/context.c \
+ src/core/ext/census/grpc_context.c \
+ src/core/ext/census/grpc_filter.c \
+ src/core/ext/census/grpc_plugin.c \
+ src/core/ext/census/initialize.c \
+ src/core/ext/census/mlog.c \
+ src/core/ext/census/operation.c \
+ src/core/ext/census/placeholders.c \
+ src/core/ext/census/tracing.c \
src/core/ext/lb_policy/grpclb/load_balancer_api.c \
src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c \
src/core/ext/lb_policy/pick_first/pick_first.c \
src/core/ext/lb_policy/round_robin/round_robin.c \
+ src/core/ext/resolver/dns/native/dns_resolver.c \
+ src/core/ext/resolver/sockaddr/sockaddr_resolver.c \
src/core/ext/transport/chttp2/client/insecure/channel_create.c \
src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \
src/core/ext/transport/chttp2/transport/alpn.c \
@@ -2829,15 +2839,6 @@ LIBGRPC_UNSECURE_SRC = \
src/core/ext/transport/chttp2/transport/timeout_encoding.c \
src/core/ext/transport/chttp2/transport/varint.c \
src/core/ext/transport/chttp2/transport/writing.c \
- src/core/lib/census/context.c \
- src/core/lib/census/grpc_context.c \
- src/core/lib/census/grpc_filter.c \
- src/core/lib/census/grpc_plugin.c \
- src/core/lib/census/initialize.c \
- src/core/lib/census/mlog.c \
- src/core/lib/census/operation.c \
- src/core/lib/census/placeholders.c \
- src/core/lib/census/tracing.c \
src/core/lib/channel/channel_args.c \
src/core/lib/channel/channel_stack.c \
src/core/lib/channel/channel_stack_builder.c \
@@ -2847,6 +2848,7 @@ LIBGRPC_UNSECURE_SRC = \
src/core/lib/channel/http_client_filter.c \
src/core/lib/channel/http_server_filter.c \
src/core/lib/channel/subchannel_call_holder.c \
+ src/core/lib/client_config/client_channel_factory.c \
src/core/lib/client_config/client_config.c \
src/core/lib/client_config/connector.c \
src/core/lib/client_config/default_initial_connect_string.c \
@@ -2857,10 +2859,7 @@ LIBGRPC_UNSECURE_SRC = \
src/core/lib/client_config/resolver.c \
src/core/lib/client_config/resolver_factory.c \
src/core/lib/client_config/resolver_registry.c \
- src/core/lib/client_config/resolvers/dns_resolver.c \
- src/core/lib/client_config/resolvers/sockaddr_resolver.c \
src/core/lib/client_config/subchannel.c \
- src/core/lib/client_config/subchannel_factory.c \
src/core/lib/client_config/subchannel_index.c \
src/core/lib/client_config/uri_parser.c \
src/core/lib/compression/compression_algorithm.c \
@@ -2873,17 +2872,14 @@ LIBGRPC_UNSECURE_SRC = \
src/core/lib/iomgr/endpoint.c \
src/core/lib/iomgr/endpoint_pair_posix.c \
src/core/lib/iomgr/endpoint_pair_windows.c \
+ src/core/lib/iomgr/ev_poll_and_epoll_posix.c \
+ src/core/lib/iomgr/ev_posix.c \
src/core/lib/iomgr/exec_ctx.c \
src/core/lib/iomgr/executor.c \
- src/core/lib/iomgr/fd_posix.c \
src/core/lib/iomgr/iocp_windows.c \
src/core/lib/iomgr/iomgr.c \
src/core/lib/iomgr/iomgr_posix.c \
src/core/lib/iomgr/iomgr_windows.c \
- src/core/lib/iomgr/pollset_multipoller_with_epoll.c \
- src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c \
- src/core/lib/iomgr/pollset_posix.c \
- src/core/lib/iomgr/pollset_set_posix.c \
src/core/lib/iomgr/pollset_set_windows.c \
src/core/lib/iomgr/pollset_windows.c \
src/core/lib/iomgr/resolve_address_posix.c \
@@ -3000,7 +2996,7 @@ endif
LIBGRPC_ZOOKEEPER_SRC = \
- src/core/lib/client_config/resolvers/zookeeper_resolver.c \
+ src/core/ext/resolver/zookeeper/zookeeper_resolver.c \
PUBLIC_HEADERS_C += \
include/grpc/grpc_zookeeper.h \
@@ -3042,6 +3038,31 @@ ifneq ($(NO_DEPS),true)
endif
+LIBONE_INPUT_FUZZER_SRC = \
+ test/core/util/one_corpus_entry_fuzzer.c \
+
+PUBLIC_HEADERS_C += \
+
+LIBONE_INPUT_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBONE_INPUT_FUZZER_SRC))))
+
+
+$(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a: $(ZLIB_DEP) $(LIBONE_INPUT_FUZZER_OBJS)
+ $(E) "[AR] Creating $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) rm -f $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a
+ $(Q) $(AR) $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBONE_INPUT_FUZZER_OBJS)
+ifeq ($(SYSTEM),Darwin)
+ $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a
+endif
+
+
+
+
+ifneq ($(NO_DEPS),true)
+-include $(LIBONE_INPUT_FUZZER_OBJS:.o=.dep)
+endif
+
+
LIBRECONNECT_SERVER_SRC = \
test/core/util/reconnect_server.c \
@@ -6754,6 +6775,38 @@ endif
endif
+GOAWAY_SERVER_TEST_SRC = \
+ test/core/end2end/goaway_server_test.c \
+
+GOAWAY_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GOAWAY_SERVER_TEST_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/goaway_server_test: openssl_dep_error
+
+else
+
+
+
+$(BINDIR)/$(CONFIG)/goaway_server_test: $(GOAWAY_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+ $(E) "[LD] Linking $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) $(LD) $(LDFLAGS) $(GOAWAY_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/goaway_server_test
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/core/end2end/goaway_server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+
+deps_goaway_server_test: $(GOAWAY_SERVER_TEST_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(GOAWAY_SERVER_TEST_OBJS:.o=.dep)
+endif
+endif
+
+
GPR_AVL_TEST_SRC = \
test/core/support/avl_test.c \
@@ -12627,6 +12680,26 @@ ifneq ($(NO_DEPS),true)
endif
+HEAD_OF_LINE_BLOCKING_BAD_CLIENT_TEST_SRC = \
+ test/core/bad_client/tests/head_of_line_blocking.c \
+
+HEAD_OF_LINE_BLOCKING_BAD_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HEAD_OF_LINE_BLOCKING_BAD_CLIENT_TEST_SRC))))
+
+
+$(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test: $(HEAD_OF_LINE_BLOCKING_BAD_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+ $(E) "[LD] Linking $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) $(LD) $(LDFLAGS) $(HEAD_OF_LINE_BLOCKING_BAD_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test
+
+$(OBJDIR)/$(CONFIG)/test/core/bad_client/tests/head_of_line_blocking.o: $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+
+deps_head_of_line_blocking_bad_client_test: $(HEAD_OF_LINE_BLOCKING_BAD_CLIENT_TEST_OBJS:.o=.dep)
+
+ifneq ($(NO_DEPS),true)
+-include $(HEAD_OF_LINE_BLOCKING_BAD_CLIENT_TEST_OBJS:.o=.dep)
+endif
+
+
HEADERS_BAD_CLIENT_TEST_SRC = \
test/core/bad_client/tests/headers.c \
@@ -13035,70 +13108,6 @@ endif
endif
-H2_FULL+POLL_TEST_SRC = \
- test/core/end2end/fixtures/h2_full+poll.c \
-
-H2_FULL+POLL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_FULL+POLL_TEST_SRC))))
-ifeq ($(NO_SECURE),true)
-
-# You can't build secure targets if you don't have OpenSSL.
-
-$(BINDIR)/$(CONFIG)/h2_full+poll_test: openssl_dep_error
-
-else
-
-
-
-$(BINDIR)/$(CONFIG)/h2_full+poll_test: $(H2_FULL+POLL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
- $(E) "[LD] Linking $@"
- $(Q) mkdir -p `dirname $@`
- $(Q) $(LD) $(LDFLAGS) $(H2_FULL+POLL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_full+poll_test
-
-endif
-
-$(OBJDIR)/$(CONFIG)/test/core/end2end/fixtures/h2_full+poll.o: $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
-
-deps_h2_full+poll_test: $(H2_FULL+POLL_TEST_OBJS:.o=.dep)
-
-ifneq ($(NO_SECURE),true)
-ifneq ($(NO_DEPS),true)
--include $(H2_FULL+POLL_TEST_OBJS:.o=.dep)
-endif
-endif
-
-
-H2_FULL+POLL+PIPE_TEST_SRC = \
- test/core/end2end/fixtures/h2_full+poll+pipe.c \
-
-H2_FULL+POLL+PIPE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_FULL+POLL+PIPE_TEST_SRC))))
-ifeq ($(NO_SECURE),true)
-
-# You can't build secure targets if you don't have OpenSSL.
-
-$(BINDIR)/$(CONFIG)/h2_full+poll+pipe_test: openssl_dep_error
-
-else
-
-
-
-$(BINDIR)/$(CONFIG)/h2_full+poll+pipe_test: $(H2_FULL+POLL+PIPE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
- $(E) "[LD] Linking $@"
- $(Q) mkdir -p `dirname $@`
- $(Q) $(LD) $(LDFLAGS) $(H2_FULL+POLL+PIPE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_full+poll+pipe_test
-
-endif
-
-$(OBJDIR)/$(CONFIG)/test/core/end2end/fixtures/h2_full+poll+pipe.o: $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
-
-deps_h2_full+poll+pipe_test: $(H2_FULL+POLL+PIPE_TEST_OBJS:.o=.dep)
-
-ifneq ($(NO_SECURE),true)
-ifneq ($(NO_DEPS),true)
--include $(H2_FULL+POLL+PIPE_TEST_OBJS:.o=.dep)
-endif
-endif
-
-
H2_FULL+TRACE_TEST_SRC = \
test/core/end2end/fixtures/h2_full+trace.c \
@@ -13323,38 +13332,6 @@ endif
endif
-H2_SSL+POLL_TEST_SRC = \
- test/core/end2end/fixtures/h2_ssl+poll.c \
-
-H2_SSL+POLL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_SSL+POLL_TEST_SRC))))
-ifeq ($(NO_SECURE),true)
-
-# You can't build secure targets if you don't have OpenSSL.
-
-$(BINDIR)/$(CONFIG)/h2_ssl+poll_test: openssl_dep_error
-
-else
-
-
-
-$(BINDIR)/$(CONFIG)/h2_ssl+poll_test: $(H2_SSL+POLL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
- $(E) "[LD] Linking $@"
- $(Q) mkdir -p `dirname $@`
- $(Q) $(LD) $(LDFLAGS) $(H2_SSL+POLL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_ssl+poll_test
-
-endif
-
-$(OBJDIR)/$(CONFIG)/test/core/end2end/fixtures/h2_ssl+poll.o: $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
-
-deps_h2_ssl+poll_test: $(H2_SSL+POLL_TEST_OBJS:.o=.dep)
-
-ifneq ($(NO_SECURE),true)
-ifneq ($(NO_DEPS),true)
--include $(H2_SSL+POLL_TEST_OBJS:.o=.dep)
-endif
-endif
-
-
H2_SSL_PROXY_TEST_SRC = \
test/core/end2end/fixtures/h2_ssl_proxy.c \
@@ -13419,38 +13396,6 @@ endif
endif
-H2_UDS+POLL_TEST_SRC = \
- test/core/end2end/fixtures/h2_uds+poll.c \
-
-H2_UDS+POLL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_UDS+POLL_TEST_SRC))))
-ifeq ($(NO_SECURE),true)
-
-# You can't build secure targets if you don't have OpenSSL.
-
-$(BINDIR)/$(CONFIG)/h2_uds+poll_test: openssl_dep_error
-
-else
-
-
-
-$(BINDIR)/$(CONFIG)/h2_uds+poll_test: $(H2_UDS+POLL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
- $(E) "[LD] Linking $@"
- $(Q) mkdir -p `dirname $@`
- $(Q) $(LD) $(LDFLAGS) $(H2_UDS+POLL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_uds+poll_test
-
-endif
-
-$(OBJDIR)/$(CONFIG)/test/core/end2end/fixtures/h2_uds+poll.o: $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
-
-deps_h2_uds+poll_test: $(H2_UDS+POLL_TEST_OBJS:.o=.dep)
-
-ifneq ($(NO_SECURE),true)
-ifneq ($(NO_DEPS),true)
--include $(H2_UDS+POLL_TEST_OBJS:.o=.dep)
-endif
-endif
-
-
H2_CENSUS_NOSEC_TEST_SRC = \
test/core/end2end/fixtures/h2_census.c \
@@ -13531,46 +13476,6 @@ ifneq ($(NO_DEPS),true)
endif
-H2_FULL+POLL_NOSEC_TEST_SRC = \
- test/core/end2end/fixtures/h2_full+poll.c \
-
-H2_FULL+POLL_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_FULL+POLL_NOSEC_TEST_SRC))))
-
-
-$(BINDIR)/$(CONFIG)/h2_full+poll_nosec_test: $(H2_FULL+POLL_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
- $(E) "[LD] Linking $@"
- $(Q) mkdir -p `dirname $@`
- $(Q) $(LD) $(LDFLAGS) $(H2_FULL+POLL_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/h2_full+poll_nosec_test
-
-$(OBJDIR)/$(CONFIG)/test/core/end2end/fixtures/h2_full+poll.o: $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
-
-deps_h2_full+poll_nosec_test: $(H2_FULL+POLL_NOSEC_TEST_OBJS:.o=.dep)
-
-ifneq ($(NO_DEPS),true)
--include $(H2_FULL+POLL_NOSEC_TEST_OBJS:.o=.dep)
-endif
-
-
-H2_FULL+POLL+PIPE_NOSEC_TEST_SRC = \
- test/core/end2end/fixtures/h2_full+poll+pipe.c \
-
-H2_FULL+POLL+PIPE_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_FULL+POLL+PIPE_NOSEC_TEST_SRC))))
-
-
-$(BINDIR)/$(CONFIG)/h2_full+poll+pipe_nosec_test: $(H2_FULL+POLL+PIPE_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
- $(E) "[LD] Linking $@"
- $(Q) mkdir -p `dirname $@`
- $(Q) $(LD) $(LDFLAGS) $(H2_FULL+POLL+PIPE_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/h2_full+poll+pipe_nosec_test
-
-$(OBJDIR)/$(CONFIG)/test/core/end2end/fixtures/h2_full+poll+pipe.o: $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
-
-deps_h2_full+poll+pipe_nosec_test: $(H2_FULL+POLL+PIPE_NOSEC_TEST_OBJS:.o=.dep)
-
-ifneq ($(NO_DEPS),true)
--include $(H2_FULL+POLL+PIPE_NOSEC_TEST_OBJS:.o=.dep)
-endif
-
-
H2_FULL+TRACE_NOSEC_TEST_SRC = \
test/core/end2end/fixtures/h2_full+trace.c \
@@ -13691,23 +13596,131 @@ ifneq ($(NO_DEPS),true)
endif
-H2_UDS+POLL_NOSEC_TEST_SRC = \
- test/core/end2end/fixtures/h2_uds+poll.c \
+HPACK_PARSER_FUZZER_TEST_ONE_ENTRY_SRC = \
+ test/core/transport/chttp2/hpack_parser_fuzzer_test.c \
+
+HPACK_PARSER_FUZZER_TEST_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_PARSER_FUZZER_TEST_ONE_ENTRY_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test_one_entry: openssl_dep_error
+
+else
+
+
+
+$(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test_one_entry: $(HPACK_PARSER_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+ $(E) "[LD] Linking $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) $(LD) $(LDFLAGS) $(HPACK_PARSER_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test_one_entry
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_parser_fuzzer_test.o: $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+
+deps_hpack_parser_fuzzer_test_one_entry: $(HPACK_PARSER_FUZZER_TEST_ONE_ENTRY_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(HPACK_PARSER_FUZZER_TEST_ONE_ENTRY_OBJS:.o=.dep)
+endif
+endif
+
+
+HTTP_FUZZER_TEST_ONE_ENTRY_SRC = \
+ test/core/http/fuzzer.c \
+
+HTTP_FUZZER_TEST_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_FUZZER_TEST_ONE_ENTRY_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/http_fuzzer_test_one_entry: openssl_dep_error
+
+else
-H2_UDS+POLL_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_UDS+POLL_NOSEC_TEST_SRC))))
-$(BINDIR)/$(CONFIG)/h2_uds+poll_nosec_test: $(H2_UDS+POLL_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+$(BINDIR)/$(CONFIG)/http_fuzzer_test_one_entry: $(HTTP_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
$(E) "[LD] Linking $@"
$(Q) mkdir -p `dirname $@`
- $(Q) $(LD) $(LDFLAGS) $(H2_UDS+POLL_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/h2_uds+poll_nosec_test
+ $(Q) $(LD) $(LDFLAGS) $(HTTP_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/http_fuzzer_test_one_entry
+
+endif
-$(OBJDIR)/$(CONFIG)/test/core/end2end/fixtures/h2_uds+poll.o: $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+$(OBJDIR)/$(CONFIG)/test/core/http/fuzzer.o: $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
-deps_h2_uds+poll_nosec_test: $(H2_UDS+POLL_NOSEC_TEST_OBJS:.o=.dep)
+deps_http_fuzzer_test_one_entry: $(HTTP_FUZZER_TEST_ONE_ENTRY_OBJS:.o=.dep)
+ifneq ($(NO_SECURE),true)
ifneq ($(NO_DEPS),true)
--include $(H2_UDS+POLL_NOSEC_TEST_OBJS:.o=.dep)
+-include $(HTTP_FUZZER_TEST_ONE_ENTRY_OBJS:.o=.dep)
+endif
+endif
+
+
+JSON_FUZZER_TEST_ONE_ENTRY_SRC = \
+ test/core/json/fuzzer.c \
+
+JSON_FUZZER_TEST_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_FUZZER_TEST_ONE_ENTRY_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/json_fuzzer_test_one_entry: openssl_dep_error
+
+else
+
+
+
+$(BINDIR)/$(CONFIG)/json_fuzzer_test_one_entry: $(JSON_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+ $(E) "[LD] Linking $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) $(LD) $(LDFLAGS) $(JSON_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_fuzzer_test_one_entry
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/core/json/fuzzer.o: $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+
+deps_json_fuzzer_test_one_entry: $(JSON_FUZZER_TEST_ONE_ENTRY_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(JSON_FUZZER_TEST_ONE_ENTRY_OBJS:.o=.dep)
+endif
+endif
+
+
+URI_FUZZER_TEST_ONE_ENTRY_SRC = \
+ test/core/client_config/uri_fuzzer_test.c \
+
+URI_FUZZER_TEST_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(URI_FUZZER_TEST_ONE_ENTRY_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/uri_fuzzer_test_one_entry: openssl_dep_error
+
+else
+
+
+
+$(BINDIR)/$(CONFIG)/uri_fuzzer_test_one_entry: $(URI_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+ $(E) "[LD] Linking $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) $(LD) $(LDFLAGS) $(URI_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/uri_fuzzer_test_one_entry
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/core/client_config/uri_fuzzer_test.o: $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+
+deps_uri_fuzzer_test_one_entry: $(URI_FUZZER_TEST_ONE_ENTRY_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(URI_FUZZER_TEST_ONE_ENTRY_OBJS:.o=.dep)
+endif
endif
diff --git a/README.md b/README.md
index abb4905392..3ee2b9f5ca 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
[![Join the chat at https://gitter.im/grpc/grpc](https://badges.gitter.im/grpc/grpc.svg)](https://gitter.im/grpc/grpc?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-Copyright 2015-2016 Google Inc.
+Copyright 2015 Google Inc.
#Documentation
diff --git a/binding.gyp b/binding.gyp
index 5dabef3e17..8b53b43686 100644
--- a/binding.gyp
+++ b/binding.gyp
@@ -558,10 +558,21 @@
'gpr',
],
'sources': [
+ 'src/core/ext/census/context.c',
+ 'src/core/ext/census/grpc_context.c',
+ 'src/core/ext/census/grpc_filter.c',
+ 'src/core/ext/census/grpc_plugin.c',
+ 'src/core/ext/census/initialize.c',
+ 'src/core/ext/census/mlog.c',
+ 'src/core/ext/census/operation.c',
+ 'src/core/ext/census/placeholders.c',
+ 'src/core/ext/census/tracing.c',
'src/core/ext/lb_policy/grpclb/load_balancer_api.c',
'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c',
'src/core/ext/lb_policy/pick_first/pick_first.c',
'src/core/ext/lb_policy/round_robin/round_robin.c',
+ 'src/core/ext/resolver/dns/native/dns_resolver.c',
+ 'src/core/ext/resolver/sockaddr/sockaddr_resolver.c',
'src/core/ext/transport/chttp2/client/insecure/channel_create.c',
'src/core/ext/transport/chttp2/client/secure/secure_channel_create.c',
'src/core/ext/transport/chttp2/server/insecure/server_chttp2.c',
@@ -587,15 +598,6 @@
'src/core/ext/transport/chttp2/transport/timeout_encoding.c',
'src/core/ext/transport/chttp2/transport/varint.c',
'src/core/ext/transport/chttp2/transport/writing.c',
- 'src/core/lib/census/context.c',
- 'src/core/lib/census/grpc_context.c',
- 'src/core/lib/census/grpc_filter.c',
- 'src/core/lib/census/grpc_plugin.c',
- 'src/core/lib/census/initialize.c',
- 'src/core/lib/census/mlog.c',
- 'src/core/lib/census/operation.c',
- 'src/core/lib/census/placeholders.c',
- 'src/core/lib/census/tracing.c',
'src/core/lib/channel/channel_args.c',
'src/core/lib/channel/channel_stack.c',
'src/core/lib/channel/channel_stack_builder.c',
@@ -605,6 +607,7 @@
'src/core/lib/channel/http_client_filter.c',
'src/core/lib/channel/http_server_filter.c',
'src/core/lib/channel/subchannel_call_holder.c',
+ 'src/core/lib/client_config/client_channel_factory.c',
'src/core/lib/client_config/client_config.c',
'src/core/lib/client_config/connector.c',
'src/core/lib/client_config/default_initial_connect_string.c',
@@ -615,10 +618,7 @@
'src/core/lib/client_config/resolver.c',
'src/core/lib/client_config/resolver_factory.c',
'src/core/lib/client_config/resolver_registry.c',
- 'src/core/lib/client_config/resolvers/dns_resolver.c',
- 'src/core/lib/client_config/resolvers/sockaddr_resolver.c',
'src/core/lib/client_config/subchannel.c',
- 'src/core/lib/client_config/subchannel_factory.c',
'src/core/lib/client_config/subchannel_index.c',
'src/core/lib/client_config/uri_parser.c',
'src/core/lib/compression/compression_algorithm.c',
@@ -632,17 +632,14 @@
'src/core/lib/iomgr/endpoint.c',
'src/core/lib/iomgr/endpoint_pair_posix.c',
'src/core/lib/iomgr/endpoint_pair_windows.c',
+ 'src/core/lib/iomgr/ev_poll_and_epoll_posix.c',
+ 'src/core/lib/iomgr/ev_posix.c',
'src/core/lib/iomgr/exec_ctx.c',
'src/core/lib/iomgr/executor.c',
- 'src/core/lib/iomgr/fd_posix.c',
'src/core/lib/iomgr/iocp_windows.c',
'src/core/lib/iomgr/iomgr.c',
'src/core/lib/iomgr/iomgr_posix.c',
'src/core/lib/iomgr/iomgr_windows.c',
- 'src/core/lib/iomgr/pollset_multipoller_with_epoll.c',
- 'src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c',
- 'src/core/lib/iomgr/pollset_posix.c',
- 'src/core/lib/iomgr/pollset_set_posix.c',
'src/core/lib/iomgr/pollset_set_windows.c',
'src/core/lib/iomgr/pollset_windows.c',
'src/core/lib/iomgr/resolve_address_posix.c',
diff --git a/build.yaml b/build.yaml
index c5f2ff5d45..459defd171 100644
--- a/build.yaml
+++ b/build.yaml
@@ -13,16 +13,23 @@ filegroups:
public_headers:
- include/grpc/census.h
headers:
- - src/core/lib/census/aggregation.h
- - src/core/lib/census/mlog.h
- - src/core/lib/census/rpc_metric_id.h
- src:
- - src/core/lib/census/context.c
- - src/core/lib/census/initialize.c
- - src/core/lib/census/mlog.c
- - src/core/lib/census/operation.c
- - src/core/lib/census/placeholders.c
- - src/core/lib/census/tracing.c
+ - src/core/ext/census/aggregation.h
+ - src/core/ext/census/census_interface.h
+ - src/core/ext/census/census_rpc_stats.h
+ - src/core/ext/census/grpc_filter.h
+ - src/core/ext/census/mlog.h
+ - src/core/ext/census/rpc_metric_id.h
+ src:
+ - src/core/ext/census/context.c
+ - src/core/ext/census/grpc_context.c
+ - src/core/ext/census/grpc_filter.c
+ - src/core/ext/census/grpc_plugin.c
+ - src/core/ext/census/initialize.c
+ - src/core/ext/census/mlog.c
+ - src/core/ext/census/operation.c
+ - src/core/ext/census/placeholders.c
+ - src/core/ext/census/tracing.c
+ plugin: census_grpc_plugin
- name: gpr
public_headers:
- include/grpc/support/alloc.h
@@ -247,8 +254,6 @@ filegroups:
- include/grpc/grpc.h
- include/grpc/status.h
headers:
- - src/core/lib/census/grpc_filter.h
- - src/core/lib/census/grpc_plugin.h
- src/core/lib/channel/channel_args.h
- src/core/lib/channel/channel_stack.h
- src/core/lib/channel/channel_stack_builder.h
@@ -259,6 +264,7 @@ filegroups:
- src/core/lib/channel/http_client_filter.h
- src/core/lib/channel/http_server_filter.h
- src/core/lib/channel/subchannel_call_holder.h
+ - src/core/lib/client_config/client_channel_factory.h
- src/core/lib/client_config/client_config.h
- src/core/lib/client_config/connector.h
- src/core/lib/client_config/initial_connect_string.h
@@ -268,10 +274,7 @@ filegroups:
- src/core/lib/client_config/resolver.h
- src/core/lib/client_config/resolver_factory.h
- src/core/lib/client_config/resolver_registry.h
- - src/core/lib/client_config/resolvers/dns_resolver.h
- - src/core/lib/client_config/resolvers/sockaddr_resolver.h
- src/core/lib/client_config/subchannel.h
- - src/core/lib/client_config/subchannel_factory.h
- src/core/lib/client_config/subchannel_index.h
- src/core/lib/client_config/uri_parser.h
- src/core/lib/compression/algorithm_metadata.h
@@ -283,17 +286,16 @@ filegroups:
- src/core/lib/iomgr/closure.h
- src/core/lib/iomgr/endpoint.h
- src/core/lib/iomgr/endpoint_pair.h
+ - src/core/lib/iomgr/ev_poll_and_epoll_posix.h
+ - src/core/lib/iomgr/ev_posix.h
- src/core/lib/iomgr/exec_ctx.h
- src/core/lib/iomgr/executor.h
- - src/core/lib/iomgr/fd_posix.h
- src/core/lib/iomgr/iocp_windows.h
- src/core/lib/iomgr/iomgr.h
- src/core/lib/iomgr/iomgr_internal.h
- src/core/lib/iomgr/iomgr_posix.h
- src/core/lib/iomgr/pollset.h
- - src/core/lib/iomgr/pollset_posix.h
- src/core/lib/iomgr/pollset_set.h
- - src/core/lib/iomgr/pollset_set_posix.h
- src/core/lib/iomgr/pollset_set_windows.h
- src/core/lib/iomgr/pollset_windows.h
- src/core/lib/iomgr/resolve_address.h
@@ -321,8 +323,6 @@ filegroups:
- src/core/lib/json/json_common.h
- src/core/lib/json/json_reader.h
- src/core/lib/json/json_writer.h
- - src/core/lib/statistics/census_interface.h
- - src/core/lib/statistics/census_rpc_stats.h
- src/core/lib/surface/api_trace.h
- src/core/lib/surface/call.h
- src/core/lib/surface/call_test_only.h
@@ -343,9 +343,6 @@ filegroups:
- src/core/lib/transport/transport.h
- src/core/lib/transport/transport_impl.h
src:
- - src/core/lib/census/grpc_context.c
- - src/core/lib/census/grpc_filter.c
- - src/core/lib/census/grpc_plugin.c
- src/core/lib/channel/channel_args.c
- src/core/lib/channel/channel_stack.c
- src/core/lib/channel/channel_stack_builder.c
@@ -355,6 +352,7 @@ filegroups:
- src/core/lib/channel/http_client_filter.c
- src/core/lib/channel/http_server_filter.c
- src/core/lib/channel/subchannel_call_holder.c
+ - src/core/lib/client_config/client_channel_factory.c
- src/core/lib/client_config/client_config.c
- src/core/lib/client_config/connector.c
- src/core/lib/client_config/default_initial_connect_string.c
@@ -365,10 +363,7 @@ filegroups:
- src/core/lib/client_config/resolver.c
- src/core/lib/client_config/resolver_factory.c
- src/core/lib/client_config/resolver_registry.c
- - src/core/lib/client_config/resolvers/dns_resolver.c
- - src/core/lib/client_config/resolvers/sockaddr_resolver.c
- src/core/lib/client_config/subchannel.c
- - src/core/lib/client_config/subchannel_factory.c
- src/core/lib/client_config/subchannel_index.c
- src/core/lib/client_config/uri_parser.c
- src/core/lib/compression/compression_algorithm.c
@@ -381,17 +376,14 @@ filegroups:
- src/core/lib/iomgr/endpoint.c
- src/core/lib/iomgr/endpoint_pair_posix.c
- src/core/lib/iomgr/endpoint_pair_windows.c
+ - src/core/lib/iomgr/ev_poll_and_epoll_posix.c
+ - src/core/lib/iomgr/ev_posix.c
- src/core/lib/iomgr/exec_ctx.c
- src/core/lib/iomgr/executor.c
- - src/core/lib/iomgr/fd_posix.c
- src/core/lib/iomgr/iocp_windows.c
- src/core/lib/iomgr/iomgr.c
- src/core/lib/iomgr/iomgr_posix.c
- src/core/lib/iomgr/iomgr_windows.c
- - src/core/lib/iomgr/pollset_multipoller_with_epoll.c
- - src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c
- - src/core/lib/iomgr/pollset_posix.c
- - src/core/lib/iomgr/pollset_set_posix.c
- src/core/lib/iomgr/pollset_set_windows.c
- src/core/lib/iomgr/pollset_windows.c
- src/core/lib/iomgr/resolve_address_posix.c
@@ -479,6 +471,18 @@ filegroups:
plugin: grpc_lb_policy_round_robin
uses:
- grpc_base
+- name: grpc_resolver_dns_native
+ src:
+ - src/core/ext/resolver/dns/native/dns_resolver.c
+ plugin: grpc_resolver_dns_native
+ uses:
+ - grpc_base
+- name: grpc_resolver_sockaddr
+ src:
+ - src/core/ext/resolver/sockaddr/sockaddr_resolver.c
+ plugin: grpc_resolver_sockaddr
+ uses:
+ - grpc_base
- name: grpc_secure
headers:
- src/core/lib/security/auth_filters.h
@@ -655,6 +659,8 @@ libs:
- grpc_lb_policy_grpclb
- grpc_lb_policy_pick_first
- grpc_lb_policy_round_robin
+ - grpc_resolver_dns_native
+ - grpc_resolver_sockaddr
- grpc_secure
- grpc_codegen
- census
@@ -739,6 +745,8 @@ libs:
- grpc_base
- grpc_transport_chttp2_server_insecure
- grpc_transport_chttp2_client_insecure
+ - grpc_resolver_dns_native
+ - grpc_resolver_sockaddr
- grpc_lb_policy_grpclb
- grpc_lb_policy_pick_first
- grpc_lb_policy_round_robin
@@ -753,10 +761,8 @@ libs:
language: c
public_headers:
- include/grpc/grpc_zookeeper.h
- headers:
- - src/core/lib/client_config/resolvers/zookeeper_resolver.h
src:
- - src/core/lib/client_config/resolvers/zookeeper_resolver.c
+ - src/core/ext/resolver/zookeeper/zookeeper_resolver.c
deps:
- gpr
- grpc
@@ -765,6 +771,14 @@ libs:
platforms:
- linux
secure: false
+- name: one_input_fuzzer
+ build: private
+ language: c
+ src:
+ - test/core/util/one_corpus_entry_fuzzer.c
+ deps:
+ - gpr
+ secure: false
- name: reconnect_server
build: private
language: c
@@ -1294,6 +1308,21 @@ targets:
src:
- tools/codegen/core/gen_legal_metadata_characters.c
deps: []
+- name: goaway_server_test
+ cpu_cost: 0.1
+ build: test
+ language: c
+ src:
+ - test/core/end2end/goaway_server_test.c
+ deps:
+ - grpc_test_util
+ - grpc
+ - gpr_test_util
+ - gpr
+ platforms:
+ - mac
+ - linux
+ - posix
- name: gpr_avl_test
build: test
language: c
diff --git a/config.m4 b/config.m4
index 1b414a1142..28a74337a1 100644
--- a/config.m4
+++ b/config.m4
@@ -80,10 +80,21 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/support/tmpfile_posix.c \
src/core/lib/support/tmpfile_win32.c \
src/core/lib/support/wrap_memcpy.c \
+ src/core/ext/census/context.c \
+ src/core/ext/census/grpc_context.c \
+ src/core/ext/census/grpc_filter.c \
+ src/core/ext/census/grpc_plugin.c \
+ src/core/ext/census/initialize.c \
+ src/core/ext/census/mlog.c \
+ src/core/ext/census/operation.c \
+ src/core/ext/census/placeholders.c \
+ src/core/ext/census/tracing.c \
src/core/ext/lb_policy/grpclb/load_balancer_api.c \
src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c \
src/core/ext/lb_policy/pick_first/pick_first.c \
src/core/ext/lb_policy/round_robin/round_robin.c \
+ src/core/ext/resolver/dns/native/dns_resolver.c \
+ src/core/ext/resolver/sockaddr/sockaddr_resolver.c \
src/core/ext/transport/chttp2/client/insecure/channel_create.c \
src/core/ext/transport/chttp2/client/secure/secure_channel_create.c \
src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \
@@ -109,15 +120,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/ext/transport/chttp2/transport/timeout_encoding.c \
src/core/ext/transport/chttp2/transport/varint.c \
src/core/ext/transport/chttp2/transport/writing.c \
- src/core/lib/census/context.c \
- src/core/lib/census/grpc_context.c \
- src/core/lib/census/grpc_filter.c \
- src/core/lib/census/grpc_plugin.c \
- src/core/lib/census/initialize.c \
- src/core/lib/census/mlog.c \
- src/core/lib/census/operation.c \
- src/core/lib/census/placeholders.c \
- src/core/lib/census/tracing.c \
src/core/lib/channel/channel_args.c \
src/core/lib/channel/channel_stack.c \
src/core/lib/channel/channel_stack_builder.c \
@@ -127,6 +129,7 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/channel/http_client_filter.c \
src/core/lib/channel/http_server_filter.c \
src/core/lib/channel/subchannel_call_holder.c \
+ src/core/lib/client_config/client_channel_factory.c \
src/core/lib/client_config/client_config.c \
src/core/lib/client_config/connector.c \
src/core/lib/client_config/default_initial_connect_string.c \
@@ -137,10 +140,7 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/client_config/resolver.c \
src/core/lib/client_config/resolver_factory.c \
src/core/lib/client_config/resolver_registry.c \
- src/core/lib/client_config/resolvers/dns_resolver.c \
- src/core/lib/client_config/resolvers/sockaddr_resolver.c \
src/core/lib/client_config/subchannel.c \
- src/core/lib/client_config/subchannel_factory.c \
src/core/lib/client_config/subchannel_index.c \
src/core/lib/client_config/uri_parser.c \
src/core/lib/compression/compression_algorithm.c \
@@ -154,17 +154,14 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/iomgr/endpoint.c \
src/core/lib/iomgr/endpoint_pair_posix.c \
src/core/lib/iomgr/endpoint_pair_windows.c \
+ src/core/lib/iomgr/ev_poll_and_epoll_posix.c \
+ src/core/lib/iomgr/ev_posix.c \
src/core/lib/iomgr/exec_ctx.c \
src/core/lib/iomgr/executor.c \
- src/core/lib/iomgr/fd_posix.c \
src/core/lib/iomgr/iocp_windows.c \
src/core/lib/iomgr/iomgr.c \
src/core/lib/iomgr/iomgr_posix.c \
src/core/lib/iomgr/iomgr_windows.c \
- src/core/lib/iomgr/pollset_multipoller_with_epoll.c \
- src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c \
- src/core/lib/iomgr/pollset_posix.c \
- src/core/lib/iomgr/pollset_set_posix.c \
src/core/lib/iomgr/pollset_set_windows.c \
src/core/lib/iomgr/pollset_windows.c \
src/core/lib/iomgr/resolve_address_posix.c \
@@ -547,19 +544,20 @@ if test "$PHP_GRPC" != "no"; then
PHP_ADD_BUILD_DIR($ext_builddir/src/php/ext/grpc)
PHP_ADD_BUILD_DIR($ext_builddir/src/boringssl)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/census)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/lb_policy/grpclb)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/lb_policy/pick_first)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/lb_policy/round_robin)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/resolver/dns/native)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/resolver/sockaddr)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/client/insecure)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/client/secure)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/server/insecure)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/server/secure)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/transport)
- PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/census)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/channel)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/client_config)
- PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/client_config/resolvers)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/compression)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/debug)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/http)
diff --git a/gRPC.podspec b/gRPC.podspec
index d94905ce2a..06eee01a90 100644
--- a/gRPC.podspec
+++ b/gRPC.podspec
@@ -161,6 +161,12 @@ Pod::Spec.new do |s|
'src/core/lib/support/tmpfile_posix.c',
'src/core/lib/support/tmpfile_win32.c',
'src/core/lib/support/wrap_memcpy.c',
+ 'src/core/ext/census/aggregation.h',
+ 'src/core/ext/census/census_interface.h',
+ 'src/core/ext/census/census_rpc_stats.h',
+ 'src/core/ext/census/grpc_filter.h',
+ 'src/core/ext/census/mlog.h',
+ 'src/core/ext/census/rpc_metric_id.h',
'src/core/ext/lb_policy/grpclb/load_balancer_api.h',
'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h',
'src/core/ext/transport/chttp2/transport/alpn.h',
@@ -184,11 +190,6 @@ Pod::Spec.new do |s|
'src/core/ext/transport/chttp2/transport/stream_map.h',
'src/core/ext/transport/chttp2/transport/timeout_encoding.h',
'src/core/ext/transport/chttp2/transport/varint.h',
- 'src/core/lib/census/aggregation.h',
- 'src/core/lib/census/grpc_filter.h',
- 'src/core/lib/census/grpc_plugin.h',
- 'src/core/lib/census/mlog.h',
- 'src/core/lib/census/rpc_metric_id.h',
'src/core/lib/channel/channel_args.h',
'src/core/lib/channel/channel_stack.h',
'src/core/lib/channel/channel_stack_builder.h',
@@ -199,6 +200,7 @@ Pod::Spec.new do |s|
'src/core/lib/channel/http_client_filter.h',
'src/core/lib/channel/http_server_filter.h',
'src/core/lib/channel/subchannel_call_holder.h',
+ 'src/core/lib/client_config/client_channel_factory.h',
'src/core/lib/client_config/client_config.h',
'src/core/lib/client_config/connector.h',
'src/core/lib/client_config/initial_connect_string.h',
@@ -208,10 +210,7 @@ Pod::Spec.new do |s|
'src/core/lib/client_config/resolver.h',
'src/core/lib/client_config/resolver_factory.h',
'src/core/lib/client_config/resolver_registry.h',
- 'src/core/lib/client_config/resolvers/dns_resolver.h',
- 'src/core/lib/client_config/resolvers/sockaddr_resolver.h',
'src/core/lib/client_config/subchannel.h',
- 'src/core/lib/client_config/subchannel_factory.h',
'src/core/lib/client_config/subchannel_index.h',
'src/core/lib/client_config/uri_parser.h',
'src/core/lib/compression/algorithm_metadata.h',
@@ -223,17 +222,16 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/closure.h',
'src/core/lib/iomgr/endpoint.h',
'src/core/lib/iomgr/endpoint_pair.h',
+ 'src/core/lib/iomgr/ev_poll_and_epoll_posix.h',
+ 'src/core/lib/iomgr/ev_posix.h',
'src/core/lib/iomgr/exec_ctx.h',
'src/core/lib/iomgr/executor.h',
- 'src/core/lib/iomgr/fd_posix.h',
'src/core/lib/iomgr/iocp_windows.h',
'src/core/lib/iomgr/iomgr.h',
'src/core/lib/iomgr/iomgr_internal.h',
'src/core/lib/iomgr/iomgr_posix.h',
'src/core/lib/iomgr/pollset.h',
- 'src/core/lib/iomgr/pollset_posix.h',
'src/core/lib/iomgr/pollset_set.h',
- 'src/core/lib/iomgr/pollset_set_posix.h',
'src/core/lib/iomgr/pollset_set_windows.h',
'src/core/lib/iomgr/pollset_windows.h',
'src/core/lib/iomgr/resolve_address.h',
@@ -270,8 +268,6 @@ Pod::Spec.new do |s|
'src/core/lib/security/secure_endpoint.h',
'src/core/lib/security/security_connector.h',
'src/core/lib/security/security_context.h',
- 'src/core/lib/statistics/census_interface.h',
- 'src/core/lib/statistics/census_rpc_stats.h',
'src/core/lib/surface/api_trace.h',
'src/core/lib/surface/call.h',
'src/core/lib/surface/call_test_only.h',
@@ -313,10 +309,21 @@ Pod::Spec.new do |s|
'include/grpc/impl/codegen/propagation_bits.h',
'include/grpc/impl/codegen/status.h',
'include/grpc/status.h',
+ 'src/core/ext/census/context.c',
+ 'src/core/ext/census/grpc_context.c',
+ 'src/core/ext/census/grpc_filter.c',
+ 'src/core/ext/census/grpc_plugin.c',
+ 'src/core/ext/census/initialize.c',
+ 'src/core/ext/census/mlog.c',
+ 'src/core/ext/census/operation.c',
+ 'src/core/ext/census/placeholders.c',
+ 'src/core/ext/census/tracing.c',
'src/core/ext/lb_policy/grpclb/load_balancer_api.c',
'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c',
'src/core/ext/lb_policy/pick_first/pick_first.c',
'src/core/ext/lb_policy/round_robin/round_robin.c',
+ 'src/core/ext/resolver/dns/native/dns_resolver.c',
+ 'src/core/ext/resolver/sockaddr/sockaddr_resolver.c',
'src/core/ext/transport/chttp2/client/insecure/channel_create.c',
'src/core/ext/transport/chttp2/client/secure/secure_channel_create.c',
'src/core/ext/transport/chttp2/server/insecure/server_chttp2.c',
@@ -342,15 +349,6 @@ Pod::Spec.new do |s|
'src/core/ext/transport/chttp2/transport/timeout_encoding.c',
'src/core/ext/transport/chttp2/transport/varint.c',
'src/core/ext/transport/chttp2/transport/writing.c',
- 'src/core/lib/census/context.c',
- 'src/core/lib/census/grpc_context.c',
- 'src/core/lib/census/grpc_filter.c',
- 'src/core/lib/census/grpc_plugin.c',
- 'src/core/lib/census/initialize.c',
- 'src/core/lib/census/mlog.c',
- 'src/core/lib/census/operation.c',
- 'src/core/lib/census/placeholders.c',
- 'src/core/lib/census/tracing.c',
'src/core/lib/channel/channel_args.c',
'src/core/lib/channel/channel_stack.c',
'src/core/lib/channel/channel_stack_builder.c',
@@ -360,6 +358,7 @@ Pod::Spec.new do |s|
'src/core/lib/channel/http_client_filter.c',
'src/core/lib/channel/http_server_filter.c',
'src/core/lib/channel/subchannel_call_holder.c',
+ 'src/core/lib/client_config/client_channel_factory.c',
'src/core/lib/client_config/client_config.c',
'src/core/lib/client_config/connector.c',
'src/core/lib/client_config/default_initial_connect_string.c',
@@ -370,10 +369,7 @@ Pod::Spec.new do |s|
'src/core/lib/client_config/resolver.c',
'src/core/lib/client_config/resolver_factory.c',
'src/core/lib/client_config/resolver_registry.c',
- 'src/core/lib/client_config/resolvers/dns_resolver.c',
- 'src/core/lib/client_config/resolvers/sockaddr_resolver.c',
'src/core/lib/client_config/subchannel.c',
- 'src/core/lib/client_config/subchannel_factory.c',
'src/core/lib/client_config/subchannel_index.c',
'src/core/lib/client_config/uri_parser.c',
'src/core/lib/compression/compression_algorithm.c',
@@ -387,17 +383,14 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/endpoint.c',
'src/core/lib/iomgr/endpoint_pair_posix.c',
'src/core/lib/iomgr/endpoint_pair_windows.c',
+ 'src/core/lib/iomgr/ev_poll_and_epoll_posix.c',
+ 'src/core/lib/iomgr/ev_posix.c',
'src/core/lib/iomgr/exec_ctx.c',
'src/core/lib/iomgr/executor.c',
- 'src/core/lib/iomgr/fd_posix.c',
'src/core/lib/iomgr/iocp_windows.c',
'src/core/lib/iomgr/iomgr.c',
'src/core/lib/iomgr/iomgr_posix.c',
'src/core/lib/iomgr/iomgr_windows.c',
- 'src/core/lib/iomgr/pollset_multipoller_with_epoll.c',
- 'src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c',
- 'src/core/lib/iomgr/pollset_posix.c',
- 'src/core/lib/iomgr/pollset_set_posix.c',
'src/core/lib/iomgr/pollset_set_windows.c',
'src/core/lib/iomgr/pollset_windows.c',
'src/core/lib/iomgr/resolve_address_posix.c',
@@ -491,6 +484,12 @@ Pod::Spec.new do |s|
'src/core/lib/support/thd_internal.h',
'src/core/lib/support/time_precise.h',
'src/core/lib/support/tmpfile.h',
+ 'src/core/ext/census/aggregation.h',
+ 'src/core/ext/census/census_interface.h',
+ 'src/core/ext/census/census_rpc_stats.h',
+ 'src/core/ext/census/grpc_filter.h',
+ 'src/core/ext/census/mlog.h',
+ 'src/core/ext/census/rpc_metric_id.h',
'src/core/ext/lb_policy/grpclb/load_balancer_api.h',
'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h',
'src/core/ext/transport/chttp2/transport/alpn.h',
@@ -514,11 +513,6 @@ Pod::Spec.new do |s|
'src/core/ext/transport/chttp2/transport/stream_map.h',
'src/core/ext/transport/chttp2/transport/timeout_encoding.h',
'src/core/ext/transport/chttp2/transport/varint.h',
- 'src/core/lib/census/aggregation.h',
- 'src/core/lib/census/grpc_filter.h',
- 'src/core/lib/census/grpc_plugin.h',
- 'src/core/lib/census/mlog.h',
- 'src/core/lib/census/rpc_metric_id.h',
'src/core/lib/channel/channel_args.h',
'src/core/lib/channel/channel_stack.h',
'src/core/lib/channel/channel_stack_builder.h',
@@ -529,6 +523,7 @@ Pod::Spec.new do |s|
'src/core/lib/channel/http_client_filter.h',
'src/core/lib/channel/http_server_filter.h',
'src/core/lib/channel/subchannel_call_holder.h',
+ 'src/core/lib/client_config/client_channel_factory.h',
'src/core/lib/client_config/client_config.h',
'src/core/lib/client_config/connector.h',
'src/core/lib/client_config/initial_connect_string.h',
@@ -538,10 +533,7 @@ Pod::Spec.new do |s|
'src/core/lib/client_config/resolver.h',
'src/core/lib/client_config/resolver_factory.h',
'src/core/lib/client_config/resolver_registry.h',
- 'src/core/lib/client_config/resolvers/dns_resolver.h',
- 'src/core/lib/client_config/resolvers/sockaddr_resolver.h',
'src/core/lib/client_config/subchannel.h',
- 'src/core/lib/client_config/subchannel_factory.h',
'src/core/lib/client_config/subchannel_index.h',
'src/core/lib/client_config/uri_parser.h',
'src/core/lib/compression/algorithm_metadata.h',
@@ -553,17 +545,16 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/closure.h',
'src/core/lib/iomgr/endpoint.h',
'src/core/lib/iomgr/endpoint_pair.h',
+ 'src/core/lib/iomgr/ev_poll_and_epoll_posix.h',
+ 'src/core/lib/iomgr/ev_posix.h',
'src/core/lib/iomgr/exec_ctx.h',
'src/core/lib/iomgr/executor.h',
- 'src/core/lib/iomgr/fd_posix.h',
'src/core/lib/iomgr/iocp_windows.h',
'src/core/lib/iomgr/iomgr.h',
'src/core/lib/iomgr/iomgr_internal.h',
'src/core/lib/iomgr/iomgr_posix.h',
'src/core/lib/iomgr/pollset.h',
- 'src/core/lib/iomgr/pollset_posix.h',
'src/core/lib/iomgr/pollset_set.h',
- 'src/core/lib/iomgr/pollset_set_posix.h',
'src/core/lib/iomgr/pollset_set_windows.h',
'src/core/lib/iomgr/pollset_windows.h',
'src/core/lib/iomgr/resolve_address.h',
@@ -600,8 +591,6 @@ Pod::Spec.new do |s|
'src/core/lib/security/secure_endpoint.h',
'src/core/lib/security/security_connector.h',
'src/core/lib/security/security_context.h',
- 'src/core/lib/statistics/census_interface.h',
- 'src/core/lib/statistics/census_rpc_stats.h',
'src/core/lib/surface/api_trace.h',
'src/core/lib/surface/call.h',
'src/core/lib/surface/call_test_only.h',
diff --git a/grpc.gemspec b/grpc.gemspec
index e96bedb587..ade8023dea 100755
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -157,6 +157,12 @@ Gem::Specification.new do |s|
s.files += %w( include/grpc/impl/codegen/propagation_bits.h )
s.files += %w( include/grpc/impl/codegen/status.h )
s.files += %w( include/grpc/status.h )
+ s.files += %w( src/core/ext/census/aggregation.h )
+ s.files += %w( src/core/ext/census/census_interface.h )
+ s.files += %w( src/core/ext/census/census_rpc_stats.h )
+ s.files += %w( src/core/ext/census/grpc_filter.h )
+ s.files += %w( src/core/ext/census/mlog.h )
+ s.files += %w( src/core/ext/census/rpc_metric_id.h )
s.files += %w( src/core/ext/lb_policy/grpclb/load_balancer_api.h )
s.files += %w( src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h )
s.files += %w( src/core/ext/transport/chttp2/transport/alpn.h )
@@ -180,11 +186,6 @@ Gem::Specification.new do |s|
s.files += %w( src/core/ext/transport/chttp2/transport/stream_map.h )
s.files += %w( src/core/ext/transport/chttp2/transport/timeout_encoding.h )
s.files += %w( src/core/ext/transport/chttp2/transport/varint.h )
- s.files += %w( src/core/lib/census/aggregation.h )
- s.files += %w( src/core/lib/census/grpc_filter.h )
- s.files += %w( src/core/lib/census/grpc_plugin.h )
- s.files += %w( src/core/lib/census/mlog.h )
- s.files += %w( src/core/lib/census/rpc_metric_id.h )
s.files += %w( src/core/lib/channel/channel_args.h )
s.files += %w( src/core/lib/channel/channel_stack.h )
s.files += %w( src/core/lib/channel/channel_stack_builder.h )
@@ -195,6 +196,7 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/channel/http_client_filter.h )
s.files += %w( src/core/lib/channel/http_server_filter.h )
s.files += %w( src/core/lib/channel/subchannel_call_holder.h )
+ s.files += %w( src/core/lib/client_config/client_channel_factory.h )
s.files += %w( src/core/lib/client_config/client_config.h )
s.files += %w( src/core/lib/client_config/connector.h )
s.files += %w( src/core/lib/client_config/initial_connect_string.h )
@@ -204,10 +206,7 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/client_config/resolver.h )
s.files += %w( src/core/lib/client_config/resolver_factory.h )
s.files += %w( src/core/lib/client_config/resolver_registry.h )
- s.files += %w( src/core/lib/client_config/resolvers/dns_resolver.h )
- s.files += %w( src/core/lib/client_config/resolvers/sockaddr_resolver.h )
s.files += %w( src/core/lib/client_config/subchannel.h )
- s.files += %w( src/core/lib/client_config/subchannel_factory.h )
s.files += %w( src/core/lib/client_config/subchannel_index.h )
s.files += %w( src/core/lib/client_config/uri_parser.h )
s.files += %w( src/core/lib/compression/algorithm_metadata.h )
@@ -219,17 +218,16 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/iomgr/closure.h )
s.files += %w( src/core/lib/iomgr/endpoint.h )
s.files += %w( src/core/lib/iomgr/endpoint_pair.h )
+ s.files += %w( src/core/lib/iomgr/ev_poll_and_epoll_posix.h )
+ s.files += %w( src/core/lib/iomgr/ev_posix.h )
s.files += %w( src/core/lib/iomgr/exec_ctx.h )
s.files += %w( src/core/lib/iomgr/executor.h )
- s.files += %w( src/core/lib/iomgr/fd_posix.h )
s.files += %w( src/core/lib/iomgr/iocp_windows.h )
s.files += %w( src/core/lib/iomgr/iomgr.h )
s.files += %w( src/core/lib/iomgr/iomgr_internal.h )
s.files += %w( src/core/lib/iomgr/iomgr_posix.h )
s.files += %w( src/core/lib/iomgr/pollset.h )
- s.files += %w( src/core/lib/iomgr/pollset_posix.h )
s.files += %w( src/core/lib/iomgr/pollset_set.h )
- s.files += %w( src/core/lib/iomgr/pollset_set_posix.h )
s.files += %w( src/core/lib/iomgr/pollset_set_windows.h )
s.files += %w( src/core/lib/iomgr/pollset_windows.h )
s.files += %w( src/core/lib/iomgr/resolve_address.h )
@@ -266,8 +264,6 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/security/secure_endpoint.h )
s.files += %w( src/core/lib/security/security_connector.h )
s.files += %w( src/core/lib/security/security_context.h )
- s.files += %w( src/core/lib/statistics/census_interface.h )
- s.files += %w( src/core/lib/statistics/census_rpc_stats.h )
s.files += %w( src/core/lib/surface/api_trace.h )
s.files += %w( src/core/lib/surface/call.h )
s.files += %w( src/core/lib/surface/call_test_only.h )
@@ -296,10 +292,21 @@ Gem::Specification.new do |s|
s.files += %w( third_party/nanopb/pb_common.h )
s.files += %w( third_party/nanopb/pb_decode.h )
s.files += %w( third_party/nanopb/pb_encode.h )
+ s.files += %w( src/core/ext/census/context.c )
+ s.files += %w( src/core/ext/census/grpc_context.c )
+ s.files += %w( src/core/ext/census/grpc_filter.c )
+ s.files += %w( src/core/ext/census/grpc_plugin.c )
+ s.files += %w( src/core/ext/census/initialize.c )
+ s.files += %w( src/core/ext/census/mlog.c )
+ s.files += %w( src/core/ext/census/operation.c )
+ s.files += %w( src/core/ext/census/placeholders.c )
+ s.files += %w( src/core/ext/census/tracing.c )
s.files += %w( src/core/ext/lb_policy/grpclb/load_balancer_api.c )
s.files += %w( src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c )
s.files += %w( src/core/ext/lb_policy/pick_first/pick_first.c )
s.files += %w( src/core/ext/lb_policy/round_robin/round_robin.c )
+ s.files += %w( src/core/ext/resolver/dns/native/dns_resolver.c )
+ s.files += %w( src/core/ext/resolver/sockaddr/sockaddr_resolver.c )
s.files += %w( src/core/ext/transport/chttp2/client/insecure/channel_create.c )
s.files += %w( src/core/ext/transport/chttp2/client/secure/secure_channel_create.c )
s.files += %w( src/core/ext/transport/chttp2/server/insecure/server_chttp2.c )
@@ -325,15 +332,6 @@ Gem::Specification.new do |s|
s.files += %w( src/core/ext/transport/chttp2/transport/timeout_encoding.c )
s.files += %w( src/core/ext/transport/chttp2/transport/varint.c )
s.files += %w( src/core/ext/transport/chttp2/transport/writing.c )
- s.files += %w( src/core/lib/census/context.c )
- s.files += %w( src/core/lib/census/grpc_context.c )
- s.files += %w( src/core/lib/census/grpc_filter.c )
- s.files += %w( src/core/lib/census/grpc_plugin.c )
- s.files += %w( src/core/lib/census/initialize.c )
- s.files += %w( src/core/lib/census/mlog.c )
- s.files += %w( src/core/lib/census/operation.c )
- s.files += %w( src/core/lib/census/placeholders.c )
- s.files += %w( src/core/lib/census/tracing.c )
s.files += %w( src/core/lib/channel/channel_args.c )
s.files += %w( src/core/lib/channel/channel_stack.c )
s.files += %w( src/core/lib/channel/channel_stack_builder.c )
@@ -343,6 +341,7 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/channel/http_client_filter.c )
s.files += %w( src/core/lib/channel/http_server_filter.c )
s.files += %w( src/core/lib/channel/subchannel_call_holder.c )
+ s.files += %w( src/core/lib/client_config/client_channel_factory.c )
s.files += %w( src/core/lib/client_config/client_config.c )
s.files += %w( src/core/lib/client_config/connector.c )
s.files += %w( src/core/lib/client_config/default_initial_connect_string.c )
@@ -353,10 +352,7 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/client_config/resolver.c )
s.files += %w( src/core/lib/client_config/resolver_factory.c )
s.files += %w( src/core/lib/client_config/resolver_registry.c )
- s.files += %w( src/core/lib/client_config/resolvers/dns_resolver.c )
- s.files += %w( src/core/lib/client_config/resolvers/sockaddr_resolver.c )
s.files += %w( src/core/lib/client_config/subchannel.c )
- s.files += %w( src/core/lib/client_config/subchannel_factory.c )
s.files += %w( src/core/lib/client_config/subchannel_index.c )
s.files += %w( src/core/lib/client_config/uri_parser.c )
s.files += %w( src/core/lib/compression/compression_algorithm.c )
@@ -370,17 +366,14 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/iomgr/endpoint.c )
s.files += %w( src/core/lib/iomgr/endpoint_pair_posix.c )
s.files += %w( src/core/lib/iomgr/endpoint_pair_windows.c )
+ s.files += %w( src/core/lib/iomgr/ev_poll_and_epoll_posix.c )
+ s.files += %w( src/core/lib/iomgr/ev_posix.c )
s.files += %w( src/core/lib/iomgr/exec_ctx.c )
s.files += %w( src/core/lib/iomgr/executor.c )
- s.files += %w( src/core/lib/iomgr/fd_posix.c )
s.files += %w( src/core/lib/iomgr/iocp_windows.c )
s.files += %w( src/core/lib/iomgr/iomgr.c )
s.files += %w( src/core/lib/iomgr/iomgr_posix.c )
s.files += %w( src/core/lib/iomgr/iomgr_windows.c )
- s.files += %w( src/core/lib/iomgr/pollset_multipoller_with_epoll.c )
- s.files += %w( src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c )
- s.files += %w( src/core/lib/iomgr/pollset_posix.c )
- s.files += %w( src/core/lib/iomgr/pollset_set_posix.c )
s.files += %w( src/core/lib/iomgr/pollset_set_windows.c )
s.files += %w( src/core/lib/iomgr/pollset_windows.c )
s.files += %w( src/core/lib/iomgr/resolve_address_posix.c )
diff --git a/include/grpc++/impl/codegen/async_stream.h b/include/grpc++/impl/codegen/async_stream.h
index 78fb7274e2..a607a47106 100644
--- a/include/grpc++/impl/codegen/async_stream.h
+++ b/include/grpc++/impl/codegen/async_stream.h
@@ -108,7 +108,8 @@ class ClientAsyncReader GRPC_FINAL : public ClientAsyncReaderInterface<R> {
const W& request, void* tag)
: context_(context), call_(channel->CreateCall(method, context, cq)) {
init_ops_.set_output_tag(tag);
- init_ops_.SendInitialMetadata(context->send_initial_metadata_);
+ init_ops_.SendInitialMetadata(context->send_initial_metadata_,
+ context->initial_metadata_flags());
// TODO(ctiller): don't assert
GPR_CODEGEN_ASSERT(init_ops_.SendMessage(request).ok());
init_ops_.ClientSendClose();
@@ -173,7 +174,8 @@ class ClientAsyncWriter GRPC_FINAL : public ClientAsyncWriterInterface<W> {
finish_ops_.RecvMessage(response);
init_ops_.set_output_tag(tag);
- init_ops_.SendInitialMetadata(context->send_initial_metadata_);
+ init_ops_.SendInitialMetadata(context->send_initial_metadata_,
+ context->initial_metadata_flags());
call_.PerformOps(&init_ops_);
}
@@ -240,7 +242,8 @@ class ClientAsyncReaderWriter GRPC_FINAL
void* tag)
: context_(context), call_(channel->CreateCall(method, context, cq)) {
init_ops_.set_output_tag(tag);
- init_ops_.SendInitialMetadata(context->send_initial_metadata_);
+ init_ops_.SendInitialMetadata(context->send_initial_metadata_,
+ context->initial_metadata_flags());
call_.PerformOps(&init_ops_);
}
@@ -305,7 +308,8 @@ class ServerAsyncReader GRPC_FINAL : public ServerAsyncStreamingInterface,
GPR_CODEGEN_ASSERT(!ctx_->sent_initial_metadata_);
meta_ops_.set_output_tag(tag);
- meta_ops_.SendInitialMetadata(ctx_->initial_metadata_);
+ meta_ops_.SendInitialMetadata(ctx_->initial_metadata_,
+ ctx_->initial_metadata_flags());
ctx_->sent_initial_metadata_ = true;
call_.PerformOps(&meta_ops_);
}
@@ -319,7 +323,8 @@ class ServerAsyncReader GRPC_FINAL : public ServerAsyncStreamingInterface,
void Finish(const W& msg, const Status& status, void* tag) {
finish_ops_.set_output_tag(tag);
if (!ctx_->sent_initial_metadata_) {
- finish_ops_.SendInitialMetadata(ctx_->initial_metadata_);
+ finish_ops_.SendInitialMetadata(ctx_->initial_metadata_,
+ ctx_->initial_metadata_flags());
ctx_->sent_initial_metadata_ = true;
}
// The response is dropped if the status is not OK.
@@ -336,7 +341,8 @@ class ServerAsyncReader GRPC_FINAL : public ServerAsyncStreamingInterface,
GPR_CODEGEN_ASSERT(!status.ok());
finish_ops_.set_output_tag(tag);
if (!ctx_->sent_initial_metadata_) {
- finish_ops_.SendInitialMetadata(ctx_->initial_metadata_);
+ finish_ops_.SendInitialMetadata(ctx_->initial_metadata_,
+ ctx_->initial_metadata_flags());
ctx_->sent_initial_metadata_ = true;
}
finish_ops_.ServerSendStatus(ctx_->trailing_metadata_, status);
@@ -366,7 +372,8 @@ class ServerAsyncWriter GRPC_FINAL : public ServerAsyncStreamingInterface,
GPR_CODEGEN_ASSERT(!ctx_->sent_initial_metadata_);
meta_ops_.set_output_tag(tag);
- meta_ops_.SendInitialMetadata(ctx_->initial_metadata_);
+ meta_ops_.SendInitialMetadata(ctx_->initial_metadata_,
+ ctx_->initial_metadata_flags());
ctx_->sent_initial_metadata_ = true;
call_.PerformOps(&meta_ops_);
}
@@ -374,7 +381,8 @@ class ServerAsyncWriter GRPC_FINAL : public ServerAsyncStreamingInterface,
void Write(const W& msg, void* tag) GRPC_OVERRIDE {
write_ops_.set_output_tag(tag);
if (!ctx_->sent_initial_metadata_) {
- write_ops_.SendInitialMetadata(ctx_->initial_metadata_);
+ write_ops_.SendInitialMetadata(ctx_->initial_metadata_,
+ ctx_->initial_metadata_flags());
ctx_->sent_initial_metadata_ = true;
}
// TODO(ctiller): don't assert
@@ -385,7 +393,8 @@ class ServerAsyncWriter GRPC_FINAL : public ServerAsyncStreamingInterface,
void Finish(const Status& status, void* tag) {
finish_ops_.set_output_tag(tag);
if (!ctx_->sent_initial_metadata_) {
- finish_ops_.SendInitialMetadata(ctx_->initial_metadata_);
+ finish_ops_.SendInitialMetadata(ctx_->initial_metadata_,
+ ctx_->initial_metadata_flags());
ctx_->sent_initial_metadata_ = true;
}
finish_ops_.ServerSendStatus(ctx_->trailing_metadata_, status);
@@ -415,7 +424,8 @@ class ServerAsyncReaderWriter GRPC_FINAL : public ServerAsyncStreamingInterface,
GPR_CODEGEN_ASSERT(!ctx_->sent_initial_metadata_);
meta_ops_.set_output_tag(tag);
- meta_ops_.SendInitialMetadata(ctx_->initial_metadata_);
+ meta_ops_.SendInitialMetadata(ctx_->initial_metadata_,
+ ctx_->initial_metadata_flags());
ctx_->sent_initial_metadata_ = true;
call_.PerformOps(&meta_ops_);
}
@@ -429,7 +439,8 @@ class ServerAsyncReaderWriter GRPC_FINAL : public ServerAsyncStreamingInterface,
void Write(const W& msg, void* tag) GRPC_OVERRIDE {
write_ops_.set_output_tag(tag);
if (!ctx_->sent_initial_metadata_) {
- write_ops_.SendInitialMetadata(ctx_->initial_metadata_);
+ write_ops_.SendInitialMetadata(ctx_->initial_metadata_,
+ ctx_->initial_metadata_flags());
ctx_->sent_initial_metadata_ = true;
}
// TODO(ctiller): don't assert
@@ -440,7 +451,8 @@ class ServerAsyncReaderWriter GRPC_FINAL : public ServerAsyncStreamingInterface,
void Finish(const Status& status, void* tag) {
finish_ops_.set_output_tag(tag);
if (!ctx_->sent_initial_metadata_) {
- finish_ops_.SendInitialMetadata(ctx_->initial_metadata_);
+ finish_ops_.SendInitialMetadata(ctx_->initial_metadata_,
+ ctx_->initial_metadata_flags());
ctx_->sent_initial_metadata_ = true;
}
finish_ops_.ServerSendStatus(ctx_->trailing_metadata_, status);
diff --git a/include/grpc++/impl/codegen/async_unary_call.h b/include/grpc++/impl/codegen/async_unary_call.h
index 52b34770a8..55c9788fbd 100644
--- a/include/grpc++/impl/codegen/async_unary_call.h
+++ b/include/grpc++/impl/codegen/async_unary_call.h
@@ -67,7 +67,8 @@ class ClientAsyncResponseReader GRPC_FINAL
call_(channel->CreateCall(method, context, cq)),
collection_(new CallOpSetCollection) {
collection_->init_buf_.SetCollection(collection_);
- collection_->init_buf_.SendInitialMetadata(context->send_initial_metadata_);
+ collection_->init_buf_.SendInitialMetadata(
+ context->send_initial_metadata_, context->initial_metadata_flags());
// TODO(ctiller): don't assert
GPR_CODEGEN_ASSERT(collection_->init_buf_.SendMessage(request).ok());
collection_->init_buf_.ClientSendClose();
@@ -122,7 +123,8 @@ class ServerAsyncResponseWriter GRPC_FINAL
GPR_CODEGEN_ASSERT(!ctx_->sent_initial_metadata_);
meta_buf_.set_output_tag(tag);
- meta_buf_.SendInitialMetadata(ctx_->initial_metadata_);
+ meta_buf_.SendInitialMetadata(ctx_->initial_metadata_,
+ ctx_->initial_metadata_flags());
ctx_->sent_initial_metadata_ = true;
call_.PerformOps(&meta_buf_);
}
@@ -130,7 +132,8 @@ class ServerAsyncResponseWriter GRPC_FINAL
void Finish(const W& msg, const Status& status, void* tag) {
finish_buf_.set_output_tag(tag);
if (!ctx_->sent_initial_metadata_) {
- finish_buf_.SendInitialMetadata(ctx_->initial_metadata_);
+ finish_buf_.SendInitialMetadata(ctx_->initial_metadata_,
+ ctx_->initial_metadata_flags());
ctx_->sent_initial_metadata_ = true;
}
// The response is dropped if the status is not OK.
@@ -147,7 +150,8 @@ class ServerAsyncResponseWriter GRPC_FINAL
GPR_CODEGEN_ASSERT(!status.ok());
finish_buf_.set_output_tag(tag);
if (!ctx_->sent_initial_metadata_) {
- finish_buf_.SendInitialMetadata(ctx_->initial_metadata_);
+ finish_buf_.SendInitialMetadata(ctx_->initial_metadata_,
+ ctx_->initial_metadata_flags());
ctx_->sent_initial_metadata_ = true;
}
finish_buf_.ServerSendStatus(ctx_->trailing_metadata_, status);
diff --git a/include/grpc++/impl/codegen/call.h b/include/grpc++/impl/codegen/call.h
index f76d7c23ed..aea1a6acec 100644
--- a/include/grpc++/impl/codegen/call.h
+++ b/include/grpc++/impl/codegen/call.h
@@ -181,8 +181,10 @@ class CallOpSendInitialMetadata {
CallOpSendInitialMetadata() : send_(false) {}
void SendInitialMetadata(
- const std::multimap<grpc::string, grpc::string>& metadata) {
+ const std::multimap<grpc::string, grpc::string>& metadata,
+ uint32_t flags) {
send_ = true;
+ flags_ = flags;
initial_metadata_count_ = metadata.size();
initial_metadata_ = FillMetadataArray(metadata);
}
@@ -192,7 +194,7 @@ class CallOpSendInitialMetadata {
if (!send_) return;
grpc_op* op = &ops[(*nops)++];
op->op = GRPC_OP_SEND_INITIAL_METADATA;
- op->flags = 0;
+ op->flags = flags_;
op->reserved = NULL;
op->data.send_initial_metadata.count = initial_metadata_count_;
op->data.send_initial_metadata.metadata = initial_metadata_;
@@ -204,6 +206,7 @@ class CallOpSendInitialMetadata {
}
bool send_;
+ uint32_t flags_;
size_t initial_metadata_count_;
grpc_metadata* initial_metadata_;
};
diff --git a/include/grpc++/impl/codegen/client_context.h b/include/grpc++/impl/codegen/client_context.h
index 5201808600..aed12767a7 100644
--- a/include/grpc++/impl/codegen/client_context.h
+++ b/include/grpc++/impl/codegen/client_context.h
@@ -221,6 +221,12 @@ class ClientContext {
deadline_ = deadline_tp.raw_time();
}
+ /// EXPERIMENTAL: Set this request to be idempotent
+ void set_idempotent(bool idempotent) { idempotent_ = idempotent; }
+
+ /// EXPERIMENTAL: Trigger fail-fast or not on this request
+ void set_fail_fast(bool fail_fast) { fail_fast_ = fail_fast; }
+
#ifndef GRPC_CXX0X_NO_CHRONO
/// Return the deadline for the client call.
std::chrono::system_clock::time_point deadline() {
@@ -328,9 +334,16 @@ class ClientContext {
grpc_call* call() { return call_; }
void set_call(grpc_call* call, const std::shared_ptr<Channel>& channel);
+ uint32_t initial_metadata_flags() const {
+ return (idempotent_ ? GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST : 0) |
+ (fail_fast_ ? 0 : GRPC_INITIAL_METADATA_IGNORE_CONNECTIVITY);
+ }
+
grpc::string authority() { return authority_; }
bool initial_metadata_received_;
+ bool fail_fast_;
+ bool idempotent_;
std::shared_ptr<Channel> channel_;
grpc::mutex mu_;
grpc_call* call_;
diff --git a/include/grpc++/impl/codegen/client_unary_call.h b/include/grpc++/impl/codegen/client_unary_call.h
index 0ee5b198d2..70d65549c8 100644
--- a/include/grpc++/impl/codegen/client_unary_call.h
+++ b/include/grpc++/impl/codegen/client_unary_call.h
@@ -62,7 +62,8 @@ Status BlockingUnaryCall(ChannelInterface* channel, const RpcMethod& method,
if (!status.ok()) {
return status;
}
- ops.SendInitialMetadata(context->send_initial_metadata_);
+ ops.SendInitialMetadata(context->send_initial_metadata_,
+ context->initial_metadata_flags());
ops.RecvInitialMetadata(context);
ops.RecvMessage(result);
ops.ClientSendClose();
diff --git a/include/grpc++/impl/codegen/method_handler_impl.h b/include/grpc++/impl/codegen/method_handler_impl.h
index 436b4d819b..ad74efabc4 100644
--- a/include/grpc++/impl/codegen/method_handler_impl.h
+++ b/include/grpc++/impl/codegen/method_handler_impl.h
@@ -63,7 +63,8 @@ class RpcMethodHandler : public MethodHandler {
CallOpSet<CallOpSendInitialMetadata, CallOpSendMessage,
CallOpServerSendStatus>
ops;
- ops.SendInitialMetadata(param.server_context->initial_metadata_);
+ ops.SendInitialMetadata(param.server_context->initial_metadata_,
+ param.server_context->initial_metadata_flags());
if (status.ok()) {
status = ops.SendMessage(rsp);
}
@@ -100,7 +101,8 @@ class ClientStreamingHandler : public MethodHandler {
CallOpSet<CallOpSendInitialMetadata, CallOpSendMessage,
CallOpServerSendStatus>
ops;
- ops.SendInitialMetadata(param.server_context->initial_metadata_);
+ ops.SendInitialMetadata(param.server_context->initial_metadata_,
+ param.server_context->initial_metadata_flags());
if (status.ok()) {
status = ops.SendMessage(rsp);
}
@@ -138,7 +140,8 @@ class ServerStreamingHandler : public MethodHandler {
CallOpSet<CallOpSendInitialMetadata, CallOpServerSendStatus> ops;
if (!param.server_context->sent_initial_metadata_) {
- ops.SendInitialMetadata(param.server_context->initial_metadata_);
+ ops.SendInitialMetadata(param.server_context->initial_metadata_,
+ param.server_context->initial_metadata_flags());
}
ops.ServerSendStatus(param.server_context->trailing_metadata_, status);
param.call->PerformOps(&ops);
@@ -170,7 +173,8 @@ class BidiStreamingHandler : public MethodHandler {
CallOpSet<CallOpSendInitialMetadata, CallOpServerSendStatus> ops;
if (!param.server_context->sent_initial_metadata_) {
- ops.SendInitialMetadata(param.server_context->initial_metadata_);
+ ops.SendInitialMetadata(param.server_context->initial_metadata_,
+ param.server_context->initial_metadata_flags());
}
ops.ServerSendStatus(param.server_context->trailing_metadata_, status);
param.call->PerformOps(&ops);
@@ -191,7 +195,8 @@ class UnknownMethodHandler : public MethodHandler {
static void FillOps(ServerContext* context, T* ops) {
Status status(StatusCode::UNIMPLEMENTED, "");
if (!context->sent_initial_metadata_) {
- ops->SendInitialMetadata(context->initial_metadata_);
+ ops->SendInitialMetadata(context->initial_metadata_,
+ context->initial_metadata_flags());
context->sent_initial_metadata_ = true;
}
ops->ServerSendStatus(context->trailing_metadata_, status);
diff --git a/include/grpc++/impl/codegen/server_context.h b/include/grpc++/impl/codegen/server_context.h
index 44d340aa45..7fa0235ca9 100644
--- a/include/grpc++/impl/codegen/server_context.h
+++ b/include/grpc++/impl/codegen/server_context.h
@@ -195,6 +195,8 @@ class ServerContext {
void set_call(grpc_call* call);
+ uint32_t initial_metadata_flags() const { return 0; }
+
CompletionOp* completion_op_;
bool has_notify_when_done_tag_;
void* async_notify_when_done_tag_;
diff --git a/include/grpc++/impl/codegen/sync_stream.h b/include/grpc++/impl/codegen/sync_stream.h
index d0ad05169f..9100ce09a2 100644
--- a/include/grpc++/impl/codegen/sync_stream.h
+++ b/include/grpc++/impl/codegen/sync_stream.h
@@ -125,7 +125,8 @@ class ClientReader GRPC_FINAL : public ClientReaderInterface<R> {
CallOpSet<CallOpSendInitialMetadata, CallOpSendMessage,
CallOpClientSendClose>
ops;
- ops.SendInitialMetadata(context->send_initial_metadata_);
+ ops.SendInitialMetadata(context->send_initial_metadata_,
+ context->initial_metadata_flags());
// TODO(ctiller): don't assert
GPR_CODEGEN_ASSERT(ops.SendMessage(request).ok());
ops.ClientSendClose();
@@ -190,7 +191,8 @@ class ClientWriter : public ClientWriterInterface<W> {
finish_ops_.RecvMessage(response);
CallOpSet<CallOpSendInitialMetadata> ops;
- ops.SendInitialMetadata(context->send_initial_metadata_);
+ ops.SendInitialMetadata(context->send_initial_metadata_,
+ context->initial_metadata_flags());
call_.PerformOps(&ops);
cq_.Pluck(&ops);
}
@@ -268,7 +270,8 @@ class ClientReaderWriter GRPC_FINAL : public ClientReaderWriterInterface<W, R> {
ClientContext* context)
: context_(context), call_(channel->CreateCall(method, context, &cq_)) {
CallOpSet<CallOpSendInitialMetadata> ops;
- ops.SendInitialMetadata(context->send_initial_metadata_);
+ ops.SendInitialMetadata(context->send_initial_metadata_,
+ context->initial_metadata_flags());
call_.PerformOps(&ops);
cq_.Pluck(&ops);
}
@@ -334,7 +337,8 @@ class ServerReader GRPC_FINAL : public ReaderInterface<R> {
GPR_CODEGEN_ASSERT(!ctx_->sent_initial_metadata_);
CallOpSet<CallOpSendInitialMetadata> ops;
- ops.SendInitialMetadata(ctx_->initial_metadata_);
+ ops.SendInitialMetadata(ctx_->initial_metadata_,
+ ctx_->initial_metadata_flags());
ctx_->sent_initial_metadata_ = true;
call_->PerformOps(&ops);
call_->cq()->Pluck(&ops);
@@ -361,7 +365,8 @@ class ServerWriter GRPC_FINAL : public WriterInterface<W> {
GPR_CODEGEN_ASSERT(!ctx_->sent_initial_metadata_);
CallOpSet<CallOpSendInitialMetadata> ops;
- ops.SendInitialMetadata(ctx_->initial_metadata_);
+ ops.SendInitialMetadata(ctx_->initial_metadata_,
+ ctx_->initial_metadata_flags());
ctx_->sent_initial_metadata_ = true;
call_->PerformOps(&ops);
call_->cq()->Pluck(&ops);
@@ -374,7 +379,8 @@ class ServerWriter GRPC_FINAL : public WriterInterface<W> {
return false;
}
if (!ctx_->sent_initial_metadata_) {
- ops.SendInitialMetadata(ctx_->initial_metadata_);
+ ops.SendInitialMetadata(ctx_->initial_metadata_,
+ ctx_->initial_metadata_flags());
ctx_->sent_initial_metadata_ = true;
}
call_->PerformOps(&ops);
@@ -397,7 +403,8 @@ class ServerReaderWriter GRPC_FINAL : public WriterInterface<W>,
GPR_CODEGEN_ASSERT(!ctx_->sent_initial_metadata_);
CallOpSet<CallOpSendInitialMetadata> ops;
- ops.SendInitialMetadata(ctx_->initial_metadata_);
+ ops.SendInitialMetadata(ctx_->initial_metadata_,
+ ctx_->initial_metadata_flags());
ctx_->sent_initial_metadata_ = true;
call_->PerformOps(&ops);
call_->cq()->Pluck(&ops);
@@ -417,7 +424,8 @@ class ServerReaderWriter GRPC_FINAL : public WriterInterface<W>,
return false;
}
if (!ctx_->sent_initial_metadata_) {
- ops.SendInitialMetadata(ctx_->initial_metadata_);
+ ops.SendInitialMetadata(ctx_->initial_metadata_,
+ ctx_->initial_metadata_flags());
ctx_->sent_initial_metadata_ = true;
}
call_->PerformOps(&ops);
diff --git a/include/grpc/grpc.h b/include/grpc/grpc.h
index 8b460722e2..5c868aece3 100644
--- a/include/grpc/grpc.h
+++ b/include/grpc/grpc.h
@@ -289,6 +289,14 @@ GRPCAPI grpc_call_error grpc_server_request_call(
grpc_completion_queue *cq_bound_to_call,
grpc_completion_queue *cq_for_notification, void *tag_new);
+/** How to handle payloads for a registered method */
+typedef enum {
+ /** Don't try to read the payload */
+ GRPC_SRM_PAYLOAD_NONE,
+ /** Read the initial payload as a byte buffer */
+ GRPC_SRM_PAYLOAD_READ_INITIAL_BYTE_BUFFER
+} grpc_server_register_method_payload_handling;
+
/** Registers a method in the server.
Methods to this (host, method) pair will not be reported by
grpc_server_request_call, but instead be reported by
@@ -296,9 +304,10 @@ GRPCAPI grpc_call_error grpc_server_request_call(
registered_method (as returned by this function).
Must be called before grpc_server_start.
Returns NULL on failure. */
-GRPCAPI void *grpc_server_register_method(grpc_server *server,
- const char *method, const char *host,
- uint32_t flags);
+GRPCAPI void *grpc_server_register_method(
+ grpc_server *server, const char *method, const char *host,
+ grpc_server_register_method_payload_handling payload_handling,
+ uint32_t flags);
/** Request notification of a new pre-registered call. 'cq_for_notification'
must have been registered to the server via
diff --git a/include/grpc/impl/codegen/grpc_types.h b/include/grpc/impl/codegen/grpc_types.h
index b09b1cdf44..4c7373006b 100644
--- a/include/grpc/impl/codegen/grpc_types.h
+++ b/include/grpc/impl/codegen/grpc_types.h
@@ -142,6 +142,8 @@ typedef struct {
/** Secondary user agent: goes at the end of the user-agent metadata
sent on each request */
#define GRPC_ARG_SECONDARY_USER_AGENT_STRING "grpc.secondary_user_agent"
+/** The maximum time between subsequent connection attempts, in ms */
+#define GRPC_ARG_MAX_RECONNECT_BACKOFF_MS "grpc.max_reconnect_backoff_ms"
/* The caller of the secure_channel_create functions may override the target
name used for SSL host name checking using this channel argument which is of
type GRPC_ARG_STRING. This *should* be used for testing only.
@@ -185,7 +187,9 @@ typedef enum grpc_call_error {
server */
GRPC_CALL_ERROR_NOT_SERVER_COMPLETION_QUEUE,
/** this batch of operations leads to more operations than allowed */
- GRPC_CALL_ERROR_BATCH_TOO_BIG
+ GRPC_CALL_ERROR_BATCH_TOO_BIG,
+ /** payload type requested is not the type registered */
+ GRPC_CALL_ERROR_PAYLOAD_TYPE_MISMATCH
} grpc_call_error;
/* Write Flags: */
@@ -202,8 +206,12 @@ typedef enum grpc_call_error {
/* Initial metadata flags */
/** Signal that the call is idempotent */
#define GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST (0x00000010u)
+/** Signal that the call should not return UNAVAILABLE before it has started */
+#define GRPC_INITIAL_METADATA_IGNORE_CONNECTIVITY (0x00000020u)
/** Mask of all valid flags */
-#define GRPC_INITIAL_METADATA_USED_MASK GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST
+#define GRPC_INITIAL_METADATA_USED_MASK \
+ (GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST | \
+ GRPC_INITIAL_METADATA_IGNORE_CONNECTIVITY)
/** A single metadata element */
typedef struct grpc_metadata {
diff --git a/package.json b/package.json
index cbcfc19ee3..339db464d1 100644
--- a/package.json
+++ b/package.json
@@ -100,6 +100,12 @@
"include/grpc/impl/codegen/propagation_bits.h",
"include/grpc/impl/codegen/status.h",
"include/grpc/status.h",
+ "src/core/ext/census/aggregation.h",
+ "src/core/ext/census/census_interface.h",
+ "src/core/ext/census/census_rpc_stats.h",
+ "src/core/ext/census/grpc_filter.h",
+ "src/core/ext/census/mlog.h",
+ "src/core/ext/census/rpc_metric_id.h",
"src/core/ext/lb_policy/grpclb/load_balancer_api.h",
"src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
"src/core/ext/transport/chttp2/transport/alpn.h",
@@ -123,11 +129,6 @@
"src/core/ext/transport/chttp2/transport/stream_map.h",
"src/core/ext/transport/chttp2/transport/timeout_encoding.h",
"src/core/ext/transport/chttp2/transport/varint.h",
- "src/core/lib/census/aggregation.h",
- "src/core/lib/census/grpc_filter.h",
- "src/core/lib/census/grpc_plugin.h",
- "src/core/lib/census/mlog.h",
- "src/core/lib/census/rpc_metric_id.h",
"src/core/lib/channel/channel_args.h",
"src/core/lib/channel/channel_stack.h",
"src/core/lib/channel/channel_stack_builder.h",
@@ -138,6 +139,7 @@
"src/core/lib/channel/http_client_filter.h",
"src/core/lib/channel/http_server_filter.h",
"src/core/lib/channel/subchannel_call_holder.h",
+ "src/core/lib/client_config/client_channel_factory.h",
"src/core/lib/client_config/client_config.h",
"src/core/lib/client_config/connector.h",
"src/core/lib/client_config/initial_connect_string.h",
@@ -147,10 +149,7 @@
"src/core/lib/client_config/resolver.h",
"src/core/lib/client_config/resolver_factory.h",
"src/core/lib/client_config/resolver_registry.h",
- "src/core/lib/client_config/resolvers/dns_resolver.h",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.h",
"src/core/lib/client_config/subchannel.h",
- "src/core/lib/client_config/subchannel_factory.h",
"src/core/lib/client_config/subchannel_index.h",
"src/core/lib/client_config/uri_parser.h",
"src/core/lib/compression/algorithm_metadata.h",
@@ -162,17 +161,16 @@
"src/core/lib/iomgr/closure.h",
"src/core/lib/iomgr/endpoint.h",
"src/core/lib/iomgr/endpoint_pair.h",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.h",
+ "src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.h",
"src/core/lib/iomgr/executor.h",
- "src/core/lib/iomgr/fd_posix.h",
"src/core/lib/iomgr/iocp_windows.h",
"src/core/lib/iomgr/iomgr.h",
"src/core/lib/iomgr/iomgr_internal.h",
"src/core/lib/iomgr/iomgr_posix.h",
"src/core/lib/iomgr/pollset.h",
- "src/core/lib/iomgr/pollset_posix.h",
"src/core/lib/iomgr/pollset_set.h",
- "src/core/lib/iomgr/pollset_set_posix.h",
"src/core/lib/iomgr/pollset_set_windows.h",
"src/core/lib/iomgr/pollset_windows.h",
"src/core/lib/iomgr/resolve_address.h",
@@ -209,8 +207,6 @@
"src/core/lib/security/secure_endpoint.h",
"src/core/lib/security/security_connector.h",
"src/core/lib/security/security_context.h",
- "src/core/lib/statistics/census_interface.h",
- "src/core/lib/statistics/census_rpc_stats.h",
"src/core/lib/surface/api_trace.h",
"src/core/lib/surface/call.h",
"src/core/lib/surface/call_test_only.h",
@@ -239,10 +235,21 @@
"third_party/nanopb/pb_common.h",
"third_party/nanopb/pb_decode.h",
"third_party/nanopb/pb_encode.h",
+ "src/core/ext/census/context.c",
+ "src/core/ext/census/grpc_context.c",
+ "src/core/ext/census/grpc_filter.c",
+ "src/core/ext/census/grpc_plugin.c",
+ "src/core/ext/census/initialize.c",
+ "src/core/ext/census/mlog.c",
+ "src/core/ext/census/operation.c",
+ "src/core/ext/census/placeholders.c",
+ "src/core/ext/census/tracing.c",
"src/core/ext/lb_policy/grpclb/load_balancer_api.c",
"src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c",
"src/core/ext/lb_policy/pick_first/pick_first.c",
"src/core/ext/lb_policy/round_robin/round_robin.c",
+ "src/core/ext/resolver/dns/native/dns_resolver.c",
+ "src/core/ext/resolver/sockaddr/sockaddr_resolver.c",
"src/core/ext/transport/chttp2/client/insecure/channel_create.c",
"src/core/ext/transport/chttp2/client/secure/secure_channel_create.c",
"src/core/ext/transport/chttp2/server/insecure/server_chttp2.c",
@@ -268,15 +275,6 @@
"src/core/ext/transport/chttp2/transport/timeout_encoding.c",
"src/core/ext/transport/chttp2/transport/varint.c",
"src/core/ext/transport/chttp2/transport/writing.c",
- "src/core/lib/census/context.c",
- "src/core/lib/census/grpc_context.c",
- "src/core/lib/census/grpc_filter.c",
- "src/core/lib/census/grpc_plugin.c",
- "src/core/lib/census/initialize.c",
- "src/core/lib/census/mlog.c",
- "src/core/lib/census/operation.c",
- "src/core/lib/census/placeholders.c",
- "src/core/lib/census/tracing.c",
"src/core/lib/channel/channel_args.c",
"src/core/lib/channel/channel_stack.c",
"src/core/lib/channel/channel_stack_builder.c",
@@ -286,6 +284,7 @@
"src/core/lib/channel/http_client_filter.c",
"src/core/lib/channel/http_server_filter.c",
"src/core/lib/channel/subchannel_call_holder.c",
+ "src/core/lib/client_config/client_channel_factory.c",
"src/core/lib/client_config/client_config.c",
"src/core/lib/client_config/connector.c",
"src/core/lib/client_config/default_initial_connect_string.c",
@@ -296,10 +295,7 @@
"src/core/lib/client_config/resolver.c",
"src/core/lib/client_config/resolver_factory.c",
"src/core/lib/client_config/resolver_registry.c",
- "src/core/lib/client_config/resolvers/dns_resolver.c",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.c",
"src/core/lib/client_config/subchannel.c",
- "src/core/lib/client_config/subchannel_factory.c",
"src/core/lib/client_config/subchannel_index.c",
"src/core/lib/client_config/uri_parser.c",
"src/core/lib/compression/compression_algorithm.c",
@@ -313,17 +309,14 @@
"src/core/lib/iomgr/endpoint.c",
"src/core/lib/iomgr/endpoint_pair_posix.c",
"src/core/lib/iomgr/endpoint_pair_windows.c",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.c",
+ "src/core/lib/iomgr/ev_posix.c",
"src/core/lib/iomgr/exec_ctx.c",
"src/core/lib/iomgr/executor.c",
- "src/core/lib/iomgr/fd_posix.c",
"src/core/lib/iomgr/iocp_windows.c",
"src/core/lib/iomgr/iomgr.c",
"src/core/lib/iomgr/iomgr_posix.c",
"src/core/lib/iomgr/iomgr_windows.c",
- "src/core/lib/iomgr/pollset_multipoller_with_epoll.c",
- "src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c",
- "src/core/lib/iomgr/pollset_posix.c",
- "src/core/lib/iomgr/pollset_set_posix.c",
"src/core/lib/iomgr/pollset_set_windows.c",
"src/core/lib/iomgr/pollset_windows.c",
"src/core/lib/iomgr/resolve_address_posix.c",
diff --git a/package.xml b/package.xml
index 1caf850c56..af0e2e5bcd 100644
--- a/package.xml
+++ b/package.xml
@@ -161,6 +161,12 @@
<file baseinstalldir="/" name="include/grpc/impl/codegen/propagation_bits.h" role="src" />
<file baseinstalldir="/" name="include/grpc/impl/codegen/status.h" role="src" />
<file baseinstalldir="/" name="include/grpc/status.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/aggregation.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/census_interface.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/census_rpc_stats.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/grpc_filter.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/mlog.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/rpc_metric_id.h" role="src" />
<file baseinstalldir="/" name="src/core/ext/lb_policy/grpclb/load_balancer_api.h" role="src" />
<file baseinstalldir="/" name="src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h" role="src" />
<file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/alpn.h" role="src" />
@@ -184,11 +190,6 @@
<file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/stream_map.h" role="src" />
<file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/timeout_encoding.h" role="src" />
<file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/varint.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/aggregation.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/grpc_filter.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/grpc_plugin.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/mlog.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/rpc_metric_id.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/channel/channel_args.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/channel/channel_stack.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/channel/channel_stack_builder.h" role="src" />
@@ -199,6 +200,7 @@
<file baseinstalldir="/" name="src/core/lib/channel/http_client_filter.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/channel/http_server_filter.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/channel/subchannel_call_holder.h" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/client_config/client_channel_factory.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/client_config.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/connector.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/initial_connect_string.h" role="src" />
@@ -208,10 +210,7 @@
<file baseinstalldir="/" name="src/core/lib/client_config/resolver.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/resolver_factory.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/resolver_registry.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/client_config/resolvers/dns_resolver.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/client_config/resolvers/sockaddr_resolver.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/subchannel.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/client_config/subchannel_factory.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/subchannel_index.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/uri_parser.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/compression/algorithm_metadata.h" role="src" />
@@ -223,17 +222,16 @@
<file baseinstalldir="/" name="src/core/lib/iomgr/closure.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/endpoint.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/endpoint_pair.h" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/iomgr/ev_poll_and_epoll_posix.h" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/iomgr/ev_posix.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/exec_ctx.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/executor.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/iomgr/fd_posix.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/iocp_windows.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/iomgr.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/iomgr_internal.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/iomgr_posix.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/pollset.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/iomgr/pollset_posix.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/pollset_set.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/iomgr/pollset_set_posix.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/pollset_set_windows.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/pollset_windows.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/resolve_address.h" role="src" />
@@ -270,8 +268,6 @@
<file baseinstalldir="/" name="src/core/lib/security/secure_endpoint.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/security/security_connector.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/security/security_context.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/statistics/census_interface.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/statistics/census_rpc_stats.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/api_trace.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/call.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/call_test_only.h" role="src" />
@@ -300,10 +296,21 @@
<file baseinstalldir="/" name="third_party/nanopb/pb_common.h" role="src" />
<file baseinstalldir="/" name="third_party/nanopb/pb_decode.h" role="src" />
<file baseinstalldir="/" name="third_party/nanopb/pb_encode.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/context.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/grpc_context.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/grpc_filter.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/grpc_plugin.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/initialize.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/mlog.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/operation.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/placeholders.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/tracing.c" role="src" />
<file baseinstalldir="/" name="src/core/ext/lb_policy/grpclb/load_balancer_api.c" role="src" />
<file baseinstalldir="/" name="src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c" role="src" />
<file baseinstalldir="/" name="src/core/ext/lb_policy/pick_first/pick_first.c" role="src" />
<file baseinstalldir="/" name="src/core/ext/lb_policy/round_robin/round_robin.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/resolver/dns/native/dns_resolver.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/resolver/sockaddr/sockaddr_resolver.c" role="src" />
<file baseinstalldir="/" name="src/core/ext/transport/chttp2/client/insecure/channel_create.c" role="src" />
<file baseinstalldir="/" name="src/core/ext/transport/chttp2/client/secure/secure_channel_create.c" role="src" />
<file baseinstalldir="/" name="src/core/ext/transport/chttp2/server/insecure/server_chttp2.c" role="src" />
@@ -329,15 +336,6 @@
<file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/timeout_encoding.c" role="src" />
<file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/varint.c" role="src" />
<file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/writing.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/context.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/grpc_context.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/grpc_filter.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/grpc_plugin.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/initialize.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/mlog.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/operation.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/placeholders.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/tracing.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/channel/channel_args.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/channel/channel_stack.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/channel/channel_stack_builder.c" role="src" />
@@ -347,6 +345,7 @@
<file baseinstalldir="/" name="src/core/lib/channel/http_client_filter.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/channel/http_server_filter.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/channel/subchannel_call_holder.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/client_config/client_channel_factory.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/client_config.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/connector.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/default_initial_connect_string.c" role="src" />
@@ -357,10 +356,7 @@
<file baseinstalldir="/" name="src/core/lib/client_config/resolver.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/resolver_factory.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/resolver_registry.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/client_config/resolvers/dns_resolver.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/client_config/resolvers/sockaddr_resolver.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/subchannel.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/client_config/subchannel_factory.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/subchannel_index.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/uri_parser.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/compression/compression_algorithm.c" role="src" />
@@ -374,17 +370,14 @@
<file baseinstalldir="/" name="src/core/lib/iomgr/endpoint.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/endpoint_pair_posix.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/endpoint_pair_windows.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/iomgr/ev_poll_and_epoll_posix.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/iomgr/ev_posix.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/exec_ctx.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/executor.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/iomgr/fd_posix.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/iocp_windows.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/iomgr.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/iomgr_posix.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/iomgr_windows.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/iomgr/pollset_multipoller_with_epoll.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/iomgr/pollset_posix.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/iomgr/pollset_set_posix.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/pollset_set_windows.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/pollset_windows.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/resolve_address_posix.c" role="src" />
diff --git a/src/compiler/csharp_generator.cc b/src/compiler/csharp_generator.cc
index 5a8746df8d..69e2738d53 100644
--- a/src/compiler/csharp_generator.cc
+++ b/src/compiler/csharp_generator.cc
@@ -81,6 +81,10 @@ std::string GetServerInterfaceName(const ServiceDescriptor* service) {
return "I" + service->name();
}
+std::string GetServerClassName(const ServiceDescriptor* service) {
+ return service->name() + "Base";
+}
+
std::string GetCSharpMethodType(MethodType method_type) {
switch (method_type) {
case METHODTYPE_NO_STREAMING:
@@ -108,10 +112,14 @@ std::string GetMethodFieldName(const MethodDescriptor *method) {
return "__Method_" + method->name();
}
-std::string GetMethodRequestParamMaybe(const MethodDescriptor *method) {
+std::string GetMethodRequestParamMaybe(const MethodDescriptor *method,
+ bool invocation_param=false) {
if (method->client_streaming()) {
return "";
}
+ if (invocation_param) {
+ return "request, ";
+ }
return GetClassName(method->input_type()) + " request, ";
}
@@ -242,6 +250,8 @@ void GenerateServiceDescriptorProperty(Printer* out, const ServiceDescriptor *se
void GenerateClientInterface(Printer* out, const ServiceDescriptor *service) {
out->Print("// client interface\n");
+ out->Print("[System.Obsolete(\"Client side interfaced will be removed "
+ "in the next release. Use client class directly.\")]\n");
out->Print("public interface $name$\n", "name",
GetClientInterfaceName(service));
out->Print("{\n");
@@ -290,6 +300,8 @@ void GenerateClientInterface(Printer* out, const ServiceDescriptor *service) {
void GenerateServerInterface(Printer* out, const ServiceDescriptor *service) {
out->Print("// server-side interface\n");
+ out->Print("[System.Obsolete(\"Service implementations should inherit"
+ " from the generated abstract base class instead.\")]\n");
out->Print("public interface $name$\n", "name",
GetServerInterfaceName(service));
out->Print("{\n");
@@ -309,21 +321,64 @@ void GenerateServerInterface(Printer* out, const ServiceDescriptor *service) {
out->Print("\n");
}
+void GenerateServerClass(Printer* out, const ServiceDescriptor *service) {
+ out->Print("// server-side abstract class\n");
+ out->Print("public abstract class $name$\n", "name",
+ GetServerClassName(service));
+ out->Print("{\n");
+ out->Indent();
+ for (int i = 0; i < service->method_count(); i++) {
+ const MethodDescriptor *method = service->method(i);
+ out->Print(
+ "public virtual $returntype$ $methodname$($request$$response_stream_maybe$, "
+ "ServerCallContext context)\n",
+ "methodname", method->name(), "returntype",
+ GetMethodReturnTypeServer(method), "request",
+ GetMethodRequestParamServer(method), "response_stream_maybe",
+ GetMethodResponseStreamMaybe(method));
+ out->Print("{\n");
+ out->Indent();
+ out->Print("throw new RpcException("
+ "new Status(StatusCode.Unimplemented, \"\"));\n");
+ out->Outdent();
+ out->Print("}\n\n");
+ }
+ out->Outdent();
+ out->Print("}\n");
+ out->Print("\n");
+}
+
void GenerateClientStub(Printer* out, const ServiceDescriptor *service) {
out->Print("// client stub\n");
out->Print(
- "public class $name$ : ClientBase, $interface$\n",
- "name", GetClientClassName(service), "interface",
- GetClientInterfaceName(service));
+ "public class $name$ : ClientBase<$name$>, $interface$\n",
+ "name", GetClientClassName(service),
+ "interface", GetClientInterfaceName(service));
out->Print("{\n");
out->Indent();
// constructors
- out->Print(
- "public $name$(Channel channel) : base(channel)\n",
- "name", GetClientClassName(service));
+ out->Print("public $name$(Channel channel) : base(channel)\n",
+ "name", GetClientClassName(service));
+ out->Print("{\n");
+ out->Print("}\n");
+ out->Print("public $name$(CallInvoker callInvoker) : base(callInvoker)\n",
+ "name", GetClientClassName(service));
out->Print("{\n");
out->Print("}\n");
+ out->Print("///<summary>Protected parameterless constructor to allow creation"
+ " of test doubles.</summary>\n");
+ out->Print("protected $name$() : base()\n",
+ "name", GetClientClassName(service));
+ out->Print("{\n");
+ out->Print("}\n");
+ out->Print("///<summary>Protected constructor to allow creation of configured"
+ " clients.</summary>\n");
+ out->Print("protected $name$(ClientBaseConfiguration configuration)"
+ " : base(configuration)\n",
+ "name", GetClientClassName(service));
+ out->Print("{\n");
+ out->Print("}\n\n");
for (int i = 0; i < service->method_count(); i++) {
const MethodDescriptor *method = service->method(i);
@@ -331,30 +386,26 @@ void GenerateClientStub(Printer* out, const ServiceDescriptor *service) {
if (method_type == METHODTYPE_NO_STREAMING) {
// unary calls have an extra synchronous stub method
- out->Print(
- "public $response$ $methodname$($request$ request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))\n",
+ out->Print("public virtual $response$ $methodname$($request$ request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))\n",
"methodname", method->name(), "request",
GetClassName(method->input_type()), "response",
GetClassName(method->output_type()));
out->Print("{\n");
out->Indent();
- out->Print("var call = CreateCall($methodfield$, new CallOptions(headers, deadline, cancellationToken));\n",
- "methodfield", GetMethodFieldName(method));
- out->Print("return Calls.BlockingUnaryCall(call, request);\n");
+ out->Print("return $methodname$(request, new CallOptions(headers, deadline, cancellationToken));\n",
+ "methodname", method->name());
out->Outdent();
out->Print("}\n");
// overload taking CallOptions as a param
- out->Print(
- "public $response$ $methodname$($request$ request, CallOptions options)\n",
- "methodname", method->name(), "request",
- GetClassName(method->input_type()), "response",
- GetClassName(method->output_type()));
+ out->Print("public virtual $response$ $methodname$($request$ request, CallOptions options)\n",
+ "methodname", method->name(), "request",
+ GetClassName(method->input_type()), "response",
+ GetClassName(method->output_type()));
out->Print("{\n");
out->Indent();
- out->Print("var call = CreateCall($methodfield$, options);\n",
+ out->Print("return CallInvoker.BlockingUnaryCall($methodfield$, null, options, request);\n",
"methodfield", GetMethodFieldName(method));
- out->Print("return Calls.BlockingUnaryCall(call, request);\n");
out->Outdent();
out->Print("}\n");
}
@@ -364,57 +415,44 @@ void GenerateClientStub(Printer* out, const ServiceDescriptor *service) {
method_name += "Async"; // prevent name clash with synchronous method.
}
out->Print(
- "public $returntype$ $methodname$($request_maybe$Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))\n",
- "methodname", method_name, "request_maybe",
- GetMethodRequestParamMaybe(method), "returntype",
- GetMethodReturnTypeClient(method));
+ "public virtual $returntype$ $methodname$($request_maybe$Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))\n",
+ "methodname", method_name, "request_maybe",
+ GetMethodRequestParamMaybe(method), "returntype",
+ GetMethodReturnTypeClient(method));
out->Print("{\n");
out->Indent();
- out->Print("var call = CreateCall($methodfield$, new CallOptions(headers, deadline, cancellationToken));\n",
- "methodfield", GetMethodFieldName(method));
- switch (GetMethodType(method)) {
- case METHODTYPE_NO_STREAMING:
- out->Print("return Calls.AsyncUnaryCall(call, request);\n");
- break;
- case METHODTYPE_CLIENT_STREAMING:
- out->Print("return Calls.AsyncClientStreamingCall(call);\n");
- break;
- case METHODTYPE_SERVER_STREAMING:
- out->Print(
- "return Calls.AsyncServerStreamingCall(call, request);\n");
- break;
- case METHODTYPE_BIDI_STREAMING:
- out->Print("return Calls.AsyncDuplexStreamingCall(call);\n");
- break;
- default:
- GOOGLE_LOG(FATAL)<< "Can't get here.";
- }
+
+ out->Print("return $methodname$($request_maybe$new CallOptions(headers, deadline, cancellationToken));\n",
+ "methodname", method_name,
+ "request_maybe", GetMethodRequestParamMaybe(method, true));
out->Outdent();
out->Print("}\n");
// overload taking CallOptions as a param
out->Print(
- "public $returntype$ $methodname$($request_maybe$CallOptions options)\n",
+ "public virtual $returntype$ $methodname$($request_maybe$CallOptions options)\n",
"methodname", method_name, "request_maybe",
GetMethodRequestParamMaybe(method), "returntype",
GetMethodReturnTypeClient(method));
out->Print("{\n");
out->Indent();
- out->Print("var call = CreateCall($methodfield$, options);\n",
- "methodfield", GetMethodFieldName(method));
switch (GetMethodType(method)) {
case METHODTYPE_NO_STREAMING:
- out->Print("return Calls.AsyncUnaryCall(call, request);\n");
+ out->Print("return CallInvoker.AsyncUnaryCall($methodfield$, null, options, request);\n",
+ "methodfield", GetMethodFieldName(method));
break;
case METHODTYPE_CLIENT_STREAMING:
- out->Print("return Calls.AsyncClientStreamingCall(call);\n");
+ out->Print("return CallInvoker.AsyncClientStreamingCall($methodfield$, null, options);\n",
+ "methodfield", GetMethodFieldName(method));
break;
case METHODTYPE_SERVER_STREAMING:
out->Print(
- "return Calls.AsyncServerStreamingCall(call, request);\n");
+ "return CallInvoker.AsyncServerStreamingCall($methodfield$, null, options, request);\n",
+ "methodfield", GetMethodFieldName(method));
break;
case METHODTYPE_BIDI_STREAMING:
- out->Print("return Calls.AsyncDuplexStreamingCall(call);\n");
+ out->Print("return CallInvoker.AsyncDuplexStreamingCall($methodfield$, null, options);\n",
+ "methodfield", GetMethodFieldName(method));
break;
default:
GOOGLE_LOG(FATAL)<< "Can't get here.";
@@ -422,17 +460,30 @@ void GenerateClientStub(Printer* out, const ServiceDescriptor *service) {
out->Outdent();
out->Print("}\n");
}
+
+ // override NewInstance method
+ out->Print("protected override $name$ NewInstance(ClientBaseConfiguration configuration)\n",
+ "name", GetClientClassName(service));
+ out->Print("{\n");
+ out->Indent();
+ out->Print("return new $name$(configuration);\n",
+ "name", GetClientClassName(service));
+ out->Outdent();
+ out->Print("}\n");
+
out->Outdent();
out->Print("}\n");
out->Print("\n");
}
-void GenerateBindServiceMethod(Printer* out, const ServiceDescriptor *service) {
+void GenerateBindServiceMethod(Printer* out, const ServiceDescriptor *service,
+ bool use_server_class) {
out->Print(
"// creates service definition that can be registered with a server\n");
out->Print(
"public static ServerServiceDefinition BindService($interface$ serviceImpl)\n",
- "interface", GetServerInterfaceName(service));
+ "interface", use_server_class ? GetServerClassName(service) :
+ GetServerInterfaceName(service));
out->Print("{\n");
out->Indent();
@@ -489,8 +540,10 @@ void GenerateService(Printer* out, const ServiceDescriptor *service) {
GenerateServiceDescriptorProperty(out, service);
GenerateClientInterface(out, service);
GenerateServerInterface(out, service);
+ GenerateServerClass(out, service);
GenerateClientStub(out, service);
- GenerateBindServiceMethod(out, service);
+ GenerateBindServiceMethod(out, service, false);
+ GenerateBindServiceMethod(out, service, true);
GenerateNewStubMethods(out, service);
out->Outdent();
diff --git a/src/core/lib/census/README.md b/src/core/ext/census/README.md
index fb615a2194..fb615a2194 100644
--- a/src/core/lib/census/README.md
+++ b/src/core/ext/census/README.md
diff --git a/src/core/lib/census/aggregation.h b/src/core/ext/census/aggregation.h
index 088ad808ef..45f789c772 100644
--- a/src/core/lib/census/aggregation.h
+++ b/src/core/ext/census/aggregation.h
@@ -33,8 +33,8 @@
#include <stddef.h>
-#ifndef GRPC_CORE_LIB_CENSUS_AGGREGATION_H
-#define GRPC_CORE_LIB_CENSUS_AGGREGATION_H
+#ifndef GRPC_CORE_EXT_CENSUS_AGGREGATION_H
+#define GRPC_CORE_EXT_CENSUS_AGGREGATION_H
/** Structure used to describe an aggregation type. */
struct census_aggregation_ops {
@@ -63,4 +63,4 @@ struct census_aggregation_ops {
size_t (*print)(const void *aggregation, char *buffer, size_t n);
};
-#endif /* GRPC_CORE_LIB_CENSUS_AGGREGATION_H */
+#endif /* GRPC_CORE_EXT_CENSUS_AGGREGATION_H */
diff --git a/src/core/lib/statistics/census_init.c b/src/core/ext/census/census_init.c
index 7a8b8b660a..690b09e789 100644
--- a/src/core/lib/statistics/census_init.c
+++ b/src/core/ext/census/census_init.c
@@ -31,11 +31,11 @@
*
*/
-#include "src/core/lib/statistics/census_interface.h"
+#include "src/core/ext/census/census_interface.h"
#include <grpc/support/log.h>
-#include "src/core/lib/statistics/census_rpc_stats.h"
-#include "src/core/lib/statistics/census_tracing.h"
+#include "src/core/ext/census/census_rpc_stats.h"
+#include "src/core/ext/census/census_tracing.h"
void census_init(void) {
census_tracing_init();
diff --git a/src/core/lib/statistics/census_interface.h b/src/core/ext/census/census_interface.h
index 4dce81b0c7..57e75f56ee 100644
--- a/src/core/lib/statistics/census_interface.h
+++ b/src/core/ext/census/census_interface.h
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_STATISTICS_CENSUS_INTERFACE_H
-#define GRPC_CORE_LIB_STATISTICS_CENSUS_INTERFACE_H
+#ifndef GRPC_CORE_EXT_CENSUS_CENSUS_INTERFACE_H
+#define GRPC_CORE_EXT_CENSUS_CENSUS_INTERFACE_H
#include <grpc/support/port_platform.h>
@@ -73,4 +73,4 @@ census_op_id census_tracing_start_op(void);
/* Ends tracing. Calling this function will invalidate the input op_id. */
void census_tracing_end_op(census_op_id op_id);
-#endif /* GRPC_CORE_LIB_STATISTICS_CENSUS_INTERFACE_H */
+#endif /* GRPC_CORE_EXT_CENSUS_CENSUS_INTERFACE_H */
diff --git a/src/core/lib/statistics/census_log.c b/src/core/ext/census/census_log.c
index 782b34e3a1..9a7331adc2 100644
--- a/src/core/lib/statistics/census_log.c
+++ b/src/core/ext/census/census_log.c
@@ -89,7 +89,7 @@
include the name of the structure, which will be passed as the first
argument. E.g. cl_block_initialize() will initialize a cl_block.
*/
-#include "src/core/lib/statistics/census_log.h"
+#include "src/core/ext/census/census_log.h"
#include <grpc/support/alloc.h>
#include <grpc/support/atm.h>
#include <grpc/support/cpu.h>
diff --git a/src/core/lib/statistics/census_log.h b/src/core/ext/census/census_log.h
index 6efcef49a4..534ecc5705 100644
--- a/src/core/lib/statistics/census_log.h
+++ b/src/core/ext/census/census_log.h
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_STATISTICS_CENSUS_LOG_H
-#define GRPC_CORE_LIB_STATISTICS_CENSUS_LOG_H
+#ifndef GRPC_CORE_EXT_CENSUS_CENSUS_LOG_H
+#define GRPC_CORE_EXT_CENSUS_CENSUS_LOG_H
#include <stddef.h>
@@ -88,4 +88,4 @@ size_t census_log_remaining_space(void);
out-of-space. */
int census_log_out_of_space_count(void);
-#endif /* GRPC_CORE_LIB_STATISTICS_CENSUS_LOG_H */
+#endif /* GRPC_CORE_EXT_CENSUS_CENSUS_LOG_H */
diff --git a/src/core/lib/statistics/census_rpc_stats.c b/src/core/ext/census/census_rpc_stats.c
index 33522e0f40..09ee12d54b 100644
--- a/src/core/lib/statistics/census_rpc_stats.c
+++ b/src/core/ext/census/census_rpc_stats.c
@@ -36,11 +36,11 @@
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/sync.h>
-#include "src/core/lib/statistics/census_interface.h"
-#include "src/core/lib/statistics/census_rpc_stats.h"
-#include "src/core/lib/statistics/census_tracing.h"
-#include "src/core/lib/statistics/hash_table.h"
-#include "src/core/lib/statistics/window_stats.h"
+#include "src/core/ext/census/census_interface.h"
+#include "src/core/ext/census/census_rpc_stats.h"
+#include "src/core/ext/census/census_tracing.h"
+#include "src/core/ext/census/hash_table.h"
+#include "src/core/ext/census/window_stats.h"
#include "src/core/lib/support/murmur_hash.h"
#include "src/core/lib/support/string.h"
diff --git a/src/core/lib/statistics/census_rpc_stats.h b/src/core/ext/census/census_rpc_stats.h
index 3853642362..7e4d8d1640 100644
--- a/src/core/lib/statistics/census_rpc_stats.h
+++ b/src/core/ext/census/census_rpc_stats.h
@@ -31,11 +31,11 @@
*
*/
-#ifndef GRPC_CORE_LIB_STATISTICS_CENSUS_RPC_STATS_H
-#define GRPC_CORE_LIB_STATISTICS_CENSUS_RPC_STATS_H
+#ifndef GRPC_CORE_EXT_CENSUS_CENSUS_RPC_STATS_H
+#define GRPC_CORE_EXT_CENSUS_CENSUS_RPC_STATS_H
#include <grpc/support/port_platform.h>
-#include "src/core/lib/statistics/census_interface.h"
+#include "src/core/ext/census/census_interface.h"
#ifdef __cplusplus
extern "C" {
@@ -98,4 +98,4 @@ void census_stats_store_shutdown(void);
}
#endif
-#endif /* GRPC_CORE_LIB_STATISTICS_CENSUS_RPC_STATS_H */
+#endif /* GRPC_CORE_EXT_CENSUS_CENSUS_RPC_STATS_H */
diff --git a/src/core/lib/statistics/census_tracing.c b/src/core/ext/census/census_tracing.c
index ff71e796ad..f893dc9864 100644
--- a/src/core/lib/statistics/census_tracing.c
+++ b/src/core/ext/census/census_tracing.c
@@ -31,8 +31,8 @@
*
*/
-#include "src/core/lib/statistics/census_tracing.h"
-#include "src/core/lib/statistics/census_interface.h"
+#include "src/core/ext/census/census_tracing.h"
+#include "src/core/ext/census/census_interface.h"
#include <stdio.h>
#include <string.h>
@@ -41,7 +41,7 @@
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include <grpc/support/sync.h>
-#include "src/core/lib/statistics/hash_table.h"
+#include "src/core/ext/census/hash_table.h"
#include "src/core/lib/support/string.h"
void census_trace_obj_destroy(census_trace_obj *obj) {
diff --git a/src/core/lib/statistics/census_tracing.h b/src/core/ext/census/census_tracing.h
index 7b2db1e008..42a0d7403e 100644
--- a/src/core/lib/statistics/census_tracing.h
+++ b/src/core/ext/census/census_tracing.h
@@ -31,11 +31,11 @@
*
*/
-#ifndef GRPC_CORE_LIB_STATISTICS_CENSUS_TRACING_H
-#define GRPC_CORE_LIB_STATISTICS_CENSUS_TRACING_H
+#ifndef GRPC_CORE_EXT_CENSUS_CENSUS_TRACING_H
+#define GRPC_CORE_EXT_CENSUS_CENSUS_TRACING_H
#include <grpc/support/time.h>
-#include "src/core/lib/statistics/census_rpc_stats.h"
+#include "src/core/ext/census/census_rpc_stats.h"
/* WARNING: The data structures and APIs provided by this file are for GRPC
library's internal use ONLY. They might be changed in backward-incompatible
@@ -93,4 +93,4 @@ census_trace_obj **census_get_active_ops(int *num_active_ops);
}
#endif
-#endif /* GRPC_CORE_LIB_STATISTICS_CENSUS_TRACING_H */
+#endif /* GRPC_CORE_EXT_CENSUS_CENSUS_TRACING_H */
diff --git a/src/core/lib/census/context.c b/src/core/ext/census/context.c
index 0dfc4ecbf1..0dfc4ecbf1 100644
--- a/src/core/lib/census/context.c
+++ b/src/core/ext/census/context.c
diff --git a/src/core/lib/census/grpc_context.c b/src/core/ext/census/grpc_context.c
index 98285ab2d5..98285ab2d5 100644
--- a/src/core/lib/census/grpc_context.c
+++ b/src/core/ext/census/grpc_context.c
diff --git a/src/core/lib/census/grpc_filter.c b/src/core/ext/census/grpc_filter.c
index 9bca2d434d..abfb3bb5f0 100644
--- a/src/core/lib/census/grpc_filter.c
+++ b/src/core/ext/census/grpc_filter.c
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/census/grpc_filter.h"
+#include "src/core/ext/census/grpc_filter.h"
#include <stdio.h>
#include <string.h>
@@ -42,9 +42,9 @@
#include <grpc/support/slice.h>
#include <grpc/support/time.h>
+#include "src/core/ext/census/census_interface.h"
+#include "src/core/ext/census/census_rpc_stats.h"
#include "src/core/lib/channel/channel_stack.h"
-#include "src/core/lib/statistics/census_interface.h"
-#include "src/core/lib/statistics/census_rpc_stats.h"
#include "src/core/lib/transport/static_metadata.h"
typedef struct call_data {
diff --git a/src/core/lib/census/grpc_filter.h b/src/core/ext/census/grpc_filter.h
index e747fe6590..a39bd82224 100644
--- a/src/core/lib/census/grpc_filter.h
+++ b/src/core/ext/census/grpc_filter.h
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_CENSUS_GRPC_FILTER_H
-#define GRPC_CORE_LIB_CENSUS_GRPC_FILTER_H
+#ifndef GRPC_CORE_EXT_CENSUS_GRPC_FILTER_H
+#define GRPC_CORE_EXT_CENSUS_GRPC_FILTER_H
#include "src/core/lib/channel/channel_stack.h"
@@ -41,4 +41,4 @@
extern const grpc_channel_filter grpc_client_census_filter;
extern const grpc_channel_filter grpc_server_census_filter;
-#endif /* GRPC_CORE_LIB_CENSUS_GRPC_FILTER_H */
+#endif /* GRPC_CORE_EXT_CENSUS_GRPC_FILTER_H */
diff --git a/src/core/lib/census/grpc_plugin.c b/src/core/ext/census/grpc_plugin.c
index 7f6df11f00..0f15ecb2c2 100644
--- a/src/core/lib/census/grpc_plugin.c
+++ b/src/core/ext/census/grpc_plugin.c
@@ -31,13 +31,11 @@
*
*/
-#include "src/core/lib/census/grpc_plugin.h"
-
#include <limits.h>
#include <grpc/census.h>
-#include "src/core/lib/census/grpc_filter.h"
+#include "src/core/ext/census/grpc_filter.h"
#include "src/core/lib/channel/channel_stack_builder.h"
#include "src/core/lib/surface/channel_init.h"
@@ -67,4 +65,4 @@ void census_grpc_plugin_init(void) {
maybe_add_census_filter, NULL);
}
-void census_grpc_plugin_destroy(void) { census_shutdown(); }
+void census_grpc_plugin_shutdown(void) { census_shutdown(); }
diff --git a/src/core/lib/statistics/hash_table.c b/src/core/ext/census/hash_table.c
index 79481c3eb1..ee6fdfc6e8 100644
--- a/src/core/lib/statistics/hash_table.c
+++ b/src/core/ext/census/hash_table.c
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/statistics/hash_table.h"
+#include "src/core/ext/census/hash_table.h"
#include <stddef.h>
#include <stdio.h>
diff --git a/src/core/lib/statistics/hash_table.h b/src/core/ext/census/hash_table.h
index 45984a1c41..30ea4264a2 100644
--- a/src/core/lib/statistics/hash_table.h
+++ b/src/core/ext/census/hash_table.h
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_STATISTICS_HASH_TABLE_H
-#define GRPC_CORE_LIB_STATISTICS_HASH_TABLE_H
+#ifndef GRPC_CORE_EXT_CENSUS_HASH_TABLE_H
+#define GRPC_CORE_EXT_CENSUS_HASH_TABLE_H
#include <stddef.h>
@@ -128,4 +128,4 @@ typedef void (*census_ht_itr_cb)(census_ht_key key, const void *val_ptr,
should not invalidate data entries. */
uint64_t census_ht_for_all(const census_ht *ht, census_ht_itr_cb);
-#endif /* GRPC_CORE_LIB_STATISTICS_HASH_TABLE_H */
+#endif /* GRPC_CORE_EXT_CENSUS_HASH_TABLE_H */
diff --git a/src/core/lib/census/initialize.c b/src/core/ext/census/initialize.c
index 896276e44a..896276e44a 100644
--- a/src/core/lib/census/initialize.c
+++ b/src/core/ext/census/initialize.c
diff --git a/src/core/lib/census/mlog.c b/src/core/ext/census/mlog.c
index ce060a2d85..698b7096ab 100644
--- a/src/core/lib/census/mlog.c
+++ b/src/core/ext/census/mlog.c
@@ -88,7 +88,7 @@
// include the name of the structure, which will be passed as the first
// argument. E.g. cl_block_initialize() will initialize a cl_block.
-#include "src/core/lib/census/mlog.h"
+#include "src/core/ext/census/mlog.h"
#include <grpc/support/alloc.h>
#include <grpc/support/atm.h>
#include <grpc/support/cpu.h>
diff --git a/src/core/lib/census/mlog.h b/src/core/ext/census/mlog.h
index dea43de725..a256426f91 100644
--- a/src/core/lib/census/mlog.h
+++ b/src/core/ext/census/mlog.h
@@ -33,8 +33,8 @@
/* A very fast in-memory log, optimized for multiple writers. */
-#ifndef GRPC_CORE_LIB_CENSUS_MLOG_H
-#define GRPC_CORE_LIB_CENSUS_MLOG_H
+#ifndef GRPC_CORE_EXT_CENSUS_MLOG_H
+#define GRPC_CORE_EXT_CENSUS_MLOG_H
#include <grpc/support/port_platform.h>
#include <stddef.h>
@@ -92,4 +92,4 @@ size_t census_log_remaining_space(void);
out-of-space. */
int64_t census_log_out_of_space_count(void);
-#endif /* GRPC_CORE_LIB_CENSUS_MLOG_H */
+#endif /* GRPC_CORE_EXT_CENSUS_MLOG_H */
diff --git a/src/core/lib/census/operation.c b/src/core/ext/census/operation.c
index 5c58704372..5c58704372 100644
--- a/src/core/lib/census/operation.c
+++ b/src/core/ext/census/operation.c
diff --git a/src/core/lib/census/placeholders.c b/src/core/ext/census/placeholders.c
index fe23d13971..fe23d13971 100644
--- a/src/core/lib/census/placeholders.c
+++ b/src/core/ext/census/placeholders.c
diff --git a/src/core/lib/census/rpc_metric_id.h b/src/core/ext/census/rpc_metric_id.h
index 0f05b7de8a..888ec500a7 100644
--- a/src/core/lib/census/rpc_metric_id.h
+++ b/src/core/ext/census/rpc_metric_id.h
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_CENSUS_RPC_METRIC_ID_H
-#define GRPC_CORE_LIB_CENSUS_RPC_METRIC_ID_H
+#ifndef GRPC_CORE_EXT_CENSUS_RPC_METRIC_ID_H
+#define GRPC_CORE_EXT_CENSUS_RPC_METRIC_ID_H
/* Metric ID's used for RPC measurements. */
/* Count of client requests sent. */
@@ -48,4 +48,4 @@
/* Server side request latency. */
#define CENSUS_METRIC_RPC_SERVER_LATENCY ((uint32_t)5)
-#endif /* GRPC_CORE_LIB_CENSUS_RPC_METRIC_ID_H */
+#endif /* GRPC_CORE_EXT_CENSUS_RPC_METRIC_ID_H */
diff --git a/src/core/lib/census/tracing.c b/src/core/ext/census/tracing.c
index 3b5d6dab2b..3b5d6dab2b 100644
--- a/src/core/lib/census/tracing.c
+++ b/src/core/ext/census/tracing.c
diff --git a/src/core/lib/statistics/window_stats.c b/src/core/ext/census/window_stats.c
index 9185e98d60..5f7bd9952e 100644
--- a/src/core/lib/statistics/window_stats.c
+++ b/src/core/ext/census/window_stats.c
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/statistics/window_stats.h"
+#include "src/core/ext/census/window_stats.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/time.h>
diff --git a/src/core/lib/statistics/window_stats.h b/src/core/ext/census/window_stats.h
index 629c08b8d5..25658c9ce0 100644
--- a/src/core/lib/statistics/window_stats.h
+++ b/src/core/ext/census/window_stats.h
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_STATISTICS_WINDOW_STATS_H
-#define GRPC_CORE_LIB_STATISTICS_WINDOW_STATS_H
+#ifndef GRPC_CORE_EXT_CENSUS_WINDOW_STATS_H
+#define GRPC_CORE_EXT_CENSUS_WINDOW_STATS_H
#include <grpc/support/time.h>
@@ -170,4 +170,4 @@ void census_window_stats_get_sums(const struct census_window_stats *wstats,
assertion failure). This function is thread-compatible. */
void census_window_stats_destroy(struct census_window_stats *wstats);
-#endif /* GRPC_CORE_LIB_STATISTICS_WINDOW_STATS_H */
+#endif /* GRPC_CORE_EXT_CENSUS_WINDOW_STATS_H */
diff --git a/src/core/ext/lb_policy/pick_first/pick_first.c b/src/core/ext/lb_policy/pick_first/pick_first.c
index cb5c40501e..43197c1191 100644
--- a/src/core/ext/lb_policy/pick_first/pick_first.c
+++ b/src/core/ext/lb_policy/pick_first/pick_first.c
@@ -40,6 +40,7 @@
typedef struct pending_pick {
struct pending_pick *next;
grpc_pollset *pollset;
+ uint32_t initial_metadata_flags;
grpc_connected_subchannel **target;
grpc_closure *on_complete;
} pending_pick;
@@ -149,6 +150,31 @@ static void pf_cancel_pick(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
gpr_mu_unlock(&p->mu);
}
+static void pf_cancel_picks(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
+ uint32_t initial_metadata_flags_mask,
+ uint32_t initial_metadata_flags_eq) {
+ pick_first_lb_policy *p = (pick_first_lb_policy *)pol;
+ pending_pick *pp;
+ gpr_mu_lock(&p->mu);
+ pp = p->pending_picks;
+ p->pending_picks = NULL;
+ while (pp != NULL) {
+ pending_pick *next = pp->next;
+ if ((pp->initial_metadata_flags & initial_metadata_flags_mask) ==
+ initial_metadata_flags_eq) {
+ grpc_pollset_set_del_pollset(exec_ctx, p->base.interested_parties,
+ pp->pollset);
+ grpc_exec_ctx_enqueue(exec_ctx, pp->on_complete, false, NULL);
+ gpr_free(pp);
+ } else {
+ pp->next = p->pending_picks;
+ p->pending_picks = pp;
+ }
+ pp = next;
+ }
+ gpr_mu_unlock(&p->mu);
+}
+
static void start_picking(grpc_exec_ctx *exec_ctx, pick_first_lb_policy *p) {
p->started_picking = 1;
p->checking_subchannel = 0;
@@ -171,6 +197,7 @@ static void pf_exit_idle(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
static int pf_pick(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
grpc_pollset *pollset, grpc_metadata_batch *initial_metadata,
+ uint32_t initial_metadata_flags,
grpc_connected_subchannel **target,
grpc_closure *on_complete) {
pick_first_lb_policy *p = (pick_first_lb_policy *)pol;
@@ -199,6 +226,7 @@ static int pf_pick(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
pp->next = p->pending_picks;
pp->pollset = pollset;
pp->target = target;
+ pp->initial_metadata_flags = initial_metadata_flags;
pp->on_complete = on_complete;
p->pending_picks = pp;
gpr_mu_unlock(&p->mu);
@@ -286,11 +314,14 @@ static void pf_connectivity_changed(grpc_exec_ctx *exec_ctx, void *arg,
&p->checking_connectivity, &p->connectivity_changed);
break;
case GRPC_CHANNEL_TRANSIENT_FAILURE:
- grpc_connectivity_state_set(exec_ctx, &p->state_tracker,
- GRPC_CHANNEL_TRANSIENT_FAILURE,
- "connecting_transient_failure");
p->checking_subchannel =
(p->checking_subchannel + 1) % p->num_subchannels;
+ if (p->checking_subchannel == 0) {
+ /* only trigger transient failure when we've tried all alternatives */
+ grpc_connectivity_state_set(exec_ctx, &p->state_tracker,
+ GRPC_CHANNEL_TRANSIENT_FAILURE,
+ "connecting_transient_failure");
+ }
p->checking_connectivity = grpc_subchannel_check_connectivity(
p->subchannels[p->checking_subchannel]);
if (p->checking_connectivity == GRPC_CHANNEL_TRANSIENT_FAILURE) {
@@ -378,14 +409,9 @@ static void pf_ping_one(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
}
static const grpc_lb_policy_vtable pick_first_lb_policy_vtable = {
- pf_destroy,
- pf_shutdown,
- pf_pick,
- pf_cancel_pick,
- pf_ping_one,
- pf_exit_idle,
- pf_check_connectivity,
- pf_notify_on_state_change};
+ pf_destroy, pf_shutdown, pf_pick,
+ pf_cancel_pick, pf_cancel_picks, pf_ping_one,
+ pf_exit_idle, pf_check_connectivity, pf_notify_on_state_change};
static void pick_first_factory_ref(grpc_lb_policy_factory *factory) {}
@@ -395,7 +421,7 @@ static grpc_lb_policy *create_pick_first(grpc_exec_ctx *exec_ctx,
grpc_lb_policy_factory *factory,
grpc_lb_policy_args *args) {
GPR_ASSERT(args->addresses != NULL);
- GPR_ASSERT(args->subchannel_factory != NULL);
+ GPR_ASSERT(args->client_channel_factory != NULL);
if (args->addresses->naddrs == 0) return NULL;
@@ -412,8 +438,8 @@ static grpc_lb_policy *create_pick_first(grpc_exec_ctx *exec_ctx,
sc_args.addr = (struct sockaddr *)(args->addresses->addrs[i].addr);
sc_args.addr_len = (size_t)args->addresses->addrs[i].len;
- grpc_subchannel *subchannel = grpc_subchannel_factory_create_subchannel(
- exec_ctx, args->subchannel_factory, &sc_args);
+ grpc_subchannel *subchannel = grpc_client_channel_factory_create_subchannel(
+ exec_ctx, args->client_channel_factory, &sc_args);
if (subchannel != NULL) {
p->subchannels[subchannel_idx++] = subchannel;
diff --git a/src/core/ext/lb_policy/round_robin/round_robin.c b/src/core/ext/lb_policy/round_robin/round_robin.c
index d94c081494..eac6971099 100644
--- a/src/core/ext/lb_policy/round_robin/round_robin.c
+++ b/src/core/ext/lb_policy/round_robin/round_robin.c
@@ -49,6 +49,7 @@ int grpc_lb_round_robin_trace = 0;
typedef struct pending_pick {
struct pending_pick *next;
grpc_pollset *pollset;
+ uint32_t initial_metadata_flags;
grpc_connected_subchannel **target;
grpc_closure *on_complete;
} pending_pick;
@@ -275,6 +276,32 @@ static void rr_cancel_pick(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
gpr_mu_unlock(&p->mu);
}
+static void rr_cancel_picks(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
+ uint32_t initial_metadata_flags_mask,
+ uint32_t initial_metadata_flags_eq) {
+ round_robin_lb_policy *p = (round_robin_lb_policy *)pol;
+ pending_pick *pp;
+ gpr_mu_lock(&p->mu);
+ pp = p->pending_picks;
+ p->pending_picks = NULL;
+ while (pp != NULL) {
+ pending_pick *next = pp->next;
+ if ((pp->initial_metadata_flags & initial_metadata_flags_mask) ==
+ initial_metadata_flags_eq) {
+ grpc_pollset_set_del_pollset(exec_ctx, p->base.interested_parties,
+ pp->pollset);
+ *pp->target = NULL;
+ grpc_exec_ctx_enqueue(exec_ctx, pp->on_complete, false, NULL);
+ gpr_free(pp);
+ } else {
+ pp->next = p->pending_picks;
+ p->pending_picks = pp;
+ }
+ pp = next;
+ }
+ gpr_mu_unlock(&p->mu);
+}
+
static void start_picking(grpc_exec_ctx *exec_ctx, round_robin_lb_policy *p) {
size_t i;
p->started_picking = 1;
@@ -303,6 +330,7 @@ static void rr_exit_idle(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
static int rr_pick(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
grpc_pollset *pollset, grpc_metadata_batch *initial_metadata,
+ uint32_t initial_metadata_flags,
grpc_connected_subchannel **target,
grpc_closure *on_complete) {
round_robin_lb_policy *p = (round_robin_lb_policy *)pol;
@@ -330,6 +358,7 @@ static int rr_pick(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
pp->pollset = pollset;
pp->target = target;
pp->on_complete = on_complete;
+ pp->initial_metadata_flags = initial_metadata_flags;
p->pending_picks = pp;
gpr_mu_unlock(&p->mu);
return 0;
@@ -485,14 +514,9 @@ static void rr_ping_one(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
}
static const grpc_lb_policy_vtable round_robin_lb_policy_vtable = {
- rr_destroy,
- rr_shutdown,
- rr_pick,
- rr_cancel_pick,
- rr_ping_one,
- rr_exit_idle,
- rr_check_connectivity,
- rr_notify_on_state_change};
+ rr_destroy, rr_shutdown, rr_pick,
+ rr_cancel_pick, rr_cancel_picks, rr_ping_one,
+ rr_exit_idle, rr_check_connectivity, rr_notify_on_state_change};
static void round_robin_factory_ref(grpc_lb_policy_factory *factory) {}
@@ -502,7 +526,7 @@ static grpc_lb_policy *create_round_robin(grpc_exec_ctx *exec_ctx,
grpc_lb_policy_factory *factory,
grpc_lb_policy_args *args) {
GPR_ASSERT(args->addresses != NULL);
- GPR_ASSERT(args->subchannel_factory != NULL);
+ GPR_ASSERT(args->client_channel_factory != NULL);
round_robin_lb_policy *p = gpr_malloc(sizeof(*p));
memset(p, 0, sizeof(*p));
@@ -518,8 +542,8 @@ static grpc_lb_policy *create_round_robin(grpc_exec_ctx *exec_ctx,
sc_args.addr = (struct sockaddr *)(args->addresses->addrs[i].addr);
sc_args.addr_len = (size_t)args->addresses->addrs[i].len;
- grpc_subchannel *subchannel = grpc_subchannel_factory_create_subchannel(
- exec_ctx, args->subchannel_factory, &sc_args);
+ grpc_subchannel *subchannel = grpc_client_channel_factory_create_subchannel(
+ exec_ctx, args->client_channel_factory, &sc_args);
if (subchannel != NULL) {
subchannel_data *sd = gpr_malloc(sizeof(*sd));
diff --git a/src/core/ext/resolver/dns/native/README.md b/src/core/ext/resolver/dns/native/README.md
new file mode 100644
index 0000000000..695de47b9f
--- /dev/null
+++ b/src/core/ext/resolver/dns/native/README.md
@@ -0,0 +1,2 @@
+dns: scheme name resolution, using getaddrbyname
+(or other OS specific implementation)
diff --git a/src/core/lib/client_config/resolvers/dns_resolver.c b/src/core/ext/resolver/dns/native/dns_resolver.c
index ad586aa7e4..1a0bf305d6 100644
--- a/src/core/lib/client_config/resolvers/dns_resolver.c
+++ b/src/core/ext/resolver/dns/native/dns_resolver.c
@@ -31,8 +31,6 @@
*
*/
-#include "src/core/lib/client_config/resolvers/dns_resolver.h"
-
#include <string.h>
#include <grpc/support/alloc.h>
@@ -40,6 +38,7 @@
#include <grpc/support/string_util.h>
#include "src/core/lib/client_config/lb_policy_registry.h"
+#include "src/core/lib/client_config/resolver_registry.h"
#include "src/core/lib/iomgr/resolve_address.h"
#include "src/core/lib/iomgr/timer.h"
#include "src/core/lib/support/backoff.h"
@@ -60,7 +59,7 @@ typedef struct {
/** default port to use */
char *default_port;
/** subchannel factory */
- grpc_subchannel_factory *subchannel_factory;
+ grpc_client_channel_factory *client_channel_factory;
/** load balancing policy name */
char *lb_policy_name;
@@ -171,7 +170,7 @@ static void dns_on_resolved(grpc_exec_ctx *exec_ctx, void *arg,
config = grpc_client_config_create();
memset(&lb_policy_args, 0, sizeof(lb_policy_args));
lb_policy_args.addresses = addresses;
- lb_policy_args.subchannel_factory = r->subchannel_factory;
+ lb_policy_args.client_channel_factory = r->client_channel_factory;
lb_policy =
grpc_lb_policy_create(exec_ctx, r->lb_policy_name, &lb_policy_args);
if (lb_policy != NULL) {
@@ -229,7 +228,7 @@ static void dns_destroy(grpc_exec_ctx *exec_ctx, grpc_resolver *gr) {
if (r->resolved_config) {
grpc_client_config_unref(exec_ctx, r->resolved_config);
}
- grpc_subchannel_factory_unref(exec_ctx, r->subchannel_factory);
+ grpc_client_channel_factory_unref(exec_ctx, r->client_channel_factory);
gpr_free(r->name);
gpr_free(r->default_port);
gpr_free(r->lb_policy_name);
@@ -256,10 +255,10 @@ static grpc_resolver *dns_create(grpc_resolver_args *args,
grpc_resolver_init(&r->base, &dns_resolver_vtable);
r->name = gpr_strdup(path);
r->default_port = gpr_strdup(default_port);
- r->subchannel_factory = args->subchannel_factory;
+ r->client_channel_factory = args->client_channel_factory;
gpr_backoff_init(&r->backoff_state, BACKOFF_MULTIPLIER, BACKOFF_JITTER,
BACKOFF_MIN_SECONDS * 1000, BACKOFF_MAX_SECONDS * 1000);
- grpc_subchannel_factory_ref(r->subchannel_factory);
+ grpc_client_channel_factory_ref(r->client_channel_factory);
r->lb_policy_name = gpr_strdup(lb_policy_name);
return &r->base;
}
@@ -277,8 +276,8 @@ static grpc_resolver *dns_factory_create_resolver(
return dns_create(args, "https", "pick_first");
}
-char *dns_factory_get_default_host_name(grpc_resolver_factory *factory,
- grpc_uri *uri) {
+static char *dns_factory_get_default_host_name(grpc_resolver_factory *factory,
+ grpc_uri *uri) {
const char *path = uri->path;
if (path[0] == '/') ++path;
return gpr_strdup(path);
@@ -289,6 +288,12 @@ static const grpc_resolver_factory_vtable dns_factory_vtable = {
dns_factory_get_default_host_name, "dns"};
static grpc_resolver_factory dns_resolver_factory = {&dns_factory_vtable};
-grpc_resolver_factory *grpc_dns_resolver_factory_create() {
+static grpc_resolver_factory *dns_resolver_factory_create() {
return &dns_resolver_factory;
}
+
+void grpc_resolver_dns_native_init(void) {
+ grpc_register_resolver_type(dns_resolver_factory_create());
+}
+
+void grpc_resolver_dns_native_shutdown(void) {}
diff --git a/src/core/ext/resolver/sockaddr/README.md b/src/core/ext/resolver/sockaddr/README.md
new file mode 100644
index 0000000000..e307ba88f5
--- /dev/null
+++ b/src/core/ext/resolver/sockaddr/README.md
@@ -0,0 +1 @@
+Support for resolving ipv4:, ipv6:, unix: schemes
diff --git a/src/core/lib/client_config/resolvers/sockaddr_resolver.c b/src/core/ext/resolver/sockaddr/sockaddr_resolver.c
index 0e2656d033..76c03c08b5 100644
--- a/src/core/lib/client_config/resolvers/sockaddr_resolver.c
+++ b/src/core/ext/resolver/sockaddr/sockaddr_resolver.c
@@ -31,18 +31,17 @@
*
*/
-#include <grpc/support/port_platform.h>
-
-#include "src/core/lib/client_config/resolvers/sockaddr_resolver.h"
-
+#include <stdbool.h>
#include <stdio.h>
#include <string.h>
#include <grpc/support/alloc.h>
#include <grpc/support/host_port.h>
+#include <grpc/support/port_platform.h>
#include <grpc/support/string_util.h>
#include "src/core/lib/client_config/lb_policy_registry.h"
+#include "src/core/lib/client_config/resolver_registry.h"
#include "src/core/lib/iomgr/resolve_address.h"
#include "src/core/lib/iomgr/unix_sockets_posix.h"
#include "src/core/lib/support/string.h"
@@ -53,7 +52,7 @@ typedef struct {
/** refcount */
gpr_refcount refs;
/** subchannel factory */
- grpc_subchannel_factory *subchannel_factory;
+ grpc_client_channel_factory *client_channel_factory;
/** load balancing policy name */
char *lb_policy_name;
@@ -126,7 +125,7 @@ static void sockaddr_maybe_finish_next_locked(grpc_exec_ctx *exec_ctx,
grpc_lb_policy_args lb_policy_args;
memset(&lb_policy_args, 0, sizeof(lb_policy_args));
lb_policy_args.addresses = r->addresses;
- lb_policy_args.subchannel_factory = r->subchannel_factory;
+ lb_policy_args.client_channel_factory = r->client_channel_factory;
grpc_lb_policy *lb_policy =
grpc_lb_policy_create(exec_ctx, r->lb_policy_name, &lb_policy_args);
grpc_client_config_set_lb_policy(cfg, lb_policy);
@@ -141,7 +140,7 @@ static void sockaddr_maybe_finish_next_locked(grpc_exec_ctx *exec_ctx,
static void sockaddr_destroy(grpc_exec_ctx *exec_ctx, grpc_resolver *gr) {
sockaddr_resolver *r = (sockaddr_resolver *)gr;
gpr_mu_destroy(&r->mu);
- grpc_subchannel_factory_unref(exec_ctx, r->subchannel_factory);
+ grpc_client_channel_factory_unref(exec_ctx, r->client_channel_factory);
grpc_resolved_addresses_destroy(r->addresses);
gpr_free(r->lb_policy_name);
gpr_free(r);
@@ -264,22 +263,24 @@ static grpc_resolver *sockaddr_create(
r = gpr_malloc(sizeof(sockaddr_resolver));
memset(r, 0, sizeof(*r));
- r->lb_policy_name = NULL;
- if (0 != strcmp(args->uri->query, "")) {
- gpr_slice query_slice;
- gpr_slice_buffer query_parts;
-
- query_slice =
- gpr_slice_new(args->uri->query, strlen(args->uri->query), do_nothing);
- gpr_slice_buffer_init(&query_parts);
- gpr_slice_split(query_slice, "=", &query_parts);
- GPR_ASSERT(query_parts.count == 2);
- if (0 == gpr_slice_str_cmp(query_parts.slices[0], "lb_policy")) {
- r->lb_policy_name = gpr_dump_slice(query_parts.slices[1], GPR_DUMP_ASCII);
- }
- gpr_slice_buffer_destroy(&query_parts);
- gpr_slice_unref(query_slice);
+ r->lb_policy_name =
+ gpr_strdup(grpc_uri_get_query_arg(args->uri, "lb_policy"));
+ const char *lb_enabled_qpart =
+ grpc_uri_get_query_arg(args->uri, "lb_enabled");
+ /* anything other than "0" is interpreted as true */
+ const bool lb_enabled =
+ (lb_enabled_qpart != NULL && (strcmp("0", lb_enabled_qpart) != 0));
+
+ if (r->lb_policy_name != NULL && strcmp("grpclb", r->lb_policy_name) == 0 &&
+ !lb_enabled) {
+ /* we want grpclb but the "resolved" addresses aren't LB enabled. Bail
+ * out, as this is meant mostly for tests. */
+ gpr_log(GPR_ERROR,
+ "Requested 'grpclb' LB policy but resolved addresses don't "
+ "support load balancing.");
+ abort();
}
+
if (r->lb_policy_name == NULL) {
r->lb_policy_name = gpr_strdup(default_lb_policy_name);
}
@@ -319,8 +320,8 @@ static grpc_resolver *sockaddr_create(
gpr_ref_init(&r->refs, 1);
gpr_mu_init(&r->mu);
grpc_resolver_init(&r->base, &sockaddr_resolver_vtable);
- r->subchannel_factory = args->subchannel_factory;
- grpc_subchannel_factory_ref(r->subchannel_factory);
+ r->client_channel_factory = args->client_channel_factory;
+ grpc_client_channel_factory_ref(r->client_channel_factory);
return &r->base;
}
@@ -343,12 +344,20 @@ static void sockaddr_factory_unref(grpc_resolver_factory *factory) {}
name##_factory_create_resolver, prefix##name##_get_default_authority, \
#name}; \
static grpc_resolver_factory name##_resolver_factory = { \
- &name##_factory_vtable}; \
- grpc_resolver_factory *grpc_##name##_resolver_factory_create() { \
- return &name##_resolver_factory; \
- }
+ &name##_factory_vtable}
+
+#ifdef GPR_HAVE_UNIX_SOCKET
+DECL_FACTORY(unix, grpc_);
+#endif
+DECL_FACTORY(ipv4, );
+DECL_FACTORY(ipv6, );
+void grpc_resolver_sockaddr_init(void) {
+ grpc_register_resolver_type(&ipv4_resolver_factory);
+ grpc_register_resolver_type(&ipv6_resolver_factory);
#ifdef GPR_HAVE_UNIX_SOCKET
-DECL_FACTORY(unix, grpc_)
+ grpc_register_resolver_type(&unix_resolver_factory);
#endif
-DECL_FACTORY(ipv4, ) DECL_FACTORY(ipv6, )
+}
+
+void grpc_resolver_sockaddr_shutdown(void) {}
diff --git a/src/core/ext/resolver/zookeeper/README.md b/src/core/ext/resolver/zookeeper/README.md
new file mode 100644
index 0000000000..ce6f39683b
--- /dev/null
+++ b/src/core/ext/resolver/zookeeper/README.md
@@ -0,0 +1 @@
+Zookeeper based name resolver: WIP
diff --git a/src/core/lib/client_config/resolvers/zookeeper_resolver.c b/src/core/ext/resolver/zookeeper/zookeeper_resolver.c
index a66c9925f0..91153f14b5 100644
--- a/src/core/lib/client_config/resolvers/zookeeper_resolver.c
+++ b/src/core/ext/resolver/zookeeper/zookeeper_resolver.c
@@ -31,8 +31,6 @@
*
*/
-#include "src/core/lib/client_config/resolvers/zookeeper_resolver.h"
-
#include <string.h>
#include <grpc/support/alloc.h>
@@ -59,7 +57,7 @@ typedef struct {
/** name to resolve */
char *name;
/** subchannel factory */
- grpc_subchannel_factory *subchannel_factory;
+ grpc_client_channel_factory *client_channel_factory;
/** load balancing policy name */
char *lb_policy_name;
@@ -189,9 +187,8 @@ static void zookeeper_on_resolved(grpc_exec_ctx *exec_ctx, void *arg,
if (addresses != NULL) {
grpc_lb_policy_args lb_policy_args;
config = grpc_client_config_create();
-
lb_policy_args.addresses = addresses;
- lb_policy_args.subchannel_factory = r->subchannel_factory;
+ lb_policy_args.client_channel_factory = r->client_channel_factory;
lb_policy =
grpc_lb_policy_create(exec_ctx, r->lb_policy_name, &lb_policy_args);
@@ -426,7 +423,7 @@ static void zookeeper_destroy(grpc_exec_ctx *exec_ctx, grpc_resolver *gr) {
if (r->resolved_config != NULL) {
grpc_client_config_unref(exec_ctx, r->resolved_config);
}
- grpc_subchannel_factory_unref(exec_ctx, r->subchannel_factory);
+ grpc_client_channel_factory_unref(exec_ctx, r->client_channel_factory);
gpr_free(r->name);
gpr_free(r->lb_policy_name);
gpr_free(r);
@@ -456,8 +453,8 @@ static grpc_resolver *zookeeper_create(grpc_resolver_args *args,
grpc_resolver_init(&r->base, &zookeeper_resolver_vtable);
r->name = gpr_strdup(path);
- r->subchannel_factory = args->subchannel_factory;
- grpc_subchannel_factory_ref(r->subchannel_factory);
+ r->client_channel_factory = args->client_channel_factory;
+ grpc_client_channel_factory_ref(r->client_channel_factory);
r->lb_policy_name = gpr_strdup(lb_policy_name);
@@ -474,15 +471,6 @@ static grpc_resolver *zookeeper_create(grpc_resolver_args *args,
return &r->base;
}
-static void zookeeper_plugin_init() {
- grpc_register_resolver_type(grpc_zookeeper_resolver_factory_create());
-}
-
-void grpc_zookeeper_register() {
- GRPC_API_TRACE("grpc_zookeeper_register(void)", 0, ());
- grpc_register_plugin(zookeeper_plugin_init, NULL);
-}
-
/*
* FACTORY
*/
@@ -509,6 +497,15 @@ static const grpc_resolver_factory_vtable zookeeper_factory_vtable = {
static grpc_resolver_factory zookeeper_resolver_factory = {
&zookeeper_factory_vtable};
-grpc_resolver_factory *grpc_zookeeper_resolver_factory_create() {
+static grpc_resolver_factory *zookeeper_resolver_factory_create() {
return &zookeeper_resolver_factory;
}
+
+static void zookeeper_plugin_init() {
+ grpc_register_resolver_type(zookeeper_resolver_factory_create());
+}
+
+void grpc_zookeeper_register() {
+ GRPC_API_TRACE("grpc_zookeeper_register(void)", 0, ());
+ grpc_register_plugin(zookeeper_plugin_init, NULL);
+}
diff --git a/src/core/ext/transport/chttp2/client/insecure/channel_create.c b/src/core/ext/transport/chttp2/client/insecure/channel_create.c
index a5f7c6cfbc..ee2ac44978 100644
--- a/src/core/ext/transport/chttp2/client/insecure/channel_create.c
+++ b/src/core/ext/transport/chttp2/client/insecure/channel_create.c
@@ -40,8 +40,8 @@
#include <grpc/support/slice.h>
#include <grpc/support/slice_buffer.h>
+#include "src/core/ext/census/grpc_filter.h"
#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
-#include "src/core/lib/census/grpc_filter.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/client_channel.h"
#include "src/core/lib/channel/compress_filter.h"
@@ -136,31 +136,35 @@ static const grpc_connector_vtable connector_vtable = {
connector_ref, connector_unref, connector_shutdown, connector_connect};
typedef struct {
- grpc_subchannel_factory base;
+ grpc_client_channel_factory base;
gpr_refcount refs;
grpc_channel_args *merge_args;
grpc_channel *master;
-} subchannel_factory;
+} client_channel_factory;
-static void subchannel_factory_ref(grpc_subchannel_factory *scf) {
- subchannel_factory *f = (subchannel_factory *)scf;
+static void client_channel_factory_ref(
+ grpc_client_channel_factory *cc_factory) {
+ client_channel_factory *f = (client_channel_factory *)cc_factory;
gpr_ref(&f->refs);
}
-static void subchannel_factory_unref(grpc_exec_ctx *exec_ctx,
- grpc_subchannel_factory *scf) {
- subchannel_factory *f = (subchannel_factory *)scf;
+static void client_channel_factory_unref(
+ grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *cc_factory) {
+ client_channel_factory *f = (client_channel_factory *)cc_factory;
if (gpr_unref(&f->refs)) {
- GRPC_CHANNEL_INTERNAL_UNREF(exec_ctx, f->master, "subchannel_factory");
+ if (f->master != NULL) {
+ GRPC_CHANNEL_INTERNAL_UNREF(exec_ctx, f->master,
+ "client_channel_factory");
+ }
grpc_channel_args_destroy(f->merge_args);
gpr_free(f);
}
}
-static grpc_subchannel *subchannel_factory_create_subchannel(
- grpc_exec_ctx *exec_ctx, grpc_subchannel_factory *scf,
+static grpc_subchannel *client_channel_factory_create_subchannel(
+ grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *cc_factory,
grpc_subchannel_args *args) {
- subchannel_factory *f = (subchannel_factory *)scf;
+ client_channel_factory *f = (client_channel_factory *)cc_factory;
connector *c = gpr_malloc(sizeof(*c));
grpc_channel_args *final_args =
grpc_channel_args_merge(args->args, f->merge_args);
@@ -175,9 +179,33 @@ static grpc_subchannel *subchannel_factory_create_subchannel(
return s;
}
-static const grpc_subchannel_factory_vtable subchannel_factory_vtable = {
- subchannel_factory_ref, subchannel_factory_unref,
- subchannel_factory_create_subchannel};
+static grpc_channel *client_channel_factory_create_channel(
+ grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *cc_factory,
+ const char *target, grpc_client_channel_type type,
+ grpc_channel_args *args) {
+ client_channel_factory *f = (client_channel_factory *)cc_factory;
+ grpc_channel_args *final_args = grpc_channel_args_merge(args, f->merge_args);
+ grpc_channel *channel = grpc_channel_create(exec_ctx, target, final_args,
+ GRPC_CLIENT_CHANNEL, NULL);
+ grpc_channel_args_destroy(final_args);
+ grpc_resolver *resolver = grpc_resolver_create(target, &f->base);
+ if (!resolver) {
+ GRPC_CHANNEL_INTERNAL_UNREF(exec_ctx, channel,
+ "client_channel_factory_create_channel");
+ return NULL;
+ }
+
+ grpc_client_channel_set_resolver(
+ exec_ctx, grpc_channel_get_channel_stack(channel), resolver);
+ GRPC_RESOLVER_UNREF(exec_ctx, resolver, "create_channel");
+
+ return channel;
+}
+
+static const grpc_client_channel_factory_vtable client_channel_factory_vtable =
+ {client_channel_factory_ref, client_channel_factory_unref,
+ client_channel_factory_create_subchannel,
+ client_channel_factory_create_channel};
/* Create a client channel:
Asynchronously: - resolve target
@@ -186,38 +214,27 @@ static const grpc_subchannel_factory_vtable subchannel_factory_vtable = {
grpc_channel *grpc_insecure_channel_create(const char *target,
const grpc_channel_args *args,
void *reserved) {
- grpc_channel *channel = NULL;
- grpc_resolver *resolver;
- subchannel_factory *f;
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
GRPC_API_TRACE(
"grpc_insecure_channel_create(target=%p, args=%p, reserved=%p)", 3,
(target, args, reserved));
GPR_ASSERT(!reserved);
- channel =
- grpc_channel_create(&exec_ctx, target, args, GRPC_CLIENT_CHANNEL, NULL);
-
- f = gpr_malloc(sizeof(*f));
- f->base.vtable = &subchannel_factory_vtable;
+ client_channel_factory *f = gpr_malloc(sizeof(*f));
+ memset(f, 0, sizeof(*f));
+ f->base.vtable = &client_channel_factory_vtable;
gpr_ref_init(&f->refs, 1);
f->merge_args = grpc_channel_args_copy(args);
- f->master = channel;
- GRPC_CHANNEL_INTERNAL_REF(f->master, "subchannel_factory");
- resolver = grpc_resolver_create(target, &f->base);
- if (!resolver) {
- GRPC_CHANNEL_INTERNAL_UNREF(&exec_ctx, f->master, "subchannel_factory");
- grpc_subchannel_factory_unref(&exec_ctx, &f->base);
- grpc_exec_ctx_finish(&exec_ctx);
- return NULL;
- }
- grpc_client_channel_set_resolver(
- &exec_ctx, grpc_channel_get_channel_stack(channel), resolver);
- GRPC_RESOLVER_UNREF(&exec_ctx, resolver, "create");
- grpc_subchannel_factory_unref(&exec_ctx, &f->base);
+ grpc_channel *channel = client_channel_factory_create_channel(
+ &exec_ctx, &f->base, target, GRPC_CLIENT_CHANNEL_TYPE_REGULAR, NULL);
+ if (channel != NULL) {
+ f->master = channel;
+ GRPC_CHANNEL_INTERNAL_REF(f->master, "grpc_insecure_channel_create");
+ }
+ grpc_client_channel_factory_unref(&exec_ctx, &f->base);
grpc_exec_ctx_finish(&exec_ctx);
- return channel;
+ return channel; /* may be NULL */
}
diff --git a/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c b/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c
index 3465d2b6c4..5d30805639 100644
--- a/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c
+++ b/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c
@@ -192,34 +192,38 @@ static const grpc_connector_vtable connector_vtable = {
connector_ref, connector_unref, connector_shutdown, connector_connect};
typedef struct {
- grpc_subchannel_factory base;
+ grpc_client_channel_factory base;
gpr_refcount refs;
grpc_channel_args *merge_args;
grpc_channel_security_connector *security_connector;
grpc_channel *master;
-} subchannel_factory;
+} client_channel_factory;
-static void subchannel_factory_ref(grpc_subchannel_factory *scf) {
- subchannel_factory *f = (subchannel_factory *)scf;
+static void client_channel_factory_ref(
+ grpc_client_channel_factory *cc_factory) {
+ client_channel_factory *f = (client_channel_factory *)cc_factory;
gpr_ref(&f->refs);
}
-static void subchannel_factory_unref(grpc_exec_ctx *exec_ctx,
- grpc_subchannel_factory *scf) {
- subchannel_factory *f = (subchannel_factory *)scf;
+static void client_channel_factory_unref(
+ grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *cc_factory) {
+ client_channel_factory *f = (client_channel_factory *)cc_factory;
if (gpr_unref(&f->refs)) {
GRPC_SECURITY_CONNECTOR_UNREF(&f->security_connector->base,
- "subchannel_factory");
- GRPC_CHANNEL_INTERNAL_UNREF(exec_ctx, f->master, "subchannel_factory");
+ "client_channel_factory");
+ if (f->master != NULL) {
+ GRPC_CHANNEL_INTERNAL_UNREF(exec_ctx, f->master,
+ "client_channel_factory");
+ }
grpc_channel_args_destroy(f->merge_args);
gpr_free(f);
}
}
-static grpc_subchannel *subchannel_factory_create_subchannel(
- grpc_exec_ctx *exec_ctx, grpc_subchannel_factory *scf,
+static grpc_subchannel *client_channel_factory_create_subchannel(
+ grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *cc_factory,
grpc_subchannel_args *args) {
- subchannel_factory *f = (subchannel_factory *)scf;
+ client_channel_factory *f = (client_channel_factory *)cc_factory;
connector *c = gpr_malloc(sizeof(*c));
grpc_channel_args *final_args =
grpc_channel_args_merge(args->args, f->merge_args);
@@ -236,9 +240,37 @@ static grpc_subchannel *subchannel_factory_create_subchannel(
return s;
}
-static const grpc_subchannel_factory_vtable subchannel_factory_vtable = {
- subchannel_factory_ref, subchannel_factory_unref,
- subchannel_factory_create_subchannel};
+static grpc_channel *client_channel_factory_create_channel(
+ grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *cc_factory,
+ const char *target, grpc_client_channel_type type,
+ grpc_channel_args *args) {
+ client_channel_factory *f = (client_channel_factory *)cc_factory;
+
+ grpc_channel_args *final_args = grpc_channel_args_merge(args, f->merge_args);
+ grpc_channel *channel = grpc_channel_create(exec_ctx, target, final_args,
+ GRPC_CLIENT_CHANNEL, NULL);
+ grpc_channel_args_destroy(final_args);
+
+ grpc_resolver *resolver = grpc_resolver_create(target, &f->base);
+ if (resolver != NULL) {
+ grpc_client_channel_set_resolver(
+ exec_ctx, grpc_channel_get_channel_stack(channel), resolver);
+ GRPC_RESOLVER_UNREF(exec_ctx, resolver, "create");
+ } else {
+ GRPC_CHANNEL_INTERNAL_UNREF(exec_ctx, channel,
+ "client_channel_factory_create_channel");
+ channel = NULL;
+ }
+
+ GRPC_SECURITY_CONNECTOR_UNREF(&f->security_connector->base,
+ "client_channel_factory_create_channel");
+ return channel;
+}
+
+static const grpc_client_channel_factory_vtable client_channel_factory_vtable =
+ {client_channel_factory_ref, client_channel_factory_unref,
+ client_channel_factory_create_subchannel,
+ client_channel_factory_create_channel};
/* Create a secure client channel:
Asynchronously: - resolve target
@@ -248,13 +280,11 @@ grpc_channel *grpc_secure_channel_create(grpc_channel_credentials *creds,
const char *target,
const grpc_channel_args *args,
void *reserved) {
- grpc_channel *channel;
grpc_arg connector_arg;
grpc_channel_args *args_copy;
grpc_channel_args *new_args_from_connector;
grpc_channel_security_connector *security_connector;
- grpc_resolver *resolver;
- subchannel_factory *f;
+ client_channel_factory *f;
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
GRPC_API_TRACE(
@@ -284,35 +314,30 @@ grpc_channel *grpc_secure_channel_create(grpc_channel_credentials *creds,
new_args_from_connector != NULL ? new_args_from_connector : args,
&connector_arg, 1);
- channel = grpc_channel_create(&exec_ctx, target, args_copy,
- GRPC_CLIENT_CHANNEL, NULL);
-
f = gpr_malloc(sizeof(*f));
- f->base.vtable = &subchannel_factory_vtable;
+ memset(f, 0, sizeof(*f));
+ f->base.vtable = &client_channel_factory_vtable;
gpr_ref_init(&f->refs, 1);
- GRPC_SECURITY_CONNECTOR_REF(&security_connector->base, "subchannel_factory");
- f->security_connector = security_connector;
+
f->merge_args = grpc_channel_args_copy(args_copy);
- f->master = channel;
- GRPC_CHANNEL_INTERNAL_REF(channel, "subchannel_factory");
- resolver = grpc_resolver_create(target, &f->base);
- if (resolver) {
- grpc_client_channel_set_resolver(
- &exec_ctx, grpc_channel_get_channel_stack(channel), resolver);
- GRPC_RESOLVER_UNREF(&exec_ctx, resolver, "create");
- }
- grpc_subchannel_factory_unref(&exec_ctx, &f->base);
- GRPC_SECURITY_CONNECTOR_UNREF(&security_connector->base, "channel_create");
grpc_channel_args_destroy(args_copy);
if (new_args_from_connector != NULL) {
grpc_channel_args_destroy(new_args_from_connector);
}
- if (!resolver) {
- GRPC_CHANNEL_INTERNAL_UNREF(&exec_ctx, channel, "subchannel_factory");
- channel = NULL;
+ GRPC_SECURITY_CONNECTOR_REF(&security_connector->base,
+ "grpc_secure_channel_create");
+ f->security_connector = security_connector;
+
+ grpc_channel *channel = client_channel_factory_create_channel(
+ &exec_ctx, &f->base, target, GRPC_CLIENT_CHANNEL_TYPE_REGULAR, NULL);
+ if (channel != NULL) {
+ f->master = channel;
+ GRPC_CHANNEL_INTERNAL_REF(f->master, "grpc_secure_channel_create");
}
+
+ grpc_client_channel_factory_unref(&exec_ctx, &f->base);
grpc_exec_ctx_finish(&exec_ctx);
- return channel;
+ return channel; /* may be NULL */
}
diff --git a/src/core/lib/channel/client_channel.c b/src/core/lib/channel/client_channel.c
index 3f7cf1cf97..55867ba80c 100644
--- a/src/core/lib/channel/client_channel.c
+++ b/src/core/lib/channel/client_channel.c
@@ -114,6 +114,22 @@ static void watch_lb_policy(grpc_exec_ctx *exec_ctx, channel_data *chand,
grpc_lb_policy *lb_policy,
grpc_connectivity_state current_state);
+static void set_channel_connectivity_state_locked(grpc_exec_ctx *exec_ctx,
+ channel_data *chand,
+ grpc_connectivity_state state,
+ const char *reason) {
+ if ((state == GRPC_CHANNEL_TRANSIENT_FAILURE ||
+ state == GRPC_CHANNEL_FATAL_FAILURE) &&
+ chand->lb_policy != NULL) {
+ /* cancel fail-fast picks */
+ grpc_lb_policy_cancel_picks(
+ exec_ctx, chand->lb_policy,
+ /* mask= */ GRPC_INITIAL_METADATA_IGNORE_CONNECTIVITY,
+ /* check= */ 0);
+ }
+ grpc_connectivity_state_set(exec_ctx, &chand->state_tracker, state, reason);
+}
+
static void on_lb_policy_state_changed_locked(
grpc_exec_ctx *exec_ctx, lb_policy_connectivity_watcher *w) {
grpc_connectivity_state publish_state = w->state;
@@ -127,8 +143,8 @@ static void on_lb_policy_state_changed_locked(
GRPC_LB_POLICY_UNREF(exec_ctx, w->chand->lb_policy, "channel");
w->chand->lb_policy = NULL;
}
- grpc_connectivity_state_set(exec_ctx, &w->chand->state_tracker, publish_state,
- "lb_changed");
+ set_channel_connectivity_state_locked(exec_ctx, w->chand, publish_state,
+ "lb_changed");
if (w->state != GRPC_CHANNEL_FATAL_FAILURE) {
watch_lb_policy(exec_ctx, w->chand, w->lb_policy, w->state);
}
@@ -200,8 +216,8 @@ static void cc_on_config_changed(grpc_exec_ctx *exec_ctx, void *arg,
}
if (iomgr_success && chand->resolver) {
- grpc_connectivity_state_set(exec_ctx, &chand->state_tracker, state,
- "new_lb+resolver");
+ set_channel_connectivity_state_locked(exec_ctx, chand, state,
+ "new_lb+resolver");
if (lb_policy != NULL) {
watch_lb_policy(exec_ctx, chand, lb_policy, state);
}
@@ -216,8 +232,8 @@ static void cc_on_config_changed(grpc_exec_ctx *exec_ctx, void *arg,
GRPC_RESOLVER_UNREF(exec_ctx, chand->resolver, "channel");
chand->resolver = NULL;
}
- grpc_connectivity_state_set(exec_ctx, &chand->state_tracker,
- GRPC_CHANNEL_FATAL_FAILURE, "resolver_gone");
+ set_channel_connectivity_state_locked(
+ exec_ctx, chand, GRPC_CHANNEL_FATAL_FAILURE, "resolver_gone");
gpr_mu_unlock(&chand->mu_config);
}
@@ -272,8 +288,8 @@ static void cc_start_transport_op(grpc_exec_ctx *exec_ctx,
}
if (op->disconnect && chand->resolver != NULL) {
- grpc_connectivity_state_set(exec_ctx, &chand->state_tracker,
- GRPC_CHANNEL_FATAL_FAILURE, "disconnect");
+ set_channel_connectivity_state_locked(
+ exec_ctx, chand, GRPC_CHANNEL_FATAL_FAILURE, "disconnect");
grpc_resolver_shutdown(exec_ctx, chand->resolver);
GRPC_RESOLVER_UNREF(exec_ctx, chand->resolver, "channel");
chand->resolver = NULL;
@@ -290,6 +306,7 @@ static void cc_start_transport_op(grpc_exec_ctx *exec_ctx,
typedef struct {
grpc_metadata_batch *initial_metadata;
+ uint32_t initial_metadata_flags;
grpc_connected_subchannel **connected_subchannel;
grpc_closure *on_ready;
grpc_call_element *elem;
@@ -298,6 +315,7 @@ typedef struct {
static int cc_pick_subchannel(grpc_exec_ctx *exec_ctx, void *arg,
grpc_metadata_batch *initial_metadata,
+ uint32_t initial_metadata_flags,
grpc_connected_subchannel **connected_subchannel,
grpc_closure *on_ready);
@@ -308,6 +326,7 @@ static void continue_picking(grpc_exec_ctx *exec_ctx, void *arg, bool success) {
} else if (cpa->connected_subchannel == NULL) {
/* cancelled, do nothing */
} else if (cc_pick_subchannel(exec_ctx, cpa->elem, cpa->initial_metadata,
+ cpa->initial_metadata_flags,
cpa->connected_subchannel, cpa->on_ready)) {
grpc_exec_ctx_enqueue(exec_ctx, cpa->on_ready, true, NULL);
}
@@ -316,6 +335,7 @@ static void continue_picking(grpc_exec_ctx *exec_ctx, void *arg, bool success) {
static int cc_pick_subchannel(grpc_exec_ctx *exec_ctx, void *elemp,
grpc_metadata_batch *initial_metadata,
+ uint32_t initial_metadata_flags,
grpc_connected_subchannel **connected_subchannel,
grpc_closure *on_ready) {
grpc_call_element *elem = elemp;
@@ -349,7 +369,8 @@ static int cc_pick_subchannel(grpc_exec_ctx *exec_ctx, void *elemp,
GRPC_LB_POLICY_REF(lb_policy, "cc_pick_subchannel");
gpr_mu_unlock(&chand->mu_config);
r = grpc_lb_policy_pick(exec_ctx, lb_policy, calld->pollset,
- initial_metadata, connected_subchannel, on_ready);
+ initial_metadata, initial_metadata_flags,
+ connected_subchannel, on_ready);
GRPC_LB_POLICY_UNREF(exec_ctx, lb_policy, "cc_pick_subchannel");
return r;
}
@@ -362,6 +383,7 @@ static int cc_pick_subchannel(grpc_exec_ctx *exec_ctx, void *elemp,
}
cpa = gpr_malloc(sizeof(*cpa));
cpa->initial_metadata = initial_metadata;
+ cpa->initial_metadata_flags = initial_metadata_flags;
cpa->connected_subchannel = connected_subchannel;
cpa->on_ready = on_ready;
cpa->elem = elem;
diff --git a/src/core/lib/channel/http_client_filter.c b/src/core/lib/channel/http_client_filter.c
index deba23e21f..211f537c69 100644
--- a/src/core/lib/channel/http_client_filter.c
+++ b/src/core/lib/channel/http_client_filter.c
@@ -111,10 +111,12 @@ static void hc_mutate_op(grpc_call_element *elem,
elem);
/* Send : prefixed headers, which have to be before any application
layer headers. */
- grpc_metadata_batch_add_head(op->send_initial_metadata, &calld->method,
- op->send_idempotent_request
- ? GRPC_MDELEM_METHOD_PUT
- : GRPC_MDELEM_METHOD_POST);
+ grpc_metadata_batch_add_head(
+ op->send_initial_metadata, &calld->method,
+ op->send_initial_metadata_flags &
+ GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST
+ ? GRPC_MDELEM_METHOD_PUT
+ : GRPC_MDELEM_METHOD_POST);
grpc_metadata_batch_add_head(op->send_initial_metadata, &calld->scheme,
channeld->static_scheme);
grpc_metadata_batch_add_tail(op->send_initial_metadata, &calld->te_trailers,
diff --git a/src/core/lib/channel/subchannel_call_holder.c b/src/core/lib/channel/subchannel_call_holder.c
index 22f3679bf5..a2686a380a 100644
--- a/src/core/lib/channel/subchannel_call_holder.c
+++ b/src/core/lib/channel/subchannel_call_holder.c
@@ -127,7 +127,7 @@ retry:
break;
case GRPC_SUBCHANNEL_CALL_HOLDER_PICKING_SUBCHANNEL:
holder->pick_subchannel(exec_ctx, holder->pick_subchannel_arg, NULL,
- &holder->connected_subchannel, NULL);
+ 0, &holder->connected_subchannel, NULL);
break;
}
gpr_mu_unlock(&holder->mu);
@@ -145,7 +145,8 @@ retry:
GRPC_CALL_STACK_REF(holder->owning_call, "pick_subchannel");
if (holder->pick_subchannel(
exec_ctx, holder->pick_subchannel_arg, op->send_initial_metadata,
- &holder->connected_subchannel, &holder->next_step)) {
+ op->send_initial_metadata_flags, &holder->connected_subchannel,
+ &holder->next_step)) {
holder->creation_phase = GRPC_SUBCHANNEL_CALL_HOLDER_NOT_CREATING;
GRPC_CALL_STACK_UNREF(exec_ctx, holder->owning_call, "pick_subchannel");
}
diff --git a/src/core/lib/channel/subchannel_call_holder.h b/src/core/lib/channel/subchannel_call_holder.h
index 5cf291a266..769e22b061 100644
--- a/src/core/lib/channel/subchannel_call_holder.h
+++ b/src/core/lib/channel/subchannel_call_holder.h
@@ -42,6 +42,7 @@
called when the subchannel is available) */
typedef int (*grpc_subchannel_call_holder_pick_subchannel)(
grpc_exec_ctx *exec_ctx, void *arg, grpc_metadata_batch *initial_metadata,
+ uint32_t initial_metadata_flags,
grpc_connected_subchannel **connected_subchannel, grpc_closure *on_ready);
typedef enum {
diff --git a/src/core/lib/client_config/README.md b/src/core/lib/client_config/README.md
index fff7a5af5b..7024fd540d 100644
--- a/src/core/lib/client_config/README.md
+++ b/src/core/lib/client_config/README.md
@@ -40,7 +40,7 @@ decisions (for example, by avoiding disconnected backends).
Configured sub-channels are fully setup to participate in the grpc data plane.
Their behavior is specified by a set of grpc channel filters defined at their
construction. To customize this behavior, resolvers build
-grpc_subchannel_factory objects, which use the decorator pattern to customize
+grpc_client_channel_factory objects, which use the decorator pattern to customize
construction arguments for concrete grpc_subchannel instances.
diff --git a/src/core/lib/client_config/subchannel_factory.c b/src/core/lib/client_config/client_channel_factory.c
index 541368ec96..d27b38d9f2 100644
--- a/src/core/lib/client_config/subchannel_factory.c
+++ b/src/core/lib/client_config/client_channel_factory.c
@@ -31,19 +31,27 @@
*
*/
-#include "src/core/lib/client_config/subchannel_factory.h"
+#include "src/core/lib/client_config/client_channel_factory.h"
-void grpc_subchannel_factory_ref(grpc_subchannel_factory* factory) {
+void grpc_client_channel_factory_ref(grpc_client_channel_factory* factory) {
factory->vtable->ref(factory);
}
-void grpc_subchannel_factory_unref(grpc_exec_ctx* exec_ctx,
- grpc_subchannel_factory* factory) {
+void grpc_client_channel_factory_unref(grpc_exec_ctx* exec_ctx,
+ grpc_client_channel_factory* factory) {
factory->vtable->unref(exec_ctx, factory);
}
-grpc_subchannel* grpc_subchannel_factory_create_subchannel(
- grpc_exec_ctx* exec_ctx, grpc_subchannel_factory* factory,
+grpc_subchannel* grpc_client_channel_factory_create_subchannel(
+ grpc_exec_ctx* exec_ctx, grpc_client_channel_factory* factory,
grpc_subchannel_args* args) {
return factory->vtable->create_subchannel(exec_ctx, factory, args);
}
+
+grpc_channel* grpc_client_channel_factory_create_channel(
+ grpc_exec_ctx* exec_ctx, grpc_client_channel_factory* factory,
+ const char* target, grpc_client_channel_type type,
+ grpc_channel_args* args) {
+ return factory->vtable->create_client_channel(exec_ctx, factory, target, type,
+ args);
+}
diff --git a/src/core/lib/client_config/client_channel_factory.h b/src/core/lib/client_config/client_channel_factory.h
new file mode 100644
index 0000000000..0b71cd9bdb
--- /dev/null
+++ b/src/core/lib/client_config/client_channel_factory.h
@@ -0,0 +1,85 @@
+/*
+ *
+ * Copyright 2015, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef GRPC_CORE_LIB_CLIENT_CONFIG_CLIENT_CHANNEL_FACTORY_H
+#define GRPC_CORE_LIB_CLIENT_CONFIG_CLIENT_CHANNEL_FACTORY_H
+
+#include <grpc/impl/codegen/grpc_types.h>
+
+#include "src/core/lib/channel/channel_stack.h"
+#include "src/core/lib/client_config/subchannel.h"
+
+typedef struct grpc_client_channel_factory grpc_client_channel_factory;
+typedef struct grpc_client_channel_factory_vtable
+ grpc_client_channel_factory_vtable;
+
+typedef enum {
+ GRPC_CLIENT_CHANNEL_TYPE_REGULAR, /** for the user-level regular calls */
+ GRPC_CLIENT_CHANNEL_TYPE_LOAD_BALANCING, /** for communication with a load
+ balancing service */
+} grpc_client_channel_type;
+
+/** Constructor for new configured channels.
+ Creating decorators around this type is encouraged to adapt behavior. */
+struct grpc_client_channel_factory {
+ const grpc_client_channel_factory_vtable *vtable;
+};
+
+struct grpc_client_channel_factory_vtable {
+ void (*ref)(grpc_client_channel_factory *factory);
+ void (*unref)(grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *factory);
+ grpc_subchannel *(*create_subchannel)(grpc_exec_ctx *exec_ctx,
+ grpc_client_channel_factory *factory,
+ grpc_subchannel_args *args);
+ grpc_channel *(*create_client_channel)(grpc_exec_ctx *exec_ctx,
+ grpc_client_channel_factory *factory,
+ const char *target,
+ grpc_client_channel_type type,
+ grpc_channel_args *args);
+};
+
+void grpc_client_channel_factory_ref(grpc_client_channel_factory *factory);
+void grpc_client_channel_factory_unref(grpc_exec_ctx *exec_ctx,
+ grpc_client_channel_factory *factory);
+
+/** Create a new grpc_subchannel */
+grpc_subchannel *grpc_client_channel_factory_create_subchannel(
+ grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *factory,
+ grpc_subchannel_args *args);
+
+/** Create a new grpc_channel */
+grpc_channel *grpc_client_channel_factory_create_channel(
+ grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *factory,
+ const char *target, grpc_client_channel_type type, grpc_channel_args *args);
+
+#endif /* GRPC_CORE_LIB_CLIENT_CONFIG_CLIENT_CHANNEL_FACTORY_H */
diff --git a/src/core/lib/client_config/lb_policy.c b/src/core/lib/client_config/lb_policy.c
index 3d23669ec2..6174162d49 100644
--- a/src/core/lib/client_config/lb_policy.c
+++ b/src/core/lib/client_config/lb_policy.c
@@ -101,10 +101,11 @@ void grpc_lb_policy_weak_unref(grpc_exec_ctx *exec_ctx,
int grpc_lb_policy_pick(grpc_exec_ctx *exec_ctx, grpc_lb_policy *policy,
grpc_pollset *pollset,
grpc_metadata_batch *initial_metadata,
+ uint32_t initial_metadata_flags,
grpc_connected_subchannel **target,
grpc_closure *on_complete) {
return policy->vtable->pick(exec_ctx, policy, pollset, initial_metadata,
- target, on_complete);
+ initial_metadata_flags, target, on_complete);
}
void grpc_lb_policy_cancel_pick(grpc_exec_ctx *exec_ctx, grpc_lb_policy *policy,
@@ -112,6 +113,14 @@ void grpc_lb_policy_cancel_pick(grpc_exec_ctx *exec_ctx, grpc_lb_policy *policy,
policy->vtable->cancel_pick(exec_ctx, policy, target);
}
+void grpc_lb_policy_cancel_picks(grpc_exec_ctx *exec_ctx,
+ grpc_lb_policy *policy,
+ uint32_t initial_metadata_flags_mask,
+ uint32_t initial_metadata_flags_eq) {
+ policy->vtable->cancel_picks(exec_ctx, policy, initial_metadata_flags_mask,
+ initial_metadata_flags_eq);
+}
+
void grpc_lb_policy_exit_idle(grpc_exec_ctx *exec_ctx, grpc_lb_policy *policy) {
policy->vtable->exit_idle(exec_ctx, policy);
}
diff --git a/src/core/lib/client_config/lb_policy.h b/src/core/lib/client_config/lb_policy.h
index a63e8e68df..60729ef8f9 100644
--- a/src/core/lib/client_config/lb_policy.h
+++ b/src/core/lib/client_config/lb_policy.h
@@ -60,9 +60,13 @@ struct grpc_lb_policy_vtable {
/** implement grpc_lb_policy_pick */
int (*pick)(grpc_exec_ctx *exec_ctx, grpc_lb_policy *policy,
grpc_pollset *pollset, grpc_metadata_batch *initial_metadata,
+ uint32_t initial_metadata_flags,
grpc_connected_subchannel **target, grpc_closure *on_complete);
void (*cancel_pick)(grpc_exec_ctx *exec_ctx, grpc_lb_policy *policy,
grpc_connected_subchannel **target);
+ void (*cancel_picks)(grpc_exec_ctx *exec_ctx, grpc_lb_policy *policy,
+ uint32_t initial_metadata_flags_mask,
+ uint32_t initial_metadata_flags_eq);
void (*ping_one)(grpc_exec_ctx *exec_ctx, grpc_lb_policy *policy,
grpc_closure *closure);
@@ -122,6 +126,7 @@ void grpc_lb_policy_init(grpc_lb_policy *policy,
int grpc_lb_policy_pick(grpc_exec_ctx *exec_ctx, grpc_lb_policy *policy,
grpc_pollset *pollset,
grpc_metadata_batch *initial_metadata,
+ uint32_t initial_metadata_flags,
grpc_connected_subchannel **target,
grpc_closure *on_complete);
@@ -131,6 +136,14 @@ void grpc_lb_policy_ping_one(grpc_exec_ctx *exec_ctx, grpc_lb_policy *policy,
void grpc_lb_policy_cancel_pick(grpc_exec_ctx *exec_ctx, grpc_lb_policy *policy,
grpc_connected_subchannel **target);
+/** Cancel all pending picks which have:
+ (initial_metadata_flags & initial_metadata_flags_mask) ==
+ initial_metadata_flags_eq */
+void grpc_lb_policy_cancel_picks(grpc_exec_ctx *exec_ctx,
+ grpc_lb_policy *policy,
+ uint32_t initial_metadata_flags_mask,
+ uint32_t initial_metadata_flags_eq);
+
void grpc_lb_policy_exit_idle(grpc_exec_ctx *exec_ctx, grpc_lb_policy *policy);
void grpc_lb_policy_notify_on_state_change(grpc_exec_ctx *exec_ctx,
diff --git a/src/core/lib/client_config/lb_policy_factory.h b/src/core/lib/client_config/lb_policy_factory.h
index 6f21912821..4931d4df58 100644
--- a/src/core/lib/client_config/lb_policy_factory.h
+++ b/src/core/lib/client_config/lb_policy_factory.h
@@ -34,8 +34,8 @@
#ifndef GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICY_FACTORY_H
#define GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICY_FACTORY_H
+#include "src/core/lib/client_config/client_channel_factory.h"
#include "src/core/lib/client_config/lb_policy.h"
-#include "src/core/lib/client_config/subchannel_factory.h"
#include "src/core/lib/iomgr/resolve_address.h"
#include "src/core/lib/iomgr/exec_ctx.h"
@@ -51,7 +51,7 @@ struct grpc_lb_policy_factory {
typedef struct grpc_lb_policy_args {
grpc_resolved_addresses *addresses;
- grpc_subchannel_factory *subchannel_factory;
+ grpc_client_channel_factory *client_channel_factory;
} grpc_lb_policy_args;
struct grpc_lb_policy_factory_vtable {
diff --git a/src/core/lib/client_config/resolver_factory.h b/src/core/lib/client_config/resolver_factory.h
index a5bca06475..18c7fd7d62 100644
--- a/src/core/lib/client_config/resolver_factory.h
+++ b/src/core/lib/client_config/resolver_factory.h
@@ -34,8 +34,8 @@
#ifndef GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVER_FACTORY_H
#define GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVER_FACTORY_H
+#include "src/core/lib/client_config/client_channel_factory.h"
#include "src/core/lib/client_config/resolver.h"
-#include "src/core/lib/client_config/subchannel_factory.h"
#include "src/core/lib/client_config/uri_parser.h"
typedef struct grpc_resolver_factory grpc_resolver_factory;
@@ -49,7 +49,7 @@ struct grpc_resolver_factory {
typedef struct grpc_resolver_args {
grpc_uri *uri;
- grpc_subchannel_factory *subchannel_factory;
+ grpc_client_channel_factory *client_channel_factory;
} grpc_resolver_args;
struct grpc_resolver_factory_vtable {
diff --git a/src/core/lib/client_config/resolver_registry.c b/src/core/lib/client_config/resolver_registry.c
index e8432d165a..5584f6692e 100644
--- a/src/core/lib/client_config/resolver_registry.c
+++ b/src/core/lib/client_config/resolver_registry.c
@@ -70,14 +70,11 @@ void grpc_register_resolver_type(grpc_resolver_factory *factory) {
g_all_of_the_resolvers[g_number_of_resolvers++] = factory;
}
-static grpc_resolver_factory *lookup_factory(grpc_uri *uri) {
+static grpc_resolver_factory *lookup_factory(const char *name) {
int i;
- /* handling NULL uri's here simplifies grpc_resolver_create */
- if (!uri) return NULL;
-
for (i = 0; i < g_number_of_resolvers; i++) {
- if (0 == strcmp(uri->scheme, g_all_of_the_resolvers[i]->vtable->scheme)) {
+ if (0 == strcmp(name, g_all_of_the_resolvers[i]->vtable->scheme)) {
return g_all_of_the_resolvers[i];
}
}
@@ -85,6 +82,17 @@ static grpc_resolver_factory *lookup_factory(grpc_uri *uri) {
return NULL;
}
+grpc_resolver_factory *grpc_resolver_factory_lookup(const char *name) {
+ grpc_resolver_factory *f = lookup_factory(name);
+ if (f) grpc_resolver_factory_ref(f);
+ return f;
+}
+
+static grpc_resolver_factory *lookup_factory_by_uri(grpc_uri *uri) {
+ if (!uri) return NULL;
+ return lookup_factory(uri->scheme);
+}
+
static grpc_resolver_factory *resolve_factory(const char *target,
grpc_uri **uri) {
char *tmp;
@@ -92,13 +100,13 @@ static grpc_resolver_factory *resolve_factory(const char *target,
GPR_ASSERT(uri != NULL);
*uri = grpc_uri_parse(target, 1);
- factory = lookup_factory(*uri);
+ factory = lookup_factory_by_uri(*uri);
if (factory == NULL) {
if (g_default_resolver_prefix != NULL) {
grpc_uri_destroy(*uri);
gpr_asprintf(&tmp, "%s%s", g_default_resolver_prefix, target);
*uri = grpc_uri_parse(tmp, 1);
- factory = lookup_factory(*uri);
+ factory = lookup_factory_by_uri(*uri);
if (factory == NULL) {
grpc_uri_destroy(grpc_uri_parse(target, 0));
grpc_uri_destroy(grpc_uri_parse(tmp, 0));
@@ -115,14 +123,14 @@ static grpc_resolver_factory *resolve_factory(const char *target,
}
grpc_resolver *grpc_resolver_create(
- const char *target, grpc_subchannel_factory *subchannel_factory) {
+ const char *target, grpc_client_channel_factory *client_channel_factory) {
grpc_uri *uri = NULL;
grpc_resolver_factory *factory = resolve_factory(target, &uri);
grpc_resolver *resolver;
grpc_resolver_args args;
memset(&args, 0, sizeof(args));
args.uri = uri;
- args.subchannel_factory = subchannel_factory;
+ args.client_channel_factory = client_channel_factory;
resolver = grpc_resolver_factory_create_resolver(factory, &args);
grpc_uri_destroy(uri);
return resolver;
diff --git a/src/core/lib/client_config/resolver_registry.h b/src/core/lib/client_config/resolver_registry.h
index 330cb7f544..b207313084 100644
--- a/src/core/lib/client_config/resolver_registry.h
+++ b/src/core/lib/client_config/resolver_registry.h
@@ -56,7 +56,11 @@ void grpc_register_resolver_type(grpc_resolver_factory *factory);
return it.
If a resolver factory was not found, return NULL. */
grpc_resolver *grpc_resolver_create(
- const char *target, grpc_subchannel_factory *subchannel_factory);
+ const char *target, grpc_client_channel_factory *client_channel_factory);
+
+/** Find a resolver factory given a name and return an (owned-by-the-caller)
+ * reference to it */
+grpc_resolver_factory *grpc_resolver_factory_lookup(const char *name);
/** Given a target, return a (freshly allocated with gpr_malloc) string
representing the default authority to pass from a client. */
diff --git a/src/core/lib/client_config/resolvers/zookeeper_resolver.h b/src/core/lib/client_config/resolvers/zookeeper_resolver.h
deleted file mode 100644
index a067bd0bdb..0000000000
--- a/src/core/lib/client_config/resolvers/zookeeper_resolver.h
+++ /dev/null
@@ -1,42 +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.
- *
- */
-
-#ifndef GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVERS_ZOOKEEPER_RESOLVER_H
-#define GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVERS_ZOOKEEPER_RESOLVER_H
-
-#include "src/core/lib/client_config/resolver_factory.h"
-
-/** Create a zookeeper resolver factory */
-grpc_resolver_factory *grpc_zookeeper_resolver_factory_create(void);
-
-#endif /* GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVERS_ZOOKEEPER_RESOLVER_H */
diff --git a/src/core/lib/client_config/subchannel.c b/src/core/lib/client_config/subchannel.c
index 47c53a16ba..f44e2f7404 100644
--- a/src/core/lib/client_config/subchannel.c
+++ b/src/core/lib/client_config/subchannel.c
@@ -54,7 +54,7 @@
#define STRONG_REF_MASK (~(gpr_atm)((1 << INTERNAL_REF_BITS) - 1))
#define GRPC_SUBCHANNEL_MIN_CONNECT_TIMEOUT_SECONDS 20
-#define GRPC_SUBCHANNEL_INITIAL_CONNECT_BACKOFF_SECONDS 1
+#define GRPC_SUBCHANNEL_INITIAL_CONNECT_BACKOFF_SECONDS 2
#define GRPC_SUBCHANNEL_RECONNECT_BACKOFF_MULTIPLIER 1.6
#define GRPC_SUBCHANNEL_RECONNECT_MAX_BACKOFF_SECONDS 120
#define GRPC_SUBCHANNEL_RECONNECT_JITTER 0.2
@@ -352,6 +352,25 @@ grpc_subchannel *grpc_subchannel_create(grpc_exec_ctx *exec_ctx,
c->args->args[i].value.integer,
c->args->args[i].value.integer);
}
+ if (0 ==
+ strcmp(c->args->args[i].key, GRPC_ARG_MAX_RECONNECT_BACKOFF_MS)) {
+ if (c->args->args[i].type == GRPC_ARG_INTEGER) {
+ if (c->args->args[i].value.integer >= 0) {
+ gpr_backoff_init(
+ &c->backoff_state, GRPC_SUBCHANNEL_RECONNECT_BACKOFF_MULTIPLIER,
+ GRPC_SUBCHANNEL_RECONNECT_JITTER,
+ GPR_MIN(c->args->args[i].value.integer,
+ GRPC_SUBCHANNEL_INITIAL_CONNECT_BACKOFF_SECONDS * 1000),
+ c->args->args[i].value.integer);
+ } else {
+ gpr_log(GPR_ERROR, GRPC_ARG_MAX_RECONNECT_BACKOFF_MS
+ " : must be non-negative");
+ }
+ } else {
+ gpr_log(GPR_ERROR,
+ GRPC_ARG_MAX_RECONNECT_BACKOFF_MS " : must be an integer");
+ }
+ }
}
}
gpr_mu_init(&c->mu);
diff --git a/src/core/lib/client_config/uri_parser.c b/src/core/lib/client_config/uri_parser.c
index b4ee763735..6bec70da2d 100644
--- a/src/core/lib/client_config/uri_parser.c
+++ b/src/core/lib/client_config/uri_parser.c
@@ -38,8 +38,12 @@
#include <grpc/support/alloc.h>
#include <grpc/support/log.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 "src/core/lib/support/string.h"
+
/** a size_t default value... maps to all 1's */
#define NOT_SET (~(size_t)0)
@@ -133,6 +137,51 @@ static int parse_fragment_or_query(const char *uri_text, size_t *i) {
return 1;
}
+static void do_nothing(void *ignored) {}
+static void parse_query_parts(grpc_uri *uri) {
+ static const char *QUERY_PARTS_SEPARATOR = "&";
+ static const char *QUERY_PARTS_VALUE_SEPARATOR = "=";
+ GPR_ASSERT(uri->query != NULL);
+ if (uri->query[0] == '\0') {
+ uri->query_parts = NULL;
+ uri->query_parts_values = NULL;
+ uri->num_query_parts = 0;
+ return;
+ }
+ gpr_slice query_slice =
+ gpr_slice_new(uri->query, strlen(uri->query), do_nothing);
+ gpr_slice_buffer query_parts; /* the &-separated elements of the query */
+ gpr_slice_buffer query_param_parts; /* the =-separated subelements */
+
+ gpr_slice_buffer_init(&query_parts);
+ gpr_slice_buffer_init(&query_param_parts);
+
+ gpr_slice_split(query_slice, QUERY_PARTS_SEPARATOR, &query_parts);
+ uri->query_parts = gpr_malloc(query_parts.count * sizeof(char *));
+ uri->query_parts_values = gpr_malloc(query_parts.count * sizeof(char *));
+ uri->num_query_parts = query_parts.count;
+ for (size_t i = 0; i < query_parts.count; i++) {
+ gpr_slice_split(query_parts.slices[i], QUERY_PARTS_VALUE_SEPARATOR,
+ &query_param_parts);
+ GPR_ASSERT(query_param_parts.count > 0);
+ uri->query_parts[i] =
+ gpr_dump_slice(query_param_parts.slices[0], GPR_DUMP_ASCII);
+ if (query_param_parts.count > 1) {
+ /* TODO(dgq): only the first value after the separator is considered.
+ * Perhaps all chars after the first separator for the query part should
+ * be included, even if they include the separator. */
+ uri->query_parts_values[i] =
+ gpr_dump_slice(query_param_parts.slices[1], GPR_DUMP_ASCII);
+ } else {
+ uri->query_parts_values[i] = NULL;
+ }
+ gpr_slice_buffer_reset_and_unref(&query_param_parts);
+ }
+ gpr_slice_buffer_destroy(&query_parts);
+ gpr_slice_buffer_destroy(&query_param_parts);
+ gpr_slice_unref(query_slice);
+}
+
grpc_uri *grpc_uri_parse(const char *uri_text, int suppress_errors) {
grpc_uri *uri;
size_t scheme_begin = 0;
@@ -227,16 +276,35 @@ grpc_uri *grpc_uri_parse(const char *uri_text, int suppress_errors) {
uri->path = copy_component(uri_text, path_begin, path_end);
uri->query = copy_component(uri_text, query_begin, query_end);
uri->fragment = copy_component(uri_text, fragment_begin, fragment_end);
+ parse_query_parts(uri);
return uri;
}
+const char *grpc_uri_get_query_arg(const grpc_uri *uri, const char *key) {
+ GPR_ASSERT(key != NULL);
+ if (key[0] == '\0') return NULL;
+
+ for (size_t i = 0; i < uri->num_query_parts; ++i) {
+ if (0 == strcmp(key, uri->query_parts[i])) {
+ return uri->query_parts_values[i];
+ }
+ }
+ return NULL;
+}
+
void grpc_uri_destroy(grpc_uri *uri) {
if (!uri) return;
gpr_free(uri->scheme);
gpr_free(uri->authority);
gpr_free(uri->path);
gpr_free(uri->query);
+ for (size_t i = 0; i < uri->num_query_parts; ++i) {
+ gpr_free(uri->query_parts[i]);
+ gpr_free(uri->query_parts_values[i]);
+ }
+ gpr_free(uri->query_parts);
+ gpr_free(uri->query_parts_values);
gpr_free(uri->fragment);
gpr_free(uri);
}
diff --git a/src/core/lib/client_config/uri_parser.h b/src/core/lib/client_config/uri_parser.h
index 4f8e809b2e..5d6785d293 100644
--- a/src/core/lib/client_config/uri_parser.h
+++ b/src/core/lib/client_config/uri_parser.h
@@ -34,17 +34,29 @@
#ifndef GRPC_CORE_LIB_CLIENT_CONFIG_URI_PARSER_H
#define GRPC_CORE_LIB_CLIENT_CONFIG_URI_PARSER_H
+#include <stddef.h>
+
typedef struct {
char *scheme;
char *authority;
char *path;
char *query;
+ /** Query substrings separated by '&' */
+ char **query_parts;
+ /** Number of elements in \a query_parts and \a query_parts_values */
+ size_t num_query_parts;
+ /** Split each query part by '='. NULL if not present. */
+ char **query_parts_values;
char *fragment;
} grpc_uri;
/** parse a uri, return NULL on failure */
grpc_uri *grpc_uri_parse(const char *uri_text, int suppress_errors);
+/** return the part of a query string after the '=' in "?key=xxx&...", or NULL
+ * if key is not present */
+const char *grpc_uri_get_query_arg(const grpc_uri *uri, const char *key);
+
/** destroy a uri */
void grpc_uri_destroy(grpc_uri *uri);
diff --git a/src/core/lib/iomgr/ev_poll_and_epoll_posix.c b/src/core/lib/iomgr/ev_poll_and_epoll_posix.c
new file mode 100644
index 0000000000..3c8127e1a8
--- /dev/null
+++ b/src/core/lib/iomgr/ev_poll_and_epoll_posix.c
@@ -0,0 +1,1936 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+/* This file will be removed shortly: it's here to keep refactoring
+ * steps simple and auditable.
+ * It's the combination of the old files:
+ * - fd_posix.{h,c}
+ * - pollset_posix.{h,c}
+ * - pullset_multipoller_with_{poll,epoll}.{h,c}
+ * The new version will be split into:
+ * - ev_poll_posix.{h,c}
+ * - ev_epoll_posix.{h,c}
+ */
+
+#include <grpc/support/port_platform.h>
+
+#ifdef GPR_POSIX_SOCKET
+
+#include "src/core/lib/iomgr/ev_poll_and_epoll_posix.h"
+
+#include <assert.h>
+#include <errno.h>
+#include <poll.h>
+#include <string.h>
+#include <sys/socket.h>
+#include <unistd.h>
+
+#include <grpc/support/alloc.h>
+#include <grpc/support/log.h>
+#include <grpc/support/string_util.h>
+#include <grpc/support/tls.h>
+#include <grpc/support/useful.h>
+
+#include "src/core/lib/iomgr/iomgr_internal.h"
+#include "src/core/lib/iomgr/wakeup_fd_posix.h"
+#include "src/core/lib/profiling/timers.h"
+#include "src/core/lib/support/block_annotate.h"
+
+/*******************************************************************************
+ * FD declarations
+ */
+
+typedef struct grpc_fd_watcher {
+ struct grpc_fd_watcher *next;
+ struct grpc_fd_watcher *prev;
+ grpc_pollset *pollset;
+ grpc_pollset_worker *worker;
+ grpc_fd *fd;
+} grpc_fd_watcher;
+
+struct grpc_fd {
+ int fd;
+ /* refst format:
+ bit0: 1=active/0=orphaned
+ bit1-n: refcount
+ meaning that mostly we ref by two to avoid altering the orphaned bit,
+ and just unref by 1 when we're ready to flag the object as orphaned */
+ gpr_atm refst;
+
+ gpr_mu mu;
+ int shutdown;
+ int closed;
+ int released;
+
+ /* The watcher list.
+
+ The following watcher related fields are protected by watcher_mu.
+
+ An fd_watcher is an ephemeral object created when an fd wants to
+ begin polling, and destroyed after the poll.
+
+ It denotes the fd's interest in whether to read poll or write poll
+ or both or neither on this fd.
+
+ If a watcher is asked to poll for reads or writes, the read_watcher
+ or write_watcher fields are set respectively. A watcher may be asked
+ to poll for both, in which case both fields will be set.
+
+ read_watcher and write_watcher may be NULL if no watcher has been
+ asked to poll for reads or writes.
+
+ If an fd_watcher is not asked to poll for reads or writes, it's added
+ to a linked list of inactive watchers, rooted at inactive_watcher_root.
+ 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. */
+ grpc_fd_watcher inactive_watcher_root;
+ grpc_fd_watcher *read_watcher;
+ grpc_fd_watcher *write_watcher;
+
+ grpc_closure *read_closure;
+ grpc_closure *write_closure;
+
+ struct grpc_fd *freelist_next;
+
+ grpc_closure *on_done_closure;
+
+ grpc_iomgr_object iomgr_object;
+};
+
+/* Begin polling on an fd.
+ Registers that the given pollset is interested in this fd - so that if read
+ or writability interest changes, the pollset can be kicked to pick up that
+ new interest.
+ Return value is:
+ (fd_needs_read? read_mask : 0) | (fd_needs_write? write_mask : 0)
+ i.e. a combination of read_mask and write_mask determined by the fd's current
+ interest in said events.
+ Polling strategies that do not need to alter their behavior depending on the
+ fd's current interest (such as epoll) do not need to call this function.
+ MUST NOT be called with a pollset lock taken */
+static uint32_t fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
+ grpc_pollset_worker *worker, uint32_t read_mask,
+ uint32_t write_mask, grpc_fd_watcher *rec);
+/* Complete polling previously started with fd_begin_poll
+ 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. */
+static void fd_end_poll(grpc_exec_ctx *exec_ctx, grpc_fd_watcher *rec,
+ int got_read, int got_write);
+
+/* Return 1 if this fd is orphaned, 0 otherwise */
+static bool fd_is_orphaned(grpc_fd *fd);
+
+/* Reference counting for fds */
+/*#define GRPC_FD_REF_COUNT_DEBUG*/
+#ifdef GRPC_FD_REF_COUNT_DEBUG
+static void fd_ref(grpc_fd *fd, const char *reason, const char *file, int line);
+static void fd_unref(grpc_fd *fd, const char *reason, const char *file,
+ int line);
+#define GRPC_FD_REF(fd, reason) fd_ref(fd, reason, __FILE__, __LINE__)
+#define GRPC_FD_UNREF(fd, reason) fd_unref(fd, reason, __FILE__, __LINE__)
+#else
+static void fd_ref(grpc_fd *fd);
+static void fd_unref(grpc_fd *fd);
+#define GRPC_FD_REF(fd, reason) fd_ref(fd)
+#define GRPC_FD_UNREF(fd, reason) fd_unref(fd)
+#endif
+
+static void fd_global_init(void);
+static void fd_global_shutdown(void);
+
+#define CLOSURE_NOT_READY ((grpc_closure *)0)
+#define CLOSURE_READY ((grpc_closure *)1)
+
+/*******************************************************************************
+ * pollset declarations
+ */
+
+typedef struct grpc_pollset_vtable grpc_pollset_vtable;
+
+typedef struct grpc_cached_wakeup_fd {
+ grpc_wakeup_fd fd;
+ struct grpc_cached_wakeup_fd *next;
+} grpc_cached_wakeup_fd;
+
+struct grpc_pollset_worker {
+ grpc_cached_wakeup_fd *wakeup_fd;
+ int reevaluate_polling_on_wakeup;
+ int kicked_specifically;
+ struct grpc_pollset_worker *next;
+ struct grpc_pollset_worker *prev;
+};
+
+struct grpc_pollset {
+ /* pollsets under posix can mutate representation as fds are added and
+ removed.
+ For example, we may choose a poll() based implementation on linux for
+ few fds, and an epoll() based implementation for many fds */
+ const grpc_pollset_vtable *vtable;
+ gpr_mu mu;
+ grpc_pollset_worker root_worker;
+ int in_flight_cbs;
+ int shutting_down;
+ int called_shutdown;
+ int kicked_without_pollers;
+ grpc_closure *shutdown_done;
+ grpc_closure_list idle_jobs;
+ union {
+ int fd;
+ void *ptr;
+ } data;
+ /* Local cache of eventfds for workers */
+ grpc_cached_wakeup_fd *local_wakeup_cache;
+};
+
+struct grpc_pollset_vtable {
+ void (*add_fd)(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ struct grpc_fd *fd, int and_unlock_pollset);
+ void (*maybe_work_and_unlock)(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_pollset_worker *worker,
+ gpr_timespec deadline, gpr_timespec now);
+ void (*finish_shutdown)(grpc_pollset *pollset);
+ void (*destroy)(grpc_pollset *pollset);
+};
+
+/* Add an fd to a pollset */
+static void pollset_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ struct grpc_fd *fd);
+
+static void pollset_set_add_fd(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set, grpc_fd *fd);
+
+/* Convert a timespec to milliseconds:
+ - very small or negative poll times are clamped to zero to do a
+ non-blocking poll (which becomes spin polling)
+ - other small values are rounded up to one millisecond
+ - longer than a millisecond polls are rounded up to the next nearest
+ millisecond to avoid spinning
+ - infinite timeouts are converted to -1 */
+static int 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 pollset_kick, with an extended set of flags (defined above)
+ -- mostly for fd_posix's use. */
+static void pollset_kick_ext(grpc_pollset *p,
+ grpc_pollset_worker *specific_worker,
+ uint32_t flags);
+
+/* turn a pollset into a multipoller: platform specific */
+typedef void (*platform_become_multipoller_type)(grpc_exec_ctx *exec_ctx,
+ grpc_pollset *pollset,
+ struct grpc_fd **fds,
+ size_t fd_count);
+static platform_become_multipoller_type platform_become_multipoller;
+
+/* Return 1 if the pollset has active threads in pollset_work (pollset must
+ * be locked) */
+static int pollset_has_workers(grpc_pollset *pollset);
+
+static void remove_fd_from_all_epoll_sets(int fd);
+
+/*******************************************************************************
+ * pollset_set definitions
+ */
+
+struct grpc_pollset_set {
+ gpr_mu mu;
+
+ size_t pollset_count;
+ size_t pollset_capacity;
+ grpc_pollset **pollsets;
+
+ size_t pollset_set_count;
+ size_t pollset_set_capacity;
+ struct grpc_pollset_set **pollset_sets;
+
+ size_t fd_count;
+ size_t fd_capacity;
+ grpc_fd **fds;
+};
+
+/*******************************************************************************
+ * fd_posix.c
+ */
+
+/* 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)
+ * epoll_wait deal with the race between pollset removal and incoming poll
+ * notifications.
+ *
+ * The problem is that the poller ultimately holds a reference to this
+ * object, so it is very difficult to know when is safe to free it, at least
+ * without some expensive synchronization.
+ *
+ * If we keep the object freelisted, in the worst case losing this race just
+ * becomes a spurious read notification on a reused fd.
+ */
+/* TODO(klempner): We could use some form of polling generation count to know
+ * when these are safe to free. */
+/* TODO(klempner): Consider disabling freelisting if we don't have multiple
+ * threads in poll on the same fd */
+/* TODO(klempner): Batch these allocations to reduce fragmentation */
+static grpc_fd *fd_freelist = NULL;
+static gpr_mu fd_freelist_mu;
+
+static void freelist_fd(grpc_fd *fd) {
+ gpr_mu_lock(&fd_freelist_mu);
+ fd->freelist_next = fd_freelist;
+ fd_freelist = fd;
+ grpc_iomgr_unregister_object(&fd->iomgr_object);
+ gpr_mu_unlock(&fd_freelist_mu);
+}
+
+static grpc_fd *alloc_fd(int fd) {
+ grpc_fd *r = NULL;
+ gpr_mu_lock(&fd_freelist_mu);
+ if (fd_freelist != NULL) {
+ r = fd_freelist;
+ fd_freelist = fd_freelist->freelist_next;
+ }
+ gpr_mu_unlock(&fd_freelist_mu);
+ if (r == NULL) {
+ r = gpr_malloc(sizeof(grpc_fd));
+ gpr_mu_init(&r->mu);
+ }
+
+ gpr_mu_lock(&r->mu);
+ gpr_atm_rel_store(&r->refst, 1);
+ 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;
+ r->freelist_next = NULL;
+ r->read_watcher = r->write_watcher = NULL;
+ r->on_done_closure = NULL;
+ r->closed = 0;
+ r->released = 0;
+ gpr_mu_unlock(&r->mu);
+ return r;
+}
+
+static void destroy(grpc_fd *fd) {
+ gpr_mu_destroy(&fd->mu);
+ gpr_free(fd);
+}
+
+#ifdef GRPC_FD_REF_COUNT_DEBUG
+#define REF_BY(fd, n, reason) ref_by(fd, n, reason, __FILE__, __LINE__)
+#define UNREF_BY(fd, n, reason) unref_by(fd, n, reason, __FILE__, __LINE__)
+static void ref_by(grpc_fd *fd, int n, const char *reason, const char *file,
+ int line) {
+ gpr_log(GPR_DEBUG, "FD %d %p ref %d %d -> %d [%s; %s:%d]", fd->fd, fd, n,
+ gpr_atm_no_barrier_load(&fd->refst),
+ gpr_atm_no_barrier_load(&fd->refst) + n, reason, file, line);
+#else
+#define REF_BY(fd, n, reason) ref_by(fd, n)
+#define UNREF_BY(fd, n, reason) unref_by(fd, n)
+static void ref_by(grpc_fd *fd, int n) {
+#endif
+ GPR_ASSERT(gpr_atm_no_barrier_fetch_add(&fd->refst, n) > 0);
+}
+
+#ifdef GRPC_FD_REF_COUNT_DEBUG
+static void unref_by(grpc_fd *fd, int n, const char *reason, const char *file,
+ int line) {
+ gpr_atm old;
+ gpr_log(GPR_DEBUG, "FD %d %p unref %d %d -> %d [%s; %s:%d]", fd->fd, fd, n,
+ gpr_atm_no_barrier_load(&fd->refst),
+ gpr_atm_no_barrier_load(&fd->refst) - n, reason, file, line);
+#else
+static void unref_by(grpc_fd *fd, int n) {
+ gpr_atm old;
+#endif
+ old = gpr_atm_full_fetch_add(&fd->refst, -n);
+ if (old == n) {
+ freelist_fd(fd);
+ } else {
+ GPR_ASSERT(old > n);
+ }
+}
+
+static void fd_global_init(void) { gpr_mu_init(&fd_freelist_mu); }
+
+static void fd_global_shutdown(void) {
+ gpr_mu_lock(&fd_freelist_mu);
+ gpr_mu_unlock(&fd_freelist_mu);
+ while (fd_freelist != NULL) {
+ grpc_fd *fd = fd_freelist;
+ fd_freelist = fd_freelist->freelist_next;
+ destroy(fd);
+ }
+ gpr_mu_destroy(&fd_freelist_mu);
+}
+
+static grpc_fd *fd_create(int fd, const char *name) {
+ grpc_fd *r = alloc_fd(fd);
+ char *name2;
+ gpr_asprintf(&name2, "%s fd=%d", name, fd);
+ grpc_iomgr_register_object(&r->iomgr_object, name2);
+ gpr_free(name2);
+#ifdef GRPC_FD_REF_COUNT_DEBUG
+ gpr_log(GPR_DEBUG, "FD %d %p create %s", fd, r, name);
+#endif
+ return r;
+}
+
+static bool fd_is_orphaned(grpc_fd *fd) {
+ return (gpr_atm_acq_load(&fd->refst) & 1) == 0;
+}
+
+static void pollset_kick_locked(grpc_fd_watcher *watcher) {
+ gpr_mu_lock(&watcher->pollset->mu);
+ GPR_ASSERT(watcher->worker);
+ pollset_kick_ext(watcher->pollset, watcher->worker,
+ GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP);
+ gpr_mu_unlock(&watcher->pollset->mu);
+}
+
+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);
+ } else if (fd->read_watcher) {
+ pollset_kick_locked(fd->read_watcher);
+ } else if (fd->write_watcher) {
+ pollset_kick_locked(fd->write_watcher);
+ }
+}
+
+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);
+ }
+ if (fd->read_watcher) {
+ pollset_kick_locked(fd->read_watcher);
+ }
+ if (fd->write_watcher && fd->write_watcher != fd->read_watcher) {
+ pollset_kick_locked(fd->write_watcher);
+ }
+}
+
+static int has_watchers(grpc_fd *fd) {
+ return fd->read_watcher != NULL || fd->write_watcher != NULL ||
+ fd->inactive_watcher_root.next != &fd->inactive_watcher_root;
+}
+
+static void close_fd_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
+ fd->closed = 1;
+ if (!fd->released) {
+ close(fd->fd);
+ } else {
+ remove_fd_from_all_epoll_sets(fd->fd);
+ }
+ grpc_exec_ctx_enqueue(exec_ctx, fd->on_done_closure, true, NULL);
+}
+
+static int fd_wrapped_fd(grpc_fd *fd) {
+ if (fd->released || fd->closed) {
+ return -1;
+ } else {
+ return fd->fd;
+ }
+}
+
+static void fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+ grpc_closure *on_done, int *release_fd,
+ const char *reason) {
+ fd->on_done_closure = on_done;
+ fd->released = release_fd != NULL;
+ if (!fd->released) {
+ shutdown(fd->fd, SHUT_RDWR);
+ } else {
+ *release_fd = fd->fd;
+ }
+ gpr_mu_lock(&fd->mu);
+ REF_BY(fd, 1, reason); /* remove active status, but keep referenced */
+ if (!has_watchers(fd)) {
+ close_fd_locked(exec_ctx, fd);
+ } else {
+ wake_all_watchers_locked(fd);
+ }
+ gpr_mu_unlock(&fd->mu);
+ UNREF_BY(fd, 2, reason); /* drop the reference */
+}
+
+/* increment refcount by two to avoid changing the orphan bit */
+#ifdef GRPC_FD_REF_COUNT_DEBUG
+static void fd_ref(grpc_fd *fd, const char *reason, const char *file,
+ int line) {
+ ref_by(fd, 2, reason, file, line);
+}
+
+static void fd_unref(grpc_fd *fd, const char *reason, const char *file,
+ int line) {
+ unref_by(fd, 2, reason, file, line);
+}
+#else
+static void fd_ref(grpc_fd *fd) { ref_by(fd, 2); }
+
+static void fd_unref(grpc_fd *fd) { unref_by(fd, 2); }
+#endif
+
+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, NULL);
+ 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();
+ }
+}
+
+/* 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, NULL);
+ *st = CLOSURE_NOT_READY;
+ return 1;
+ }
+}
+
+static void fd_shutdown(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
+ gpr_mu_lock(&fd->mu);
+ GPR_ASSERT(!fd->shutdown);
+ 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);
+}
+
+static void fd_notify_on_read(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+ grpc_closure *closure) {
+ gpr_mu_lock(&fd->mu);
+ notify_on_locked(exec_ctx, fd, &fd->read_closure, closure);
+ gpr_mu_unlock(&fd->mu);
+}
+
+static void fd_notify_on_write(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+ grpc_closure *closure) {
+ gpr_mu_lock(&fd->mu);
+ notify_on_locked(exec_ctx, fd, &fd->write_closure, closure);
+ gpr_mu_unlock(&fd->mu);
+}
+
+static uint32_t fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
+ grpc_pollset_worker *worker, uint32_t read_mask,
+ uint32_t write_mask, grpc_fd_watcher *watcher) {
+ uint32_t 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->mu);
+
+ /* if we are shutdown, then don't add to the watcher set */
+ if (fd->shutdown) {
+ watcher->fd = NULL;
+ watcher->pollset = NULL;
+ 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 */
+ 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
+ */
+ 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 && 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->mu);
+
+ return mask;
+}
+
+static void fd_end_poll(grpc_exec_ctx *exec_ctx, grpc_fd_watcher *watcher,
+ int got_read, int got_write) {
+ int was_polling = 0;
+ int kick = 0;
+ grpc_fd *fd = watcher->fd;
+
+ if (fd == NULL) {
+ return;
+ }
+
+ gpr_mu_lock(&fd->mu);
+
+ if (watcher == fd->read_watcher) {
+ /* remove read watcher, kick if we still need a read */
+ was_polling = 1;
+ 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;
+ if (!got_write) {
+ kick = 1;
+ }
+ fd->write_watcher = NULL;
+ }
+ 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);
+ }
+ if (fd_is_orphaned(fd) && !has_watchers(fd) && !fd->closed) {
+ close_fd_locked(exec_ctx, fd);
+ }
+ gpr_mu_unlock(&fd->mu);
+
+ GRPC_FD_UNREF(fd, "poll");
+}
+
+/*******************************************************************************
+ * pollset_posix.c
+ */
+
+GPR_TLS_DECL(g_current_thread_poller);
+GPR_TLS_DECL(g_current_thread_worker);
+
+/** The alarm system needs to be able to wakeup 'some poller' sometimes
+ * (specifically when a new alarm needs to be triggered earlier than the next
+ * alarm 'epoch').
+ * This wakeup_fd gives us something to alert on when such a case occurs. */
+grpc_wakeup_fd grpc_global_wakeup_fd;
+
+static void remove_worker(grpc_pollset *p, grpc_pollset_worker *worker) {
+ worker->prev->next = worker->next;
+ worker->next->prev = worker->prev;
+}
+
+static int pollset_has_workers(grpc_pollset *p) {
+ return p->root_worker.next != &p->root_worker;
+}
+
+static grpc_pollset_worker *pop_front_worker(grpc_pollset *p) {
+ if (pollset_has_workers(p)) {
+ grpc_pollset_worker *w = p->root_worker.next;
+ remove_worker(p, w);
+ return w;
+ } else {
+ return NULL;
+ }
+}
+
+static void push_back_worker(grpc_pollset *p, grpc_pollset_worker *worker) {
+ worker->next = &p->root_worker;
+ worker->prev = worker->next->prev;
+ worker->prev->next = worker->next->prev = worker;
+}
+
+static void push_front_worker(grpc_pollset *p, grpc_pollset_worker *worker) {
+ worker->prev = &p->root_worker;
+ worker->next = worker->prev->next;
+ worker->prev->next = worker->next->prev = worker;
+}
+
+static void pollset_kick_ext(grpc_pollset *p,
+ grpc_pollset_worker *specific_worker,
+ uint32_t flags) {
+ GPR_TIMER_BEGIN("pollset_kick_ext", 0);
+
+ /* pollset->mu already held */
+ if (specific_worker != NULL) {
+ if (specific_worker == GRPC_POLLSET_KICK_BROADCAST) {
+ GPR_TIMER_BEGIN("pollset_kick_ext.broadcast", 0);
+ 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->fd);
+ }
+ p->kicked_without_pollers = 1;
+ GPR_TIMER_END("pollset_kick_ext.broadcast", 0);
+ } else if (gpr_tls_get(&g_current_thread_worker) !=
+ (intptr_t)specific_worker) {
+ GPR_TIMER_MARK("different_thread_worker", 0);
+ if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) {
+ specific_worker->reevaluate_polling_on_wakeup = 1;
+ }
+ specific_worker->kicked_specifically = 1;
+ grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd);
+ } else if ((flags & GRPC_POLLSET_CAN_KICK_SELF) != 0) {
+ GPR_TIMER_MARK("kick_yoself", 0);
+ if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) {
+ specific_worker->reevaluate_polling_on_wakeup = 1;
+ }
+ specific_worker->kicked_specifically = 1;
+ grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd);
+ }
+ } else if (gpr_tls_get(&g_current_thread_poller) != (intptr_t)p) {
+ GPR_ASSERT((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) == 0);
+ GPR_TIMER_MARK("kick_anonymous", 0);
+ specific_worker = pop_front_worker(p);
+ if (specific_worker != NULL) {
+ if (gpr_tls_get(&g_current_thread_worker) == (intptr_t)specific_worker) {
+ GPR_TIMER_MARK("kick_anonymous_not_self", 0);
+ 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) ==
+ (intptr_t)specific_worker) {
+ push_back_worker(p, specific_worker);
+ specific_worker = NULL;
+ }
+ }
+ if (specific_worker != NULL) {
+ GPR_TIMER_MARK("finally_kick", 0);
+ push_back_worker(p, specific_worker);
+ grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd);
+ }
+ } else {
+ GPR_TIMER_MARK("kicked_no_pollers", 0);
+ p->kicked_without_pollers = 1;
+ }
+ }
+
+ GPR_TIMER_END("pollset_kick_ext", 0);
+}
+
+static void pollset_kick(grpc_pollset *p,
+ grpc_pollset_worker *specific_worker) {
+ pollset_kick_ext(p, specific_worker, 0);
+}
+
+/* global state management */
+
+static void pollset_global_init(void) {
+ gpr_tls_init(&g_current_thread_poller);
+ gpr_tls_init(&g_current_thread_worker);
+ grpc_wakeup_fd_global_init();
+ grpc_wakeup_fd_init(&grpc_global_wakeup_fd);
+}
+
+static void pollset_global_shutdown(void) {
+ grpc_wakeup_fd_destroy(&grpc_global_wakeup_fd);
+ gpr_tls_destroy(&g_current_thread_poller);
+ gpr_tls_destroy(&g_current_thread_worker);
+ grpc_wakeup_fd_global_destroy();
+}
+
+static void kick_poller(void) { grpc_wakeup_fd_wakeup(&grpc_global_wakeup_fd); }
+
+/* main interface */
+
+static void become_basic_pollset(grpc_pollset *pollset, grpc_fd *fd_or_null);
+
+static void pollset_init(grpc_pollset *pollset, gpr_mu **mu) {
+ gpr_mu_init(&pollset->mu);
+ *mu = &pollset->mu;
+ pollset->root_worker.next = pollset->root_worker.prev = &pollset->root_worker;
+ pollset->in_flight_cbs = 0;
+ pollset->shutting_down = 0;
+ pollset->called_shutdown = 0;
+ pollset->kicked_without_pollers = 0;
+ pollset->idle_jobs.head = pollset->idle_jobs.tail = NULL;
+ pollset->local_wakeup_cache = NULL;
+ pollset->kicked_without_pollers = 0;
+ become_basic_pollset(pollset, NULL);
+}
+
+static void pollset_destroy(grpc_pollset *pollset) {
+ GPR_ASSERT(pollset->in_flight_cbs == 0);
+ GPR_ASSERT(!pollset_has_workers(pollset));
+ GPR_ASSERT(pollset->idle_jobs.head == pollset->idle_jobs.tail);
+ pollset->vtable->destroy(pollset);
+ while (pollset->local_wakeup_cache) {
+ grpc_cached_wakeup_fd *next = pollset->local_wakeup_cache->next;
+ grpc_wakeup_fd_destroy(&pollset->local_wakeup_cache->fd);
+ gpr_free(pollset->local_wakeup_cache);
+ pollset->local_wakeup_cache = next;
+ }
+ gpr_mu_destroy(&pollset->mu);
+}
+
+static void pollset_reset(grpc_pollset *pollset) {
+ GPR_ASSERT(pollset->shutting_down);
+ GPR_ASSERT(pollset->in_flight_cbs == 0);
+ GPR_ASSERT(!pollset_has_workers(pollset));
+ GPR_ASSERT(pollset->idle_jobs.head == pollset->idle_jobs.tail);
+ pollset->vtable->destroy(pollset);
+ pollset->shutting_down = 0;
+ pollset->called_shutdown = 0;
+ pollset->kicked_without_pollers = 0;
+ become_basic_pollset(pollset, NULL);
+}
+
+static void pollset_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_fd *fd) {
+ gpr_mu_lock(&pollset->mu);
+ pollset->vtable->add_fd(exec_ctx, pollset, fd, 1);
+/* the following (enabled only in debug) will reacquire and then release
+ our lock - meaning that if the unlocking flag passed to add_fd above is
+ not respected, the code will deadlock (in a way that we have a chance of
+ debugging) */
+#ifndef NDEBUG
+ gpr_mu_lock(&pollset->mu);
+ gpr_mu_unlock(&pollset->mu);
+#endif
+}
+
+static void finish_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset) {
+ GPR_ASSERT(grpc_closure_list_empty(pollset->idle_jobs));
+ pollset->vtable->finish_shutdown(pollset);
+ grpc_exec_ctx_enqueue(exec_ctx, pollset->shutdown_done, true, NULL);
+}
+
+static void pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_pollset_worker **worker_hdl, gpr_timespec now,
+ gpr_timespec deadline) {
+ grpc_pollset_worker worker;
+ *worker_hdl = &worker;
+
+ /* pollset->mu already held */
+ int added_worker = 0;
+ int locked = 1;
+ int queued_work = 0;
+ int keep_polling = 0;
+ GPR_TIMER_BEGIN("pollset_work", 0);
+ /* this must happen before we (potentially) drop pollset->mu */
+ worker.next = worker.prev = NULL;
+ worker.reevaluate_polling_on_wakeup = 0;
+ if (pollset->local_wakeup_cache != NULL) {
+ worker.wakeup_fd = pollset->local_wakeup_cache;
+ pollset->local_wakeup_cache = worker.wakeup_fd->next;
+ } else {
+ worker.wakeup_fd = gpr_malloc(sizeof(*worker.wakeup_fd));
+ grpc_wakeup_fd_init(&worker.wakeup_fd->fd);
+ }
+ worker.kicked_specifically = 0;
+ /* If there's work waiting for the pollset to be idle, and the
+ pollset is idle, then do that work */
+ if (!pollset_has_workers(pollset) &&
+ !grpc_closure_list_empty(pollset->idle_jobs)) {
+ GPR_TIMER_MARK("pollset_work.idle_jobs", 0);
+ grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs, NULL);
+ goto done;
+ }
+ /* If we're shutting down then we don't execute any extended work */
+ if (pollset->shutting_down) {
+ GPR_TIMER_MARK("pollset_work.shutting_down", 0);
+ goto done;
+ }
+ /* Give do_promote priority so we don't starve it out */
+ if (pollset->in_flight_cbs) {
+ GPR_TIMER_MARK("pollset_work.in_flight_cbs", 0);
+ gpr_mu_unlock(&pollset->mu);
+ locked = 0;
+ goto done;
+ }
+ /* 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_worker, (intptr_t)&worker);
+ }
+ gpr_tls_set(&g_current_thread_poller, (intptr_t)pollset);
+ GPR_TIMER_BEGIN("maybe_work_and_unlock", 0);
+ pollset->vtable->maybe_work_and_unlock(exec_ctx, pollset, &worker,
+ deadline, now);
+ GPR_TIMER_END("maybe_work_and_unlock", 0);
+ locked = 0;
+ gpr_tls_set(&g_current_thread_poller, 0);
+ } else {
+ GPR_TIMER_MARK("pollset_work.kicked_without_pollers", 0);
+ 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 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 || worker.kicked_specifically) {
+ /* 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;
+ }
+ }
+ if (added_worker) {
+ remove_worker(pollset, &worker);
+ gpr_tls_set(&g_current_thread_worker, 0);
+ }
+ /* release wakeup fd to the local pool */
+ worker.wakeup_fd->next = pollset->local_wakeup_cache;
+ pollset->local_wakeup_cache = worker.wakeup_fd;
+ /* check shutdown conditions */
+ if (pollset->shutting_down) {
+ if (pollset_has_workers(pollset)) {
+ pollset_kick(pollset, NULL);
+ } else if (!pollset->called_shutdown && pollset->in_flight_cbs == 0) {
+ pollset->called_shutdown = 1;
+ gpr_mu_unlock(&pollset->mu);
+ finish_shutdown(exec_ctx, pollset);
+ grpc_exec_ctx_flush(exec_ctx);
+ /* Continuing to access pollset here is safe -- it is the caller's
+ * responsibility to not destroy when it has outstanding calls to
+ * pollset_work.
+ * TODO(dklempner): Can we refactor the shutdown logic to avoid this? */
+ gpr_mu_lock(&pollset->mu);
+ } else if (!grpc_closure_list_empty(pollset->idle_jobs)) {
+ grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs, NULL);
+ gpr_mu_unlock(&pollset->mu);
+ grpc_exec_ctx_flush(exec_ctx);
+ gpr_mu_lock(&pollset->mu);
+ }
+ }
+ *worker_hdl = NULL;
+ GPR_TIMER_END("pollset_work", 0);
+}
+
+static void pollset_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_closure *closure) {
+ GPR_ASSERT(!pollset->shutting_down);
+ pollset->shutting_down = 1;
+ pollset->shutdown_done = closure;
+ pollset_kick(pollset, GRPC_POLLSET_KICK_BROADCAST);
+ if (!pollset_has_workers(pollset)) {
+ grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs, NULL);
+ }
+ if (!pollset->called_shutdown && pollset->in_flight_cbs == 0 &&
+ !pollset_has_workers(pollset)) {
+ pollset->called_shutdown = 1;
+ finish_shutdown(exec_ctx, pollset);
+ }
+}
+
+static int poll_deadline_to_millis_timeout(gpr_timespec deadline,
+ gpr_timespec now) {
+ gpr_timespec timeout;
+ static const int64_t max_spin_polling_us = 10;
+ if (gpr_time_cmp(deadline, gpr_inf_future(deadline.clock_type)) == 0) {
+ return -1;
+ }
+ if (gpr_time_cmp(deadline, gpr_time_add(now, gpr_time_from_micros(
+ max_spin_polling_us,
+ GPR_TIMESPAN))) <= 0) {
+ return 0;
+ }
+ timeout = gpr_time_sub(deadline, now);
+ return gpr_time_to_millis(gpr_time_add(
+ timeout, gpr_time_from_nanos(GPR_NS_PER_MS - 1, GPR_TIMESPAN)));
+}
+
+/*
+ * basic_pollset - a vtable that provides polling for zero or one file
+ * descriptor via poll()
+ */
+
+typedef struct grpc_unary_promote_args {
+ const grpc_pollset_vtable *original_vtable;
+ grpc_pollset *pollset;
+ grpc_fd *fd;
+ grpc_closure promotion_closure;
+} grpc_unary_promote_args;
+
+static void basic_do_promote(grpc_exec_ctx *exec_ctx, void *args,
+ bool success) {
+ grpc_unary_promote_args *up_args = args;
+ const grpc_pollset_vtable *original_vtable = up_args->original_vtable;
+ grpc_pollset *pollset = up_args->pollset;
+ grpc_fd *fd = up_args->fd;
+
+ /*
+ * This is quite tricky. There are a number of cases to keep in mind here:
+ * 1. fd may have been orphaned
+ * 2. The pollset may no longer be a unary poller (and we can't let case #1
+ * leak to other pollset types!)
+ * 3. pollset's fd (which may have changed) may have been orphaned
+ * 4. The pollset may be shutting down.
+ */
+
+ gpr_mu_lock(&pollset->mu);
+ /* First we need to ensure that nobody is polling concurrently */
+ GPR_ASSERT(!pollset_has_workers(pollset));
+
+ gpr_free(up_args);
+ /* At this point the pollset may no longer be a unary poller. In that case
+ * we should just call the right add function and be done. */
+ /* TODO(klempner): If we're not careful this could cause infinite recursion.
+ * That's not a problem for now because empty_pollset has a trivial poller
+ * and we don't have any mechanism to unbecome multipoller. */
+ pollset->in_flight_cbs--;
+ if (pollset->shutting_down) {
+ /* We don't care about this pollset anymore. */
+ if (pollset->in_flight_cbs == 0 && !pollset->called_shutdown) {
+ pollset->called_shutdown = 1;
+ finish_shutdown(exec_ctx, pollset);
+ }
+ } else if (fd_is_orphaned(fd)) {
+ /* Don't try to add it to anything, we'll drop our ref on it below */
+ } else if (pollset->vtable != original_vtable) {
+ pollset->vtable->add_fd(exec_ctx, pollset, fd, 0);
+ } else if (fd != pollset->data.ptr) {
+ grpc_fd *fds[2];
+ fds[0] = pollset->data.ptr;
+ fds[1] = fd;
+
+ if (fds[0] && !fd_is_orphaned(fds[0])) {
+ platform_become_multipoller(exec_ctx, pollset, fds, GPR_ARRAY_SIZE(fds));
+ GRPC_FD_UNREF(fds[0], "basicpoll");
+ } else {
+ /* old fd is orphaned and we haven't cleaned it up until now, so remain a
+ * unary poller */
+ /* Note that it is possible that fds[1] is also orphaned at this point.
+ * That's okay, we'll correct it at the next add or poll. */
+ if (fds[0]) GRPC_FD_UNREF(fds[0], "basicpoll");
+ pollset->data.ptr = fd;
+ GRPC_FD_REF(fd, "basicpoll");
+ }
+ }
+
+ gpr_mu_unlock(&pollset->mu);
+
+ /* Matching ref in basic_pollset_add_fd */
+ GRPC_FD_UNREF(fd, "basicpoll_add");
+}
+
+static void basic_pollset_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_fd *fd, int and_unlock_pollset) {
+ grpc_unary_promote_args *up_args;
+ GPR_ASSERT(fd);
+ if (fd == pollset->data.ptr) goto exit;
+
+ if (!pollset_has_workers(pollset)) {
+ /* Fast path -- no in flight cbs */
+ /* TODO(klempner): Comment this out and fix any test failures or establish
+ * they are due to timing issues */
+ grpc_fd *fds[2];
+ fds[0] = pollset->data.ptr;
+ fds[1] = fd;
+
+ if (fds[0] == NULL) {
+ pollset->data.ptr = fd;
+ GRPC_FD_REF(fd, "basicpoll");
+ } else if (!fd_is_orphaned(fds[0])) {
+ platform_become_multipoller(exec_ctx, pollset, fds, GPR_ARRAY_SIZE(fds));
+ GRPC_FD_UNREF(fds[0], "basicpoll");
+ } else {
+ /* old fd is orphaned and we haven't cleaned it up until now, so remain a
+ * unary poller */
+ GRPC_FD_UNREF(fds[0], "basicpoll");
+ pollset->data.ptr = fd;
+ GRPC_FD_REF(fd, "basicpoll");
+ }
+ goto exit;
+ }
+
+ /* Now we need to promote. This needs to happen when we're not polling. Since
+ * this may be called from poll, the wait needs to happen asynchronously. */
+ GRPC_FD_REF(fd, "basicpoll_add");
+ pollset->in_flight_cbs++;
+ up_args = gpr_malloc(sizeof(*up_args));
+ up_args->fd = fd;
+ up_args->original_vtable = pollset->vtable;
+ up_args->pollset = pollset;
+ up_args->promotion_closure.cb = basic_do_promote;
+ up_args->promotion_closure.cb_arg = up_args;
+
+ grpc_closure_list_add(&pollset->idle_jobs, &up_args->promotion_closure, 1);
+ pollset_kick(pollset, GRPC_POLLSET_KICK_BROADCAST);
+
+exit:
+ if (and_unlock_pollset) {
+ gpr_mu_unlock(&pollset->mu);
+ }
+}
+
+static void basic_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)
+
+ struct pollfd pfd[3];
+ grpc_fd *fd;
+ grpc_fd_watcher fd_watcher;
+ int timeout;
+ int r;
+ nfds_t nfds;
+
+ fd = pollset->data.ptr;
+ if (fd && fd_is_orphaned(fd)) {
+ GRPC_FD_UNREF(fd, "basicpoll");
+ fd = pollset->data.ptr = NULL;
+ }
+ timeout = poll_deadline_to_millis_timeout(deadline, now);
+ pfd[0].fd = GRPC_WAKEUP_FD_GET_READ_FD(&grpc_global_wakeup_fd);
+ pfd[0].events = POLLIN;
+ pfd[0].revents = 0;
+ pfd[1].fd = GRPC_WAKEUP_FD_GET_READ_FD(&worker->wakeup_fd->fd);
+ pfd[1].events = POLLIN;
+ pfd[1].revents = 0;
+ nfds = 2;
+ if (fd) {
+ pfd[2].fd = fd->fd;
+ pfd[2].revents = 0;
+ GRPC_FD_REF(fd, "basicpoll_begin");
+ gpr_mu_unlock(&pollset->mu);
+ pfd[2].events =
+ (short)fd_begin_poll(fd, pollset, worker, POLLIN, POLLOUT, &fd_watcher);
+ if (pfd[2].events != 0) {
+ nfds++;
+ }
+ } else {
+ gpr_mu_unlock(&pollset->mu);
+ }
+
+ /* TODO(vpai): Consider first doing a 0 timeout poll here to avoid
+ even going into the blocking annotation if possible */
+ /* poll fd count (argument 2) is shortened by one if we have no events
+ to poll on - such that it only includes the kicker */
+ GPR_TIMER_BEGIN("poll", 0);
+ GRPC_SCHEDULING_START_BLOCKING_REGION;
+ r = grpc_poll_function(pfd, nfds, timeout);
+ GRPC_SCHEDULING_END_BLOCKING_REGION;
+ GPR_TIMER_END("poll", 0);
+
+ if (r < 0) {
+ if (errno != EINTR) {
+ gpr_log(GPR_ERROR, "poll() failed: %s", strerror(errno));
+ }
+ if (fd) {
+ fd_end_poll(exec_ctx, &fd_watcher, 0, 0);
+ }
+ } else if (r == 0) {
+ if (fd) {
+ fd_end_poll(exec_ctx, &fd_watcher, 0, 0);
+ }
+ } else {
+ if (pfd[0].revents & POLLIN_CHECK) {
+ grpc_wakeup_fd_consume_wakeup(&grpc_global_wakeup_fd);
+ }
+ if (pfd[1].revents & POLLIN_CHECK) {
+ grpc_wakeup_fd_consume_wakeup(&worker->wakeup_fd->fd);
+ }
+ if (nfds > 2) {
+ fd_end_poll(exec_ctx, &fd_watcher, pfd[2].revents & POLLIN_CHECK,
+ pfd[2].revents & POLLOUT_CHECK);
+ } else if (fd) {
+ fd_end_poll(exec_ctx, &fd_watcher, 0, 0);
+ }
+ }
+
+ if (fd) {
+ GRPC_FD_UNREF(fd, "basicpoll_begin");
+ }
+}
+
+static void basic_pollset_destroy(grpc_pollset *pollset) {
+ if (pollset->data.ptr != NULL) {
+ GRPC_FD_UNREF(pollset->data.ptr, "basicpoll");
+ pollset->data.ptr = NULL;
+ }
+}
+
+static const grpc_pollset_vtable basic_pollset = {
+ basic_pollset_add_fd, basic_pollset_maybe_work_and_unlock,
+ basic_pollset_destroy, basic_pollset_destroy};
+
+static void become_basic_pollset(grpc_pollset *pollset, grpc_fd *fd_or_null) {
+ pollset->vtable = &basic_pollset;
+ pollset->data.ptr = fd_or_null;
+ if (fd_or_null != NULL) {
+ GRPC_FD_REF(fd_or_null, "basicpoll");
+ }
+}
+
+/*******************************************************************************
+ * pollset_multipoller_with_poll_posix.c
+ */
+
+#ifndef GPR_LINUX_MULTIPOLL_WITH_EPOLL
+
+typedef struct {
+ /* all polled fds */
+ size_t fd_count;
+ size_t fd_capacity;
+ grpc_fd **fds;
+ /* fds that have been removed from the pollset explicitly */
+ size_t del_count;
+ size_t del_capacity;
+ grpc_fd **dels;
+} poll_hdr;
+
+static void multipoll_with_poll_pollset_add_fd(grpc_exec_ctx *exec_ctx,
+ grpc_pollset *pollset,
+ grpc_fd *fd,
+ int and_unlock_pollset) {
+ size_t i;
+ poll_hdr *h = pollset->data.ptr;
+ /* TODO(ctiller): this is O(num_fds^2); maybe switch to a hash set here */
+ for (i = 0; i < h->fd_count; i++) {
+ if (h->fds[i] == fd) goto exit;
+ }
+ if (h->fd_count == h->fd_capacity) {
+ h->fd_capacity = GPR_MAX(h->fd_capacity + 8, h->fd_count * 3 / 2);
+ h->fds = gpr_realloc(h->fds, sizeof(grpc_fd *) * h->fd_capacity);
+ }
+ h->fds[h->fd_count++] = fd;
+ GRPC_FD_REF(fd, "multipoller");
+exit:
+ if (and_unlock_pollset) {
+ gpr_mu_unlock(&pollset->mu);
+ }
+}
+
+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;
+ nfds_t pfd_count;
+ poll_hdr *h;
+ /* TODO(ctiller): inline some elements to avoid an allocation */
+ grpc_fd_watcher *watchers;
+ struct pollfd *pfds;
+
+ h = pollset->data.ptr;
+ timeout = poll_deadline_to_millis_timeout(deadline, now);
+ /* TODO(ctiller): perform just one malloc here if we exceed the inline case */
+ pfds = gpr_malloc(sizeof(*pfds) * (h->fd_count + 2));
+ watchers = gpr_malloc(sizeof(*watchers) * (h->fd_count + 2));
+ fd_count = 0;
+ pfd_count = 2;
+ pfds[0].fd = GRPC_WAKEUP_FD_GET_READ_FD(&grpc_global_wakeup_fd);
+ pfds[0].events = POLLIN;
+ pfds[0].revents = 0;
+ pfds[1].fd = GRPC_WAKEUP_FD_GET_READ_FD(&worker->wakeup_fd->fd);
+ pfds[1].events = POLLIN;
+ pfds[1].revents = 0;
+ for (i = 0; i < h->fd_count; i++) {
+ int remove = fd_is_orphaned(h->fds[i]);
+ for (j = 0; !remove && j < h->del_count; j++) {
+ if (h->fds[i] == h->dels[j]) remove = 1;
+ }
+ if (remove) {
+ GRPC_FD_UNREF(h->fds[i], "multipoller");
+ } else {
+ h->fds[fd_count++] = h->fds[i];
+ watchers[pfd_count].fd = h->fds[i];
+ GRPC_FD_REF(watchers[pfd_count].fd, "multipoller_start");
+ pfds[pfd_count].fd = h->fds[i]->fd;
+ pfds[pfd_count].revents = 0;
+ pfd_count++;
+ }
+ }
+ for (j = 0; j < h->del_count; j++) {
+ GRPC_FD_UNREF(h->dels[j], "multipoller_del");
+ }
+ h->del_count = 0;
+ h->fd_count = fd_count;
+ gpr_mu_unlock(&pollset->mu);
+
+ for (i = 2; i < pfd_count; i++) {
+ grpc_fd *fd = watchers[i].fd;
+ pfds[i].events = (short)fd_begin_poll(fd, pollset, worker, POLLIN, POLLOUT,
+ &watchers[i]);
+ GRPC_FD_UNREF(fd, "multipoller_start");
+ }
+
+ /* TODO(vpai): Consider first doing a 0 timeout poll here to avoid
+ even going into the blocking annotation if possible */
+ GRPC_SCHEDULING_START_BLOCKING_REGION;
+ r = grpc_poll_function(pfds, pfd_count, timeout);
+ GRPC_SCHEDULING_END_BLOCKING_REGION;
+
+ if (r < 0) {
+ if (errno != EINTR) {
+ gpr_log(GPR_ERROR, "poll() failed: %s", strerror(errno));
+ }
+ for (i = 2; i < pfd_count; i++) {
+ fd_end_poll(exec_ctx, &watchers[i], 0, 0);
+ }
+ } else if (r == 0) {
+ for (i = 2; i < pfd_count; i++) {
+ fd_end_poll(exec_ctx, &watchers[i], 0, 0);
+ }
+ } else {
+ if (pfds[0].revents & POLLIN_CHECK) {
+ grpc_wakeup_fd_consume_wakeup(&grpc_global_wakeup_fd);
+ }
+ if (pfds[1].revents & POLLIN_CHECK) {
+ grpc_wakeup_fd_consume_wakeup(&worker->wakeup_fd->fd);
+ }
+ for (i = 2; i < pfd_count; i++) {
+ if (watchers[i].fd == NULL) {
+ fd_end_poll(exec_ctx, &watchers[i], 0, 0);
+ continue;
+ }
+ fd_end_poll(exec_ctx, &watchers[i], pfds[i].revents & POLLIN_CHECK,
+ pfds[i].revents & POLLOUT_CHECK);
+ }
+ }
+
+ gpr_free(pfds);
+ gpr_free(watchers);
+}
+
+static void multipoll_with_poll_pollset_finish_shutdown(grpc_pollset *pollset) {
+ size_t i;
+ poll_hdr *h = pollset->data.ptr;
+ for (i = 0; i < h->fd_count; i++) {
+ GRPC_FD_UNREF(h->fds[i], "multipoller");
+ }
+ for (i = 0; i < h->del_count; i++) {
+ GRPC_FD_UNREF(h->dels[i], "multipoller_del");
+ }
+ h->fd_count = 0;
+ h->del_count = 0;
+}
+
+static void multipoll_with_poll_pollset_destroy(grpc_pollset *pollset) {
+ poll_hdr *h = pollset->data.ptr;
+ multipoll_with_poll_pollset_finish_shutdown(pollset);
+ gpr_free(h->fds);
+ gpr_free(h->dels);
+ gpr_free(h);
+}
+
+static const grpc_pollset_vtable multipoll_with_poll_pollset = {
+ multipoll_with_poll_pollset_add_fd,
+ multipoll_with_poll_pollset_maybe_work_and_unlock,
+ multipoll_with_poll_pollset_finish_shutdown,
+ multipoll_with_poll_pollset_destroy};
+
+static void poll_become_multipoller(grpc_exec_ctx *exec_ctx,
+ grpc_pollset *pollset, grpc_fd **fds,
+ size_t nfds) {
+ size_t i;
+ poll_hdr *h = gpr_malloc(sizeof(poll_hdr));
+ pollset->vtable = &multipoll_with_poll_pollset;
+ pollset->data.ptr = h;
+ h->fd_count = nfds;
+ h->fd_capacity = nfds;
+ h->fds = gpr_malloc(nfds * sizeof(grpc_fd *));
+ h->del_count = 0;
+ h->del_capacity = 0;
+ h->dels = NULL;
+ for (i = 0; i < nfds; i++) {
+ h->fds[i] = fds[i];
+ GRPC_FD_REF(fds[i], "multipoller");
+ }
+}
+
+#endif /* !GPR_LINUX_MULTIPOLL_WITH_EPOLL */
+
+/*******************************************************************************
+ * pollset_multipoller_with_epoll_posix.c
+ */
+
+#ifdef GPR_LINUX_MULTIPOLL_WITH_EPOLL
+
+#include <errno.h>
+#include <poll.h>
+#include <string.h>
+#include <sys/epoll.h>
+#include <unistd.h>
+
+#include <grpc/support/alloc.h>
+#include <grpc/support/log.h>
+#include <grpc/support/useful.h>
+
+#include "src/core/lib/iomgr/ev_posix.h"
+#include "src/core/lib/profiling/timers.h"
+#include "src/core/lib/support/block_annotate.h"
+
+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->mu);
+ set_ready_locked(exec_ctx, fd, st);
+ gpr_mu_unlock(&fd->mu);
+}
+
+static void fd_become_readable(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
+ set_ready(exec_ctx, fd, &fd->read_closure);
+}
+
+static void fd_become_writable(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
+ set_ready(exec_ctx, fd, &fd->write_closure);
+}
+
+struct epoll_fd_list {
+ int *epoll_fds;
+ size_t count;
+ size_t capacity;
+};
+
+static struct epoll_fd_list epoll_fd_global_list;
+static gpr_once init_epoll_fd_list_mu = GPR_ONCE_INIT;
+static gpr_mu epoll_fd_list_mu;
+
+static void init_mu(void) { gpr_mu_init(&epoll_fd_list_mu); }
+
+static void add_epoll_fd_to_global_list(int epoll_fd) {
+ gpr_once_init(&init_epoll_fd_list_mu, init_mu);
+
+ gpr_mu_lock(&epoll_fd_list_mu);
+ if (epoll_fd_global_list.count == epoll_fd_global_list.capacity) {
+ epoll_fd_global_list.capacity =
+ GPR_MAX((size_t)8, epoll_fd_global_list.capacity * 2);
+ epoll_fd_global_list.epoll_fds =
+ gpr_realloc(epoll_fd_global_list.epoll_fds,
+ epoll_fd_global_list.capacity * sizeof(int));
+ }
+ epoll_fd_global_list.epoll_fds[epoll_fd_global_list.count++] = epoll_fd;
+ gpr_mu_unlock(&epoll_fd_list_mu);
+}
+
+static void remove_epoll_fd_from_global_list(int epoll_fd) {
+ gpr_mu_lock(&epoll_fd_list_mu);
+ GPR_ASSERT(epoll_fd_global_list.count > 0);
+ for (size_t i = 0; i < epoll_fd_global_list.count; i++) {
+ if (epoll_fd == epoll_fd_global_list.epoll_fds[i]) {
+ epoll_fd_global_list.epoll_fds[i] =
+ epoll_fd_global_list.epoll_fds[--(epoll_fd_global_list.count)];
+ break;
+ }
+ }
+ gpr_mu_unlock(&epoll_fd_list_mu);
+}
+
+static void remove_fd_from_all_epoll_sets(int fd) {
+ int err;
+ gpr_once_init(&init_epoll_fd_list_mu, init_mu);
+ gpr_mu_lock(&epoll_fd_list_mu);
+ if (epoll_fd_global_list.count == 0) {
+ gpr_mu_unlock(&epoll_fd_list_mu);
+ return;
+ }
+ for (size_t i = 0; i < epoll_fd_global_list.count; i++) {
+ err = epoll_ctl(epoll_fd_global_list.epoll_fds[i], EPOLL_CTL_DEL, fd, NULL);
+ if (err < 0 && errno != ENOENT) {
+ gpr_log(GPR_ERROR, "epoll_ctl del for %d failed: %s", fd,
+ strerror(errno));
+ }
+ }
+ gpr_mu_unlock(&epoll_fd_list_mu);
+}
+
+typedef struct {
+ grpc_pollset *pollset;
+ grpc_fd *fd;
+ grpc_closure closure;
+} delayed_add;
+
+typedef struct { int epoll_fd; } epoll_hdr;
+
+static void finally_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_fd *fd) {
+ epoll_hdr *h = pollset->data.ptr;
+ struct epoll_event ev;
+ int err;
+ grpc_fd_watcher watcher;
+
+ /* 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(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;
+ err = epoll_ctl(h->epoll_fd, EPOLL_CTL_ADD, fd->fd, &ev);
+ if (err < 0) {
+ /* FDs may be added to a pollset multiple times, so EEXIST is normal. */
+ if (errno != EEXIST) {
+ gpr_log(GPR_ERROR, "epoll_ctl add for %d failed: %s", fd->fd,
+ strerror(errno));
+ }
+ }
+ }
+ fd_end_poll(exec_ctx, &watcher, 0, 0);
+}
+
+static void perform_delayed_add(grpc_exec_ctx *exec_ctx, void *arg,
+ bool iomgr_status) {
+ delayed_add *da = arg;
+
+ if (!fd_is_orphaned(da->fd)) {
+ finally_add_fd(exec_ctx, da->pollset, da->fd);
+ }
+
+ gpr_mu_lock(&da->pollset->mu);
+ da->pollset->in_flight_cbs--;
+ if (da->pollset->shutting_down) {
+ /* We don't care about this pollset anymore. */
+ if (da->pollset->in_flight_cbs == 0 && !da->pollset->called_shutdown) {
+ da->pollset->called_shutdown = 1;
+ grpc_exec_ctx_enqueue(exec_ctx, da->pollset->shutdown_done, true, NULL);
+ }
+ }
+ gpr_mu_unlock(&da->pollset->mu);
+
+ GRPC_FD_UNREF(da->fd, "delayed_add");
+
+ gpr_free(da);
+}
+
+static void multipoll_with_epoll_pollset_add_fd(grpc_exec_ctx *exec_ctx,
+ grpc_pollset *pollset,
+ grpc_fd *fd,
+ int and_unlock_pollset) {
+ if (and_unlock_pollset) {
+ gpr_mu_unlock(&pollset->mu);
+ finally_add_fd(exec_ctx, pollset, fd);
+ } else {
+ delayed_add *da = gpr_malloc(sizeof(*da));
+ da->pollset = pollset;
+ da->fd = fd;
+ GRPC_FD_REF(fd, "delayed_add");
+ grpc_closure_init(&da->closure, perform_delayed_add, da);
+ pollset->in_flight_cbs++;
+ grpc_exec_ctx_enqueue(exec_ctx, &da->closure, true, NULL);
+ }
+}
+
+/* TODO(klempner): We probably want to turn this down a bit */
+#define GRPC_EPOLL_MAX_EVENTS 1000
+
+static void multipoll_with_epoll_pollset_maybe_work_and_unlock(
+ grpc_exec_ctx *exec_ctx, grpc_pollset *pollset, grpc_pollset_worker *worker,
+ gpr_timespec deadline, gpr_timespec now) {
+ struct epoll_event ep_ev[GRPC_EPOLL_MAX_EVENTS];
+ int ep_rv;
+ int poll_rv;
+ epoll_hdr *h = pollset->data.ptr;
+ int timeout_ms;
+ struct pollfd pfds[2];
+
+ /* If you want to ignore epoll's ability to sanely handle parallel pollers,
+ * for a more apples-to-apples performance comparison with poll, add a
+ * if (pollset->counter != 0) { return 0; }
+ * here.
+ */
+
+ gpr_mu_unlock(&pollset->mu);
+
+ timeout_ms = poll_deadline_to_millis_timeout(deadline, now);
+
+ pfds[0].fd = GRPC_WAKEUP_FD_GET_READ_FD(&worker->wakeup_fd->fd);
+ pfds[0].events = POLLIN;
+ pfds[0].revents = 0;
+ pfds[1].fd = h->epoll_fd;
+ pfds[1].events = POLLIN;
+ pfds[1].revents = 0;
+
+ /* TODO(vpai): Consider first doing a 0 timeout poll here to avoid
+ even going into the blocking annotation if possible */
+ GPR_TIMER_BEGIN("poll", 0);
+ GRPC_SCHEDULING_START_BLOCKING_REGION;
+ poll_rv = grpc_poll_function(pfds, 2, timeout_ms);
+ GRPC_SCHEDULING_END_BLOCKING_REGION;
+ GPR_TIMER_END("poll", 0);
+
+ if (poll_rv < 0) {
+ if (errno != EINTR) {
+ gpr_log(GPR_ERROR, "poll() failed: %s", strerror(errno));
+ }
+ } else if (poll_rv == 0) {
+ /* do nothing */
+ } else {
+ if (pfds[0].revents) {
+ grpc_wakeup_fd_consume_wakeup(&worker->wakeup_fd->fd);
+ }
+ if (pfds[1].revents) {
+ do {
+ /* The following epoll_wait never blocks; it has a timeout of 0 */
+ ep_rv = epoll_wait(h->epoll_fd, ep_ev, GRPC_EPOLL_MAX_EVENTS, 0);
+ if (ep_rv < 0) {
+ if (errno != EINTR) {
+ gpr_log(GPR_ERROR, "epoll_wait() failed: %s", strerror(errno));
+ }
+ } else {
+ int i;
+ for (i = 0; i < ep_rv; ++i) {
+ grpc_fd *fd = ep_ev[i].data.ptr;
+ /* TODO(klempner): We might want to consider making err and pri
+ * separate events */
+ int cancel = ep_ev[i].events & (EPOLLERR | EPOLLHUP);
+ int read_ev = ep_ev[i].events & (EPOLLIN | EPOLLPRI);
+ int write_ev = ep_ev[i].events & EPOLLOUT;
+ if (fd == NULL) {
+ grpc_wakeup_fd_consume_wakeup(&grpc_global_wakeup_fd);
+ } else {
+ if (read_ev || cancel) {
+ fd_become_readable(exec_ctx, fd);
+ }
+ if (write_ev || cancel) {
+ fd_become_writable(exec_ctx, fd);
+ }
+ }
+ }
+ }
+ } while (ep_rv == GRPC_EPOLL_MAX_EVENTS);
+ }
+ }
+}
+
+static void multipoll_with_epoll_pollset_finish_shutdown(
+ grpc_pollset *pollset) {}
+
+static void multipoll_with_epoll_pollset_destroy(grpc_pollset *pollset) {
+ epoll_hdr *h = pollset->data.ptr;
+ close(h->epoll_fd);
+ remove_epoll_fd_from_global_list(h->epoll_fd);
+ gpr_free(h);
+}
+
+static const grpc_pollset_vtable multipoll_with_epoll_pollset = {
+ multipoll_with_epoll_pollset_add_fd,
+ multipoll_with_epoll_pollset_maybe_work_and_unlock,
+ multipoll_with_epoll_pollset_finish_shutdown,
+ multipoll_with_epoll_pollset_destroy};
+
+static void epoll_become_multipoller(grpc_exec_ctx *exec_ctx,
+ grpc_pollset *pollset, grpc_fd **fds,
+ size_t nfds) {
+ size_t i;
+ epoll_hdr *h = gpr_malloc(sizeof(epoll_hdr));
+ struct epoll_event ev;
+ int err;
+
+ pollset->vtable = &multipoll_with_epoll_pollset;
+ pollset->data.ptr = h;
+ h->epoll_fd = epoll_create1(EPOLL_CLOEXEC);
+ if (h->epoll_fd < 0) {
+ /* TODO(klempner): Fall back to poll here, especially on ENOSYS */
+ gpr_log(GPR_ERROR, "epoll_create1 failed: %s", strerror(errno));
+ abort();
+ }
+ add_epoll_fd_to_global_list(h->epoll_fd);
+
+ ev.events = (uint32_t)(EPOLLIN | EPOLLET);
+ ev.data.ptr = NULL;
+ err = epoll_ctl(h->epoll_fd, EPOLL_CTL_ADD,
+ GRPC_WAKEUP_FD_GET_READ_FD(&grpc_global_wakeup_fd), &ev);
+ if (err < 0) {
+ gpr_log(GPR_ERROR, "epoll_ctl add for %d failed: %s",
+ GRPC_WAKEUP_FD_GET_READ_FD(&grpc_global_wakeup_fd),
+ strerror(errno));
+ }
+
+ for (i = 0; i < nfds; i++) {
+ multipoll_with_epoll_pollset_add_fd(exec_ctx, pollset, fds[i], 0);
+ }
+}
+
+#else /* GPR_LINUX_MULTIPOLL_WITH_EPOLL */
+
+static void remove_fd_from_all_epoll_sets(int fd) {}
+
+#endif /* GPR_LINUX_MULTIPOLL_WITH_EPOLL */
+
+/*******************************************************************************
+ * pollset_set_posix.c
+ */
+
+static grpc_pollset_set *pollset_set_create(void) {
+ grpc_pollset_set *pollset_set = gpr_malloc(sizeof(*pollset_set));
+ memset(pollset_set, 0, sizeof(*pollset_set));
+ gpr_mu_init(&pollset_set->mu);
+ return pollset_set;
+}
+
+static void pollset_set_destroy(grpc_pollset_set *pollset_set) {
+ size_t i;
+ gpr_mu_destroy(&pollset_set->mu);
+ for (i = 0; i < pollset_set->fd_count; i++) {
+ GRPC_FD_UNREF(pollset_set->fds[i], "pollset_set");
+ }
+ gpr_free(pollset_set->pollsets);
+ gpr_free(pollset_set->pollset_sets);
+ gpr_free(pollset_set->fds);
+ gpr_free(pollset_set);
+}
+
+static void pollset_set_add_pollset(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set,
+ grpc_pollset *pollset) {
+ size_t i, j;
+ gpr_mu_lock(&pollset_set->mu);
+ if (pollset_set->pollset_count == pollset_set->pollset_capacity) {
+ pollset_set->pollset_capacity =
+ GPR_MAX(8, 2 * pollset_set->pollset_capacity);
+ pollset_set->pollsets =
+ gpr_realloc(pollset_set->pollsets, pollset_set->pollset_capacity *
+ sizeof(*pollset_set->pollsets));
+ }
+ pollset_set->pollsets[pollset_set->pollset_count++] = pollset;
+ for (i = 0, j = 0; i < pollset_set->fd_count; i++) {
+ if (fd_is_orphaned(pollset_set->fds[i])) {
+ GRPC_FD_UNREF(pollset_set->fds[i], "pollset_set");
+ } else {
+ pollset_add_fd(exec_ctx, pollset, pollset_set->fds[i]);
+ pollset_set->fds[j++] = pollset_set->fds[i];
+ }
+ }
+ pollset_set->fd_count = j;
+ gpr_mu_unlock(&pollset_set->mu);
+}
+
+static void pollset_set_del_pollset(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set,
+ grpc_pollset *pollset) {
+ size_t i;
+ gpr_mu_lock(&pollset_set->mu);
+ for (i = 0; i < pollset_set->pollset_count; i++) {
+ if (pollset_set->pollsets[i] == pollset) {
+ pollset_set->pollset_count--;
+ GPR_SWAP(grpc_pollset *, pollset_set->pollsets[i],
+ pollset_set->pollsets[pollset_set->pollset_count]);
+ break;
+ }
+ }
+ gpr_mu_unlock(&pollset_set->mu);
+}
+
+static void pollset_set_add_pollset_set(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *bag,
+ grpc_pollset_set *item) {
+ size_t i, j;
+ gpr_mu_lock(&bag->mu);
+ if (bag->pollset_set_count == bag->pollset_set_capacity) {
+ bag->pollset_set_capacity = GPR_MAX(8, 2 * bag->pollset_set_capacity);
+ bag->pollset_sets =
+ gpr_realloc(bag->pollset_sets,
+ bag->pollset_set_capacity * sizeof(*bag->pollset_sets));
+ }
+ bag->pollset_sets[bag->pollset_set_count++] = item;
+ for (i = 0, j = 0; i < bag->fd_count; i++) {
+ if (fd_is_orphaned(bag->fds[i])) {
+ GRPC_FD_UNREF(bag->fds[i], "pollset_set");
+ } else {
+ pollset_set_add_fd(exec_ctx, item, bag->fds[i]);
+ bag->fds[j++] = bag->fds[i];
+ }
+ }
+ bag->fd_count = j;
+ gpr_mu_unlock(&bag->mu);
+}
+
+static void pollset_set_del_pollset_set(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *bag,
+ grpc_pollset_set *item) {
+ size_t i;
+ gpr_mu_lock(&bag->mu);
+ for (i = 0; i < bag->pollset_set_count; i++) {
+ if (bag->pollset_sets[i] == item) {
+ bag->pollset_set_count--;
+ GPR_SWAP(grpc_pollset_set *, bag->pollset_sets[i],
+ bag->pollset_sets[bag->pollset_set_count]);
+ break;
+ }
+ }
+ gpr_mu_unlock(&bag->mu);
+}
+
+static void pollset_set_add_fd(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set, grpc_fd *fd) {
+ size_t i;
+ gpr_mu_lock(&pollset_set->mu);
+ if (pollset_set->fd_count == pollset_set->fd_capacity) {
+ pollset_set->fd_capacity = GPR_MAX(8, 2 * pollset_set->fd_capacity);
+ pollset_set->fds = gpr_realloc(
+ pollset_set->fds, pollset_set->fd_capacity * sizeof(*pollset_set->fds));
+ }
+ GRPC_FD_REF(fd, "pollset_set");
+ pollset_set->fds[pollset_set->fd_count++] = fd;
+ for (i = 0; i < pollset_set->pollset_count; i++) {
+ pollset_add_fd(exec_ctx, pollset_set->pollsets[i], fd);
+ }
+ for (i = 0; i < pollset_set->pollset_set_count; i++) {
+ pollset_set_add_fd(exec_ctx, pollset_set->pollset_sets[i], fd);
+ }
+ gpr_mu_unlock(&pollset_set->mu);
+}
+
+static void pollset_set_del_fd(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set, grpc_fd *fd) {
+ size_t i;
+ gpr_mu_lock(&pollset_set->mu);
+ for (i = 0; i < pollset_set->fd_count; i++) {
+ if (pollset_set->fds[i] == fd) {
+ pollset_set->fd_count--;
+ GPR_SWAP(grpc_fd *, pollset_set->fds[i],
+ pollset_set->fds[pollset_set->fd_count]);
+ GRPC_FD_UNREF(fd, "pollset_set");
+ break;
+ }
+ }
+ for (i = 0; i < pollset_set->pollset_set_count; i++) {
+ pollset_set_del_fd(exec_ctx, pollset_set->pollset_sets[i], fd);
+ }
+ gpr_mu_unlock(&pollset_set->mu);
+}
+
+/*******************************************************************************
+ * event engine binding
+ */
+
+static void shutdown_engine(void) {
+ fd_global_shutdown();
+ pollset_global_shutdown();
+}
+
+static const grpc_event_engine_vtable vtable = {
+ .pollset_size = sizeof(grpc_pollset),
+
+ .fd_create = fd_create,
+ .fd_wrapped_fd = fd_wrapped_fd,
+ .fd_orphan = fd_orphan,
+ .fd_shutdown = fd_shutdown,
+ .fd_notify_on_read = fd_notify_on_read,
+ .fd_notify_on_write = fd_notify_on_write,
+
+ .pollset_init = pollset_init,
+ .pollset_shutdown = pollset_shutdown,
+ .pollset_reset = pollset_reset,
+ .pollset_destroy = pollset_destroy,
+ .pollset_work = pollset_work,
+ .pollset_kick = pollset_kick,
+ .pollset_add_fd = pollset_add_fd,
+
+ .pollset_set_create = pollset_set_create,
+ .pollset_set_destroy = pollset_set_destroy,
+ .pollset_set_add_pollset = pollset_set_add_pollset,
+ .pollset_set_del_pollset = pollset_set_del_pollset,
+ .pollset_set_add_pollset_set = pollset_set_add_pollset_set,
+ .pollset_set_del_pollset_set = pollset_set_del_pollset_set,
+ .pollset_set_add_fd = pollset_set_add_fd,
+ .pollset_set_del_fd = pollset_set_del_fd,
+
+ .kick_poller = kick_poller,
+
+ .shutdown_engine = shutdown_engine,
+};
+
+const grpc_event_engine_vtable *grpc_init_poll_and_epoll_posix(void) {
+#ifdef GPR_LINUX_MULTIPOLL_WITH_EPOLL
+ platform_become_multipoller = epoll_become_multipoller;
+#else
+ platform_become_multipoller = poll_become_multipoller;
+#endif
+ fd_global_init();
+ pollset_global_init();
+ return &vtable;
+}
+
+#endif
diff --git a/src/core/lib/census/grpc_plugin.h b/src/core/lib/iomgr/ev_poll_and_epoll_posix.h
index 4d642a65c7..06d6dbf29d 100644
--- a/src/core/lib/census/grpc_plugin.h
+++ b/src/core/lib/iomgr/ev_poll_and_epoll_posix.h
@@ -31,10 +31,11 @@
*
*/
-#ifndef GRPC_CORE_LIB_CENSUS_GRPC_PLUGIN_H
-#define GRPC_CORE_LIB_CENSUS_GRPC_PLUGIN_H
+#ifndef GRPC_CORE_LIB_IOMGR_EV_POLL_AND_EPOLL_POSIX_H
+#define GRPC_CORE_LIB_IOMGR_EV_POLL_AND_EPOLL_POSIX_H
-void census_grpc_plugin_init(void);
-void census_grpc_plugin_destroy(void);
+#include "src/core/lib/iomgr/ev_posix.h"
-#endif /* GRPC_CORE_LIB_CENSUS_GRPC_PLUGIN_H */
+const grpc_event_engine_vtable *grpc_init_poll_and_epoll_posix(void);
+
+#endif /* GRPC_CORE_LIB_IOMGR_EV_POLL_AND_EPOLL_POSIX_H */
diff --git a/src/core/lib/iomgr/ev_posix.c b/src/core/lib/iomgr/ev_posix.c
new file mode 100644
index 0000000000..0eb95a2e09
--- /dev/null
+++ b/src/core/lib/iomgr/ev_posix.c
@@ -0,0 +1,165 @@
+/*
+ *
+ * Copyright 2015, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include <grpc/support/port_platform.h>
+
+#ifdef GPR_POSIX_SOCKET
+
+#include "src/core/lib/iomgr/ev_posix.h"
+
+#include <grpc/support/log.h>
+
+#include "src/core/lib/iomgr/ev_poll_and_epoll_posix.h"
+
+static const grpc_event_engine_vtable *g_event_engine;
+
+grpc_poll_function_type grpc_poll_function = poll;
+grpc_wakeup_fd grpc_global_wakeup_fd;
+
+void grpc_event_engine_init(void) {
+ if ((g_event_engine = grpc_init_poll_and_epoll_posix())) {
+ return;
+ }
+ gpr_log(GPR_ERROR, "No event engine could be initialized");
+ abort();
+}
+
+void grpc_event_engine_shutdown(void) { g_event_engine->shutdown_engine(); }
+
+grpc_fd *grpc_fd_create(int fd, const char *name) {
+ return g_event_engine->fd_create(fd, name);
+}
+
+int grpc_fd_wrapped_fd(grpc_fd *fd) {
+ return g_event_engine->fd_wrapped_fd(fd);
+}
+
+void grpc_fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure *on_done,
+ int *release_fd, const char *reason) {
+ g_event_engine->fd_orphan(exec_ctx, fd, on_done, release_fd, reason);
+}
+
+void grpc_fd_shutdown(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
+ g_event_engine->fd_shutdown(exec_ctx, fd);
+}
+
+void grpc_fd_notify_on_read(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+ grpc_closure *closure) {
+ g_event_engine->fd_notify_on_read(exec_ctx, fd, closure);
+}
+
+void grpc_fd_notify_on_write(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+ grpc_closure *closure) {
+ g_event_engine->fd_notify_on_write(exec_ctx, fd, closure);
+}
+
+size_t grpc_pollset_size(void) { return g_event_engine->pollset_size; }
+
+void grpc_pollset_init(grpc_pollset *pollset, gpr_mu **mu) {
+ g_event_engine->pollset_init(pollset, mu);
+}
+
+void grpc_pollset_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_closure *closure) {
+ g_event_engine->pollset_shutdown(exec_ctx, pollset, closure);
+}
+
+void grpc_pollset_reset(grpc_pollset *pollset) {
+ g_event_engine->pollset_reset(pollset);
+}
+
+void grpc_pollset_destroy(grpc_pollset *pollset) {
+ g_event_engine->pollset_destroy(pollset);
+}
+
+void grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_pollset_worker **worker, gpr_timespec now,
+ gpr_timespec deadline) {
+ g_event_engine->pollset_work(exec_ctx, pollset, worker, now, deadline);
+}
+
+void grpc_pollset_kick(grpc_pollset *pollset,
+ grpc_pollset_worker *specific_worker) {
+ g_event_engine->pollset_kick(pollset, specific_worker);
+}
+
+void grpc_pollset_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ struct grpc_fd *fd) {
+ g_event_engine->pollset_add_fd(exec_ctx, pollset, fd);
+}
+
+grpc_pollset_set *grpc_pollset_set_create(void) {
+ return g_event_engine->pollset_set_create();
+}
+
+void grpc_pollset_set_destroy(grpc_pollset_set *pollset_set) {
+ g_event_engine->pollset_set_destroy(pollset_set);
+}
+
+void grpc_pollset_set_add_pollset(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set,
+ grpc_pollset *pollset) {
+ g_event_engine->pollset_set_add_pollset(exec_ctx, pollset_set, pollset);
+}
+
+void grpc_pollset_set_del_pollset(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set,
+ grpc_pollset *pollset) {
+ g_event_engine->pollset_set_del_pollset(exec_ctx, pollset_set, pollset);
+}
+
+void grpc_pollset_set_add_pollset_set(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *bag,
+ grpc_pollset_set *item) {
+ g_event_engine->pollset_set_add_pollset_set(exec_ctx, bag, item);
+}
+
+void grpc_pollset_set_del_pollset_set(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *bag,
+ grpc_pollset_set *item) {
+ g_event_engine->pollset_set_del_pollset_set(exec_ctx, bag, item);
+}
+
+void grpc_pollset_set_add_fd(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set, grpc_fd *fd) {
+ g_event_engine->pollset_set_add_fd(exec_ctx, pollset_set, fd);
+}
+
+void grpc_pollset_set_del_fd(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set, grpc_fd *fd) {
+ g_event_engine->pollset_set_del_fd(exec_ctx, pollset_set, fd);
+}
+
+void grpc_kick_poller(void) { g_event_engine->kick_poller(); }
+
+#endif // GPR_POSIX_SOCKET
diff --git a/src/core/lib/iomgr/ev_posix.h b/src/core/lib/iomgr/ev_posix.h
new file mode 100644
index 0000000000..1fa9f5ef2d
--- /dev/null
+++ b/src/core/lib/iomgr/ev_posix.h
@@ -0,0 +1,158 @@
+/*
+ *
+ * Copyright 2015, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef GRPC_CORE_LIB_IOMGR_EV_POSIX_H
+#define GRPC_CORE_LIB_IOMGR_EV_POSIX_H
+
+#include <poll.h>
+
+#include "src/core/lib/iomgr/exec_ctx.h"
+#include "src/core/lib/iomgr/pollset.h"
+#include "src/core/lib/iomgr/pollset_set.h"
+#include "src/core/lib/iomgr/wakeup_fd_posix.h"
+
+typedef struct grpc_fd grpc_fd;
+
+typedef struct grpc_event_engine_vtable {
+ size_t pollset_size;
+
+ grpc_fd *(*fd_create)(int fd, const char *name);
+ int (*fd_wrapped_fd)(grpc_fd *fd);
+ void (*fd_orphan)(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure *on_done,
+ int *release_fd, const char *reason);
+ void (*fd_shutdown)(grpc_exec_ctx *exec_ctx, grpc_fd *fd);
+ void (*fd_notify_on_read)(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+ grpc_closure *closure);
+ void (*fd_notify_on_write)(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+ grpc_closure *closure);
+
+ void (*pollset_init)(grpc_pollset *pollset, gpr_mu **mu);
+ void (*pollset_shutdown)(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_closure *closure);
+ void (*pollset_reset)(grpc_pollset *pollset);
+ void (*pollset_destroy)(grpc_pollset *pollset);
+ void (*pollset_work)(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_pollset_worker **worker, gpr_timespec now,
+ gpr_timespec deadline);
+ void (*pollset_kick)(grpc_pollset *pollset,
+ grpc_pollset_worker *specific_worker);
+ void (*pollset_add_fd)(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ struct grpc_fd *fd);
+
+ grpc_pollset_set *(*pollset_set_create)(void);
+ void (*pollset_set_destroy)(grpc_pollset_set *pollset_set);
+ void (*pollset_set_add_pollset)(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set,
+ grpc_pollset *pollset);
+ void (*pollset_set_del_pollset)(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set,
+ grpc_pollset *pollset);
+ void (*pollset_set_add_pollset_set)(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *bag,
+ grpc_pollset_set *item);
+ void (*pollset_set_del_pollset_set)(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *bag,
+ grpc_pollset_set *item);
+ void (*pollset_set_add_fd)(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set, grpc_fd *fd);
+ void (*pollset_set_del_fd)(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set, grpc_fd *fd);
+
+ void (*kick_poller)(void);
+
+ void (*shutdown_engine)(void);
+} grpc_event_engine_vtable;
+
+void grpc_event_engine_init(void);
+void grpc_event_engine_shutdown(void);
+
+/* Create a wrapped file descriptor.
+ Requires fd is a non-blocking file descriptor.
+ This takes ownership of closing fd. */
+grpc_fd *grpc_fd_create(int fd, const char *name);
+
+/* Return the wrapped fd, or -1 if it has been released or closed. */
+int grpc_fd_wrapped_fd(grpc_fd *fd);
+
+/* Releases fd to be asynchronously destroyed.
+ on_done is called when the underlying file descriptor is definitely close()d.
+ If on_done is NULL, no callback will be made.
+ If release_fd is not NULL, it's set to fd and fd will not be closed.
+ Requires: *fd initialized; no outstanding notify_on_read or
+ notify_on_write.
+ MUST NOT be called with a pollset lock taken */
+void grpc_fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure *on_done,
+ int *release_fd, const char *reason);
+
+/* Cause any current callbacks to error out with GRPC_CALLBACK_CANCELLED. */
+void grpc_fd_shutdown(grpc_exec_ctx *exec_ctx, grpc_fd *fd);
+
+/* Register read interest, causing read_cb to be called once when fd becomes
+ readable, on deadline specified by deadline, or on shutdown triggered by
+ grpc_fd_shutdown.
+ read_cb will be called with read_cb_arg when *fd becomes readable.
+ read_cb is Called with status of GRPC_CALLBACK_SUCCESS if readable,
+ GRPC_CALLBACK_TIMED_OUT if the call timed out,
+ and CANCELLED if the call was cancelled.
+
+ Requires:This method must not be called before the read_cb for any previous
+ call runs. Edge triggered events are used whenever they are supported by the
+ underlying platform. This means that users must drain fd in read_cb before
+ calling notify_on_read again. Users are also expected to handle spurious
+ events, i.e read_cb is called while nothing can be readable from fd */
+void grpc_fd_notify_on_read(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+ grpc_closure *closure);
+
+/* Exactly the same semantics as above, except based on writable events. */
+void grpc_fd_notify_on_write(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+ grpc_closure *closure);
+
+/* pollset_posix functions */
+
+/* Add an fd to a pollset */
+void grpc_pollset_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ struct grpc_fd *fd);
+
+/* pollset_set_posix functions */
+
+void grpc_pollset_set_add_fd(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set, grpc_fd *fd);
+void grpc_pollset_set_del_fd(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set, grpc_fd *fd);
+
+/* override to allow tests to hook poll() usage */
+typedef int (*grpc_poll_function_type)(struct pollfd *, nfds_t, int);
+extern grpc_poll_function_type grpc_poll_function;
+extern grpc_wakeup_fd grpc_global_wakeup_fd;
+
+#endif /* GRPC_CORE_LIB_IOMGR_EV_POSIX_H */
diff --git a/src/core/lib/iomgr/fd_posix.c b/src/core/lib/iomgr/fd_posix.c
deleted file mode 100644
index 1397302658..0000000000
--- a/src/core/lib/iomgr/fd_posix.c
+++ /dev/null
@@ -1,454 +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.
- *
- */
-
-#include <grpc/support/port_platform.h>
-
-#ifdef GPR_POSIX_SOCKET
-
-#include "src/core/lib/iomgr/fd_posix.h"
-
-#include <assert.h>
-#include <sys/socket.h>
-#include <unistd.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/log.h>
-#include <grpc/support/string_util.h>
-#include <grpc/support/useful.h>
-
-#include "src/core/lib/iomgr/pollset_posix.h"
-
-#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)
- * epoll_wait deal with the race between pollset removal and incoming poll
- * notifications.
- *
- * The problem is that the poller ultimately holds a reference to this
- * object, so it is very difficult to know when is safe to free it, at least
- * without some expensive synchronization.
- *
- * If we keep the object freelisted, in the worst case losing this race just
- * becomes a spurious read notification on a reused fd.
- */
-/* TODO(klempner): We could use some form of polling generation count to know
- * when these are safe to free. */
-/* TODO(klempner): Consider disabling freelisting if we don't have multiple
- * threads in poll on the same fd */
-/* TODO(klempner): Batch these allocations to reduce fragmentation */
-static grpc_fd *fd_freelist = NULL;
-static gpr_mu fd_freelist_mu;
-
-static void freelist_fd(grpc_fd *fd) {
- gpr_mu_lock(&fd_freelist_mu);
- fd->freelist_next = fd_freelist;
- fd_freelist = fd;
- grpc_iomgr_unregister_object(&fd->iomgr_object);
- gpr_mu_unlock(&fd_freelist_mu);
-}
-
-static grpc_fd *alloc_fd(int fd) {
- grpc_fd *r = NULL;
- gpr_mu_lock(&fd_freelist_mu);
- if (fd_freelist != NULL) {
- r = fd_freelist;
- fd_freelist = fd_freelist->freelist_next;
- }
- gpr_mu_unlock(&fd_freelist_mu);
- if (r == NULL) {
- r = gpr_malloc(sizeof(grpc_fd));
- gpr_mu_init(&r->mu);
- }
-
- gpr_mu_lock(&r->mu);
- 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;
- r->freelist_next = NULL;
- r->read_watcher = r->write_watcher = NULL;
- r->on_done_closure = NULL;
- r->closed = 0;
- r->released = 0;
- gpr_atm_rel_store(&r->refst, 1);
- gpr_mu_unlock(&r->mu);
-
- return r;
-}
-
-static void destroy(grpc_fd *fd) {
- gpr_mu_destroy(&fd->mu);
- gpr_free(fd);
-}
-
-#ifdef GRPC_FD_REF_COUNT_DEBUG
-#define REF_BY(fd, n, reason) ref_by(fd, n, reason, __FILE__, __LINE__)
-#define UNREF_BY(fd, n, reason) unref_by(fd, n, reason, __FILE__, __LINE__)
-static void ref_by(grpc_fd *fd, int n, const char *reason, const char *file,
- int line) {
- gpr_log(GPR_DEBUG, "FD %d %p ref %d %d -> %d [%s; %s:%d]", fd->fd, fd, n,
- gpr_atm_no_barrier_load(&fd->refst),
- gpr_atm_no_barrier_load(&fd->refst) + n, reason, file, line);
-#else
-#define REF_BY(fd, n, reason) ref_by(fd, n)
-#define UNREF_BY(fd, n, reason) unref_by(fd, n)
-static void ref_by(grpc_fd *fd, int n) {
-#endif
- GPR_ASSERT(gpr_atm_no_barrier_fetch_add(&fd->refst, n) > 0);
-}
-
-#ifdef GRPC_FD_REF_COUNT_DEBUG
-static void unref_by(grpc_fd *fd, int n, const char *reason, const char *file,
- int line) {
- gpr_atm old;
- gpr_log(GPR_DEBUG, "FD %d %p unref %d %d -> %d [%s; %s:%d]", fd->fd, fd, n,
- gpr_atm_no_barrier_load(&fd->refst),
- gpr_atm_no_barrier_load(&fd->refst) - n, reason, file, line);
-#else
-static void unref_by(grpc_fd *fd, int n) {
- gpr_atm old;
-#endif
- old = gpr_atm_full_fetch_add(&fd->refst, -n);
- if (old == n) {
- freelist_fd(fd);
- } else {
- GPR_ASSERT(old > n);
- }
-}
-
-void grpc_fd_global_init(void) { gpr_mu_init(&fd_freelist_mu); }
-
-void grpc_fd_global_shutdown(void) {
- gpr_mu_lock(&fd_freelist_mu);
- gpr_mu_unlock(&fd_freelist_mu);
- while (fd_freelist != NULL) {
- grpc_fd *fd = fd_freelist;
- fd_freelist = fd_freelist->freelist_next;
- destroy(fd);
- }
- gpr_mu_destroy(&fd_freelist_mu);
-}
-
-grpc_fd *grpc_fd_create(int fd, const char *name) {
- grpc_fd *r = alloc_fd(fd);
- char *name2;
- gpr_asprintf(&name2, "%s fd=%d", name, fd);
- grpc_iomgr_register_object(&r->iomgr_object, name2);
- gpr_free(name2);
-#ifdef GRPC_FD_REF_COUNT_DEBUG
- gpr_log(GPR_DEBUG, "FD %d %p create %s", fd, r, name);
-#endif
- return r;
-}
-
-int grpc_fd_is_orphaned(grpc_fd *fd) {
- return (gpr_atm_acq_load(&fd->refst) & 1) == 0;
-}
-
-static void pollset_kick_locked(grpc_fd_watcher *watcher) {
- gpr_mu_lock(&watcher->pollset->mu);
- GPR_ASSERT(watcher->worker);
- grpc_pollset_kick_ext(watcher->pollset, watcher->worker,
- GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP);
- gpr_mu_unlock(&watcher->pollset->mu);
-}
-
-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);
- } else if (fd->read_watcher) {
- pollset_kick_locked(fd->read_watcher);
- } else if (fd->write_watcher) {
- pollset_kick_locked(fd->write_watcher);
- }
-}
-
-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);
- }
- if (fd->read_watcher) {
- pollset_kick_locked(fd->read_watcher);
- }
- if (fd->write_watcher && fd->write_watcher != fd->read_watcher) {
- pollset_kick_locked(fd->write_watcher);
- }
-}
-
-static int has_watchers(grpc_fd *fd) {
- return fd->read_watcher != NULL || fd->write_watcher != NULL ||
- fd->inactive_watcher_root.next != &fd->inactive_watcher_root;
-}
-
-static void close_fd_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
- fd->closed = 1;
- if (!fd->released) {
- close(fd->fd);
- } else {
- grpc_remove_fd_from_all_epoll_sets(fd->fd);
- }
- grpc_exec_ctx_enqueue(exec_ctx, fd->on_done_closure, true, NULL);
-}
-
-int grpc_fd_wrapped_fd(grpc_fd *fd) {
- if (fd->released || fd->closed) {
- return -1;
- } else {
- return fd->fd;
- }
-}
-
-void grpc_fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure *on_done,
- int *release_fd, const char *reason) {
- fd->on_done_closure = on_done;
- fd->released = release_fd != NULL;
- if (!fd->released) {
- shutdown(fd->fd, SHUT_RDWR);
- } else {
- *release_fd = fd->fd;
- }
- gpr_mu_lock(&fd->mu);
- REF_BY(fd, 1, reason); /* remove active status, but keep referenced */
- if (!has_watchers(fd)) {
- close_fd_locked(exec_ctx, fd);
- } else {
- wake_all_watchers_locked(fd);
- }
- gpr_mu_unlock(&fd->mu);
- UNREF_BY(fd, 2, reason); /* drop the reference */
-}
-
-/* increment refcount by two to avoid changing the orphan bit */
-#ifdef GRPC_FD_REF_COUNT_DEBUG
-void grpc_fd_ref(grpc_fd *fd, const char *reason, const char *file, int line) {
- ref_by(fd, 2, reason, file, line);
-}
-
-void grpc_fd_unref(grpc_fd *fd, const char *reason, const char *file,
- int line) {
- unref_by(fd, 2, reason, file, line);
-}
-#else
-void grpc_fd_ref(grpc_fd *fd) { ref_by(fd, 2); }
-
-void grpc_fd_unref(grpc_fd *fd) { unref_by(fd, 2); }
-#endif
-
-static void notify_on_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, NULL);
- 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();
- }
-}
-
-/* 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, NULL);
- *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->mu);
- set_ready_locked(exec_ctx, fd, st);
- gpr_mu_unlock(&fd->mu);
-}
-
-void grpc_fd_shutdown(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
- gpr_mu_lock(&fd->mu);
- GPR_ASSERT(!fd->shutdown);
- 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) {
- 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) {
- gpr_mu_lock(&fd->mu);
- notify_on_locked(exec_ctx, fd, &fd->write_closure, closure);
- gpr_mu_unlock(&fd->mu);
-}
-
-uint32_t grpc_fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
- grpc_pollset_worker *worker, uint32_t read_mask,
- uint32_t write_mask, grpc_fd_watcher *watcher) {
- uint32_t 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->mu);
-
- /* if we are shutdown, then don't add to the watcher set */
- if (fd->shutdown) {
- watcher->fd = NULL;
- watcher->pollset = NULL;
- 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 */
- 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
- */
- 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 && 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->mu);
-
- return mask;
-}
-
-void grpc_fd_end_poll(grpc_exec_ctx *exec_ctx, grpc_fd_watcher *watcher,
- int got_read, int got_write) {
- int was_polling = 0;
- int kick = 0;
- grpc_fd *fd = watcher->fd;
-
- if (fd == NULL) {
- return;
- }
-
- gpr_mu_lock(&fd->mu);
-
- if (watcher == fd->read_watcher) {
- /* remove read watcher, kick if we still need a read */
- was_polling = 1;
- 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;
- if (!got_write) {
- kick = 1;
- }
- fd->write_watcher = NULL;
- }
- 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);
- }
- if (grpc_fd_is_orphaned(fd) && !has_watchers(fd) && !fd->closed) {
- close_fd_locked(exec_ctx, fd);
- }
- 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->read_closure);
-}
-
-void grpc_fd_become_writable(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
- set_ready(exec_ctx, fd, &fd->write_closure);
-}
-
-#endif
diff --git a/src/core/lib/iomgr/fd_posix.h b/src/core/lib/iomgr/fd_posix.h
deleted file mode 100644
index dc389ba743..0000000000
--- a/src/core/lib/iomgr/fd_posix.h
+++ /dev/null
@@ -1,192 +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.
- *
- */
-
-#ifndef GRPC_CORE_LIB_IOMGR_FD_POSIX_H
-#define GRPC_CORE_LIB_IOMGR_FD_POSIX_H
-
-#include <grpc/support/atm.h>
-#include <grpc/support/sync.h>
-#include <grpc/support/time.h>
-#include "src/core/lib/iomgr/iomgr_internal.h"
-#include "src/core/lib/iomgr/pollset.h"
-
-typedef struct grpc_fd grpc_fd;
-
-typedef struct grpc_fd_watcher {
- struct grpc_fd_watcher *next;
- struct grpc_fd_watcher *prev;
- grpc_pollset *pollset;
- grpc_pollset_worker *worker;
- grpc_fd *fd;
-} grpc_fd_watcher;
-
-struct grpc_fd {
- int fd;
- /* refst format:
- bit0: 1=active/0=orphaned
- bit1-n: refcount
- meaning that mostly we ref by two to avoid altering the orphaned bit,
- and just unref by 1 when we're ready to flag the object as orphaned */
- gpr_atm refst;
-
- gpr_mu mu;
- int shutdown;
- int closed;
- int released;
-
- /* The watcher list.
-
- The following watcher related fields are protected by watcher_mu.
-
- An fd_watcher is an ephemeral object created when an fd wants to
- begin polling, and destroyed after the poll.
-
- It denotes the fd's interest in whether to read poll or write poll
- or both or neither on this fd.
-
- If a watcher is asked to poll for reads or writes, the read_watcher
- or write_watcher fields are set respectively. A watcher may be asked
- to poll for both, in which case both fields will be set.
-
- read_watcher and write_watcher may be NULL if no watcher has been
- asked to poll for reads or writes.
-
- If an fd_watcher is not asked to poll for reads or writes, it's added
- to a linked list of inactive watchers, rooted at inactive_watcher_root.
- 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. */
- grpc_fd_watcher inactive_watcher_root;
- grpc_fd_watcher *read_watcher;
- grpc_fd_watcher *write_watcher;
-
- grpc_closure *read_closure;
- grpc_closure *write_closure;
-
- struct grpc_fd *freelist_next;
-
- grpc_closure *on_done_closure;
-
- grpc_iomgr_object iomgr_object;
-};
-
-/* Create a wrapped file descriptor.
- Requires fd is a non-blocking file descriptor.
- This takes ownership of closing fd. */
-grpc_fd *grpc_fd_create(int fd, const char *name);
-
-/* Return the wrapped fd, or -1 if it has been released or closed. */
-int grpc_fd_wrapped_fd(grpc_fd *fd);
-
-/* Releases fd to be asynchronously destroyed.
- on_done is called when the underlying file descriptor is definitely close()d.
- If on_done is NULL, no callback will be made.
- If release_fd is not NULL, it's set to fd and fd will not be closed.
- Requires: *fd initialized; no outstanding notify_on_read or
- notify_on_write.
- MUST NOT be called with a pollset lock taken */
-void grpc_fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure *on_done,
- int *release_fd, const char *reason);
-
-/* Begin polling on an fd.
- Registers that the given pollset is interested in this fd - so that if read
- or writability interest changes, the pollset can be kicked to pick up that
- new interest.
- Return value is:
- (fd_needs_read? read_mask : 0) | (fd_needs_write? write_mask : 0)
- i.e. a combination of read_mask and write_mask determined by the fd's current
- interest in said events.
- Polling strategies that do not need to alter their behavior depending on the
- fd's current interest (such as epoll) do not need to call this function.
- MUST NOT be called with a pollset lock taken */
-uint32_t grpc_fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
- grpc_pollset_worker *worker, uint32_t read_mask,
- uint32_t write_mask, grpc_fd_watcher *rec);
-/* Complete polling previously started with grpc_fd_begin_poll
- 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);
-
-/* Return 1 if this fd is orphaned, 0 otherwise */
-int grpc_fd_is_orphaned(grpc_fd *fd);
-
-/* Cause any current callbacks to error out with GRPC_CALLBACK_CANCELLED. */
-void grpc_fd_shutdown(grpc_exec_ctx *exec_ctx, grpc_fd *fd);
-
-/* Register read interest, causing read_cb to be called once when fd becomes
- readable, on deadline specified by deadline, or on shutdown triggered by
- grpc_fd_shutdown.
- read_cb will be called with read_cb_arg when *fd becomes readable.
- read_cb is Called with status of GRPC_CALLBACK_SUCCESS if readable,
- GRPC_CALLBACK_TIMED_OUT if the call timed out,
- and CANCELLED if the call was cancelled.
-
- Requires:This method must not be called before the read_cb for any previous
- call runs. Edge triggered events are used whenever they are supported by the
- underlying platform. This means that users must drain fd in read_cb before
- calling notify_on_read again. Users are also expected to handle spurious
- events, i.e read_cb is called while nothing can be readable from fd */
-void grpc_fd_notify_on_read(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
- grpc_closure *closure);
-
-/* Exactly the same semantics as above, except based on writable events. */
-void grpc_fd_notify_on_write(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
- grpc_closure *closure);
-
-/* Notification from the poller to an fd that it has become readable or
- writable.
- If allow_synchronous_callback is 1, allow running the fd callback inline
- in this callstack, otherwise register an asynchronous callback and return */
-void grpc_fd_become_readable(grpc_exec_ctx *exec_ctx, grpc_fd *fd);
-void grpc_fd_become_writable(grpc_exec_ctx *exec_ctx, grpc_fd *fd);
-
-/* Reference counting for fds */
-/*#define GRPC_FD_REF_COUNT_DEBUG*/
-#ifdef GRPC_FD_REF_COUNT_DEBUG
-void grpc_fd_ref(grpc_fd *fd, const char *reason, const char *file, int line);
-void grpc_fd_unref(grpc_fd *fd, const char *reason, const char *file, int line);
-#define GRPC_FD_REF(fd, reason) grpc_fd_ref(fd, reason, __FILE__, __LINE__)
-#define GRPC_FD_UNREF(fd, reason) grpc_fd_unref(fd, reason, __FILE__, __LINE__)
-#else
-void grpc_fd_ref(grpc_fd *fd);
-void grpc_fd_unref(grpc_fd *fd);
-#define GRPC_FD_REF(fd, reason) grpc_fd_ref(fd)
-#define GRPC_FD_UNREF(fd, reason) grpc_fd_unref(fd)
-#endif
-
-void grpc_fd_global_init(void);
-void grpc_fd_global_shutdown(void);
-
-#endif /* GRPC_CORE_LIB_IOMGR_FD_POSIX_H */
diff --git a/src/core/lib/iomgr/iomgr.c b/src/core/lib/iomgr/iomgr.c
index 5ac47f42f2..146663984d 100644
--- a/src/core/lib/iomgr/iomgr.c
+++ b/src/core/lib/iomgr/iomgr.c
@@ -63,7 +63,6 @@ void grpc_iomgr_init(void) {
g_root_object.next = g_root_object.prev = &g_root_object;
g_root_object.name = "root";
grpc_iomgr_platform_init();
- grpc_pollset_global_init();
}
static size_t count_objects(void) {
@@ -138,7 +137,6 @@ void grpc_iomgr_shutdown(void) {
gpr_mu_lock(&g_mu);
gpr_mu_unlock(&g_mu);
- grpc_pollset_global_shutdown();
grpc_iomgr_platform_shutdown();
grpc_exec_ctx_global_shutdown();
gpr_mu_destroy(&g_mu);
diff --git a/src/core/lib/iomgr/iomgr_internal.h b/src/core/lib/iomgr/iomgr_internal.h
index 87d5a3d672..805be1f1e4 100644
--- a/src/core/lib/iomgr/iomgr_internal.h
+++ b/src/core/lib/iomgr/iomgr_internal.h
@@ -36,7 +36,6 @@
#include <stdbool.h>
-#include <grpc/support/sync.h>
#include "src/core/lib/iomgr/iomgr.h"
typedef struct grpc_iomgr_object {
@@ -45,9 +44,6 @@ typedef struct grpc_iomgr_object {
struct grpc_iomgr_object *prev;
} grpc_iomgr_object;
-void grpc_pollset_global_init(void);
-void grpc_pollset_global_shutdown(void);
-
void grpc_iomgr_register_object(grpc_iomgr_object *obj, const char *name);
void grpc_iomgr_unregister_object(grpc_iomgr_object *obj);
diff --git a/src/core/lib/iomgr/iomgr_posix.c b/src/core/lib/iomgr/iomgr_posix.c
index 5d909bd220..016c501f75 100644
--- a/src/core/lib/iomgr/iomgr_posix.c
+++ b/src/core/lib/iomgr/iomgr_posix.c
@@ -36,17 +36,17 @@
#ifdef GPR_POSIX_SOCKET
#include "src/core/lib/debug/trace.h"
-#include "src/core/lib/iomgr/fd_posix.h"
+#include "src/core/lib/iomgr/ev_posix.h"
#include "src/core/lib/iomgr/iomgr_posix.h"
#include "src/core/lib/iomgr/tcp_posix.h"
void grpc_iomgr_platform_init(void) {
- grpc_fd_global_init();
+ grpc_event_engine_init();
grpc_register_tracer("tcp", &grpc_tcp_trace);
}
void grpc_iomgr_platform_flush(void) {}
-void grpc_iomgr_platform_shutdown(void) { grpc_fd_global_shutdown(); }
+void grpc_iomgr_platform_shutdown(void) { grpc_event_engine_shutdown(); }
#endif /* GRPC_POSIX_SOCKET */
diff --git a/src/core/lib/iomgr/iomgr_windows.c b/src/core/lib/iomgr/iomgr_windows.c
index 25c88425c4..398517fc75 100644
--- a/src/core/lib/iomgr/iomgr_windows.c
+++ b/src/core/lib/iomgr/iomgr_windows.c
@@ -41,6 +41,7 @@
#include "src/core/lib/iomgr/iocp_windows.h"
#include "src/core/lib/iomgr/iomgr.h"
+#include "src/core/lib/iomgr/pollset_windows.h"
#include "src/core/lib/iomgr/socket_windows.h"
/* Windows' io manager is going to be fully designed using IO completion
@@ -61,11 +62,13 @@ static void winsock_shutdown(void) {
void grpc_iomgr_platform_init(void) {
winsock_init();
grpc_iocp_init();
+ grpc_pollset_global_init();
}
void grpc_iomgr_platform_flush(void) { grpc_iocp_flush(); }
void grpc_iomgr_platform_shutdown(void) {
+ grpc_pollset_global_shutdown();
grpc_iocp_shutdown();
winsock_shutdown();
}
diff --git a/src/core/lib/iomgr/pollset_multipoller_with_epoll.c b/src/core/lib/iomgr/pollset_multipoller_with_epoll.c
deleted file mode 100644
index 04d912e94d..0000000000
--- a/src/core/lib/iomgr/pollset_multipoller_with_epoll.c
+++ /dev/null
@@ -1,324 +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.
- *
- */
-
-#include <grpc/support/port_platform.h>
-
-#ifdef GPR_LINUX_MULTIPOLL_WITH_EPOLL
-
-#include <errno.h>
-#include <poll.h>
-#include <string.h>
-#include <sys/epoll.h>
-#include <unistd.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/log.h>
-#include <grpc/support/useful.h>
-#include "src/core/lib/iomgr/fd_posix.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
-#include "src/core/lib/profiling/timers.h"
-#include "src/core/lib/support/block_annotate.h"
-
-struct epoll_fd_list {
- int *epoll_fds;
- size_t count;
- size_t capacity;
-};
-
-static struct epoll_fd_list epoll_fd_global_list;
-static gpr_once init_epoll_fd_list_mu = GPR_ONCE_INIT;
-static gpr_mu epoll_fd_list_mu;
-
-static void init_mu(void) { gpr_mu_init(&epoll_fd_list_mu); }
-
-static void add_epoll_fd_to_global_list(int epoll_fd) {
- gpr_once_init(&init_epoll_fd_list_mu, init_mu);
-
- gpr_mu_lock(&epoll_fd_list_mu);
- if (epoll_fd_global_list.count == epoll_fd_global_list.capacity) {
- epoll_fd_global_list.capacity =
- GPR_MAX((size_t)8, epoll_fd_global_list.capacity * 2);
- epoll_fd_global_list.epoll_fds =
- gpr_realloc(epoll_fd_global_list.epoll_fds,
- epoll_fd_global_list.capacity * sizeof(int));
- }
- epoll_fd_global_list.epoll_fds[epoll_fd_global_list.count++] = epoll_fd;
- gpr_mu_unlock(&epoll_fd_list_mu);
-}
-
-static void remove_epoll_fd_from_global_list(int epoll_fd) {
- gpr_mu_lock(&epoll_fd_list_mu);
- GPR_ASSERT(epoll_fd_global_list.count > 0);
- for (size_t i = 0; i < epoll_fd_global_list.count; i++) {
- if (epoll_fd == epoll_fd_global_list.epoll_fds[i]) {
- epoll_fd_global_list.epoll_fds[i] =
- epoll_fd_global_list.epoll_fds[--(epoll_fd_global_list.count)];
- break;
- }
- }
- gpr_mu_unlock(&epoll_fd_list_mu);
-}
-
-void grpc_remove_fd_from_all_epoll_sets(int fd) {
- int err;
- gpr_once_init(&init_epoll_fd_list_mu, init_mu);
- gpr_mu_lock(&epoll_fd_list_mu);
- if (epoll_fd_global_list.count == 0) {
- gpr_mu_unlock(&epoll_fd_list_mu);
- return;
- }
- for (size_t i = 0; i < epoll_fd_global_list.count; i++) {
- err = epoll_ctl(epoll_fd_global_list.epoll_fds[i], EPOLL_CTL_DEL, fd, NULL);
- if (err < 0 && errno != ENOENT) {
- gpr_log(GPR_ERROR, "epoll_ctl del for %d failed: %s", fd,
- strerror(errno));
- }
- }
- gpr_mu_unlock(&epoll_fd_list_mu);
-}
-
-typedef struct {
- grpc_pollset *pollset;
- grpc_fd *fd;
- grpc_closure closure;
-} delayed_add;
-
-typedef struct { int epoll_fd; } pollset_hdr;
-
-static void finally_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
- grpc_fd *fd) {
- pollset_hdr *h = pollset->data.ptr;
- struct epoll_event ev;
- int err;
- grpc_fd_watcher watcher;
-
- /* 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, NULL, 0, 0, &watcher) == 0);
- if (watcher.fd != NULL) {
- ev.events = (uint32_t)(EPOLLIN | EPOLLOUT | EPOLLET);
- ev.data.ptr = fd;
- err = epoll_ctl(h->epoll_fd, EPOLL_CTL_ADD, fd->fd, &ev);
- if (err < 0) {
- /* FDs may be added to a pollset multiple times, so EEXIST is normal. */
- if (errno != EEXIST) {
- gpr_log(GPR_ERROR, "epoll_ctl add for %d failed: %s", fd->fd,
- strerror(errno));
- }
- }
- }
- grpc_fd_end_poll(exec_ctx, &watcher, 0, 0);
-}
-
-static void perform_delayed_add(grpc_exec_ctx *exec_ctx, void *arg,
- bool iomgr_status) {
- delayed_add *da = arg;
-
- if (!grpc_fd_is_orphaned(da->fd)) {
- finally_add_fd(exec_ctx, da->pollset, da->fd);
- }
-
- gpr_mu_lock(&da->pollset->mu);
- da->pollset->in_flight_cbs--;
- if (da->pollset->shutting_down) {
- /* We don't care about this pollset anymore. */
- if (da->pollset->in_flight_cbs == 0 && !da->pollset->called_shutdown) {
- da->pollset->called_shutdown = 1;
- grpc_exec_ctx_enqueue(exec_ctx, da->pollset->shutdown_done, true, NULL);
- }
- }
- gpr_mu_unlock(&da->pollset->mu);
-
- GRPC_FD_UNREF(da->fd, "delayed_add");
-
- gpr_free(da);
-}
-
-static void multipoll_with_epoll_pollset_add_fd(grpc_exec_ctx *exec_ctx,
- grpc_pollset *pollset,
- grpc_fd *fd,
- int and_unlock_pollset) {
- if (and_unlock_pollset) {
- gpr_mu_unlock(&pollset->mu);
- finally_add_fd(exec_ctx, pollset, fd);
- } else {
- delayed_add *da = gpr_malloc(sizeof(*da));
- da->pollset = pollset;
- da->fd = fd;
- GRPC_FD_REF(fd, "delayed_add");
- grpc_closure_init(&da->closure, perform_delayed_add, da);
- pollset->in_flight_cbs++;
- grpc_exec_ctx_enqueue(exec_ctx, &da->closure, true, NULL);
- }
-}
-
-/* TODO(klempner): We probably want to turn this down a bit */
-#define GRPC_EPOLL_MAX_EVENTS 1000
-
-static void multipoll_with_epoll_pollset_maybe_work_and_unlock(
- grpc_exec_ctx *exec_ctx, grpc_pollset *pollset, grpc_pollset_worker *worker,
- gpr_timespec deadline, gpr_timespec now) {
- struct epoll_event ep_ev[GRPC_EPOLL_MAX_EVENTS];
- int ep_rv;
- int poll_rv;
- pollset_hdr *h = pollset->data.ptr;
- int timeout_ms;
- struct pollfd pfds[2];
-
- /* If you want to ignore epoll's ability to sanely handle parallel pollers,
- * for a more apples-to-apples performance comparison with poll, add a
- * if (pollset->counter != 0) { return 0; }
- * here.
- */
-
- gpr_mu_unlock(&pollset->mu);
-
- timeout_ms = grpc_poll_deadline_to_millis_timeout(deadline, now);
-
- pfds[0].fd = GRPC_WAKEUP_FD_GET_READ_FD(&worker->wakeup_fd->fd);
- pfds[0].events = POLLIN;
- pfds[0].revents = 0;
- pfds[1].fd = h->epoll_fd;
- pfds[1].events = POLLIN;
- pfds[1].revents = 0;
-
- /* TODO(vpai): Consider first doing a 0 timeout poll here to avoid
- even going into the blocking annotation if possible */
- GPR_TIMER_BEGIN("poll", 0);
- GRPC_SCHEDULING_START_BLOCKING_REGION;
- poll_rv = grpc_poll_function(pfds, 2, timeout_ms);
- GRPC_SCHEDULING_END_BLOCKING_REGION;
- GPR_TIMER_END("poll", 0);
-
- if (poll_rv < 0) {
- if (errno != EINTR) {
- gpr_log(GPR_ERROR, "poll() failed: %s", strerror(errno));
- }
- } else if (poll_rv == 0) {
- /* do nothing */
- } else {
- if (pfds[0].revents) {
- grpc_wakeup_fd_consume_wakeup(&worker->wakeup_fd->fd);
- }
- if (pfds[1].revents) {
- do {
- /* The following epoll_wait never blocks; it has a timeout of 0 */
- ep_rv = epoll_wait(h->epoll_fd, ep_ev, GRPC_EPOLL_MAX_EVENTS, 0);
- if (ep_rv < 0) {
- if (errno != EINTR) {
- gpr_log(GPR_ERROR, "epoll_wait() failed: %s", strerror(errno));
- }
- } else {
- int i;
- for (i = 0; i < ep_rv; ++i) {
- grpc_fd *fd = ep_ev[i].data.ptr;
- /* TODO(klempner): We might want to consider making err and pri
- * separate events */
- int cancel = ep_ev[i].events & (EPOLLERR | EPOLLHUP);
- int read_ev = ep_ev[i].events & (EPOLLIN | EPOLLPRI);
- int write_ev = ep_ev[i].events & EPOLLOUT;
- if (fd == NULL) {
- grpc_wakeup_fd_consume_wakeup(&grpc_global_wakeup_fd);
- } else {
- if (read_ev || cancel) {
- grpc_fd_become_readable(exec_ctx, fd);
- }
- if (write_ev || cancel) {
- grpc_fd_become_writable(exec_ctx, fd);
- }
- }
- }
- }
- } while (ep_rv == GRPC_EPOLL_MAX_EVENTS);
- }
- }
-}
-
-static void multipoll_with_epoll_pollset_finish_shutdown(
- grpc_pollset *pollset) {}
-
-static void multipoll_with_epoll_pollset_destroy(grpc_pollset *pollset) {
- pollset_hdr *h = pollset->data.ptr;
- close(h->epoll_fd);
- remove_epoll_fd_from_global_list(h->epoll_fd);
- gpr_free(h);
-}
-
-static const grpc_pollset_vtable multipoll_with_epoll_pollset = {
- multipoll_with_epoll_pollset_add_fd,
- multipoll_with_epoll_pollset_maybe_work_and_unlock,
- multipoll_with_epoll_pollset_finish_shutdown,
- multipoll_with_epoll_pollset_destroy};
-
-static void epoll_become_multipoller(grpc_exec_ctx *exec_ctx,
- grpc_pollset *pollset, grpc_fd **fds,
- size_t nfds) {
- size_t i;
- pollset_hdr *h = gpr_malloc(sizeof(pollset_hdr));
- struct epoll_event ev;
- int err;
-
- pollset->vtable = &multipoll_with_epoll_pollset;
- pollset->data.ptr = h;
- h->epoll_fd = epoll_create1(EPOLL_CLOEXEC);
- if (h->epoll_fd < 0) {
- /* TODO(klempner): Fall back to poll here, especially on ENOSYS */
- gpr_log(GPR_ERROR, "epoll_create1 failed: %s", strerror(errno));
- abort();
- }
- add_epoll_fd_to_global_list(h->epoll_fd);
-
- ev.events = (uint32_t)(EPOLLIN | EPOLLET);
- ev.data.ptr = NULL;
- err = epoll_ctl(h->epoll_fd, EPOLL_CTL_ADD,
- GRPC_WAKEUP_FD_GET_READ_FD(&grpc_global_wakeup_fd), &ev);
- if (err < 0) {
- gpr_log(GPR_ERROR, "epoll_ctl add for %d failed: %s",
- GRPC_WAKEUP_FD_GET_READ_FD(&grpc_global_wakeup_fd),
- strerror(errno));
- }
-
- for (i = 0; i < nfds; i++) {
- multipoll_with_epoll_pollset_add_fd(exec_ctx, pollset, fds[i], 0);
- }
-}
-
-grpc_platform_become_multipoller_type grpc_platform_become_multipoller =
- epoll_become_multipoller;
-
-#else /* GPR_LINUX_MULTIPOLL_WITH_EPOLL */
-
-void grpc_remove_fd_from_all_epoll_sets(int fd) {}
-
-#endif /* GPR_LINUX_MULTIPOLL_WITH_EPOLL */
diff --git a/src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c b/src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c
deleted file mode 100644
index 7668bf63f5..0000000000
--- a/src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c
+++ /dev/null
@@ -1,234 +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.
- *
- */
-
-#include <grpc/support/port_platform.h>
-
-#ifdef GPR_POSIX_SOCKET
-
-#include "src/core/lib/iomgr/pollset_posix.h"
-
-#include <errno.h>
-#include <poll.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/log.h>
-#include <grpc/support/useful.h>
-
-#include "src/core/lib/iomgr/fd_posix.h"
-#include "src/core/lib/iomgr/iomgr_internal.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
-#include "src/core/lib/support/block_annotate.h"
-
-typedef struct {
- /* all polled fds */
- size_t fd_count;
- size_t fd_capacity;
- grpc_fd **fds;
- /* fds that have been removed from the pollset explicitly */
- size_t del_count;
- size_t del_capacity;
- grpc_fd **dels;
-} pollset_hdr;
-
-static void multipoll_with_poll_pollset_add_fd(grpc_exec_ctx *exec_ctx,
- grpc_pollset *pollset,
- grpc_fd *fd,
- int and_unlock_pollset) {
- size_t i;
- pollset_hdr *h = pollset->data.ptr;
- /* TODO(ctiller): this is O(num_fds^2); maybe switch to a hash set here */
- for (i = 0; i < h->fd_count; i++) {
- if (h->fds[i] == fd) goto exit;
- }
- if (h->fd_count == h->fd_capacity) {
- h->fd_capacity = GPR_MAX(h->fd_capacity + 8, h->fd_count * 3 / 2);
- h->fds = gpr_realloc(h->fds, sizeof(grpc_fd *) * h->fd_capacity);
- }
- h->fds[h->fd_count++] = fd;
- GRPC_FD_REF(fd, "multipoller");
-exit:
- if (and_unlock_pollset) {
- gpr_mu_unlock(&pollset->mu);
- }
-}
-
-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;
- nfds_t pfd_count;
- pollset_hdr *h;
- /* TODO(ctiller): inline some elements to avoid an allocation */
- grpc_fd_watcher *watchers;
- struct pollfd *pfds;
-
- h = pollset->data.ptr;
- timeout = grpc_poll_deadline_to_millis_timeout(deadline, now);
- /* TODO(ctiller): perform just one malloc here if we exceed the inline case */
- pfds = gpr_malloc(sizeof(*pfds) * (h->fd_count + 2));
- watchers = gpr_malloc(sizeof(*watchers) * (h->fd_count + 2));
- fd_count = 0;
- pfd_count = 2;
- pfds[0].fd = GRPC_WAKEUP_FD_GET_READ_FD(&grpc_global_wakeup_fd);
- pfds[0].events = POLLIN;
- pfds[0].revents = 0;
- pfds[1].fd = GRPC_WAKEUP_FD_GET_READ_FD(&worker->wakeup_fd->fd);
- pfds[1].events = POLLIN;
- pfds[1].revents = 0;
- for (i = 0; i < h->fd_count; i++) {
- int remove = grpc_fd_is_orphaned(h->fds[i]);
- for (j = 0; !remove && j < h->del_count; j++) {
- if (h->fds[i] == h->dels[j]) remove = 1;
- }
- if (remove) {
- GRPC_FD_UNREF(h->fds[i], "multipoller");
- } else {
- h->fds[fd_count++] = h->fds[i];
- watchers[pfd_count].fd = h->fds[i];
- GRPC_FD_REF(watchers[pfd_count].fd, "multipoller_start");
- pfds[pfd_count].fd = h->fds[i]->fd;
- pfds[pfd_count].revents = 0;
- pfd_count++;
- }
- }
- for (j = 0; j < h->del_count; j++) {
- GRPC_FD_UNREF(h->dels[j], "multipoller_del");
- }
- h->del_count = 0;
- h->fd_count = fd_count;
- gpr_mu_unlock(&pollset->mu);
-
- for (i = 2; i < pfd_count; i++) {
- grpc_fd *fd = watchers[i].fd;
- pfds[i].events = (short)grpc_fd_begin_poll(fd, pollset, worker, POLLIN,
- POLLOUT, &watchers[i]);
- GRPC_FD_UNREF(fd, "multipoller_start");
- }
-
- /* TODO(vpai): Consider first doing a 0 timeout poll here to avoid
- even going into the blocking annotation if possible */
- GRPC_SCHEDULING_START_BLOCKING_REGION;
- r = grpc_poll_function(pfds, pfd_count, timeout);
- GRPC_SCHEDULING_END_BLOCKING_REGION;
-
- if (r < 0) {
- if (errno != EINTR) {
- 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) {
- for (i = 2; i < pfd_count; i++) {
- grpc_fd_end_poll(exec_ctx, &watchers[i], 0, 0);
- }
- } else {
- if (pfds[0].revents & POLLIN_CHECK) {
- grpc_wakeup_fd_consume_wakeup(&grpc_global_wakeup_fd);
- }
- if (pfds[1].revents & POLLIN_CHECK) {
- grpc_wakeup_fd_consume_wakeup(&worker->wakeup_fd->fd);
- }
- for (i = 2; i < pfd_count; i++) {
- if (watchers[i].fd == NULL) {
- grpc_fd_end_poll(exec_ctx, &watchers[i], 0, 0);
- continue;
- }
- grpc_fd_end_poll(exec_ctx, &watchers[i], pfds[i].revents & POLLIN_CHECK,
- pfds[i].revents & POLLOUT_CHECK);
- }
- }
-
- gpr_free(pfds);
- gpr_free(watchers);
-}
-
-static void multipoll_with_poll_pollset_finish_shutdown(grpc_pollset *pollset) {
- size_t i;
- pollset_hdr *h = pollset->data.ptr;
- for (i = 0; i < h->fd_count; i++) {
- GRPC_FD_UNREF(h->fds[i], "multipoller");
- }
- for (i = 0; i < h->del_count; i++) {
- GRPC_FD_UNREF(h->dels[i], "multipoller_del");
- }
- h->fd_count = 0;
- h->del_count = 0;
-}
-
-static void multipoll_with_poll_pollset_destroy(grpc_pollset *pollset) {
- pollset_hdr *h = pollset->data.ptr;
- multipoll_with_poll_pollset_finish_shutdown(pollset);
- gpr_free(h->fds);
- gpr_free(h->dels);
- gpr_free(h);
-}
-
-static const grpc_pollset_vtable multipoll_with_poll_pollset = {
- multipoll_with_poll_pollset_add_fd,
- multipoll_with_poll_pollset_maybe_work_and_unlock,
- multipoll_with_poll_pollset_finish_shutdown,
- multipoll_with_poll_pollset_destroy};
-
-void grpc_poll_become_multipoller(grpc_exec_ctx *exec_ctx,
- grpc_pollset *pollset, grpc_fd **fds,
- size_t nfds) {
- size_t i;
- pollset_hdr *h = gpr_malloc(sizeof(pollset_hdr));
- pollset->vtable = &multipoll_with_poll_pollset;
- pollset->data.ptr = h;
- h->fd_count = nfds;
- h->fd_capacity = nfds;
- h->fds = gpr_malloc(nfds * sizeof(grpc_fd *));
- h->del_count = 0;
- h->del_capacity = 0;
- h->dels = NULL;
- for (i = 0; i < nfds; i++) {
- h->fds[i] = fds[i];
- GRPC_FD_REF(fds[i], "multipoller");
- }
-}
-
-#endif /* GPR_POSIX_SOCKET */
-
-#ifdef GPR_POSIX_MULTIPOLL_WITH_POLL
-grpc_platform_become_multipoller_type grpc_platform_become_multipoller =
- grpc_poll_become_multipoller;
-#endif
diff --git a/src/core/lib/iomgr/pollset_posix.c b/src/core/lib/iomgr/pollset_posix.c
deleted file mode 100644
index 84a9153034..0000000000
--- a/src/core/lib/iomgr/pollset_posix.c
+++ /dev/null
@@ -1,633 +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.
- *
- */
-
-#include <grpc/support/port_platform.h>
-
-#ifdef GPR_POSIX_SOCKET
-
-#include "src/core/lib/iomgr/pollset_posix.h"
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/log.h>
-#include <grpc/support/thd.h>
-#include <grpc/support/tls.h>
-#include <grpc/support/useful.h>
-#include "src/core/lib/iomgr/fd_posix.h"
-#include "src/core/lib/iomgr/iomgr_internal.h"
-#include "src/core/lib/iomgr/socket_utils_posix.h"
-#include "src/core/lib/profiling/timers.h"
-#include "src/core/lib/support/block_annotate.h"
-
-GPR_TLS_DECL(g_current_thread_poller);
-GPR_TLS_DECL(g_current_thread_worker);
-
-/** Default poll() function - a pointer so that it can be overridden by some
- * tests */
-grpc_poll_function_type grpc_poll_function = poll;
-
-/** The alarm system needs to be able to wakeup 'some poller' sometimes
- * (specifically when a new alarm needs to be triggered earlier than the next
- * alarm 'epoch').
- * This wakeup_fd gives us something to alert on when such a case occurs. */
-grpc_wakeup_fd grpc_global_wakeup_fd;
-
-static void remove_worker(grpc_pollset *p, grpc_pollset_worker *worker) {
- worker->prev->next = worker->next;
- worker->next->prev = worker->prev;
-}
-
-int grpc_pollset_has_workers(grpc_pollset *p) {
- return p->root_worker.next != &p->root_worker;
-}
-
-static grpc_pollset_worker *pop_front_worker(grpc_pollset *p) {
- if (grpc_pollset_has_workers(p)) {
- grpc_pollset_worker *w = p->root_worker.next;
- remove_worker(p, w);
- return w;
- } else {
- return NULL;
- }
-}
-
-static void push_back_worker(grpc_pollset *p, grpc_pollset_worker *worker) {
- worker->next = &p->root_worker;
- worker->prev = worker->next->prev;
- worker->prev->next = worker->next->prev = worker;
-}
-
-static void push_front_worker(grpc_pollset *p, grpc_pollset_worker *worker) {
- worker->prev = &p->root_worker;
- worker->next = worker->prev->next;
- worker->prev->next = worker->next->prev = worker;
-}
-
-size_t grpc_pollset_size(void) { return sizeof(grpc_pollset); }
-
-void grpc_pollset_kick_ext(grpc_pollset *p,
- grpc_pollset_worker *specific_worker,
- uint32_t flags) {
- GPR_TIMER_BEGIN("grpc_pollset_kick_ext", 0);
-
- /* pollset->mu already held */
- if (specific_worker != NULL) {
- if (specific_worker == GRPC_POLLSET_KICK_BROADCAST) {
- GPR_TIMER_BEGIN("grpc_pollset_kick_ext.broadcast", 0);
- 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->fd);
- }
- p->kicked_without_pollers = 1;
- GPR_TIMER_END("grpc_pollset_kick_ext.broadcast", 0);
- } else if (gpr_tls_get(&g_current_thread_worker) !=
- (intptr_t)specific_worker) {
- GPR_TIMER_MARK("different_thread_worker", 0);
- if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) {
- specific_worker->reevaluate_polling_on_wakeup = 1;
- }
- specific_worker->kicked_specifically = 1;
- grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd);
- } else if ((flags & GRPC_POLLSET_CAN_KICK_SELF) != 0) {
- GPR_TIMER_MARK("kick_yoself", 0);
- if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) {
- specific_worker->reevaluate_polling_on_wakeup = 1;
- }
- specific_worker->kicked_specifically = 1;
- grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd);
- }
- } else if (gpr_tls_get(&g_current_thread_poller) != (intptr_t)p) {
- GPR_ASSERT((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) == 0);
- GPR_TIMER_MARK("kick_anonymous", 0);
- specific_worker = pop_front_worker(p);
- if (specific_worker != NULL) {
- if (gpr_tls_get(&g_current_thread_worker) == (intptr_t)specific_worker) {
- GPR_TIMER_MARK("kick_anonymous_not_self", 0);
- 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) ==
- (intptr_t)specific_worker) {
- push_back_worker(p, specific_worker);
- specific_worker = NULL;
- }
- }
- if (specific_worker != NULL) {
- GPR_TIMER_MARK("finally_kick", 0);
- push_back_worker(p, specific_worker);
- grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd);
- }
- } else {
- GPR_TIMER_MARK("kicked_no_pollers", 0);
- p->kicked_without_pollers = 1;
- }
- }
-
- GPR_TIMER_END("grpc_pollset_kick_ext", 0);
-}
-
-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) {
- gpr_tls_init(&g_current_thread_poller);
- gpr_tls_init(&g_current_thread_worker);
- grpc_wakeup_fd_global_init();
- grpc_wakeup_fd_init(&grpc_global_wakeup_fd);
-}
-
-void grpc_pollset_global_shutdown(void) {
- grpc_wakeup_fd_destroy(&grpc_global_wakeup_fd);
- gpr_tls_destroy(&g_current_thread_poller);
- gpr_tls_destroy(&g_current_thread_worker);
- grpc_wakeup_fd_global_destroy();
-}
-
-void grpc_kick_poller(void) { grpc_wakeup_fd_wakeup(&grpc_global_wakeup_fd); }
-
-/* main interface */
-
-static void become_basic_pollset(grpc_pollset *pollset, grpc_fd *fd_or_null);
-
-void grpc_pollset_init(grpc_pollset *pollset, gpr_mu **mu) {
- gpr_mu_init(&pollset->mu);
- *mu = &pollset->mu;
- pollset->root_worker.next = pollset->root_worker.prev = &pollset->root_worker;
- pollset->in_flight_cbs = 0;
- pollset->shutting_down = 0;
- pollset->called_shutdown = 0;
- pollset->kicked_without_pollers = 0;
- pollset->idle_jobs.head = pollset->idle_jobs.tail = NULL;
- pollset->local_wakeup_cache = NULL;
- pollset->kicked_without_pollers = 0;
- become_basic_pollset(pollset, NULL);
-}
-
-void grpc_pollset_destroy(grpc_pollset *pollset) {
- GPR_ASSERT(pollset->in_flight_cbs == 0);
- GPR_ASSERT(!grpc_pollset_has_workers(pollset));
- GPR_ASSERT(pollset->idle_jobs.head == pollset->idle_jobs.tail);
- pollset->vtable->destroy(pollset);
- while (pollset->local_wakeup_cache) {
- grpc_cached_wakeup_fd *next = pollset->local_wakeup_cache->next;
- grpc_wakeup_fd_destroy(&pollset->local_wakeup_cache->fd);
- gpr_free(pollset->local_wakeup_cache);
- pollset->local_wakeup_cache = next;
- }
-}
-
-void grpc_pollset_reset(grpc_pollset *pollset) {
- GPR_ASSERT(pollset->shutting_down);
- GPR_ASSERT(pollset->in_flight_cbs == 0);
- GPR_ASSERT(!grpc_pollset_has_workers(pollset));
- GPR_ASSERT(pollset->idle_jobs.head == pollset->idle_jobs.tail);
- pollset->vtable->destroy(pollset);
- pollset->shutting_down = 0;
- pollset->called_shutdown = 0;
- pollset->kicked_without_pollers = 0;
- become_basic_pollset(pollset, NULL);
-}
-
-void grpc_pollset_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
- grpc_fd *fd) {
- gpr_mu_lock(&pollset->mu);
- pollset->vtable->add_fd(exec_ctx, pollset, fd, 1);
-/* the following (enabled only in debug) will reacquire and then release
- our lock - meaning that if the unlocking flag passed to add_fd above is
- not respected, the code will deadlock (in a way that we have a chance of
- debugging) */
-#ifndef NDEBUG
- gpr_mu_lock(&pollset->mu);
- gpr_mu_unlock(&pollset->mu);
-#endif
-}
-
-static void finish_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset) {
- GPR_ASSERT(grpc_closure_list_empty(pollset->idle_jobs));
- pollset->vtable->finish_shutdown(pollset);
- grpc_exec_ctx_enqueue(exec_ctx, pollset->shutdown_done, true, NULL);
-}
-
-void grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
- grpc_pollset_worker **worker_hdl, gpr_timespec now,
- gpr_timespec deadline) {
- grpc_pollset_worker worker;
- *worker_hdl = &worker;
-
- /* pollset->mu already held */
- int added_worker = 0;
- int locked = 1;
- int queued_work = 0;
- int keep_polling = 0;
- GPR_TIMER_BEGIN("grpc_pollset_work", 0);
- /* this must happen before we (potentially) drop pollset->mu */
- worker.next = worker.prev = NULL;
- worker.reevaluate_polling_on_wakeup = 0;
- if (pollset->local_wakeup_cache != NULL) {
- worker.wakeup_fd = pollset->local_wakeup_cache;
- pollset->local_wakeup_cache = worker.wakeup_fd->next;
- } else {
- worker.wakeup_fd = gpr_malloc(sizeof(*worker.wakeup_fd));
- grpc_wakeup_fd_init(&worker.wakeup_fd->fd);
- }
- worker.kicked_specifically = 0;
- /* 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)) {
- GPR_TIMER_MARK("grpc_pollset_work.idle_jobs", 0);
- grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs, NULL);
- goto done;
- }
- /* If we're shutting down then we don't execute any extended work */
- if (pollset->shutting_down) {
- GPR_TIMER_MARK("grpc_pollset_work.shutting_down", 0);
- goto done;
- }
- /* Give do_promote priority so we don't starve it out */
- if (pollset->in_flight_cbs) {
- GPR_TIMER_MARK("grpc_pollset_work.in_flight_cbs", 0);
- gpr_mu_unlock(&pollset->mu);
- locked = 0;
- goto done;
- }
- /* 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_worker, (intptr_t)&worker);
- }
- gpr_tls_set(&g_current_thread_poller, (intptr_t)pollset);
- GPR_TIMER_BEGIN("maybe_work_and_unlock", 0);
- pollset->vtable->maybe_work_and_unlock(exec_ctx, pollset, &worker,
- deadline, now);
- GPR_TIMER_END("maybe_work_and_unlock", 0);
- locked = 0;
- gpr_tls_set(&g_current_thread_poller, 0);
- } else {
- GPR_TIMER_MARK("grpc_pollset_work.kicked_without_pollers", 0);
- 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 || worker.kicked_specifically) {
- /* 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;
- }
- }
- if (added_worker) {
- remove_worker(pollset, &worker);
- gpr_tls_set(&g_current_thread_worker, 0);
- }
- /* release wakeup fd to the local pool */
- worker.wakeup_fd->next = pollset->local_wakeup_cache;
- pollset->local_wakeup_cache = worker.wakeup_fd;
- /* check shutdown conditions */
- if (pollset->shutting_down) {
- if (grpc_pollset_has_workers(pollset)) {
- grpc_pollset_kick(pollset, NULL);
- } else if (!pollset->called_shutdown && pollset->in_flight_cbs == 0) {
- pollset->called_shutdown = 1;
- gpr_mu_unlock(&pollset->mu);
- finish_shutdown(exec_ctx, pollset);
- grpc_exec_ctx_flush(exec_ctx);
- /* Continuing to access pollset here is safe -- it is the caller's
- * responsibility to not destroy when it has outstanding calls to
- * grpc_pollset_work.
- * TODO(dklempner): Can we refactor the shutdown logic to avoid this? */
- gpr_mu_lock(&pollset->mu);
- } else if (!grpc_closure_list_empty(pollset->idle_jobs)) {
- grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs, NULL);
- gpr_mu_unlock(&pollset->mu);
- grpc_exec_ctx_flush(exec_ctx);
- gpr_mu_lock(&pollset->mu);
- }
- }
- *worker_hdl = NULL;
- GPR_TIMER_END("grpc_pollset_work", 0);
-}
-
-void grpc_pollset_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
- grpc_closure *closure) {
- GPR_ASSERT(!pollset->shutting_down);
- pollset->shutting_down = 1;
- pollset->shutdown_done = closure;
- grpc_pollset_kick(pollset, GRPC_POLLSET_KICK_BROADCAST);
- if (!grpc_pollset_has_workers(pollset)) {
- grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs, NULL);
- }
- if (!pollset->called_shutdown && pollset->in_flight_cbs == 0 &&
- !grpc_pollset_has_workers(pollset)) {
- pollset->called_shutdown = 1;
- finish_shutdown(exec_ctx, pollset);
- }
-}
-
-int grpc_poll_deadline_to_millis_timeout(gpr_timespec deadline,
- gpr_timespec now) {
- gpr_timespec timeout;
- static const int64_t max_spin_polling_us = 10;
- if (gpr_time_cmp(deadline, gpr_inf_future(deadline.clock_type)) == 0) {
- return -1;
- }
- if (gpr_time_cmp(deadline, gpr_time_add(now, gpr_time_from_micros(
- max_spin_polling_us,
- GPR_TIMESPAN))) <= 0) {
- return 0;
- }
- timeout = gpr_time_sub(deadline, now);
- return gpr_time_to_millis(gpr_time_add(
- timeout, gpr_time_from_nanos(GPR_NS_PER_MS - 1, GPR_TIMESPAN)));
-}
-
-/*
- * basic_pollset - a vtable that provides polling for zero or one file
- * descriptor via poll()
- */
-
-typedef struct grpc_unary_promote_args {
- const grpc_pollset_vtable *original_vtable;
- grpc_pollset *pollset;
- grpc_fd *fd;
- grpc_closure promotion_closure;
-} grpc_unary_promote_args;
-
-static void basic_do_promote(grpc_exec_ctx *exec_ctx, void *args,
- bool success) {
- grpc_unary_promote_args *up_args = args;
- const grpc_pollset_vtable *original_vtable = up_args->original_vtable;
- grpc_pollset *pollset = up_args->pollset;
- grpc_fd *fd = up_args->fd;
-
- /*
- * This is quite tricky. There are a number of cases to keep in mind here:
- * 1. fd may have been orphaned
- * 2. The pollset may no longer be a unary poller (and we can't let case #1
- * leak to other pollset types!)
- * 3. pollset's fd (which may have changed) may have been orphaned
- * 4. The pollset may be shutting down.
- */
-
- gpr_mu_lock(&pollset->mu);
- /* First we need to ensure that nobody is polling concurrently */
- GPR_ASSERT(!grpc_pollset_has_workers(pollset));
-
- gpr_free(up_args);
- /* At this point the pollset may no longer be a unary poller. In that case
- * we should just call the right add function and be done. */
- /* TODO(klempner): If we're not careful this could cause infinite recursion.
- * That's not a problem for now because empty_pollset has a trivial poller
- * and we don't have any mechanism to unbecome multipoller. */
- pollset->in_flight_cbs--;
- if (pollset->shutting_down) {
- /* We don't care about this pollset anymore. */
- if (pollset->in_flight_cbs == 0 && !pollset->called_shutdown) {
- pollset->called_shutdown = 1;
- finish_shutdown(exec_ctx, pollset);
- }
- } else if (grpc_fd_is_orphaned(fd)) {
- /* Don't try to add it to anything, we'll drop our ref on it below */
- } else if (pollset->vtable != original_vtable) {
- pollset->vtable->add_fd(exec_ctx, pollset, fd, 0);
- } else if (fd != pollset->data.ptr) {
- grpc_fd *fds[2];
- fds[0] = pollset->data.ptr;
- fds[1] = fd;
-
- if (fds[0] && !grpc_fd_is_orphaned(fds[0])) {
- grpc_platform_become_multipoller(exec_ctx, pollset, fds,
- GPR_ARRAY_SIZE(fds));
- GRPC_FD_UNREF(fds[0], "basicpoll");
- } else {
- /* old fd is orphaned and we haven't cleaned it up until now, so remain a
- * unary poller */
- /* Note that it is possible that fds[1] is also orphaned at this point.
- * That's okay, we'll correct it at the next add or poll. */
- if (fds[0]) GRPC_FD_UNREF(fds[0], "basicpoll");
- pollset->data.ptr = fd;
- GRPC_FD_REF(fd, "basicpoll");
- }
- }
-
- gpr_mu_unlock(&pollset->mu);
-
- /* Matching ref in basic_pollset_add_fd */
- GRPC_FD_UNREF(fd, "basicpoll_add");
-}
-
-static void basic_pollset_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
- grpc_fd *fd, int and_unlock_pollset) {
- grpc_unary_promote_args *up_args;
- GPR_ASSERT(fd);
- if (fd == pollset->data.ptr) goto exit;
-
- if (!grpc_pollset_has_workers(pollset)) {
- /* Fast path -- no in flight cbs */
- /* TODO(klempner): Comment this out and fix any test failures or establish
- * they are due to timing issues */
- grpc_fd *fds[2];
- fds[0] = pollset->data.ptr;
- fds[1] = fd;
-
- if (fds[0] == NULL) {
- pollset->data.ptr = fd;
- GRPC_FD_REF(fd, "basicpoll");
- } else if (!grpc_fd_is_orphaned(fds[0])) {
- grpc_platform_become_multipoller(exec_ctx, pollset, fds,
- GPR_ARRAY_SIZE(fds));
- GRPC_FD_UNREF(fds[0], "basicpoll");
- } else {
- /* old fd is orphaned and we haven't cleaned it up until now, so remain a
- * unary poller */
- GRPC_FD_UNREF(fds[0], "basicpoll");
- pollset->data.ptr = fd;
- GRPC_FD_REF(fd, "basicpoll");
- }
- goto exit;
- }
-
- /* Now we need to promote. This needs to happen when we're not polling. Since
- * this may be called from poll, the wait needs to happen asynchronously. */
- GRPC_FD_REF(fd, "basicpoll_add");
- pollset->in_flight_cbs++;
- up_args = gpr_malloc(sizeof(*up_args));
- up_args->fd = fd;
- up_args->original_vtable = pollset->vtable;
- up_args->pollset = pollset;
- up_args->promotion_closure.cb = basic_do_promote;
- up_args->promotion_closure.cb_arg = up_args;
-
- grpc_closure_list_add(&pollset->idle_jobs, &up_args->promotion_closure, 1);
- grpc_pollset_kick(pollset, GRPC_POLLSET_KICK_BROADCAST);
-
-exit:
- if (and_unlock_pollset) {
- gpr_mu_unlock(&pollset->mu);
- }
-}
-
-static void basic_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)
-
- struct pollfd pfd[3];
- grpc_fd *fd;
- grpc_fd_watcher fd_watcher;
- int timeout;
- int r;
- nfds_t nfds;
-
- fd = pollset->data.ptr;
- if (fd && grpc_fd_is_orphaned(fd)) {
- GRPC_FD_UNREF(fd, "basicpoll");
- fd = pollset->data.ptr = NULL;
- }
- timeout = grpc_poll_deadline_to_millis_timeout(deadline, now);
- pfd[0].fd = GRPC_WAKEUP_FD_GET_READ_FD(&grpc_global_wakeup_fd);
- pfd[0].events = POLLIN;
- pfd[0].revents = 0;
- pfd[1].fd = GRPC_WAKEUP_FD_GET_READ_FD(&worker->wakeup_fd->fd);
- pfd[1].events = POLLIN;
- pfd[1].revents = 0;
- nfds = 2;
- if (fd) {
- pfd[2].fd = fd->fd;
- 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, worker, POLLIN,
- POLLOUT, &fd_watcher);
- if (pfd[2].events != 0) {
- nfds++;
- }
- } else {
- gpr_mu_unlock(&pollset->mu);
- }
-
- /* TODO(vpai): Consider first doing a 0 timeout poll here to avoid
- even going into the blocking annotation if possible */
- /* poll fd count (argument 2) is shortened by one if we have no events
- to poll on - such that it only includes the kicker */
- GPR_TIMER_BEGIN("poll", 0);
- GRPC_SCHEDULING_START_BLOCKING_REGION;
- r = grpc_poll_function(pfd, nfds, timeout);
- GRPC_SCHEDULING_END_BLOCKING_REGION;
- GPR_TIMER_END("poll", 0);
-
- if (r < 0) {
- if (errno != EINTR) {
- 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) {
- if (fd) {
- grpc_fd_end_poll(exec_ctx, &fd_watcher, 0, 0);
- }
- } else {
- if (pfd[0].revents & POLLIN_CHECK) {
- grpc_wakeup_fd_consume_wakeup(&grpc_global_wakeup_fd);
- }
- if (pfd[1].revents & POLLIN_CHECK) {
- grpc_wakeup_fd_consume_wakeup(&worker->wakeup_fd->fd);
- }
- if (nfds > 2) {
- 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);
- }
- }
-
- if (fd) {
- GRPC_FD_UNREF(fd, "basicpoll_begin");
- }
-}
-
-static void basic_pollset_destroy(grpc_pollset *pollset) {
- if (pollset->data.ptr != NULL) {
- GRPC_FD_UNREF(pollset->data.ptr, "basicpoll");
- pollset->data.ptr = NULL;
- }
-}
-
-static const grpc_pollset_vtable basic_pollset = {
- basic_pollset_add_fd, basic_pollset_maybe_work_and_unlock,
- basic_pollset_destroy, basic_pollset_destroy};
-
-static void become_basic_pollset(grpc_pollset *pollset, grpc_fd *fd_or_null) {
- pollset->vtable = &basic_pollset;
- pollset->data.ptr = fd_or_null;
- if (fd_or_null != NULL) {
- GRPC_FD_REF(fd_or_null, "basicpoll");
- }
-}
-
-#endif /* GPR_POSIX_POLLSET */
diff --git a/src/core/lib/iomgr/pollset_posix.h b/src/core/lib/iomgr/pollset_posix.h
deleted file mode 100644
index f53ef8855c..0000000000
--- a/src/core/lib/iomgr/pollset_posix.h
+++ /dev/null
@@ -1,153 +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.
- *
- */
-
-#ifndef GRPC_CORE_LIB_IOMGR_POLLSET_POSIX_H
-#define GRPC_CORE_LIB_IOMGR_POLLSET_POSIX_H
-
-#include <poll.h>
-
-#include <grpc/support/sync.h>
-
-#include "src/core/lib/iomgr/exec_ctx.h"
-#include "src/core/lib/iomgr/iomgr.h"
-#include "src/core/lib/iomgr/pollset.h"
-#include "src/core/lib/iomgr/wakeup_fd_posix.h"
-
-typedef struct grpc_pollset_vtable grpc_pollset_vtable;
-
-/* forward declare only in this file to avoid leaking impl details via
- pollset.h; real users of grpc_fd should always include 'fd_posix.h' and not
- use the struct tag */
-struct grpc_fd;
-
-typedef struct grpc_cached_wakeup_fd {
- grpc_wakeup_fd fd;
- struct grpc_cached_wakeup_fd *next;
-} grpc_cached_wakeup_fd;
-
-struct grpc_pollset_worker {
- grpc_cached_wakeup_fd *wakeup_fd;
- int reevaluate_polling_on_wakeup;
- int kicked_specifically;
- struct grpc_pollset_worker *next;
- struct grpc_pollset_worker *prev;
-};
-
-struct grpc_pollset {
- /* pollsets under posix can mutate representation as fds are added and
- removed.
- For example, we may choose a poll() based implementation on linux for
- few fds, and an epoll() based implementation for many fds */
- const grpc_pollset_vtable *vtable;
- gpr_mu mu;
- grpc_pollset_worker root_worker;
- int in_flight_cbs;
- int shutting_down;
- int called_shutdown;
- int kicked_without_pollers;
- grpc_closure *shutdown_done;
- grpc_closure_list idle_jobs;
- union {
- int fd;
- void *ptr;
- } data;
- /* Local cache of eventfds for workers */
- grpc_cached_wakeup_fd *local_wakeup_cache;
-};
-
-struct grpc_pollset_vtable {
- void (*add_fd)(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
- struct grpc_fd *fd, int and_unlock_pollset);
- void (*maybe_work_and_unlock)(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
- grpc_pollset_worker *worker,
- gpr_timespec deadline, gpr_timespec now);
- void (*finish_shutdown)(grpc_pollset *pollset);
- void (*destroy)(grpc_pollset *pollset);
-};
-
-/* Add an fd to a pollset */
-void grpc_pollset_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
- struct grpc_fd *fd);
-
-/* Returns the fd to listen on for kicks */
-int grpc_kick_read_fd(grpc_pollset *p);
-/* Call after polling has been kicked to leave the kicked state */
-void grpc_kick_drain(grpc_pollset *p);
-
-/* Convert a timespec to milliseconds:
- - very small or negative poll times are clamped to zero to do a
- non-blocking poll (which becomes spin polling)
- - other small values are rounded up to one millisecond
- - longer than a millisecond polls are rounded up to the next nearest
- millisecond to avoid spinning
- - infinite timeouts are converted to -1 */
-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,
- uint32_t flags);
-
-/* turn a pollset into a multipoller: platform specific */
-typedef void (*grpc_platform_become_multipoller_type)(grpc_exec_ctx *exec_ctx,
- grpc_pollset *pollset,
- struct grpc_fd **fds,
- size_t fd_count);
-extern grpc_platform_become_multipoller_type grpc_platform_become_multipoller;
-
-void grpc_poll_become_multipoller(grpc_exec_ctx *exec_ctx,
- grpc_pollset *pollset, struct grpc_fd **fds,
- size_t fd_count);
-
-/* Return 1 if the pollset has active threads in grpc_pollset_work (pollset must
- * be locked) */
-int grpc_pollset_has_workers(grpc_pollset *pollset);
-
-void grpc_remove_fd_from_all_epoll_sets(int fd);
-
-/* override to allow tests to hook poll() usage */
-/* NOTE: Any changes to grpc_poll_function must take place when the gRPC
- is certainly not doing any polling anywhere.
- Otherwise, there might be a race between changing the variable and actually
- doing a polling operation */
-typedef int (*grpc_poll_function_type)(struct pollfd *, nfds_t, int);
-extern grpc_poll_function_type grpc_poll_function;
-extern grpc_wakeup_fd grpc_global_wakeup_fd;
-
-#endif /* GRPC_CORE_LIB_IOMGR_POLLSET_POSIX_H */
diff --git a/src/core/lib/iomgr/pollset_set_posix.c b/src/core/lib/iomgr/pollset_set_posix.c
deleted file mode 100644
index ef85075f38..0000000000
--- a/src/core/lib/iomgr/pollset_set_posix.c
+++ /dev/null
@@ -1,202 +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.
- *
- */
-
-#include <grpc/support/port_platform.h>
-
-#ifdef GPR_POSIX_SOCKET
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/useful.h>
-
-#include "src/core/lib/iomgr/pollset_posix.h"
-#include "src/core/lib/iomgr/pollset_set_posix.h"
-
-struct grpc_pollset_set {
- gpr_mu mu;
-
- size_t pollset_count;
- size_t pollset_capacity;
- grpc_pollset **pollsets;
-
- size_t pollset_set_count;
- size_t pollset_set_capacity;
- struct grpc_pollset_set **pollset_sets;
-
- size_t fd_count;
- size_t fd_capacity;
- grpc_fd **fds;
-};
-
-grpc_pollset_set *grpc_pollset_set_create(void) {
- grpc_pollset_set *pollset_set = gpr_malloc(sizeof(*pollset_set));
- memset(pollset_set, 0, sizeof(*pollset_set));
- gpr_mu_init(&pollset_set->mu);
- return pollset_set;
-}
-
-void grpc_pollset_set_destroy(grpc_pollset_set *pollset_set) {
- size_t i;
- gpr_mu_destroy(&pollset_set->mu);
- for (i = 0; i < pollset_set->fd_count; i++) {
- GRPC_FD_UNREF(pollset_set->fds[i], "pollset_set");
- }
- gpr_free(pollset_set->pollsets);
- gpr_free(pollset_set->pollset_sets);
- gpr_free(pollset_set->fds);
- gpr_free(pollset_set);
-}
-
-void grpc_pollset_set_add_pollset(grpc_exec_ctx *exec_ctx,
- grpc_pollset_set *pollset_set,
- grpc_pollset *pollset) {
- size_t i, j;
- gpr_mu_lock(&pollset_set->mu);
- if (pollset_set->pollset_count == pollset_set->pollset_capacity) {
- pollset_set->pollset_capacity =
- GPR_MAX(8, 2 * pollset_set->pollset_capacity);
- pollset_set->pollsets =
- gpr_realloc(pollset_set->pollsets, pollset_set->pollset_capacity *
- sizeof(*pollset_set->pollsets));
- }
- pollset_set->pollsets[pollset_set->pollset_count++] = pollset;
- for (i = 0, j = 0; i < pollset_set->fd_count; i++) {
- if (grpc_fd_is_orphaned(pollset_set->fds[i])) {
- GRPC_FD_UNREF(pollset_set->fds[i], "pollset_set");
- } else {
- grpc_pollset_add_fd(exec_ctx, pollset, pollset_set->fds[i]);
- pollset_set->fds[j++] = pollset_set->fds[i];
- }
- }
- pollset_set->fd_count = j;
- gpr_mu_unlock(&pollset_set->mu);
-}
-
-void grpc_pollset_set_del_pollset(grpc_exec_ctx *exec_ctx,
- grpc_pollset_set *pollset_set,
- grpc_pollset *pollset) {
- size_t i;
- gpr_mu_lock(&pollset_set->mu);
- for (i = 0; i < pollset_set->pollset_count; i++) {
- if (pollset_set->pollsets[i] == pollset) {
- pollset_set->pollset_count--;
- GPR_SWAP(grpc_pollset *, pollset_set->pollsets[i],
- pollset_set->pollsets[pollset_set->pollset_count]);
- break;
- }
- }
- gpr_mu_unlock(&pollset_set->mu);
-}
-
-void grpc_pollset_set_add_pollset_set(grpc_exec_ctx *exec_ctx,
- grpc_pollset_set *bag,
- grpc_pollset_set *item) {
- size_t i, j;
- gpr_mu_lock(&bag->mu);
- if (bag->pollset_set_count == bag->pollset_set_capacity) {
- bag->pollset_set_capacity = GPR_MAX(8, 2 * bag->pollset_set_capacity);
- bag->pollset_sets =
- gpr_realloc(bag->pollset_sets,
- bag->pollset_set_capacity * sizeof(*bag->pollset_sets));
- }
- bag->pollset_sets[bag->pollset_set_count++] = item;
- for (i = 0, j = 0; i < bag->fd_count; i++) {
- if (grpc_fd_is_orphaned(bag->fds[i])) {
- GRPC_FD_UNREF(bag->fds[i], "pollset_set");
- } else {
- grpc_pollset_set_add_fd(exec_ctx, item, bag->fds[i]);
- bag->fds[j++] = bag->fds[i];
- }
- }
- bag->fd_count = j;
- gpr_mu_unlock(&bag->mu);
-}
-
-void grpc_pollset_set_del_pollset_set(grpc_exec_ctx *exec_ctx,
- grpc_pollset_set *bag,
- grpc_pollset_set *item) {
- size_t i;
- gpr_mu_lock(&bag->mu);
- for (i = 0; i < bag->pollset_set_count; i++) {
- if (bag->pollset_sets[i] == item) {
- bag->pollset_set_count--;
- GPR_SWAP(grpc_pollset_set *, bag->pollset_sets[i],
- bag->pollset_sets[bag->pollset_set_count]);
- break;
- }
- }
- gpr_mu_unlock(&bag->mu);
-}
-
-void grpc_pollset_set_add_fd(grpc_exec_ctx *exec_ctx,
- grpc_pollset_set *pollset_set, grpc_fd *fd) {
- size_t i;
- gpr_mu_lock(&pollset_set->mu);
- if (pollset_set->fd_count == pollset_set->fd_capacity) {
- pollset_set->fd_capacity = GPR_MAX(8, 2 * pollset_set->fd_capacity);
- pollset_set->fds = gpr_realloc(
- pollset_set->fds, pollset_set->fd_capacity * sizeof(*pollset_set->fds));
- }
- GRPC_FD_REF(fd, "pollset_set");
- pollset_set->fds[pollset_set->fd_count++] = fd;
- for (i = 0; i < pollset_set->pollset_count; i++) {
- grpc_pollset_add_fd(exec_ctx, pollset_set->pollsets[i], fd);
- }
- for (i = 0; i < pollset_set->pollset_set_count; i++) {
- grpc_pollset_set_add_fd(exec_ctx, pollset_set->pollset_sets[i], fd);
- }
- gpr_mu_unlock(&pollset_set->mu);
-}
-
-void grpc_pollset_set_del_fd(grpc_exec_ctx *exec_ctx,
- grpc_pollset_set *pollset_set, grpc_fd *fd) {
- size_t i;
- gpr_mu_lock(&pollset_set->mu);
- for (i = 0; i < pollset_set->fd_count; i++) {
- if (pollset_set->fds[i] == fd) {
- pollset_set->fd_count--;
- GPR_SWAP(grpc_fd *, pollset_set->fds[i],
- pollset_set->fds[pollset_set->fd_count]);
- GRPC_FD_UNREF(fd, "pollset_set");
- break;
- }
- }
- for (i = 0; i < pollset_set->pollset_set_count; i++) {
- grpc_pollset_set_del_fd(exec_ctx, pollset_set->pollset_sets[i], fd);
- }
- gpr_mu_unlock(&pollset_set->mu);
-}
-
-#endif /* GPR_POSIX_SOCKET */
diff --git a/src/core/lib/iomgr/pollset_set_posix.h b/src/core/lib/iomgr/pollset_set_posix.h
deleted file mode 100644
index e23e974921..0000000000
--- a/src/core/lib/iomgr/pollset_set_posix.h
+++ /dev/null
@@ -1,45 +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.
- *
- */
-
-#ifndef GRPC_CORE_LIB_IOMGR_POLLSET_SET_POSIX_H
-#define GRPC_CORE_LIB_IOMGR_POLLSET_SET_POSIX_H
-
-#include "src/core/lib/iomgr/fd_posix.h"
-#include "src/core/lib/iomgr/pollset_set.h"
-
-void grpc_pollset_set_add_fd(grpc_exec_ctx *exec_ctx,
- grpc_pollset_set *pollset_set, grpc_fd *fd);
-void grpc_pollset_set_del_fd(grpc_exec_ctx *exec_ctx,
- grpc_pollset_set *pollset_set, grpc_fd *fd);
-
-#endif /* GRPC_CORE_LIB_IOMGR_POLLSET_SET_POSIX_H */
diff --git a/src/core/lib/iomgr/pollset_windows.c b/src/core/lib/iomgr/pollset_windows.c
index c2e7f647b5..bff5c586f8 100644
--- a/src/core/lib/iomgr/pollset_windows.c
+++ b/src/core/lib/iomgr/pollset_windows.c
@@ -47,7 +47,7 @@ gpr_mu grpc_polling_mu;
static grpc_pollset_worker *g_active_poller;
static grpc_pollset_worker g_global_root_worker;
-void grpc_pollset_global_init() {
+void grpc_pollset_global_init(void) {
gpr_mu_init(&grpc_polling_mu);
g_active_poller = NULL;
g_global_root_worker.links[GRPC_POLLSET_WORKER_LINK_GLOBAL].next =
@@ -55,7 +55,7 @@ void grpc_pollset_global_init() {
&g_global_root_worker;
}
-void grpc_pollset_global_shutdown() { gpr_mu_destroy(&grpc_polling_mu); }
+void grpc_pollset_global_shutdown(void) { gpr_mu_destroy(&grpc_polling_mu); }
static void remove_worker(grpc_pollset_worker *worker,
grpc_pollset_worker_link_type type) {
diff --git a/src/core/lib/iomgr/pollset_windows.h b/src/core/lib/iomgr/pollset_windows.h
index fef0e87b71..2642013afc 100644
--- a/src/core/lib/iomgr/pollset_windows.h
+++ b/src/core/lib/iomgr/pollset_windows.h
@@ -72,4 +72,7 @@ struct grpc_pollset {
grpc_closure *on_shutdown;
};
+void grpc_pollset_global_init(void);
+void grpc_pollset_global_shutdown(void);
+
#endif /* GRPC_CORE_LIB_IOMGR_POLLSET_WINDOWS_H */
diff --git a/src/core/lib/iomgr/tcp_client_posix.c b/src/core/lib/iomgr/tcp_client_posix.c
index 77718a5b5c..6430cb629f 100644
--- a/src/core/lib/iomgr/tcp_client_posix.c
+++ b/src/core/lib/iomgr/tcp_client_posix.c
@@ -47,9 +47,8 @@
#include <grpc/support/string_util.h>
#include <grpc/support/time.h>
+#include "src/core/lib/iomgr/ev_posix.h"
#include "src/core/lib/iomgr/iomgr_posix.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
-#include "src/core/lib/iomgr/pollset_set_posix.h"
#include "src/core/lib/iomgr/sockaddr_utils.h"
#include "src/core/lib/iomgr/socket_utils_posix.h"
#include "src/core/lib/iomgr/tcp_posix.h"
@@ -140,7 +139,8 @@ static void on_writable(grpc_exec_ctx *exec_ctx, void *acp, bool success) {
if (success) {
do {
so_error_size = sizeof(so_error);
- err = getsockopt(fd->fd, SOL_SOCKET, SO_ERROR, &so_error, &so_error_size);
+ err = getsockopt(grpc_fd_wrapped_fd(fd), SOL_SOCKET, SO_ERROR, &so_error,
+ &so_error_size);
} while (err < 0 && errno == EINTR);
if (err < 0) {
gpr_log(GPR_ERROR, "failed to connect to '%s': getsockopt(ERROR): %s",
diff --git a/src/core/lib/iomgr/tcp_posix.c b/src/core/lib/iomgr/tcp_posix.c
index 33ec29a411..7210aef5d5 100644
--- a/src/core/lib/iomgr/tcp_posix.c
+++ b/src/core/lib/iomgr/tcp_posix.c
@@ -52,8 +52,7 @@
#include <grpc/support/time.h>
#include "src/core/lib/debug/trace.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
-#include "src/core/lib/iomgr/pollset_set_posix.h"
+#include "src/core/lib/iomgr/ev_posix.h"
#include "src/core/lib/profiling/timers.h"
#include "src/core/lib/support/string.h"
@@ -454,7 +453,7 @@ grpc_endpoint *grpc_tcp_create(grpc_fd *em_fd, size_t slice_size,
grpc_tcp *tcp = (grpc_tcp *)gpr_malloc(sizeof(grpc_tcp));
tcp->base.vtable = &vtable;
tcp->peer_string = gpr_strdup(peer_string);
- tcp->fd = em_fd->fd;
+ tcp->fd = grpc_fd_wrapped_fd(em_fd);
tcp->read_cb = NULL;
tcp->write_cb = NULL;
tcp->release_fd_cb = NULL;
diff --git a/src/core/lib/iomgr/tcp_posix.h b/src/core/lib/iomgr/tcp_posix.h
index acce56467a..99125836d6 100644
--- a/src/core/lib/iomgr/tcp_posix.h
+++ b/src/core/lib/iomgr/tcp_posix.h
@@ -45,7 +45,7 @@
*/
#include "src/core/lib/iomgr/endpoint.h"
-#include "src/core/lib/iomgr/fd_posix.h"
+#include "src/core/lib/iomgr/ev_posix.h"
#define GRPC_TCP_DEFAULT_READ_SLICE_SIZE 8192
diff --git a/src/core/lib/iomgr/tcp_server_posix.c b/src/core/lib/iomgr/tcp_server_posix.c
index 76aeb1c2f0..cfb5251684 100644
--- a/src/core/lib/iomgr/tcp_server_posix.c
+++ b/src/core/lib/iomgr/tcp_server_posix.c
@@ -59,7 +59,6 @@
#include <grpc/support/string_util.h>
#include <grpc/support/sync.h>
#include <grpc/support/time.h>
-#include "src/core/lib/iomgr/pollset_posix.h"
#include "src/core/lib/iomgr/resolve_address.h"
#include "src/core/lib/iomgr/sockaddr_utils.h"
#include "src/core/lib/iomgr/socket_utils_posix.h"
diff --git a/src/core/lib/iomgr/udp_server.c b/src/core/lib/iomgr/udp_server.c
index 2d8220a9b1..a0b9709be5 100644
--- a/src/core/lib/iomgr/udp_server.c
+++ b/src/core/lib/iomgr/udp_server.c
@@ -60,12 +60,10 @@
#include <grpc/support/string_util.h>
#include <grpc/support/sync.h>
#include <grpc/support/time.h>
-#include "src/core/lib/iomgr/fd_posix.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
+#include "src/core/lib/iomgr/ev_posix.h"
#include "src/core/lib/iomgr/resolve_address.h"
#include "src/core/lib/iomgr/sockaddr_utils.h"
#include "src/core/lib/iomgr/socket_utils_posix.h"
-#include "src/core/lib/iomgr/unix_sockets_posix.h"
#include "src/core/lib/support/string.h"
#define INIT_PORT_CAP 2
diff --git a/src/core/lib/iomgr/udp_server.h b/src/core/lib/iomgr/udp_server.h
index b0ca15101f..d8cf957a22 100644
--- a/src/core/lib/iomgr/udp_server.h
+++ b/src/core/lib/iomgr/udp_server.h
@@ -35,7 +35,7 @@
#define GRPC_CORE_LIB_IOMGR_UDP_SERVER_H
#include "src/core/lib/iomgr/endpoint.h"
-#include "src/core/lib/iomgr/fd_posix.h"
+#include "src/core/lib/iomgr/ev_posix.h"
/* Forward decl of struct grpc_server */
/* This is not typedef'ed to avoid a typedef-redefinition error */
diff --git a/src/core/lib/iomgr/workqueue_posix.c b/src/core/lib/iomgr/workqueue_posix.c
index 9d68d9e16a..80e7a0b206 100644
--- a/src/core/lib/iomgr/workqueue_posix.c
+++ b/src/core/lib/iomgr/workqueue_posix.c
@@ -43,8 +43,7 @@
#include <grpc/support/log.h>
#include <grpc/support/useful.h>
-#include "src/core/lib/iomgr/fd_posix.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
+#include "src/core/lib/iomgr/ev_posix.h"
static void on_readable(grpc_exec_ctx *exec_ctx, void *arg, bool success);
diff --git a/src/core/lib/json/json_reader.c b/src/core/lib/json/json_reader.c
index d09cee54f2..bc04bccc65 100644
--- a/src/core/lib/json/json_reader.c
+++ b/src/core/lib/json/json_reader.c
@@ -180,6 +180,13 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader *reader) {
case GRPC_JSON_STATE_VALUE_NUMBER_WITH_DECIMAL:
case GRPC_JSON_STATE_VALUE_NUMBER_ZERO:
case GRPC_JSON_STATE_VALUE_NUMBER_EPM:
+ if (reader->depth == 0) {
+ return GRPC_JSON_PARSE_ERROR;
+ } else if ((c == '}') && !reader->in_object) {
+ return GRPC_JSON_PARSE_ERROR;
+ } else if ((c == ']') && !reader->in_array) {
+ return GRPC_JSON_PARSE_ERROR;
+ }
success = (uint32_t)json_reader_set_number(reader);
if (!success) return GRPC_JSON_PARSE_ERROR;
json_reader_string_clear(reader);
@@ -195,8 +202,10 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader *reader) {
}
if (reader->in_object) {
reader->state = GRPC_JSON_STATE_OBJECT_KEY_BEGIN;
- } else {
+ } else if (reader->in_array) {
reader->state = GRPC_JSON_STATE_VALUE_BEGIN;
+ } else {
+ return GRPC_JSON_PARSE_ERROR;
}
} else {
if (reader->depth-- == 0) return GRPC_JSON_PARSE_ERROR;
diff --git a/src/core/lib/surface/call.c b/src/core/lib/surface/call.c
index 37cc724b53..ba94852f9a 100644
--- a/src/core/lib/surface/call.c
+++ b/src/core/lib/surface/call.c
@@ -81,11 +81,11 @@ typedef enum {
/* Status came from the application layer overriding whatever
the wire says */
STATUS_FROM_API_OVERRIDE = 0,
- /* Status was created by some internal channel stack operation */
- STATUS_FROM_CORE,
/* Status came from 'the wire' - or somewhere below the surface
layer */
STATUS_FROM_WIRE,
+ /* Status was created by some internal channel stack operation */
+ STATUS_FROM_CORE,
/* Status came from the server sending status */
STATUS_FROM_SERVER_STATUS,
STATUS_SOURCE_COUNT
@@ -1110,6 +1110,9 @@ static void finish_batch(grpc_exec_ctx *exec_ctx, void *bctlp, bool success) {
gpr_mu_lock(&call->mu);
if (bctl->send_initial_metadata) {
+ if (!success) {
+ set_status_code(call, STATUS_FROM_CORE, GRPC_STATUS_UNAVAILABLE);
+ }
grpc_metadata_batch_destroy(
&call->metadata_batch[0 /* is_receiving */][0 /* is_trailing */]);
}
@@ -1232,8 +1235,7 @@ static grpc_call_error call_start_batch(grpc_exec_ctx *exec_ctx,
call->metadata_batch[0][0].deadline = call->send_deadline;
stream_op.send_initial_metadata =
&call->metadata_batch[0 /* is_receiving */][0 /* is_trailing */];
- stream_op.send_idempotent_request =
- (op->flags & GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST) != 0;
+ stream_op.send_initial_metadata_flags = op->flags;
break;
case GRPC_OP_SEND_MESSAGE:
if (!are_write_flags_valid(op->flags)) {
diff --git a/src/core/lib/surface/channel.h b/src/core/lib/surface/channel.h
index 640fd7e137..68afac6fac 100644
--- a/src/core/lib/surface/channel.h
+++ b/src/core/lib/surface/channel.h
@@ -35,7 +35,7 @@
#define GRPC_CORE_LIB_SURFACE_CHANNEL_H
#include "src/core/lib/channel/channel_stack.h"
-#include "src/core/lib/client_config/subchannel_factory.h"
+#include "src/core/lib/client_config/client_channel_factory.h"
#include "src/core/lib/surface/channel_stack_type.h"
grpc_channel *grpc_channel_create(grpc_exec_ctx *exec_ctx, const char *target,
diff --git a/src/core/lib/surface/init.c b/src/core/lib/surface/init.c
index 566b030912..aca4ce9d07 100644
--- a/src/core/lib/surface/init.c
+++ b/src/core/lib/surface/init.c
@@ -39,9 +39,7 @@
#include <grpc/grpc.h>
#include <grpc/support/alloc.h>
#include <grpc/support/time.h>
-/* TODO(ctiller): find another way? - better not to include census here */
#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
-#include "src/core/lib/census/grpc_plugin.h"
#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/channel/client_channel.h"
#include "src/core/lib/channel/compress_filter.h"
@@ -50,8 +48,6 @@
#include "src/core/lib/channel/http_server_filter.h"
#include "src/core/lib/client_config/lb_policy_registry.h"
#include "src/core/lib/client_config/resolver_registry.h"
-#include "src/core/lib/client_config/resolvers/dns_resolver.h"
-#include "src/core/lib/client_config/resolvers/sockaddr_resolver.h"
#include "src/core/lib/client_config/subchannel.h"
#include "src/core/lib/client_config/subchannel_index.h"
#include "src/core/lib/debug/trace.h"
@@ -85,8 +81,6 @@ static int g_initializations;
static void do_basic_init(void) {
gpr_mu_init(&g_init_mu);
grpc_register_built_in_plugins();
- /* TODO(ctiller): ideally remove this strict linkage */
- grpc_register_plugin(census_grpc_plugin_init, census_grpc_plugin_destroy);
g_initializations = 0;
}
@@ -169,12 +163,6 @@ void grpc_init(void) {
grpc_channel_init_init();
grpc_lb_policy_registry_init();
grpc_resolver_registry_init(GRPC_DEFAULT_NAME_PREFIX);
- grpc_register_resolver_type(grpc_dns_resolver_factory_create());
- grpc_register_resolver_type(grpc_ipv4_resolver_factory_create());
- grpc_register_resolver_type(grpc_ipv6_resolver_factory_create());
-#ifdef GPR_HAVE_UNIX_SOCKET
- grpc_register_resolver_type(grpc_unix_resolver_factory_create());
-#endif
grpc_register_tracer("api", &grpc_api_trace);
grpc_register_tracer("channel", &grpc_trace_channel);
grpc_register_tracer("http", &grpc_http_trace);
diff --git a/src/core/lib/surface/server.c b/src/core/lib/surface/server.c
index 1898bee1c1..37cc2bd101 100644
--- a/src/core/lib/surface/server.c
+++ b/src/core/lib/surface/server.c
@@ -95,7 +95,6 @@ typedef struct requested_call {
grpc_byte_buffer **optional_payload;
} registered;
} data;
- grpc_closure publish;
} requested_call;
typedef struct channel_registered_method {
@@ -156,15 +155,21 @@ struct call_data {
bool recv_idempotent_request;
grpc_metadata_array initial_metadata;
+ request_matcher *request_matcher;
+ grpc_byte_buffer *payload;
+
grpc_closure got_initial_metadata;
grpc_closure server_on_recv_initial_metadata;
grpc_closure kill_zombie_closure;
grpc_closure *on_done_recv_initial_metadata;
+ grpc_closure publish;
+
call_data *pending_next;
};
struct request_matcher {
+ grpc_server *server;
call_data *pending_head;
call_data *pending_tail;
gpr_stack_lockfree *requests;
@@ -173,6 +178,7 @@ struct request_matcher {
struct registered_method {
char *method;
char *host;
+ grpc_server_register_method_payload_handling payload_handling;
uint32_t flags;
request_matcher request_matcher;
registered_method *next;
@@ -226,8 +232,7 @@ struct grpc_server {
#define SERVER_FROM_CALL_ELEM(elem) \
(((channel_data *)(elem)->channel_data)->server)
-static void begin_call(grpc_exec_ctx *exec_ctx, grpc_server *server,
- call_data *calld, requested_call *rc);
+static void publish_new_rpc(grpc_exec_ctx *exec_ctx, void *calld, bool success);
static void fail_call(grpc_exec_ctx *exec_ctx, grpc_server *server,
requested_call *rc);
/* Before calling maybe_finish_shutdown, we must hold mu_global and not
@@ -303,8 +308,10 @@ static void channel_broadcaster_shutdown(grpc_exec_ctx *exec_ctx,
* request_matcher
*/
-static void request_matcher_init(request_matcher *rm, size_t entries) {
+static void request_matcher_init(request_matcher *rm, size_t entries,
+ grpc_server *server) {
memset(rm, 0, sizeof(*rm));
+ rm->server = server;
rm->requests = gpr_stack_lockfree_create(entries);
}
@@ -417,21 +424,90 @@ static void destroy_channel(grpc_exec_ctx *exec_ctx, channel_data *chand) {
&op);
}
-static void finish_start_new_rpc(grpc_exec_ctx *exec_ctx, grpc_server *server,
- grpc_call_element *elem, request_matcher *rm) {
- call_data *calld = elem->call_data;
- int request_id;
+static void cpstr(char **dest, size_t *capacity, grpc_mdstr *value) {
+ gpr_slice slice = value->slice;
+ size_t len = GPR_SLICE_LENGTH(slice);
- if (gpr_atm_acq_load(&server->shutdown_flag)) {
+ if (len + 1 > *capacity) {
+ *capacity = GPR_MAX(len + 1, *capacity * 2);
+ *dest = gpr_realloc(*dest, *capacity);
+ }
+ memcpy(*dest, grpc_mdstr_as_c_string(value), len + 1);
+}
+
+static void done_request_event(grpc_exec_ctx *exec_ctx, void *req,
+ grpc_cq_completion *c) {
+ requested_call *rc = req;
+ grpc_server *server = rc->server;
+
+ if (rc >= server->requested_calls &&
+ rc < server->requested_calls + server->max_requested_calls) {
+ GPR_ASSERT(rc - server->requested_calls <= INT_MAX);
+ gpr_stack_lockfree_push(server->request_freelist,
+ (int)(rc - server->requested_calls));
+ } else {
+ gpr_free(req);
+ }
+
+ server_unref(exec_ctx, server);
+}
+
+static void publish_call(grpc_exec_ctx *exec_ctx, grpc_server *server,
+ call_data *calld, requested_call *rc) {
+ grpc_call_set_completion_queue(exec_ctx, calld->call, rc->cq_bound_to_call);
+ grpc_call *call = calld->call;
+ *rc->call = call;
+ calld->cq_new = rc->cq_for_notification;
+ GPR_SWAP(grpc_metadata_array, *rc->initial_metadata, calld->initial_metadata);
+ switch (rc->type) {
+ case BATCH_CALL:
+ GPR_ASSERT(calld->host != NULL);
+ GPR_ASSERT(calld->path != NULL);
+ cpstr(&rc->data.batch.details->host,
+ &rc->data.batch.details->host_capacity, calld->host);
+ cpstr(&rc->data.batch.details->method,
+ &rc->data.batch.details->method_capacity, calld->path);
+ rc->data.batch.details->deadline = calld->deadline;
+ rc->data.batch.details->flags =
+ 0 | (calld->recv_idempotent_request
+ ? GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST
+ : 0);
+ break;
+ case REGISTERED_CALL:
+ *rc->data.registered.deadline = calld->deadline;
+ if (rc->data.registered.optional_payload) {
+ *rc->data.registered.optional_payload = calld->payload;
+ }
+ break;
+ default:
+ GPR_UNREACHABLE_CODE(return );
+ }
+
+ grpc_call_element *elem =
+ grpc_call_stack_element(grpc_call_get_call_stack(call), 0);
+ channel_data *chand = elem->channel_data;
+ server_ref(chand->server);
+ grpc_cq_end_op(exec_ctx, calld->cq_new, rc->tag, true, done_request_event, rc,
+ &rc->completion);
+}
+
+static void publish_new_rpc(grpc_exec_ctx *exec_ctx, void *arg, bool success) {
+ call_data *calld = arg;
+ request_matcher *rm = calld->request_matcher;
+ grpc_server *server = rm->server;
+
+ if (!success || gpr_atm_acq_load(&server->shutdown_flag)) {
gpr_mu_lock(&calld->mu_state);
calld->state = ZOMBIED;
gpr_mu_unlock(&calld->mu_state);
- grpc_closure_init(&calld->kill_zombie_closure, kill_zombie, elem);
+ grpc_closure_init(
+ &calld->kill_zombie_closure, kill_zombie,
+ grpc_call_stack_element(grpc_call_get_call_stack(calld->call), 0));
grpc_exec_ctx_enqueue(exec_ctx, &calld->kill_zombie_closure, true, NULL);
return;
}
- request_id = gpr_stack_lockfree_pop(rm->requests);
+ int request_id = gpr_stack_lockfree_pop(rm->requests);
if (request_id == -1) {
gpr_mu_lock(&server->mu_call);
gpr_mu_lock(&calld->mu_state);
@@ -449,7 +525,41 @@ static void finish_start_new_rpc(grpc_exec_ctx *exec_ctx, grpc_server *server,
gpr_mu_lock(&calld->mu_state);
calld->state = ACTIVATED;
gpr_mu_unlock(&calld->mu_state);
- begin_call(exec_ctx, server, calld, &server->requested_calls[request_id]);
+ publish_call(exec_ctx, server, calld, &server->requested_calls[request_id]);
+ }
+}
+
+static void finish_start_new_rpc(
+ grpc_exec_ctx *exec_ctx, grpc_server *server, grpc_call_element *elem,
+ request_matcher *rm,
+ grpc_server_register_method_payload_handling payload_handling) {
+ call_data *calld = elem->call_data;
+
+ if (gpr_atm_acq_load(&server->shutdown_flag)) {
+ gpr_mu_lock(&calld->mu_state);
+ calld->state = ZOMBIED;
+ gpr_mu_unlock(&calld->mu_state);
+ grpc_closure_init(&calld->kill_zombie_closure, kill_zombie, elem);
+ grpc_exec_ctx_enqueue(exec_ctx, &calld->kill_zombie_closure, true, NULL);
+ return;
+ }
+
+ calld->request_matcher = rm;
+
+ switch (payload_handling) {
+ case GRPC_SRM_PAYLOAD_NONE:
+ publish_new_rpc(exec_ctx, calld, true);
+ break;
+ case GRPC_SRM_PAYLOAD_READ_INITIAL_BYTE_BUFFER: {
+ grpc_op op;
+ memset(&op, 0, sizeof(op));
+ op.op = GRPC_OP_RECV_MESSAGE;
+ op.data.recv_message = &calld->payload;
+ grpc_closure_init(&calld->publish, publish_new_rpc, calld);
+ grpc_call_start_batch_and_execute(exec_ctx, calld->call, &op, 1,
+ &calld->publish);
+ break;
+ }
}
}
@@ -475,7 +585,8 @@ static void start_new_rpc(grpc_exec_ctx *exec_ctx, grpc_call_element *elem) {
!calld->recv_idempotent_request)
continue;
finish_start_new_rpc(exec_ctx, server, elem,
- &rm->server_registered_method->request_matcher);
+ &rm->server_registered_method->request_matcher,
+ rm->server_registered_method->payload_handling);
return;
}
/* check for a wildcard method definition (no host set) */
@@ -490,12 +601,14 @@ static void start_new_rpc(grpc_exec_ctx *exec_ctx, grpc_call_element *elem) {
!calld->recv_idempotent_request)
continue;
finish_start_new_rpc(exec_ctx, server, elem,
- &rm->server_registered_method->request_matcher);
+ &rm->server_registered_method->request_matcher,
+ rm->server_registered_method->payload_handling);
return;
}
}
finish_start_new_rpc(exec_ctx, server, elem,
- &server->unregistered_request_matcher);
+ &server->unregistered_request_matcher,
+ GRPC_SRM_PAYLOAD_NONE);
}
static int num_listeners(grpc_server *server) {
@@ -824,7 +937,7 @@ grpc_server *grpc_server_create(const grpc_channel_args *args, void *reserved) {
gpr_stack_lockfree_push(server->request_freelist, (int)i);
}
request_matcher_init(&server->unregistered_request_matcher,
- server->max_requested_calls);
+ server->max_requested_calls, server);
server->requested_calls = gpr_malloc(server->max_requested_calls *
sizeof(*server->requested_calls));
@@ -840,8 +953,10 @@ static int streq(const char *a, const char *b) {
return 0 == strcmp(a, b);
}
-void *grpc_server_register_method(grpc_server *server, const char *method,
- const char *host, uint32_t flags) {
+void *grpc_server_register_method(
+ grpc_server *server, const char *method, const char *host,
+ grpc_server_register_method_payload_handling payload_handling,
+ uint32_t flags) {
registered_method *m;
GRPC_API_TRACE(
"grpc_server_register_method(server=%p, method=%s, host=%s, "
@@ -866,10 +981,12 @@ void *grpc_server_register_method(grpc_server *server, const char *method,
}
m = gpr_malloc(sizeof(registered_method));
memset(m, 0, sizeof(*m));
- request_matcher_init(&m->request_matcher, server->max_requested_calls);
+ request_matcher_init(&m->request_matcher, server->max_requested_calls,
+ server);
m->method = gpr_strdup(method);
m->host = gpr_strdup(host);
m->next = server->registered_methods;
+ m->payload_handling = payload_handling;
m->flags = flags;
server->registered_methods = m;
return m;
@@ -1143,8 +1260,8 @@ static grpc_call_error queue_call_request(grpc_exec_ctx *exec_ctx,
GPR_ASSERT(calld->state == PENDING);
calld->state = ACTIVATED;
gpr_mu_unlock(&calld->mu_state);
- begin_call(exec_ctx, server, calld,
- &server->requested_calls[request_id]);
+ publish_call(exec_ctx, server, calld,
+ &server->requested_calls[request_id]);
}
gpr_mu_lock(&server->mu_call);
}
@@ -1209,6 +1326,12 @@ grpc_call_error grpc_server_request_registered_call(
error = GRPC_CALL_ERROR_NOT_SERVER_COMPLETION_QUEUE;
goto done;
}
+ if ((optional_payload == NULL) !=
+ (rm->payload_handling == GRPC_SRM_PAYLOAD_NONE)) {
+ gpr_free(rc);
+ error = GRPC_CALL_ERROR_PAYLOAD_TYPE_MISMATCH;
+ goto done;
+ }
grpc_cq_begin_op(cq_for_notification, tag);
rc->type = REGISTERED_CALL;
rc->server = server;
@@ -1226,86 +1349,6 @@ done:
return error;
}
-static void publish_registered_or_batch(grpc_exec_ctx *exec_ctx,
- void *user_data, bool success);
-
-static void cpstr(char **dest, size_t *capacity, grpc_mdstr *value) {
- gpr_slice slice = value->slice;
- size_t len = GPR_SLICE_LENGTH(slice);
-
- if (len + 1 > *capacity) {
- *capacity = GPR_MAX(len + 1, *capacity * 2);
- *dest = gpr_realloc(*dest, *capacity);
- }
- memcpy(*dest, grpc_mdstr_as_c_string(value), len + 1);
-}
-
-static void begin_call(grpc_exec_ctx *exec_ctx, grpc_server *server,
- call_data *calld, requested_call *rc) {
- grpc_op ops[1];
- grpc_op *op = ops;
-
- memset(ops, 0, sizeof(ops));
-
- /* called once initial metadata has been read by the call, but BEFORE
- the ioreq to fetch it out of the call has been executed.
- This means metadata related fields can be relied on in calld, but to
- fill in the metadata array passed by the client, we need to perform
- an ioreq op, that should complete immediately. */
-
- grpc_call_set_completion_queue(exec_ctx, calld->call, rc->cq_bound_to_call);
- grpc_closure_init(&rc->publish, publish_registered_or_batch, rc);
- *rc->call = calld->call;
- calld->cq_new = rc->cq_for_notification;
- GPR_SWAP(grpc_metadata_array, *rc->initial_metadata, calld->initial_metadata);
- switch (rc->type) {
- case BATCH_CALL:
- GPR_ASSERT(calld->host != NULL);
- GPR_ASSERT(calld->path != NULL);
- cpstr(&rc->data.batch.details->host,
- &rc->data.batch.details->host_capacity, calld->host);
- cpstr(&rc->data.batch.details->method,
- &rc->data.batch.details->method_capacity, calld->path);
- rc->data.batch.details->deadline = calld->deadline;
- rc->data.batch.details->flags =
- 0 | (calld->recv_idempotent_request
- ? GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST
- : 0);
- break;
- case REGISTERED_CALL:
- *rc->data.registered.deadline = calld->deadline;
- if (rc->data.registered.optional_payload) {
- op->op = GRPC_OP_RECV_MESSAGE;
- op->data.recv_message = rc->data.registered.optional_payload;
- op++;
- }
- break;
- default:
- GPR_UNREACHABLE_CODE(return );
- }
-
- GRPC_CALL_INTERNAL_REF(calld->call, "server");
- grpc_call_start_batch_and_execute(exec_ctx, calld->call, ops,
- (size_t)(op - ops), &rc->publish);
-}
-
-static void done_request_event(grpc_exec_ctx *exec_ctx, void *req,
- grpc_cq_completion *c) {
- requested_call *rc = req;
- grpc_server *server = rc->server;
-
- if (rc >= server->requested_calls &&
- rc < server->requested_calls + server->max_requested_calls) {
- GPR_ASSERT(rc - server->requested_calls <= INT_MAX);
- gpr_stack_lockfree_push(server->request_freelist,
- (int)(rc - server->requested_calls));
- } else {
- gpr_free(req);
- }
-
- server_unref(exec_ctx, server);
-}
-
static void fail_call(grpc_exec_ctx *exec_ctx, grpc_server *server,
requested_call *rc) {
*rc->call = NULL;
@@ -1316,20 +1359,6 @@ static void fail_call(grpc_exec_ctx *exec_ctx, grpc_server *server,
done_request_event, rc, &rc->completion);
}
-static void publish_registered_or_batch(grpc_exec_ctx *exec_ctx, void *prc,
- bool success) {
- requested_call *rc = prc;
- grpc_call *call = *rc->call;
- grpc_call_element *elem =
- grpc_call_stack_element(grpc_call_get_call_stack(call), 0);
- call_data *calld = elem->call_data;
- channel_data *chand = elem->channel_data;
- server_ref(chand->server);
- grpc_cq_end_op(exec_ctx, calld->cq_new, rc->tag, success, done_request_event,
- rc, &rc->completion);
- GRPC_CALL_INTERNAL_UNREF(exec_ctx, call, "server");
-}
-
const grpc_channel_args *grpc_server_get_channel_args(grpc_server *server) {
return server->channel_args;
}
diff --git a/src/core/lib/transport/transport.h b/src/core/lib/transport/transport.h
index 460e4dcedc..bb1120ee3a 100644
--- a/src/core/lib/transport/transport.h
+++ b/src/core/lib/transport/transport.h
@@ -101,9 +101,9 @@ typedef struct grpc_transport_stream_op {
/** Send initial metadata to the peer, from the provided metadata batch.
idempotent_request MUST be set if this is non-null */
grpc_metadata_batch *send_initial_metadata;
- /** Iff send_initial_metadata != NULL, flags if this is an idempotent request
- or not */
- bool send_idempotent_request;
+ /** Iff send_initial_metadata != NULL, flags associated with
+ send_initial_metadata: a bitfield of GRPC_INITIAL_METADATA_xxx */
+ uint32_t send_initial_metadata_flags;
/** Send trailing metadata to the peer, from the provided metadata batch. */
grpc_metadata_batch *send_trailing_metadata;
diff --git a/src/core/plugin_registry/grpc_plugin_registry.c b/src/core/plugin_registry/grpc_plugin_registry.c
index 3e3c214c22..79df85516e 100644
--- a/src/core/plugin_registry/grpc_plugin_registry.c
+++ b/src/core/plugin_registry/grpc_plugin_registry.c
@@ -37,10 +37,22 @@ extern void grpc_lb_policy_pick_first_init(void);
extern void grpc_lb_policy_pick_first_shutdown(void);
extern void grpc_lb_policy_round_robin_init(void);
extern void grpc_lb_policy_round_robin_shutdown(void);
+extern void grpc_resolver_dns_native_init(void);
+extern void grpc_resolver_dns_native_shutdown(void);
+extern void grpc_resolver_sockaddr_init(void);
+extern void grpc_resolver_sockaddr_shutdown(void);
+extern void census_grpc_plugin_init(void);
+extern void census_grpc_plugin_shutdown(void);
void grpc_register_built_in_plugins(void) {
grpc_register_plugin(grpc_lb_policy_pick_first_init,
grpc_lb_policy_pick_first_shutdown);
grpc_register_plugin(grpc_lb_policy_round_robin_init,
grpc_lb_policy_round_robin_shutdown);
+ grpc_register_plugin(grpc_resolver_dns_native_init,
+ grpc_resolver_dns_native_shutdown);
+ grpc_register_plugin(grpc_resolver_sockaddr_init,
+ grpc_resolver_sockaddr_shutdown);
+ grpc_register_plugin(census_grpc_plugin_init,
+ census_grpc_plugin_shutdown);
}
diff --git a/src/core/plugin_registry/grpc_unsecure_plugin_registry.c b/src/core/plugin_registry/grpc_unsecure_plugin_registry.c
index 3e3c214c22..b3786c927d 100644
--- a/src/core/plugin_registry/grpc_unsecure_plugin_registry.c
+++ b/src/core/plugin_registry/grpc_unsecure_plugin_registry.c
@@ -33,14 +33,26 @@
#include <grpc/grpc.h>
+extern void grpc_resolver_dns_native_init(void);
+extern void grpc_resolver_dns_native_shutdown(void);
+extern void grpc_resolver_sockaddr_init(void);
+extern void grpc_resolver_sockaddr_shutdown(void);
extern void grpc_lb_policy_pick_first_init(void);
extern void grpc_lb_policy_pick_first_shutdown(void);
extern void grpc_lb_policy_round_robin_init(void);
extern void grpc_lb_policy_round_robin_shutdown(void);
+extern void census_grpc_plugin_init(void);
+extern void census_grpc_plugin_shutdown(void);
void grpc_register_built_in_plugins(void) {
+ grpc_register_plugin(grpc_resolver_dns_native_init,
+ grpc_resolver_dns_native_shutdown);
+ grpc_register_plugin(grpc_resolver_sockaddr_init,
+ grpc_resolver_sockaddr_shutdown);
grpc_register_plugin(grpc_lb_policy_pick_first_init,
grpc_lb_policy_pick_first_shutdown);
grpc_register_plugin(grpc_lb_policy_round_robin_init,
grpc_lb_policy_round_robin_shutdown);
+ grpc_register_plugin(census_grpc_plugin_init,
+ census_grpc_plugin_shutdown);
}
diff --git a/src/cpp/client/client_context.cc b/src/cpp/client/client_context.cc
index bf6423128a..c277d7ebe8 100644
--- a/src/cpp/client/client_context.cc
+++ b/src/cpp/client/client_context.cc
@@ -60,6 +60,8 @@ static ClientContext::GlobalCallbacks* g_client_callbacks =
ClientContext::ClientContext()
: initial_metadata_received_(false),
+ fail_fast_(true),
+ idempotent_(false),
call_(nullptr),
call_canceled_(false),
deadline_(gpr_inf_future(GPR_CLOCK_REALTIME)),
diff --git a/src/cpp/server/server.cc b/src/cpp/server/server.cc
index 3e44c502fc..fafe31e84c 100644
--- a/src/cpp/server/server.cc
+++ b/src/cpp/server/server.cc
@@ -321,6 +321,19 @@ void Server::SetGlobalCallbacks(GlobalCallbacks* callbacks) {
g_callbacks.reset(callbacks);
}
+static grpc_server_register_method_payload_handling PayloadHandlingForMethod(
+ RpcServiceMethod* method) {
+ switch (method->method_type()) {
+ case RpcMethod::NORMAL_RPC:
+ case RpcMethod::SERVER_STREAMING:
+ return GRPC_SRM_PAYLOAD_READ_INITIAL_BYTE_BUFFER;
+ case RpcMethod::CLIENT_STREAMING:
+ case RpcMethod::BIDI_STREAMING:
+ return GRPC_SRM_PAYLOAD_NONE;
+ }
+ GPR_UNREACHABLE_CODE(return GRPC_SRM_PAYLOAD_NONE;);
+}
+
bool Server::RegisterService(const grpc::string* host, Service* service) {
bool has_async_methods = service->has_async_methods();
if (has_async_methods) {
@@ -334,8 +347,9 @@ bool Server::RegisterService(const grpc::string* host, Service* service) {
continue;
}
RpcServiceMethod* method = it->get();
- void* tag = grpc_server_register_method(server_, method->name(),
- host ? host->c_str() : nullptr, 0);
+ void* tag = grpc_server_register_method(
+ server_, method->name(), host ? host->c_str() : nullptr,
+ PayloadHandlingForMethod(method), 0);
if (tag == nullptr) {
gpr_log(GPR_DEBUG, "Attempt to register %s multiple times",
method->name());
diff --git a/src/csharp/.nuget/packages.config b/src/csharp/.nuget/packages.config
index 89a310ac56..acb43ae4b3 100644
--- a/src/csharp/.nuget/packages.config
+++ b/src/csharp/.nuget/packages.config
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="NUnit.Runners" version="2.6.4" />
- <package id="OpenCover" version="4.6.166" />
- <package id="ReportGenerator" version="2.3.2.0" />
+ <package id="OpenCover" version="4.6.519" />
+ <package id="ReportGenerator" version="2.4.4.0" />
</packages> \ No newline at end of file
diff --git a/src/csharp/Grpc.Auth/Grpc.Auth.csproj b/src/csharp/Grpc.Auth/Grpc.Auth.csproj
index 8dd12b50ef..3acea7d2f8 100644
--- a/src/csharp/Grpc.Auth/Grpc.Auth.csproj
+++ b/src/csharp/Grpc.Auth/Grpc.Auth.csproj
@@ -9,7 +9,7 @@
<AssemblyName>Grpc.Auth</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<DocumentationFile>bin\$(Configuration)\Grpc.Auth.Xml</DocumentationFile>
- <NuGetPackageImportStamp>4f8487a9</NuGetPackageImportStamp>
+ <NuGetPackageImportStamp>455903a2</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -39,43 +39,30 @@
<AssemblyOriginatorKeyFile>..\keys\Grpc.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<ItemGroup>
- <Reference Include="Google.Apis.Auth, Version=1.10.0.25333, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="BouncyCastle.Crypto, Version=1.7.4137.9688, Culture=neutral, PublicKeyToken=a4292a325f69b123, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Auth.1.10.0\lib\net40\Google.Apis.Auth.dll</HintPath>
+ <HintPath>..\packages\BouncyCastle.1.7.0\lib\Net40-Client\BouncyCastle.Crypto.dll</HintPath>
+ </Reference>
+ <Reference Include="Google.Apis.Auth, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\packages\Google.Apis.Auth.1.11.1\lib\net45\Google.Apis.Auth.dll</HintPath>
+ </Reference>
+ <Reference Include="Google.Apis.Auth.PlatformServices, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\packages\Google.Apis.Auth.1.11.1\lib\net45\Google.Apis.Auth.PlatformServices.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Auth.PlatformServices, Version=1.10.0.25333, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Google.Apis.Core, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Auth.1.10.0\lib\net40\Google.Apis.Auth.PlatformServices.dll</HintPath>
+ <HintPath>..\packages\Google.Apis.Core.1.11.1\lib\net45\Google.Apis.Core.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Core, Version=1.10.0.25331, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Core.1.10.0\lib\portable-net40+sl50+win+wpa81+wp80\Google.Apis.Core.dll</HintPath>
+ <HintPath>..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Net" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Net.Http.WebRequest" />
- <Reference Include="BouncyCastle.Crypto">
- <HintPath>..\packages\BouncyCastle.1.7.0\lib\Net40-Client\BouncyCastle.Crypto.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks">
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks.Extensions">
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks.Extensions.Desktop">
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll</HintPath>
- </Reference>
- <Reference Include="Newtonsoft.Json">
- <HintPath>..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
- </Reference>
- <Reference Include="System.Net.Http.Extensions">
- <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll</HintPath>
- </Reference>
- <Reference Include="System.Net.Http.Primitives">
- <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll</HintPath>
- </Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\Grpc.Core\Version.cs">
@@ -93,15 +80,7 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
- <None Include="app.config" />
<None Include="Grpc.Auth.nuspec" />
<None Include="packages.config" />
</ItemGroup>
- <Import Project="..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
- <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
- <PropertyGroup>
- <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
- </PropertyGroup>
- <Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
- </Target>
</Project> \ No newline at end of file
diff --git a/src/csharp/Grpc.Auth/Grpc.Auth.nuspec b/src/csharp/Grpc.Auth/Grpc.Auth.nuspec
index f1f8f7c709..4baed3704c 100644
--- a/src/csharp/Grpc.Auth/Grpc.Auth.nuspec
+++ b/src/csharp/Grpc.Auth/Grpc.Auth.nuspec
@@ -15,7 +15,7 @@
<copyright>Copyright 2015, Google Inc.</copyright>
<tags>gRPC RPC Protocol HTTP/2 Auth OAuth2</tags>
<dependencies>
- <dependency id="Google.Apis.Auth" version="1.9.3" />
+ <dependency id="Google.Apis.Auth" version="1.11.1" />
<dependency id="Grpc.Core" version="$version$" />
</dependencies>
</metadata>
diff --git a/src/csharp/Grpc.Auth/app.config b/src/csharp/Grpc.Auth/app.config
deleted file mode 100644
index 84d7534d65..0000000000
--- a/src/csharp/Grpc.Auth/app.config
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
- <runtime>
- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
- <dependentAssembly>
- <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.2.29.0" newVersion="4.2.29.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.2.28.0" newVersion="4.0.0.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Google.Apis.Core" publicKeyToken="4b01fa6e34db77ab" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.9.2.38523" newVersion="1.9.2.38523" />
- </dependentAssembly>
- </assemblyBinding>
- </runtime>
-</configuration> \ No newline at end of file
diff --git a/src/csharp/Grpc.Auth/packages.config b/src/csharp/Grpc.Auth/packages.config
index 5fe8ca616c..c20d9ceed6 100644
--- a/src/csharp/Grpc.Auth/packages.config
+++ b/src/csharp/Grpc.Auth/packages.config
@@ -1,11 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="BouncyCastle" version="1.7.0" targetFramework="net45" />
- <package id="Google.Apis.Auth" version="1.10.0" targetFramework="net45" />
- <package id="Google.Apis.Core" version="1.10.0" targetFramework="net45" />
- <package id="Microsoft.Bcl" version="1.1.10" targetFramework="net45" />
- <package id="Microsoft.Bcl.Async" version="1.0.168" targetFramework="net45" />
- <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="net45" />
- <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net45" />
+ <package id="Google.Apis.Auth" version="1.11.1" targetFramework="net45" />
+ <package id="Google.Apis.Core" version="1.11.1" targetFramework="net45" />
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" />
</packages> \ No newline at end of file
diff --git a/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj b/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj
index 7e73c4f181..3bfd49b10f 100644
--- a/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj
+++ b/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj
@@ -93,6 +93,7 @@
<Compile Include="MetadataTest.cs" />
<Compile Include="PerformanceTest.cs" />
<Compile Include="SanityTest.cs" />
+ <Compile Include="HalfcloseTest.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ItemGroup>
diff --git a/src/csharp/Grpc.Core.Tests/HalfcloseTest.cs b/src/csharp/Grpc.Core.Tests/HalfcloseTest.cs
new file mode 100644
index 0000000000..fe6edb858b
--- /dev/null
+++ b/src/csharp/Grpc.Core.Tests/HalfcloseTest.cs
@@ -0,0 +1,97 @@
+#region Copyright notice and license
+
+// Copyright 2016, 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.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+
+using Grpc.Core;
+using Grpc.Core.Internal;
+using Grpc.Core.Utils;
+
+using NUnit.Framework;
+
+namespace Grpc.Core.Tests
+{
+ public class HalfcloseTest
+ {
+ MockServiceHelper helper;
+ Server server;
+ Channel channel;
+
+ [SetUp]
+ public void Init()
+ {
+ helper = new MockServiceHelper();
+
+ server = helper.GetServer();
+ server.Start();
+ channel = helper.GetChannel();
+ }
+
+ [TearDown]
+ public void Cleanup()
+ {
+ channel.ShutdownAsync().Wait();
+ server.ShutdownAsync().Wait();
+ }
+
+ /// <summary>
+ /// For client streaming and duplex streaming calls, if server does a full close
+ /// before we halfclose the request stream, an attempt to halfclose
+ /// (complete the request stream) shouldn't be treated as an error.
+ /// </summary>
+ [Test]
+ public async Task HalfcloseAfterFullclose_ClientStreamingCall()
+ {
+ helper.ClientStreamingHandler = new ClientStreamingServerMethod<string, string>(async (requestStream, context) =>
+ {
+ return "PASS";
+ });
+
+ var call = Calls.AsyncClientStreamingCall(helper.CreateClientStreamingCall());
+ // make sure server has fullclosed on us
+ Assert.AreEqual("PASS", await call.ResponseAsync);
+
+ // sending close from client should be still fine because server can finish
+ // the call anytime and we cannot do anything about it on the client side.
+ await call.RequestStream.CompleteAsync();
+
+ // Second attempt to close from client is not allowed.
+ Assert.Throws(typeof(InvalidOperationException), async () => await call.RequestStream.CompleteAsync());
+ }
+ }
+}
diff --git a/src/csharp/Grpc.Core.Tests/PInvokeTest.cs b/src/csharp/Grpc.Core.Tests/PInvokeTest.cs
index ea6572e7c0..d2b2fc6a66 100644
--- a/src/csharp/Grpc.Core.Tests/PInvokeTest.cs
+++ b/src/csharp/Grpc.Core.Tests/PInvokeTest.cs
@@ -74,6 +74,8 @@ namespace Grpc.Core.Tests
/// (~110ns .NET Windows)
/// </summary>
[Test]
+ [Category("Performance")]
+ [Ignore("Prevent running on Jenkins")]
public void NativeCallbackBenchmark()
{
OpCompletionDelegate handler = Handler;
@@ -95,6 +97,8 @@ namespace Grpc.Core.Tests
/// (~1.1us on .NET Windows)
/// </summary>
[Test]
+ [Category("Performance")]
+ [Ignore("Prevent running on Jenkins")]
public void NewNativeCallbackBenchmark()
{
counter = 0;
@@ -112,6 +116,8 @@ namespace Grpc.Core.Tests
/// (~46ns .NET Windows)
/// </summary>
[Test]
+ [Category("Performance")]
+ [Ignore("Prevent running on Jenkins")]
public void NopPInvokeBenchmark()
{
BenchmarkUtil.RunBenchmark(
diff --git a/src/csharp/Grpc.Core/CallInvoker.cs b/src/csharp/Grpc.Core/CallInvoker.cs
new file mode 100644
index 0000000000..39199b1fd5
--- /dev/null
+++ b/src/csharp/Grpc.Core/CallInvoker.cs
@@ -0,0 +1,84 @@
+#region Copyright notice and license
+
+// Copyright 2015-2016, 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.
+
+#endregion
+
+using System.Threading.Tasks;
+using Grpc.Core.Internal;
+
+namespace Grpc.Core
+{
+ /// <summary>
+ /// Abstraction of client-side RPC invocation.
+ /// </summary>
+ /// <seealso cref="Calls"/>
+ public abstract class CallInvoker
+ {
+ /// <summary>
+ /// Invokes a simple remote call in a blocking fashion.
+ /// </summary>
+ public abstract TResponse BlockingUnaryCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options, TRequest request)
+ where TRequest : class
+ where TResponse : class;
+
+ /// <summary>
+ /// Invokes a simple remote call asynchronously.
+ /// </summary>
+ public abstract AsyncUnaryCall<TResponse> AsyncUnaryCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options, TRequest request)
+ where TRequest : class
+ where TResponse : class;
+
+ /// <summary>
+ /// Invokes a server streaming call asynchronously.
+ /// In server streaming scenario, client sends on request and server responds with a stream of responses.
+ /// </summary>
+ public abstract AsyncServerStreamingCall<TResponse> AsyncServerStreamingCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options, TRequest request)
+ where TRequest : class
+ where TResponse : class;
+
+ /// <summary>
+ /// Invokes a client streaming call asynchronously.
+ /// In client streaming scenario, client sends a stream of requests and server responds with a single response.
+ /// </summary>
+ public abstract AsyncClientStreamingCall<TRequest, TResponse> AsyncClientStreamingCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options)
+ where TRequest : class
+ where TResponse : class;
+
+ /// <summary>
+ /// Invokes a duplex streaming call asynchronously.
+ /// In duplex streaming scenario, client sends a stream of requests and server responds with a stream of responses.
+ /// The response stream is completely independent and both side can be sending messages at the same time.
+ /// </summary>
+ public abstract AsyncDuplexStreamingCall<TRequest, TResponse> AsyncDuplexStreamingCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options)
+ where TRequest : class
+ where TResponse : class;
+ }
+}
diff --git a/src/csharp/Grpc.Core/ClientBase.cs b/src/csharp/Grpc.Core/ClientBase.cs
index e5b398062b..5517233e3c 100644
--- a/src/csharp/Grpc.Core/ClientBase.cs
+++ b/src/csharp/Grpc.Core/ClientBase.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -31,93 +31,156 @@
#endregion
-using System;
-using System.Text.RegularExpressions;
-using System.Threading.Tasks;
+using Grpc.Core.Internal;
+using Grpc.Core.Utils;
namespace Grpc.Core
{
/// <summary>
- /// Interceptor for call headers.
+ /// Generic base class for client-side stubs.
/// </summary>
- /// <remarks>Header interceptor is no longer to recommented way to perform authentication.
- /// For header (initial metadata) based auth such as OAuth2 or JWT access token, use <see cref="MetadataCredentials"/>.
- /// </remarks>
- public delegate void HeaderInterceptor(IMethod method, Metadata metadata);
+ public abstract class ClientBase<T> : ClientBase
+ where T : ClientBase<T>
+ {
+ /// <summary>
+ /// Initializes a new instance of <c>ClientBase</c> class that
+ /// throws <c>NotImplementedException</c> upon invocation of any RPC.
+ /// This constructor is only provided to allow creation of test doubles
+ /// for client classes (e.g. mocking requires a parameterless constructor).
+ /// </summary>
+ protected ClientBase() : base()
+ {
+ }
+
+ /// <summary>
+ /// Initializes a new instance of <c>ClientBase</c> class.
+ /// </summary>
+ /// <param name="configuration">The configuration.</param>
+ protected ClientBase(ClientBaseConfiguration configuration) : base(configuration)
+ {
+ }
+
+ /// <summary>
+ /// Initializes a new instance of <c>ClientBase</c> class.
+ /// </summary>
+ /// <param name="channel">The channel to use for remote call invocation.</param>
+ public ClientBase(Channel channel) : base(channel)
+ {
+ }
+
+ /// <summary>
+ /// Initializes a new instance of <c>ClientBase</c> class.
+ /// </summary>
+ /// <param name="callInvoker">The <c>CallInvoker</c> for remote call invocation.</param>
+ public ClientBase(CallInvoker callInvoker) : base(callInvoker)
+ {
+ }
+
+ /// <summary>
+ /// Creates a new client that sets host field for calls explicitly.
+ /// gRPC supports multiple "hosts" being served by a single server.
+ /// By default (if a client was not created by calling this method),
+ /// host <c>null</c> with the meaning "use default host" is used.
+ /// </summary>
+ public T WithHost(string host)
+ {
+ var newConfiguration = this.Configuration.WithHost(host);
+ return NewInstance(newConfiguration);
+ }
+
+ /// <summary>
+ /// Creates a new instance of client from given <c>ClientBaseConfiguration</c>.
+ /// </summary>
+ protected abstract T NewInstance(ClientBaseConfiguration configuration);
+ }
/// <summary>
/// Base class for client-side stubs.
/// </summary>
public abstract class ClientBase
{
- readonly Channel channel;
+ readonly ClientBaseConfiguration configuration;
+ readonly CallInvoker callInvoker;
+
+ /// <summary>
+ /// Initializes a new instance of <c>ClientBase</c> class that
+ /// throws <c>NotImplementedException</c> upon invocation of any RPC.
+ /// This constructor is only provided to allow creation of test doubles
+ /// for client classes (e.g. mocking requires a parameterless constructor).
+ /// </summary>
+ protected ClientBase() : this(new UnimplementedCallInvoker())
+ {
+ }
+
+ /// <summary>
+ /// Initializes a new instance of <c>ClientBase</c> class.
+ /// </summary>
+ /// <param name="configuration">The configuration.</param>
+ protected ClientBase(ClientBaseConfiguration configuration)
+ {
+ this.configuration = GrpcPreconditions.CheckNotNull(configuration, "configuration");
+ this.callInvoker = configuration.CreateDecoratedCallInvoker();
+ }
/// <summary>
/// Initializes a new instance of <c>ClientBase</c> class.
/// </summary>
/// <param name="channel">The channel to use for remote call invocation.</param>
- public ClientBase(Channel channel)
+ public ClientBase(Channel channel) : this(new DefaultCallInvoker(channel))
{
- this.channel = channel;
}
/// <summary>
- /// Can be used to register a custom header interceptor.
- /// The interceptor is invoked each time a new call on this client is started.
- /// It is not recommented to use header interceptor to add auth headers to RPC calls.
+ /// Initializes a new instance of <c>ClientBase</c> class.
/// </summary>
- /// <seealso cref="HeaderInterceptor"/>
- public HeaderInterceptor HeaderInterceptor
+ /// <param name="callInvoker">The <c>CallInvoker</c> for remote call invocation.</param>
+ public ClientBase(CallInvoker callInvoker) : this(new ClientBaseConfiguration(callInvoker, null))
{
- get;
- set;
}
/// <summary>
- /// gRPC supports multiple "hosts" being served by a single server.
- /// This property can be used to set the target host explicitly.
- /// By default, this will be set to <c>null</c> with the meaning
- /// "use default host".
+ /// Gets the call invoker.
/// </summary>
- public string Host
+ protected CallInvoker CallInvoker
{
- get;
- set;
+ get { return this.callInvoker; }
}
/// <summary>
- /// Channel associated with this client.
+ /// Gets the configuration.
/// </summary>
- public Channel Channel
+ internal ClientBaseConfiguration Configuration
{
- get
- {
- return this.channel;
- }
+ get { return this.configuration; }
}
/// <summary>
- /// Creates a new call to given method.
+ /// Represents configuration of ClientBase. The class itself is visible to
+ /// subclasses, but contents are marked as internal to make the instances opaque.
+ /// The verbose name of this class was chosen to make name clash in generated code
+ /// less likely.
/// </summary>
- /// <param name="method">The method to invoke.</param>
- /// <param name="options">The call options.</param>
- /// <typeparam name="TRequest">Request message type.</typeparam>
- /// <typeparam name="TResponse">Response message type.</typeparam>
- /// <returns>The call invocation details.</returns>
- protected CallInvocationDetails<TRequest, TResponse> CreateCall<TRequest, TResponse>(Method<TRequest, TResponse> method, CallOptions options)
- where TRequest : class
- where TResponse : class
+ protected internal class ClientBaseConfiguration
{
- var interceptor = HeaderInterceptor;
- if (interceptor != null)
+ readonly CallInvoker undecoratedCallInvoker;
+ readonly string host;
+
+ internal ClientBaseConfiguration(CallInvoker undecoratedCallInvoker, string host)
+ {
+ this.undecoratedCallInvoker = GrpcPreconditions.CheckNotNull(undecoratedCallInvoker);
+ this.host = host;
+ }
+
+ internal CallInvoker CreateDecoratedCallInvoker()
+ {
+ return new InterceptingCallInvoker(undecoratedCallInvoker, hostInterceptor: (h) => host);
+ }
+
+ internal ClientBaseConfiguration WithHost(string host)
{
- if (options.Headers == null)
- {
- options = options.WithHeaders(new Metadata());
- }
- interceptor(method, options.Headers);
+ GrpcPreconditions.CheckNotNull(host, "host");
+ return new ClientBaseConfiguration(this.undecoratedCallInvoker, host);
}
- return new CallInvocationDetails<TRequest, TResponse>(channel, method, Host, options);
}
}
}
diff --git a/src/csharp/Grpc.Core/DefaultCallInvoker.cs b/src/csharp/Grpc.Core/DefaultCallInvoker.cs
new file mode 100644
index 0000000000..1a99e41153
--- /dev/null
+++ b/src/csharp/Grpc.Core/DefaultCallInvoker.cs
@@ -0,0 +1,112 @@
+#region Copyright notice and license
+
+// Copyright 2015-2016, 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.
+
+#endregion
+
+using System.Threading.Tasks;
+using Grpc.Core.Internal;
+using Grpc.Core.Utils;
+
+namespace Grpc.Core
+{
+ /// <summary>
+ /// Invokes client RPCs using <see cref="Calls"/>.
+ /// </summary>
+ public class DefaultCallInvoker : CallInvoker
+ {
+ readonly Channel channel;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="Grpc.Core.DefaultCallInvoker"/> class.
+ /// </summary>
+ /// <param name="channel">Channel to use.</param>
+ public DefaultCallInvoker(Channel channel)
+ {
+ this.channel = GrpcPreconditions.CheckNotNull(channel);
+ }
+
+ /// <summary>
+ /// Invokes a simple remote call in a blocking fashion.
+ /// </summary>
+ public override TResponse BlockingUnaryCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options, TRequest request)
+ {
+ var call = CreateCall(method, host, options);
+ return Calls.BlockingUnaryCall(call, request);
+ }
+
+ /// <summary>
+ /// Invokes a simple remote call asynchronously.
+ /// </summary>
+ public override AsyncUnaryCall<TResponse> AsyncUnaryCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options, TRequest request)
+ {
+ var call = CreateCall(method, host, options);
+ return Calls.AsyncUnaryCall(call, request);
+ }
+
+ /// <summary>
+ /// Invokes a server streaming call asynchronously.
+ /// In server streaming scenario, client sends on request and server responds with a stream of responses.
+ /// </summary>
+ public override AsyncServerStreamingCall<TResponse> AsyncServerStreamingCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options, TRequest request)
+ {
+ var call = CreateCall(method, host, options);
+ return Calls.AsyncServerStreamingCall(call, request);
+ }
+
+ /// <summary>
+ /// Invokes a client streaming call asynchronously.
+ /// In client streaming scenario, client sends a stream of requests and server responds with a single response.
+ /// </summary>
+ public override AsyncClientStreamingCall<TRequest, TResponse> AsyncClientStreamingCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options)
+ {
+ var call = CreateCall(method, host, options);
+ return Calls.AsyncClientStreamingCall(call);
+ }
+
+ /// <summary>
+ /// Invokes a duplex streaming call asynchronously.
+ /// In duplex streaming scenario, client sends a stream of requests and server responds with a stream of responses.
+ /// The response stream is completely independent and both side can be sending messages at the same time.
+ /// </summary>
+ public override AsyncDuplexStreamingCall<TRequest, TResponse> AsyncDuplexStreamingCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options)
+ {
+ var call = CreateCall(method, host, options);
+ return Calls.AsyncDuplexStreamingCall(call);
+ }
+
+ protected virtual CallInvocationDetails<TRequest, TResponse> CreateCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options)
+ where TRequest : class
+ where TResponse : class
+ {
+ return new CallInvocationDetails<TRequest, TResponse>(channel, method, host, options);
+ }
+ }
+}
diff --git a/src/csharp/Grpc.Core/Grpc.Core.csproj b/src/csharp/Grpc.Core/Grpc.Core.csproj
index 3189835ccd..251a688946 100644
--- a/src/csharp/Grpc.Core/Grpc.Core.csproj
+++ b/src/csharp/Grpc.Core/Grpc.Core.csproj
@@ -129,6 +129,10 @@
<Compile Include="Profiling\Profilers.cs" />
<Compile Include="Internal\DefaultSslRootsOverride.cs" />
<Compile Include="Utils\GrpcPreconditions.cs" />
+ <Compile Include="CallInvoker.cs" />
+ <Compile Include="DefaultCallInvoker.cs" />
+ <Compile Include="Internal\UnimplementedCallInvoker.cs" />
+ <Compile Include="Internal\InterceptingCallInvoker.cs" />
</ItemGroup>
<ItemGroup>
<None Include="Grpc.Core.nuspec" />
diff --git a/src/csharp/Grpc.Core/Internal/AsyncCall.cs b/src/csharp/Grpc.Core/Internal/AsyncCall.cs
index cc37267161..016e1b8587 100644
--- a/src/csharp/Grpc.Core/Internal/AsyncCall.cs
+++ b/src/csharp/Grpc.Core/Internal/AsyncCall.cs
@@ -258,9 +258,19 @@ namespace Grpc.Core.Internal
lock (myLock)
{
GrpcPreconditions.CheckNotNull(completionDelegate, "Completion delegate cannot be null");
- CheckSendingAllowed();
+ CheckSendingAllowed(allowFinished: true);
- call.StartSendCloseFromClient(HandleHalfclosed);
+ if (!disposed && !finished)
+ {
+ call.StartSendCloseFromClient(HandleSendCloseFromClientFinished);
+ }
+ else
+ {
+ // In case the call has already been finished by the serverside,
+ // the halfclose has already been done implicitly, so we only
+ // emit the notification for the completion delegate.
+ Task.Run(() => HandleSendCloseFromClientFinished(true));
+ }
halfcloseRequested = true;
sendCompletionDelegate = completionDelegate;
diff --git a/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs b/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs
index aa5765be6f..ccd047f469 100644
--- a/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs
+++ b/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs
@@ -136,7 +136,7 @@ namespace Grpc.Core.Internal
lock (myLock)
{
GrpcPreconditions.CheckNotNull(completionDelegate, "Completion delegate cannot be null");
- CheckSendingAllowed();
+ CheckSendingAllowed(allowFinished: false);
call.StartSendMessage(HandleSendFinished, payload, writeFlags, !initialMetadataSent);
@@ -202,14 +202,14 @@ namespace Grpc.Core.Internal
{
}
- protected void CheckSendingAllowed()
+ protected void CheckSendingAllowed(bool allowFinished)
{
GrpcPreconditions.CheckState(started);
CheckNotCancelled();
- GrpcPreconditions.CheckState(!disposed);
+ GrpcPreconditions.CheckState(!disposed || allowFinished);
GrpcPreconditions.CheckState(!halfcloseRequested, "Already halfclosed.");
- GrpcPreconditions.CheckState(!finished, "Already finished.");
+ GrpcPreconditions.CheckState(!finished || allowFinished, "Already finished.");
GrpcPreconditions.CheckState(sendCompletionDelegate == null, "Only one write can be pending at a time");
}
@@ -294,9 +294,33 @@ namespace Grpc.Core.Internal
}
/// <summary>
- /// Handles halfclose completion.
+ /// Handles halfclose (send close from client) completion.
+ /// </summary>
+ protected void HandleSendCloseFromClientFinished(bool success)
+ {
+ AsyncCompletionDelegate<object> origCompletionDelegate = null;
+ lock (myLock)
+ {
+ origCompletionDelegate = sendCompletionDelegate;
+ sendCompletionDelegate = null;
+
+ ReleaseResourcesIfPossible();
+ }
+
+ if (!success)
+ {
+ FireCompletion(origCompletionDelegate, null, new InvalidOperationException("Sending close from client has failed."));
+ }
+ else
+ {
+ FireCompletion(origCompletionDelegate, null, null);
+ }
+ }
+
+ /// <summary>
+ /// Handles send status from server completion.
/// </summary>
- protected void HandleHalfclosed(bool success)
+ protected void HandleSendStatusFromServerFinished(bool success)
{
AsyncCompletionDelegate<object> origCompletionDelegate = null;
lock (myLock)
@@ -309,7 +333,7 @@ namespace Grpc.Core.Internal
if (!success)
{
- FireCompletion(origCompletionDelegate, null, new InvalidOperationException("Halfclose failed"));
+ FireCompletion(origCompletionDelegate, null, new InvalidOperationException("Error sending status from server."));
}
else
{
diff --git a/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs b/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs
index e749448565..bea2b3660c 100644
--- a/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs
+++ b/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs
@@ -113,7 +113,7 @@ namespace Grpc.Core.Internal
GrpcPreconditions.CheckState(!initialMetadataSent, "Response headers can only be sent once per call.");
GrpcPreconditions.CheckState(streamingWritesCounter == 0, "Response headers can only be sent before the first write starts.");
- CheckSendingAllowed();
+ CheckSendingAllowed(allowFinished: false);
GrpcPreconditions.CheckNotNull(completionDelegate, "Completion delegate cannot be null");
@@ -137,11 +137,11 @@ namespace Grpc.Core.Internal
lock (myLock)
{
GrpcPreconditions.CheckNotNull(completionDelegate, "Completion delegate cannot be null");
- CheckSendingAllowed();
+ CheckSendingAllowed(allowFinished: false);
using (var metadataArray = MetadataArraySafeHandle.Create(trailers))
{
- call.StartSendStatusFromServer(HandleHalfclosed, status, metadataArray, !initialMetadataSent);
+ call.StartSendStatusFromServer(HandleSendStatusFromServerFinished, status, metadataArray, !initialMetadataSent);
}
halfcloseRequested = true;
readingDone = true;
diff --git a/src/csharp/Grpc.Core/Internal/InterceptingCallInvoker.cs b/src/csharp/Grpc.Core/Internal/InterceptingCallInvoker.cs
new file mode 100644
index 0000000000..ef48dc7121
--- /dev/null
+++ b/src/csharp/Grpc.Core/Internal/InterceptingCallInvoker.cs
@@ -0,0 +1,134 @@
+#region Copyright notice and license
+
+// Copyright 2015-2016, 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.
+
+#endregion
+
+using System;
+using System.Threading.Tasks;
+using Grpc.Core;
+using Grpc.Core.Utils;
+
+namespace Grpc.Core.Internal
+{
+ /// <summary>
+ /// Decorates an underlying <c>CallInvoker</c> to intercept call invocations.
+ /// </summary>
+ internal class InterceptingCallInvoker : CallInvoker
+ {
+ readonly CallInvoker callInvoker;
+ readonly Func<string, string> hostInterceptor;
+ readonly Func<CallOptions, CallOptions> callOptionsInterceptor;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="Grpc.Core.InterceptingCallInvoker"/> class.
+ /// </summary>
+ public InterceptingCallInvoker(CallInvoker callInvoker,
+ Func<string, string> hostInterceptor = null,
+ Func<CallOptions, CallOptions> callOptionsInterceptor = null)
+ {
+ this.callInvoker = GrpcPreconditions.CheckNotNull(callInvoker);
+ this.hostInterceptor = hostInterceptor;
+ this.callOptionsInterceptor = callOptionsInterceptor;
+ }
+
+ /// <summary>
+ /// Intercepts a unary call.
+ /// </summary>
+ public override TResponse BlockingUnaryCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options, TRequest request)
+ {
+ host = InterceptHost(host);
+ options = InterceptCallOptions(options);
+ return callInvoker.BlockingUnaryCall(method, host, options, request);
+ }
+
+ /// <summary>
+ /// Invokes a simple remote call asynchronously.
+ /// </summary>
+ public override AsyncUnaryCall<TResponse> AsyncUnaryCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options, TRequest request)
+ {
+ host = InterceptHost(host);
+ options = InterceptCallOptions(options);
+ return callInvoker.AsyncUnaryCall(method, host, options, request);
+ }
+
+ /// <summary>
+ /// Invokes a server streaming call asynchronously.
+ /// In server streaming scenario, client sends on request and server responds with a stream of responses.
+ /// </summary>
+ public override AsyncServerStreamingCall<TResponse> AsyncServerStreamingCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options, TRequest request)
+ {
+ host = InterceptHost(host);
+ options = InterceptCallOptions(options);
+ return callInvoker.AsyncServerStreamingCall(method, host, options, request);
+ }
+
+ /// <summary>
+ /// Invokes a client streaming call asynchronously.
+ /// In client streaming scenario, client sends a stream of requests and server responds with a single response.
+ /// </summary>
+ public override AsyncClientStreamingCall<TRequest, TResponse> AsyncClientStreamingCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options)
+ {
+ host = InterceptHost(host);
+ options = InterceptCallOptions(options);
+ return callInvoker.AsyncClientStreamingCall(method, host, options);
+ }
+
+ /// <summary>
+ /// Invokes a duplex streaming call asynchronously.
+ /// In duplex streaming scenario, client sends a stream of requests and server responds with a stream of responses.
+ /// The response stream is completely independent and both side can be sending messages at the same time.
+ /// </summary>
+ public override AsyncDuplexStreamingCall<TRequest, TResponse> AsyncDuplexStreamingCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options)
+ {
+ host = InterceptHost(host);
+ options = InterceptCallOptions(options);
+ return callInvoker.AsyncDuplexStreamingCall(method, host, options);
+ }
+
+ private string InterceptHost(string host)
+ {
+ if (hostInterceptor == null)
+ {
+ return host;
+ }
+ return hostInterceptor(host);
+ }
+
+ private CallOptions InterceptCallOptions(CallOptions options)
+ {
+ if (callOptionsInterceptor == null)
+ {
+ return options;
+ }
+ return callOptionsInterceptor(options);
+ }
+ }
+}
diff --git a/src/csharp/Grpc.Core/Internal/UnimplementedCallInvoker.cs b/src/csharp/Grpc.Core/Internal/UnimplementedCallInvoker.cs
new file mode 100644
index 0000000000..0c7340873b
--- /dev/null
+++ b/src/csharp/Grpc.Core/Internal/UnimplementedCallInvoker.cs
@@ -0,0 +1,75 @@
+#region Copyright notice and license
+
+// Copyright 2015-2016, 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.
+
+#endregion
+
+using System;
+using System.Threading.Tasks;
+using Grpc.Core;
+using Grpc.Core.Utils;
+
+namespace Grpc.Core.Internal
+{
+ /// <summary>
+ /// Call invoker that throws <c>NotImplementedException</c> for all requests.
+ /// </summary>
+ internal class UnimplementedCallInvoker : CallInvoker
+ {
+ public UnimplementedCallInvoker()
+ {
+ }
+
+ public override TResponse BlockingUnaryCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options, TRequest request)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override AsyncUnaryCall<TResponse> AsyncUnaryCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options, TRequest request)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override AsyncServerStreamingCall<TResponse> AsyncServerStreamingCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options, TRequest request)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override AsyncClientStreamingCall<TRequest, TResponse> AsyncClientStreamingCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override AsyncDuplexStreamingCall<TRequest, TResponse> AsyncDuplexStreamingCall<TRequest, TResponse>(Method<TRequest, TResponse> method, string host, CallOptions options)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/src/csharp/Grpc.Examples.MathClient/MathClient.cs b/src/csharp/Grpc.Examples.MathClient/MathClient.cs
index 64e429ed5a..aadef6833d 100644
--- a/src/csharp/Grpc.Examples.MathClient/MathClient.cs
+++ b/src/csharp/Grpc.Examples.MathClient/MathClient.cs
@@ -1,5 +1,5 @@
#region Copyright notice and license
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -40,7 +40,7 @@ namespace Math
public static void Main(string[] args)
{
var channel = new Channel("127.0.0.1", 23456, ChannelCredentials.Insecure);
- Math.IMathClient client = new Math.MathClient(channel);
+ Math.MathClient client = new Math.MathClient(channel);
MathExamples.DivExample(client);
MathExamples.DivAsyncExample(client).Wait();
diff --git a/src/csharp/Grpc.Examples/MathExamples.cs b/src/csharp/Grpc.Examples/MathExamples.cs
index 8009ccbbfa..6075420974 100644
--- a/src/csharp/Grpc.Examples/MathExamples.cs
+++ b/src/csharp/Grpc.Examples/MathExamples.cs
@@ -1,5 +1,5 @@
#region Copyright notice and license
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -38,19 +38,19 @@ namespace Math
{
public static class MathExamples
{
- public static void DivExample(Math.IMathClient client)
+ public static void DivExample(Math.MathClient client)
{
DivReply result = client.Div(new DivArgs { Dividend = 10, Divisor = 3 });
Console.WriteLine("Div Result: " + result);
}
- public static async Task DivAsyncExample(Math.IMathClient client)
+ public static async Task DivAsyncExample(Math.MathClient client)
{
DivReply result = await client.DivAsync(new DivArgs { Dividend = 4, Divisor = 5 });
Console.WriteLine("DivAsync Result: " + result);
}
- public static async Task FibExample(Math.IMathClient client)
+ public static async Task FibExample(Math.MathClient client)
{
using (var call = client.Fib(new FibArgs { Limit = 5 }))
{
@@ -59,7 +59,7 @@ namespace Math
}
}
- public static async Task SumExample(Math.IMathClient client)
+ public static async Task SumExample(Math.MathClient client)
{
var numbers = new List<Num>
{
@@ -75,7 +75,7 @@ namespace Math
}
}
- public static async Task DivManyExample(Math.IMathClient client)
+ public static async Task DivManyExample(Math.MathClient client)
{
var divArgsList = new List<DivArgs>
{
@@ -90,7 +90,7 @@ namespace Math
}
}
- public static async Task DependendRequestsExample(Math.IMathClient client)
+ public static async Task DependendRequestsExample(Math.MathClient client)
{
var numbers = new List<Num>
{
diff --git a/src/csharp/Grpc.Examples/MathGrpc.cs b/src/csharp/Grpc.Examples/MathGrpc.cs
index a6e878d0f4..f3bb0d1cdc 100644
--- a/src/csharp/Grpc.Examples/MathGrpc.cs
+++ b/src/csharp/Grpc.Examples/MathGrpc.cs
@@ -52,6 +52,7 @@ namespace Math {
}
// client interface
+ [System.Obsolete("Client side interfaced will be removed in the next release. Use client class directly.")]
public interface IMathClient
{
global::Math.DivReply Div(global::Math.DivArgs request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken));
@@ -67,6 +68,7 @@ namespace Math {
}
// server-side interface
+ [System.Obsolete("Service implementations should inherit from the generated abstract base class instead.")]
public interface IMath
{
Task<global::Math.DivReply> Div(global::Math.DivArgs request, ServerCallContext context);
@@ -75,61 +77,92 @@ namespace Math {
Task<global::Math.Num> Sum(IAsyncStreamReader<global::Math.Num> requestStream, ServerCallContext context);
}
+ // server-side abstract class
+ public abstract class MathBase
+ {
+ public virtual Task<global::Math.DivReply> Div(global::Math.DivArgs request, ServerCallContext context)
+ {
+ throw new RpcException(new Status(StatusCode.Unimplemented, ""));
+ }
+
+ public virtual Task DivMany(IAsyncStreamReader<global::Math.DivArgs> requestStream, IServerStreamWriter<global::Math.DivReply> responseStream, ServerCallContext context)
+ {
+ throw new RpcException(new Status(StatusCode.Unimplemented, ""));
+ }
+
+ public virtual Task Fib(global::Math.FibArgs request, IServerStreamWriter<global::Math.Num> responseStream, ServerCallContext context)
+ {
+ throw new RpcException(new Status(StatusCode.Unimplemented, ""));
+ }
+
+ public virtual Task<global::Math.Num> Sum(IAsyncStreamReader<global::Math.Num> requestStream, ServerCallContext context)
+ {
+ throw new RpcException(new Status(StatusCode.Unimplemented, ""));
+ }
+
+ }
+
// client stub
- public class MathClient : ClientBase, IMathClient
+ public class MathClient : ClientBase<MathClient>, IMathClient
{
public MathClient(Channel channel) : base(channel)
{
}
- public global::Math.DivReply Div(global::Math.DivArgs request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public MathClient(CallInvoker callInvoker) : base(callInvoker)
{
- var call = CreateCall(__Method_Div, new CallOptions(headers, deadline, cancellationToken));
- return Calls.BlockingUnaryCall(call, request);
}
- public global::Math.DivReply Div(global::Math.DivArgs request, CallOptions options)
+ ///<summary>Protected parameterless constructor to allow creation of test doubles.</summary>
+ protected MathClient() : base()
{
- var call = CreateCall(__Method_Div, options);
- return Calls.BlockingUnaryCall(call, request);
}
- public AsyncUnaryCall<global::Math.DivReply> DivAsync(global::Math.DivArgs request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ ///<summary>Protected constructor to allow creation of configured clients.</summary>
+ protected MathClient(ClientBaseConfiguration configuration) : base(configuration)
{
- var call = CreateCall(__Method_Div, new CallOptions(headers, deadline, cancellationToken));
- return Calls.AsyncUnaryCall(call, request);
}
- public AsyncUnaryCall<global::Math.DivReply> DivAsync(global::Math.DivArgs request, CallOptions options)
+
+ public virtual global::Math.DivReply Div(global::Math.DivArgs request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_Div, options);
- return Calls.AsyncUnaryCall(call, request);
+ return Div(request, new CallOptions(headers, deadline, cancellationToken));
}
- public AsyncDuplexStreamingCall<global::Math.DivArgs, global::Math.DivReply> DivMany(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public virtual global::Math.DivReply Div(global::Math.DivArgs request, CallOptions options)
{
- var call = CreateCall(__Method_DivMany, new CallOptions(headers, deadline, cancellationToken));
- return Calls.AsyncDuplexStreamingCall(call);
+ return CallInvoker.BlockingUnaryCall(__Method_Div, null, options, request);
}
- public AsyncDuplexStreamingCall<global::Math.DivArgs, global::Math.DivReply> DivMany(CallOptions options)
+ public virtual AsyncUnaryCall<global::Math.DivReply> DivAsync(global::Math.DivArgs request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_DivMany, options);
- return Calls.AsyncDuplexStreamingCall(call);
+ return DivAsync(request, new CallOptions(headers, deadline, cancellationToken));
}
- public AsyncServerStreamingCall<global::Math.Num> Fib(global::Math.FibArgs request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public virtual AsyncUnaryCall<global::Math.DivReply> DivAsync(global::Math.DivArgs request, CallOptions options)
{
- var call = CreateCall(__Method_Fib, new CallOptions(headers, deadline, cancellationToken));
- return Calls.AsyncServerStreamingCall(call, request);
+ return CallInvoker.AsyncUnaryCall(__Method_Div, null, options, request);
}
- public AsyncServerStreamingCall<global::Math.Num> Fib(global::Math.FibArgs request, CallOptions options)
+ public virtual AsyncDuplexStreamingCall<global::Math.DivArgs, global::Math.DivReply> DivMany(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_Fib, options);
- return Calls.AsyncServerStreamingCall(call, request);
+ return DivMany(new CallOptions(headers, deadline, cancellationToken));
}
- public AsyncClientStreamingCall<global::Math.Num, global::Math.Num> Sum(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public virtual AsyncDuplexStreamingCall<global::Math.DivArgs, global::Math.DivReply> DivMany(CallOptions options)
{
- var call = CreateCall(__Method_Sum, new CallOptions(headers, deadline, cancellationToken));
- return Calls.AsyncClientStreamingCall(call);
+ return CallInvoker.AsyncDuplexStreamingCall(__Method_DivMany, null, options);
}
- public AsyncClientStreamingCall<global::Math.Num, global::Math.Num> Sum(CallOptions options)
+ public virtual AsyncServerStreamingCall<global::Math.Num> Fib(global::Math.FibArgs request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_Sum, options);
- return Calls.AsyncClientStreamingCall(call);
+ return Fib(request, new CallOptions(headers, deadline, cancellationToken));
+ }
+ public virtual AsyncServerStreamingCall<global::Math.Num> Fib(global::Math.FibArgs request, CallOptions options)
+ {
+ return CallInvoker.AsyncServerStreamingCall(__Method_Fib, null, options, request);
+ }
+ public virtual AsyncClientStreamingCall<global::Math.Num, global::Math.Num> Sum(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ {
+ return Sum(new CallOptions(headers, deadline, cancellationToken));
+ }
+ public virtual AsyncClientStreamingCall<global::Math.Num, global::Math.Num> Sum(CallOptions options)
+ {
+ return CallInvoker.AsyncClientStreamingCall(__Method_Sum, null, options);
+ }
+ protected override MathClient NewInstance(ClientBaseConfiguration configuration)
+ {
+ return new MathClient(configuration);
}
}
@@ -143,6 +176,16 @@ namespace Math {
.AddMethod(__Method_Sum, serviceImpl.Sum).Build();
}
+ // creates service definition that can be registered with a server
+ public static ServerServiceDefinition BindService(MathBase serviceImpl)
+ {
+ return ServerServiceDefinition.CreateBuilder(__ServiceName)
+ .AddMethod(__Method_Div, serviceImpl.Div)
+ .AddMethod(__Method_DivMany, serviceImpl.DivMany)
+ .AddMethod(__Method_Fib, serviceImpl.Fib)
+ .AddMethod(__Method_Sum, serviceImpl.Sum).Build();
+ }
+
// creates a new client
public static MathClient NewClient(Channel channel)
{
diff --git a/src/csharp/Grpc.Examples/MathServiceImpl.cs b/src/csharp/Grpc.Examples/MathServiceImpl.cs
index 71dc655e46..79c56e57a8 100644
--- a/src/csharp/Grpc.Examples/MathServiceImpl.cs
+++ b/src/csharp/Grpc.Examples/MathServiceImpl.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -43,14 +43,14 @@ namespace Math
/// <summary>
/// Implementation of MathService server
/// </summary>
- public class MathServiceImpl : Math.IMath
+ public class MathServiceImpl : Math.MathBase
{
- public Task<DivReply> Div(DivArgs request, ServerCallContext context)
+ public override Task<DivReply> Div(DivArgs request, ServerCallContext context)
{
return Task.FromResult(DivInternal(request));
}
- public async Task Fib(FibArgs request, IServerStreamWriter<Num> responseStream, ServerCallContext context)
+ public override async Task Fib(FibArgs request, IServerStreamWriter<Num> responseStream, ServerCallContext context)
{
if (request.Limit <= 0)
{
@@ -72,7 +72,7 @@ namespace Math
}
}
- public async Task<Num> Sum(IAsyncStreamReader<Num> requestStream, ServerCallContext context)
+ public override async Task<Num> Sum(IAsyncStreamReader<Num> requestStream, ServerCallContext context)
{
long sum = 0;
await requestStream.ForEachAsync(async num =>
@@ -82,7 +82,7 @@ namespace Math
return new Num { Num_ = sum };
}
- public async Task DivMany(IAsyncStreamReader<DivArgs> requestStream, IServerStreamWriter<DivReply> responseStream, ServerCallContext context)
+ public override async Task DivMany(IAsyncStreamReader<DivArgs> requestStream, IServerStreamWriter<DivReply> responseStream, ServerCallContext context)
{
await requestStream.ForEachAsync(async divArgs => await responseStream.WriteAsync(DivInternal(divArgs)));
}
diff --git a/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs b/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs
index 8318e84277..fb292945a6 100644
--- a/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs
+++ b/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs
@@ -49,7 +49,7 @@ namespace Grpc.HealthCheck.Tests
const string Host = "localhost";
Server server;
Channel channel;
- Grpc.Health.V1.Health.IHealthClient client;
+ Grpc.Health.V1.Health.HealthClient client;
Grpc.HealthCheck.HealthServiceImpl serviceImpl;
[TestFixtureSetUp]
diff --git a/src/csharp/Grpc.HealthCheck/HealthGrpc.cs b/src/csharp/Grpc.HealthCheck/HealthGrpc.cs
index 68320eb5c2..72e11cca3a 100644
--- a/src/csharp/Grpc.HealthCheck/HealthGrpc.cs
+++ b/src/csharp/Grpc.HealthCheck/HealthGrpc.cs
@@ -29,6 +29,7 @@ namespace Grpc.Health.V1 {
}
// client interface
+ [System.Obsolete("Client side interfaced will be removed in the next release. Use client class directly.")]
public interface IHealthClient
{
global::Grpc.Health.V1.HealthCheckResponse Check(global::Grpc.Health.V1.HealthCheckRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken));
@@ -38,36 +39,59 @@ namespace Grpc.Health.V1 {
}
// server-side interface
+ [System.Obsolete("Service implementations should inherit from the generated abstract base class instead.")]
public interface IHealth
{
Task<global::Grpc.Health.V1.HealthCheckResponse> Check(global::Grpc.Health.V1.HealthCheckRequest request, ServerCallContext context);
}
+ // server-side abstract class
+ public abstract class HealthBase
+ {
+ public virtual Task<global::Grpc.Health.V1.HealthCheckResponse> Check(global::Grpc.Health.V1.HealthCheckRequest request, ServerCallContext context)
+ {
+ throw new RpcException(new Status(StatusCode.Unimplemented, ""));
+ }
+
+ }
+
// client stub
- public class HealthClient : ClientBase, IHealthClient
+ public class HealthClient : ClientBase<HealthClient>, IHealthClient
{
public HealthClient(Channel channel) : base(channel)
{
}
- public global::Grpc.Health.V1.HealthCheckResponse Check(global::Grpc.Health.V1.HealthCheckRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public HealthClient(CallInvoker callInvoker) : base(callInvoker)
{
- var call = CreateCall(__Method_Check, new CallOptions(headers, deadline, cancellationToken));
- return Calls.BlockingUnaryCall(call, request);
}
- public global::Grpc.Health.V1.HealthCheckResponse Check(global::Grpc.Health.V1.HealthCheckRequest request, CallOptions options)
+ ///<summary>Protected parameterless constructor to allow creation of test doubles.</summary>
+ protected HealthClient() : base()
+ {
+ }
+ ///<summary>Protected constructor to allow creation of configured clients.</summary>
+ protected HealthClient(ClientBaseConfiguration configuration) : base(configuration)
+ {
+ }
+
+ public virtual global::Grpc.Health.V1.HealthCheckResponse Check(global::Grpc.Health.V1.HealthCheckRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_Check, options);
- return Calls.BlockingUnaryCall(call, request);
+ return Check(request, new CallOptions(headers, deadline, cancellationToken));
}
- public AsyncUnaryCall<global::Grpc.Health.V1.HealthCheckResponse> CheckAsync(global::Grpc.Health.V1.HealthCheckRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public virtual global::Grpc.Health.V1.HealthCheckResponse Check(global::Grpc.Health.V1.HealthCheckRequest request, CallOptions options)
{
- var call = CreateCall(__Method_Check, new CallOptions(headers, deadline, cancellationToken));
- return Calls.AsyncUnaryCall(call, request);
+ return CallInvoker.BlockingUnaryCall(__Method_Check, null, options, request);
}
- public AsyncUnaryCall<global::Grpc.Health.V1.HealthCheckResponse> CheckAsync(global::Grpc.Health.V1.HealthCheckRequest request, CallOptions options)
+ public virtual AsyncUnaryCall<global::Grpc.Health.V1.HealthCheckResponse> CheckAsync(global::Grpc.Health.V1.HealthCheckRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_Check, options);
- return Calls.AsyncUnaryCall(call, request);
+ return CheckAsync(request, new CallOptions(headers, deadline, cancellationToken));
+ }
+ public virtual AsyncUnaryCall<global::Grpc.Health.V1.HealthCheckResponse> CheckAsync(global::Grpc.Health.V1.HealthCheckRequest request, CallOptions options)
+ {
+ return CallInvoker.AsyncUnaryCall(__Method_Check, null, options, request);
+ }
+ protected override HealthClient NewInstance(ClientBaseConfiguration configuration)
+ {
+ return new HealthClient(configuration);
}
}
@@ -78,6 +102,13 @@ namespace Grpc.Health.V1 {
.AddMethod(__Method_Check, serviceImpl.Check).Build();
}
+ // creates service definition that can be registered with a server
+ public static ServerServiceDefinition BindService(HealthBase serviceImpl)
+ {
+ return ServerServiceDefinition.CreateBuilder(__ServiceName)
+ .AddMethod(__Method_Check, serviceImpl.Check).Build();
+ }
+
// creates a new client
public static HealthClient NewClient(Channel channel)
{
diff --git a/src/csharp/Grpc.HealthCheck/HealthServiceImpl.cs b/src/csharp/Grpc.HealthCheck/HealthServiceImpl.cs
index a6e82aa0d4..d0406ece00 100644
--- a/src/csharp/Grpc.HealthCheck/HealthServiceImpl.cs
+++ b/src/csharp/Grpc.HealthCheck/HealthServiceImpl.cs
@@ -51,7 +51,7 @@ namespace Grpc.HealthCheck
/// server.AddServiceDefinition(Grpc.Health.V1.Health.BindService(serviceImpl));
/// </code>
/// </summary>
- public class HealthServiceImpl : Grpc.Health.V1.Health.IHealth
+ public class HealthServiceImpl : Grpc.Health.V1.Health.HealthBase
{
private readonly object myLock = new object();
private readonly Dictionary<string, HealthCheckResponse.Types.ServingStatus> statusMap =
@@ -99,7 +99,7 @@ namespace Grpc.HealthCheck
/// <param name="request">The check request.</param>
/// <param name="context">The call context.</param>
/// <returns>The asynchronous response.</returns>
- public Task<HealthCheckResponse> Check(HealthCheckRequest request, ServerCallContext context)
+ public override Task<HealthCheckResponse> Check(HealthCheckRequest request, ServerCallContext context)
{
lock (myLock)
{
diff --git a/src/csharp/Grpc.IntegrationTesting.Client/Grpc.IntegrationTesting.Client.csproj b/src/csharp/Grpc.IntegrationTesting.Client/Grpc.IntegrationTesting.Client.csproj
index f37c1464c3..339a754c02 100644
--- a/src/csharp/Grpc.IntegrationTesting.Client/Grpc.IntegrationTesting.Client.csproj
+++ b/src/csharp/Grpc.IntegrationTesting.Client/Grpc.IntegrationTesting.Client.csproj
@@ -9,7 +9,7 @@
<AssemblyName>Grpc.IntegrationTesting.Client</AssemblyName>
<StartupObject>Grpc.IntegrationTesting.Client.Program</StartupObject>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
- <NuGetPackageImportStamp>6d22e68f</NuGetPackageImportStamp>
+ <NuGetPackageImportStamp>dfa56e6c</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -43,28 +43,17 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\BouncyCastle.1.7.0\lib\Net40-Client\BouncyCastle.Crypto.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Auth, Version=1.10.0.25333, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Google.Apis.Auth, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Auth.1.10.0\lib\net40\Google.Apis.Auth.dll</HintPath>
+ <HintPath>..\packages\Google.Apis.Auth.1.11.1\lib\net45\Google.Apis.Auth.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Auth.PlatformServices, Version=1.10.0.25333, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Google.Apis.Auth.PlatformServices, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Auth.1.10.0\lib\net40\Google.Apis.Auth.PlatformServices.dll</HintPath>
+ <HintPath>..\packages\Google.Apis.Auth.1.11.1\lib\net45\Google.Apis.Auth.PlatformServices.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Core, Version=1.10.0.25331, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Google.Apis.Core, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Core.1.10.0\lib\portable-net40+sl50+win+wpa81+wp80\Google.Apis.Core.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks.Extensions">
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks.Extensions.Desktop, Version=1.0.168.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll</HintPath>
+ <HintPath>..\packages\Google.Apis.Core.1.11.1\lib\net45\Google.Apis.Core.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
@@ -73,12 +62,6 @@
<Reference Include="System" />
<Reference Include="System.Net" />
<Reference Include="System.Net.Http" />
- <Reference Include="System.Net.Http.Extensions">
- <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll</HintPath>
- </Reference>
- <Reference Include="System.Net.Http.Primitives">
- <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll</HintPath>
- </Reference>
<Reference Include="System.Net.Http.WebRequest" />
</ItemGroup>
<ItemGroup>
@@ -100,14 +83,6 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
- <None Include="app.config" />
<None Include="packages.config" />
</ItemGroup>
- <Import Project="..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
- <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
- <PropertyGroup>
- <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
- </PropertyGroup>
- <Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
- </Target>
</Project> \ No newline at end of file
diff --git a/src/csharp/Grpc.IntegrationTesting.Client/app.config b/src/csharp/Grpc.IntegrationTesting.Client/app.config
deleted file mode 100644
index 84d7534d65..0000000000
--- a/src/csharp/Grpc.IntegrationTesting.Client/app.config
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
- <runtime>
- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
- <dependentAssembly>
- <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.2.29.0" newVersion="4.2.29.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.2.28.0" newVersion="4.0.0.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Google.Apis.Core" publicKeyToken="4b01fa6e34db77ab" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.9.2.38523" newVersion="1.9.2.38523" />
- </dependentAssembly>
- </assemblyBinding>
- </runtime>
-</configuration> \ No newline at end of file
diff --git a/src/csharp/Grpc.IntegrationTesting.Client/packages.config b/src/csharp/Grpc.IntegrationTesting.Client/packages.config
index 5fe8ca616c..c20d9ceed6 100644
--- a/src/csharp/Grpc.IntegrationTesting.Client/packages.config
+++ b/src/csharp/Grpc.IntegrationTesting.Client/packages.config
@@ -1,11 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="BouncyCastle" version="1.7.0" targetFramework="net45" />
- <package id="Google.Apis.Auth" version="1.10.0" targetFramework="net45" />
- <package id="Google.Apis.Core" version="1.10.0" targetFramework="net45" />
- <package id="Microsoft.Bcl" version="1.1.10" targetFramework="net45" />
- <package id="Microsoft.Bcl.Async" version="1.0.168" targetFramework="net45" />
- <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="net45" />
- <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net45" />
+ <package id="Google.Apis.Auth" version="1.11.1" targetFramework="net45" />
+ <package id="Google.Apis.Core" version="1.11.1" targetFramework="net45" />
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" />
</packages> \ No newline at end of file
diff --git a/src/csharp/Grpc.IntegrationTesting.QpsWorker/app.config b/src/csharp/Grpc.IntegrationTesting.QpsWorker/app.config
index 940d25cae3..e204447bb3 100644
--- a/src/csharp/Grpc.IntegrationTesting.QpsWorker/app.config
+++ b/src/csharp/Grpc.IntegrationTesting.QpsWorker/app.config
@@ -6,6 +6,10 @@
<assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.29.0" newVersion="4.2.29.0" />
</dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="Google.Apis.Core" publicKeyToken="4b01fa6e34db77ab" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-1.11.1.0" newVersion="1.11.1.0" />
+ </dependentAssembly>
</assemblyBinding>
</runtime>
</configuration> \ No newline at end of file
diff --git a/src/csharp/Grpc.IntegrationTesting.Server/Grpc.IntegrationTesting.Server.csproj b/src/csharp/Grpc.IntegrationTesting.Server/Grpc.IntegrationTesting.Server.csproj
index f27b96a53f..27a5650308 100644
--- a/src/csharp/Grpc.IntegrationTesting.Server/Grpc.IntegrationTesting.Server.csproj
+++ b/src/csharp/Grpc.IntegrationTesting.Server/Grpc.IntegrationTesting.Server.csproj
@@ -9,7 +9,7 @@
<AssemblyName>Grpc.IntegrationTesting.Server</AssemblyName>
<StartupObject>Grpc.IntegrationTesting.Server.Program</StartupObject>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
- <NuGetPackageImportStamp>d9ee8e52</NuGetPackageImportStamp>
+ <NuGetPackageImportStamp>7ceb739e</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -43,28 +43,17 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\BouncyCastle.1.7.0\lib\Net40-Client\BouncyCastle.Crypto.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Auth, Version=1.10.0.25333, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Google.Apis.Auth, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Auth.1.10.0\lib\net40\Google.Apis.Auth.dll</HintPath>
+ <HintPath>..\packages\Google.Apis.Auth.1.11.1\lib\net45\Google.Apis.Auth.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Auth.PlatformServices, Version=1.10.0.25333, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Google.Apis.Auth.PlatformServices, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Auth.1.10.0\lib\net40\Google.Apis.Auth.PlatformServices.dll</HintPath>
+ <HintPath>..\packages\Google.Apis.Auth.1.11.1\lib\net45\Google.Apis.Auth.PlatformServices.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Core, Version=1.10.0.25331, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Google.Apis.Core, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Core.1.10.0\lib\portable-net40+sl50+win+wpa81+wp80\Google.Apis.Core.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks.Extensions">
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks.Extensions.Desktop, Version=1.0.168.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll</HintPath>
+ <HintPath>..\packages\Google.Apis.Core.1.11.1\lib\net45\Google.Apis.Core.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
@@ -73,12 +62,6 @@
<Reference Include="System" />
<Reference Include="System.Net" />
<Reference Include="System.Net.Http" />
- <Reference Include="System.Net.Http.Extensions">
- <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll</HintPath>
- </Reference>
- <Reference Include="System.Net.Http.Primitives">
- <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll</HintPath>
- </Reference>
<Reference Include="System.Net.Http.WebRequest" />
</ItemGroup>
<ItemGroup>
@@ -100,14 +83,6 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
- <None Include="app.config" />
<None Include="packages.config" />
</ItemGroup>
- <Import Project="..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
- <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
- <PropertyGroup>
- <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
- </PropertyGroup>
- <Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
- </Target>
</Project> \ No newline at end of file
diff --git a/src/csharp/Grpc.IntegrationTesting.Server/app.config b/src/csharp/Grpc.IntegrationTesting.Server/app.config
deleted file mode 100644
index 84d7534d65..0000000000
--- a/src/csharp/Grpc.IntegrationTesting.Server/app.config
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
- <runtime>
- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
- <dependentAssembly>
- <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.2.29.0" newVersion="4.2.29.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.2.28.0" newVersion="4.0.0.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Google.Apis.Core" publicKeyToken="4b01fa6e34db77ab" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.9.2.38523" newVersion="1.9.2.38523" />
- </dependentAssembly>
- </assemblyBinding>
- </runtime>
-</configuration> \ No newline at end of file
diff --git a/src/csharp/Grpc.IntegrationTesting.Server/packages.config b/src/csharp/Grpc.IntegrationTesting.Server/packages.config
index 5fe8ca616c..c20d9ceed6 100644
--- a/src/csharp/Grpc.IntegrationTesting.Server/packages.config
+++ b/src/csharp/Grpc.IntegrationTesting.Server/packages.config
@@ -1,11 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="BouncyCastle" version="1.7.0" targetFramework="net45" />
- <package id="Google.Apis.Auth" version="1.10.0" targetFramework="net45" />
- <package id="Google.Apis.Core" version="1.10.0" targetFramework="net45" />
- <package id="Microsoft.Bcl" version="1.1.10" targetFramework="net45" />
- <package id="Microsoft.Bcl.Async" version="1.0.168" targetFramework="net45" />
- <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="net45" />
- <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net45" />
+ <package id="Google.Apis.Auth" version="1.11.1" targetFramework="net45" />
+ <package id="Google.Apis.Core" version="1.11.1" targetFramework="net45" />
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" />
</packages> \ No newline at end of file
diff --git a/src/csharp/Grpc.IntegrationTesting/BenchmarkServiceImpl.cs b/src/csharp/Grpc.IntegrationTesting/BenchmarkServiceImpl.cs
index 7e7bc713a0..07f2703d4a 100644
--- a/src/csharp/Grpc.IntegrationTesting/BenchmarkServiceImpl.cs
+++ b/src/csharp/Grpc.IntegrationTesting/BenchmarkServiceImpl.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -44,19 +44,19 @@ namespace Grpc.Testing
/// <summary>
/// Implementation of BenchmarkService server
/// </summary>
- public class BenchmarkServiceImpl : BenchmarkService.IBenchmarkService
+ public class BenchmarkServiceImpl : BenchmarkService.BenchmarkServiceBase
{
public BenchmarkServiceImpl()
{
}
- public Task<SimpleResponse> UnaryCall(SimpleRequest request, ServerCallContext context)
+ public override Task<SimpleResponse> UnaryCall(SimpleRequest request, ServerCallContext context)
{
var response = new SimpleResponse { Payload = CreateZerosPayload(request.ResponseSize) };
return Task.FromResult(response);
}
- public async Task StreamingCall(IAsyncStreamReader<SimpleRequest> requestStream, IServerStreamWriter<SimpleResponse> responseStream, ServerCallContext context)
+ public override async Task StreamingCall(IAsyncStreamReader<SimpleRequest> requestStream, IServerStreamWriter<SimpleResponse> responseStream, ServerCallContext context)
{
await requestStream.ForEachAsync(async request =>
{
diff --git a/src/csharp/Grpc.IntegrationTesting/ClientRunners.cs b/src/csharp/Grpc.IntegrationTesting/ClientRunners.cs
index 5bfc89d591..f954ca5f34 100644
--- a/src/csharp/Grpc.IntegrationTesting/ClientRunners.cs
+++ b/src/csharp/Grpc.IntegrationTesting/ClientRunners.cs
@@ -61,15 +61,7 @@ namespace Grpc.IntegrationTesting
public static IClientRunner CreateStarted(ClientConfig config)
{
Logger.Debug("ClientConfig: {0}", config);
- string target = config.ServerTargets.Single();
- GrpcPreconditions.CheckArgument(config.LoadParams.LoadCase == LoadParams.LoadOneofCase.ClosedLoop,
- "Only closed loop scenario supported for C#");
- GrpcPreconditions.CheckArgument(config.ClientChannels == 1, "ClientConfig.ClientChannels needs to be 1");
- if (config.OutstandingRpcsPerChannel != 0)
- {
- Logger.Warning("ClientConfig.OutstandingRpcsPerChannel is not supported for C#. Ignoring the value");
- }
if (config.AsyncClientThreads != 0)
{
Logger.Warning("ClientConfig.AsyncClientThreads is not supported for C#. Ignoring the value");
@@ -83,22 +75,40 @@ namespace Grpc.IntegrationTesting
Logger.Warning("ClientConfig.CoreList is not supported for C#. Ignoring the value");
}
- var credentials = config.SecurityParams != null ? TestCredentials.CreateSslCredentials() : ChannelCredentials.Insecure;
+ var channels = CreateChannels(config.ClientChannels, config.ServerTargets, config.SecurityParams);
+
+ return new ClientRunnerImpl(channels,
+ config.ClientType,
+ config.RpcType,
+ config.OutstandingRpcsPerChannel,
+ config.LoadParams,
+ config.PayloadConfig,
+ config.HistogramParams);
+ }
+
+ private static List<Channel> CreateChannels(int clientChannels, IEnumerable<string> serverTargets, SecurityParams securityParams)
+ {
+ GrpcPreconditions.CheckArgument(clientChannels > 0, "clientChannels needs to be at least 1.");
+ GrpcPreconditions.CheckArgument(serverTargets.Count() > 0, "at least one serverTarget needs to be specified.");
+
+ var credentials = securityParams != null ? TestCredentials.CreateSslCredentials() : ChannelCredentials.Insecure;
List<ChannelOption> channelOptions = null;
- if (config.SecurityParams != null && config.SecurityParams.ServerHostOverride != "")
+ if (securityParams != null && securityParams.ServerHostOverride != "")
{
channelOptions = new List<ChannelOption>
{
- new ChannelOption(ChannelOptions.SslTargetNameOverride, config.SecurityParams.ServerHostOverride)
+ new ChannelOption(ChannelOptions.SslTargetNameOverride, securityParams.ServerHostOverride)
};
}
- var channel = new Channel(target, credentials, channelOptions);
- return new ClientRunnerImpl(channel,
- config.ClientType,
- config.RpcType,
- config.PayloadConfig,
- config.HistogramParams);
+ var result = new List<Channel>();
+ for (int i = 0; i < clientChannels; i++)
+ {
+ var target = serverTargets.ElementAt(i % serverTargets.Count());
+ var channel = new Channel(target, credentials, channelOptions);
+ result.Add(channel);
+ }
+ return result;
}
}
@@ -106,30 +116,35 @@ namespace Grpc.IntegrationTesting
{
const double SecondsToNanos = 1e9;
- readonly Channel channel;
+ readonly List<Channel> channels;
readonly ClientType clientType;
readonly RpcType rpcType;
readonly PayloadConfig payloadConfig;
readonly Histogram histogram;
- readonly BenchmarkService.IBenchmarkServiceClient client;
- readonly Task runnerTask;
- readonly CancellationTokenSource stoppedCts;
+ readonly List<Task> runnerTasks;
+ readonly CancellationTokenSource stoppedCts = new CancellationTokenSource();
readonly WallClockStopwatch wallClockStopwatch = new WallClockStopwatch();
- public ClientRunnerImpl(Channel channel, ClientType clientType, RpcType rpcType, PayloadConfig payloadConfig, HistogramParams histogramParams)
+ public ClientRunnerImpl(List<Channel> channels, ClientType clientType, RpcType rpcType, int outstandingRpcsPerChannel, LoadParams loadParams, PayloadConfig payloadConfig, HistogramParams histogramParams)
{
- this.channel = GrpcPreconditions.CheckNotNull(channel);
+ GrpcPreconditions.CheckArgument(outstandingRpcsPerChannel > 0, "outstandingRpcsPerChannel");
+ this.channels = new List<Channel>(channels);
this.clientType = clientType;
this.rpcType = rpcType;
this.payloadConfig = payloadConfig;
this.histogram = new Histogram(histogramParams.Resolution, histogramParams.MaxPossible);
- this.stoppedCts = new CancellationTokenSource();
- this.client = BenchmarkService.NewClient(channel);
-
- var threadBody = GetThreadBody();
- this.runnerTask = Task.Factory.StartNew(threadBody, TaskCreationOptions.LongRunning);
+ this.runnerTasks = new List<Task>();
+ foreach (var channel in this.channels)
+ {
+ for (int i = 0; i < outstandingRpcsPerChannel; i++)
+ {
+ var timer = CreateTimer(loadParams, 1.0 / this.channels.Count / outstandingRpcsPerChannel);
+ var threadBody = GetThreadBody(channel, timer);
+ this.runnerTasks.Add(Task.Factory.StartNew(threadBody, TaskCreationOptions.LongRunning));
+ }
+ }
}
public ClientStats GetStats(bool reset)
@@ -150,12 +165,19 @@ namespace Grpc.IntegrationTesting
public async Task StopAsync()
{
stoppedCts.Cancel();
- await runnerTask;
- await channel.ShutdownAsync();
+ foreach (var runnerTask in runnerTasks)
+ {
+ await runnerTask;
+ }
+ foreach (var channel in channels)
+ {
+ await channel.ShutdownAsync();
+ }
}
- private void RunClosedLoopUnary()
+ private void RunUnary(Channel channel, IInterarrivalTimer timer)
{
+ var client = BenchmarkService.NewClient(channel);
var request = CreateSimpleRequest();
var stopwatch = new Stopwatch();
@@ -167,11 +189,14 @@ namespace Grpc.IntegrationTesting
// spec requires data point in nanoseconds.
histogram.AddObservation(stopwatch.Elapsed.TotalSeconds * SecondsToNanos);
+
+ timer.WaitForNext();
}
}
- private async Task RunClosedLoopUnaryAsync()
+ private async Task RunUnaryAsync(Channel channel, IInterarrivalTimer timer)
{
+ var client = BenchmarkService.NewClient(channel);
var request = CreateSimpleRequest();
var stopwatch = new Stopwatch();
@@ -183,11 +208,14 @@ namespace Grpc.IntegrationTesting
// spec requires data point in nanoseconds.
histogram.AddObservation(stopwatch.Elapsed.TotalSeconds * SecondsToNanos);
+
+ await timer.WaitForNextAsync();
}
}
- private async Task RunClosedLoopStreamingAsync()
+ private async Task RunStreamingPingPongAsync(Channel channel, IInterarrivalTimer timer)
{
+ var client = BenchmarkService.NewClient(channel);
var request = CreateSimpleRequest();
var stopwatch = new Stopwatch();
@@ -202,6 +230,8 @@ namespace Grpc.IntegrationTesting
// spec requires data point in nanoseconds.
histogram.AddObservation(stopwatch.Elapsed.TotalSeconds * SecondsToNanos);
+
+ await timer.WaitForNextAsync();
}
// finish the streaming call
@@ -210,7 +240,7 @@ namespace Grpc.IntegrationTesting
}
}
- private async Task RunGenericClosedLoopStreamingAsync()
+ private async Task RunGenericStreamingAsync(Channel channel, IInterarrivalTimer timer)
{
var request = CreateByteBufferRequest();
var stopwatch = new Stopwatch();
@@ -228,6 +258,8 @@ namespace Grpc.IntegrationTesting
// spec requires data point in nanoseconds.
histogram.AddObservation(stopwatch.Elapsed.TotalSeconds * SecondsToNanos);
+
+ await timer.WaitForNextAsync();
}
// finish the streaming call
@@ -236,7 +268,7 @@ namespace Grpc.IntegrationTesting
}
}
- private Action GetThreadBody()
+ private Action GetThreadBody(Channel channel, IInterarrivalTimer timer)
{
if (payloadConfig.PayloadCase == PayloadConfig.PayloadOneofCase.BytebufParams)
{
@@ -244,7 +276,7 @@ namespace Grpc.IntegrationTesting
GrpcPreconditions.CheckArgument(rpcType == RpcType.STREAMING, "Generic client only supports streaming calls");
return () =>
{
- RunGenericClosedLoopStreamingAsync().Wait();
+ RunGenericStreamingAsync(channel, timer).Wait();
};
}
@@ -252,7 +284,7 @@ namespace Grpc.IntegrationTesting
if (clientType == ClientType.SYNC_CLIENT)
{
GrpcPreconditions.CheckArgument(rpcType == RpcType.UNARY, "Sync client can only be used for Unary calls in C#");
- return RunClosedLoopUnary;
+ return () => RunUnary(channel, timer);
}
else if (clientType == ClientType.ASYNC_CLIENT)
{
@@ -261,12 +293,12 @@ namespace Grpc.IntegrationTesting
case RpcType.UNARY:
return () =>
{
- RunClosedLoopUnaryAsync().Wait();
+ RunUnaryAsync(channel, timer).Wait();
};
case RpcType.STREAMING:
return () =>
{
- RunClosedLoopStreamingAsync().Wait();
+ RunStreamingPingPongAsync(channel, timer).Wait();
};
}
}
@@ -292,5 +324,18 @@ namespace Grpc.IntegrationTesting
{
return new Payload { Body = ByteString.CopyFrom(new byte[size]) };
}
+
+ private static IInterarrivalTimer CreateTimer(LoadParams loadParams, double loadMultiplier)
+ {
+ switch (loadParams.LoadCase)
+ {
+ case LoadParams.LoadOneofCase.ClosedLoop:
+ return new ClosedLoopInterarrivalTimer();
+ case LoadParams.LoadOneofCase.Poisson:
+ return new PoissonInterarrivalTimer(loadParams.Poisson.OfferedLoad * loadMultiplier);
+ default:
+ throw new ArgumentException("Unknown load type");
+ }
+ }
}
}
diff --git a/src/csharp/Grpc.IntegrationTesting/GeneratedClientTest.cs b/src/csharp/Grpc.IntegrationTesting/GeneratedClientTest.cs
new file mode 100644
index 0000000000..37786b6c30
--- /dev/null
+++ b/src/csharp/Grpc.IntegrationTesting/GeneratedClientTest.cs
@@ -0,0 +1,106 @@
+#region Copyright notice and license
+
+// Copyright 2015-2016, 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.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using Grpc.Core;
+using Grpc.Core.Utils;
+using Grpc.Testing;
+using Moq;
+using NUnit.Framework;
+
+namespace Grpc.IntegrationTesting
+{
+ public class GeneratedClientTest
+ {
+ TestService.TestServiceClient unimplementedClient = new UnimplementedTestServiceClient();
+
+ [Test]
+ public void ExpandedParamOverloadCanBeMocked()
+ {
+ var expected = new SimpleResponse();
+
+ var mockClient = new Mock<TestService.TestServiceClient>();
+ // mocking is relatively clumsy because one needs to specify value for all the optional params.
+ mockClient.Setup(m => m.UnaryCall(It.IsAny<SimpleRequest>(), null, null, CancellationToken.None)).Returns(expected);
+
+ Assert.AreSame(expected, mockClient.Object.UnaryCall(new SimpleRequest()));
+ }
+
+ [Test]
+ public void CallOptionsOverloadCanBeMocked()
+ {
+ var expected = new SimpleResponse();
+
+ var mockClient = new Mock<TestService.TestServiceClient>();
+ mockClient.Setup(m => m.UnaryCall(It.IsAny<SimpleRequest>(), It.IsAny<CallOptions>())).Returns(expected);
+
+ Assert.AreSame(expected, mockClient.Object.UnaryCall(new SimpleRequest(), new CallOptions()));
+ }
+
+ [Test]
+ public void DefaultMethodStubThrows_UnaryCall()
+ {
+ Assert.Throws(typeof(NotImplementedException), () => unimplementedClient.UnaryCall(new SimpleRequest()));
+ }
+
+ [Test]
+ public void DefaultMethodStubThrows_ClientStreaming()
+ {
+ Assert.Throws(typeof(NotImplementedException), () => unimplementedClient.StreamingInputCall());
+ }
+
+ [Test]
+ public void DefaultMethodStubThrows_ServerStreaming()
+ {
+ Assert.Throws(typeof(NotImplementedException), () => unimplementedClient.StreamingOutputCall(new StreamingOutputCallRequest()));
+ }
+
+ [Test]
+ public void DefaultMethodStubThrows_DuplexStreaming()
+ {
+ Assert.Throws(typeof(NotImplementedException), () => unimplementedClient.FullDuplexCall());
+ }
+
+ /// <summary>
+ /// Subclass of the generated client that doesn't override any method stubs.
+ /// </summary>
+ private class UnimplementedTestServiceClient : TestService.TestServiceClient
+ {
+ }
+ }
+}
diff --git a/src/csharp/Grpc.IntegrationTesting/GeneratedServiceBaseTest.cs b/src/csharp/Grpc.IntegrationTesting/GeneratedServiceBaseTest.cs
new file mode 100644
index 0000000000..99aa729030
--- /dev/null
+++ b/src/csharp/Grpc.IntegrationTesting/GeneratedServiceBaseTest.cs
@@ -0,0 +1,116 @@
+#region Copyright notice and license
+
+// Copyright 2015-2016, 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.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using Grpc.Core;
+using Grpc.Core.Utils;
+using Grpc.Testing;
+using Moq;
+using NUnit.Framework;
+
+namespace Grpc.IntegrationTesting
+{
+ public class GeneratedServiceBaseTest
+ {
+ const string Host = "localhost";
+ Server server;
+ Channel channel;
+ TestService.TestServiceClient client;
+
+ [SetUp]
+ public void Init()
+ {
+ server = new Server
+ {
+ Services = { TestService.BindService(new UnimplementedTestServiceImpl()) },
+ Ports = { { Host, ServerPort.PickUnused, SslServerCredentials.Insecure } }
+ };
+ server.Start();
+ channel = new Channel(Host, server.Ports.Single().BoundPort, ChannelCredentials.Insecure);
+ client = TestService.NewClient(channel);
+ }
+
+ [TearDown]
+ public void Cleanup()
+ {
+ channel.ShutdownAsync().Wait();
+ server.ShutdownAsync().Wait();
+ }
+
+ [Test]
+ public void UnimplementedByDefault_Unary()
+ {
+ var ex = Assert.Throws<RpcException>(() => client.UnaryCall(new SimpleRequest { }));
+ Assert.AreEqual(StatusCode.Unimplemented, ex.Status.StatusCode);
+ }
+
+ [Test]
+ public async Task UnimplementedByDefault_ClientStreaming()
+ {
+ var call = client.StreamingInputCall();
+
+ var ex = Assert.Throws<RpcException>(async () => await call);
+ Assert.AreEqual(StatusCode.Unimplemented, ex.Status.StatusCode);
+ }
+
+ [Test]
+ public async Task UnimplementedByDefault_ServerStreamingCall()
+ {
+ var call = client.StreamingOutputCall(new StreamingOutputCallRequest());
+
+ var ex = Assert.Throws<RpcException>(async () => await call.ResponseStream.MoveNext());
+ Assert.AreEqual(StatusCode.Unimplemented, ex.Status.StatusCode);
+ }
+
+ [Test]
+ public async Task UnimplementedByDefault_DuplexStreamingCall()
+ {
+ var call = client.FullDuplexCall();
+
+ var ex = Assert.Throws<RpcException>(async () => await call.ResponseStream.MoveNext());
+ Assert.AreEqual(StatusCode.Unimplemented, ex.Status.StatusCode);
+ }
+
+ /// <summary>
+ /// Implementation of TestService that doesn't override any methods.
+ /// </summary>
+ private class UnimplementedTestServiceImpl : TestService.TestServiceBase
+ {
+ }
+ }
+}
diff --git a/src/csharp/Grpc.IntegrationTesting/Grpc.IntegrationTesting.csproj b/src/csharp/Grpc.IntegrationTesting/Grpc.IntegrationTesting.csproj
index 4c049944ea..7ea80b11f0 100644
--- a/src/csharp/Grpc.IntegrationTesting/Grpc.IntegrationTesting.csproj
+++ b/src/csharp/Grpc.IntegrationTesting/Grpc.IntegrationTesting.csproj
@@ -8,7 +8,7 @@
<RootNamespace>Grpc.IntegrationTesting</RootNamespace>
<AssemblyName>Grpc.IntegrationTesting</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
- <NuGetPackageImportStamp>6566287f</NuGetPackageImportStamp>
+ <NuGetPackageImportStamp>3a1c655d</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -38,20 +38,24 @@
<AssemblyOriginatorKeyFile>..\keys\Grpc.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<ItemGroup>
+ <Reference Include="BouncyCastle.Crypto, Version=1.7.4137.9688, Culture=neutral, PublicKeyToken=a4292a325f69b123, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\packages\BouncyCastle.1.7.0\lib\Net40-Client\BouncyCastle.Crypto.dll</HintPath>
+ </Reference>
<Reference Include="CommandLine">
<HintPath>..\packages\CommandLineParser.1.9.71\lib\net45\CommandLine.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Auth, Version=1.10.0.25333, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Google.Apis.Auth, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Auth.1.10.0\lib\net40\Google.Apis.Auth.dll</HintPath>
+ <HintPath>..\packages\Google.Apis.Auth.1.11.1\lib\net45\Google.Apis.Auth.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Auth.PlatformServices, Version=1.10.0.25333, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Google.Apis.Auth.PlatformServices, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Auth.1.10.0\lib\net40\Google.Apis.Auth.PlatformServices.dll</HintPath>
+ <HintPath>..\packages\Google.Apis.Auth.1.11.1\lib\net45\Google.Apis.Auth.PlatformServices.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Core, Version=1.10.0.25331, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Google.Apis.Core, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Core.1.10.0\lib\portable-net40+sl50+win+wpa81+wp80\Google.Apis.Core.dll</HintPath>
+ <HintPath>..\packages\Google.Apis.Core.1.11.1\lib\net45\Google.Apis.Core.dll</HintPath>
</Reference>
<Reference Include="Google.Protobuf, Version=3.0.0.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
@@ -60,6 +64,10 @@
<Reference Include="Moq">
<HintPath>..\packages\Moq.4.2.1510.2205\lib\net40\Moq.dll</HintPath>
</Reference>
+ <Reference Include="Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
+ </Reference>
<Reference Include="nunit.framework">
<HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
</Reference>
@@ -71,27 +79,11 @@
<Reference Include="System.Net" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Net.Http.WebRequest" />
- <Reference Include="BouncyCastle.Crypto">
- <HintPath>..\packages\BouncyCastle.1.7.0\lib\Net40-Client\BouncyCastle.Crypto.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks">
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks.Extensions">
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks.Extensions.Desktop">
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll</HintPath>
- </Reference>
- <Reference Include="Newtonsoft.Json">
- <HintPath>..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
- </Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\Grpc.Core\Version.cs">
<Link>Version.cs</Link>
</Compile>
- <Compile Include="HeaderInterceptorTest.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Empty.cs" />
<Compile Include="Messages.cs" />
@@ -121,6 +113,9 @@
<Compile Include="QpsWorker.cs" />
<Compile Include="WallClockStopwatch.cs" />
<Compile Include="GenericService.cs" />
+ <Compile Include="GeneratedServiceBaseTest.cs" />
+ <Compile Include="GeneratedClientTest.cs" />
+ <Compile Include="InterarrivalTimers.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ItemGroup>
@@ -134,8 +129,9 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
- <None Include="app.config" />
- <None Include="packages.config" />
+ <None Include="packages.config">
+ <SubType>Designer</SubType>
+ </None>
<None Include="data\README">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
@@ -152,11 +148,4 @@
<ItemGroup>
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
</ItemGroup>
- <Import Project="..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
- <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
- <PropertyGroup>
- <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
- </PropertyGroup>
- <Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
- </Target>
</Project> \ No newline at end of file
diff --git a/src/csharp/Grpc.IntegrationTesting/InterarrivalTimers.cs b/src/csharp/Grpc.IntegrationTesting/InterarrivalTimers.cs
new file mode 100644
index 0000000000..6492d34890
--- /dev/null
+++ b/src/csharp/Grpc.IntegrationTesting/InterarrivalTimers.cs
@@ -0,0 +1,148 @@
+#region Copyright notice and license
+
+// Copyright 2016, 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.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using System.Text.RegularExpressions;
+using System.Threading;
+using System.Threading.Tasks;
+using Google.Protobuf;
+using Grpc.Core;
+using Grpc.Core.Utils;
+using Grpc.Testing;
+
+namespace Grpc.IntegrationTesting
+{
+ public interface IInterarrivalTimer
+ {
+ void WaitForNext();
+
+ Task WaitForNextAsync();
+ }
+
+ /// <summary>
+ /// Interarrival timer that doesn't wait at all.
+ /// </summary>
+ public class ClosedLoopInterarrivalTimer : IInterarrivalTimer
+ {
+ public ClosedLoopInterarrivalTimer()
+ {
+ }
+
+ public void WaitForNext()
+ {
+ // NOP
+ }
+
+ public Task WaitForNextAsync()
+ {
+ return Task.FromResult<object>(null);
+ }
+ }
+
+ /// <summary>
+ /// Interarrival timer that generates Poisson process load.
+ /// </summary>
+ public class PoissonInterarrivalTimer : IInterarrivalTimer
+ {
+ readonly ExponentialDistribution exponentialDistribution;
+ DateTime? lastEventTime;
+
+ public PoissonInterarrivalTimer(double offeredLoad)
+ {
+ this.exponentialDistribution = new ExponentialDistribution(new Random(), offeredLoad);
+ this.lastEventTime = DateTime.UtcNow;
+ }
+
+ public void WaitForNext()
+ {
+ var waitDuration = GetNextWaitDuration();
+ int millisTimeout = (int) Math.Round(waitDuration.TotalMilliseconds);
+ if (millisTimeout > 0)
+ {
+ // TODO(jtattermusch): probably only works well for a relatively low interarrival rate
+ Thread.Sleep(millisTimeout);
+ }
+ }
+
+ public async Task WaitForNextAsync()
+ {
+ var waitDuration = GetNextWaitDuration();
+ int millisTimeout = (int) Math.Round(waitDuration.TotalMilliseconds);
+ if (millisTimeout > 0)
+ {
+ // TODO(jtattermusch): probably only works well for a relatively low interarrival rate
+ await Task.Delay(millisTimeout);
+ }
+ }
+
+ private TimeSpan GetNextWaitDuration()
+ {
+ if (!lastEventTime.HasValue)
+ {
+ this.lastEventTime = DateTime.Now;
+ }
+
+ var origLastEventTime = this.lastEventTime.Value;
+ this.lastEventTime = origLastEventTime + TimeSpan.FromSeconds(exponentialDistribution.Next());
+ return this.lastEventTime.Value - origLastEventTime;
+ }
+
+ /// <summary>
+ /// Exp generator.
+ /// </summary>
+ private class ExponentialDistribution
+ {
+ readonly Random random;
+ readonly double lambda;
+ readonly double lambdaReciprocal;
+
+ public ExponentialDistribution(Random random, double lambda)
+ {
+ this.random = random;
+ this.lambda = lambda;
+ this.lambdaReciprocal = 1.0 / lambda;
+ }
+
+ public double Next()
+ {
+ double uniform = random.NextDouble();
+ // Use 1.0-uni above to avoid NaN if uni is 0
+ return lambdaReciprocal * (-Math.Log(1.0 - uniform));
+ }
+ }
+ }
+}
diff --git a/src/csharp/Grpc.IntegrationTesting/InteropClient.cs b/src/csharp/Grpc.IntegrationTesting/InteropClient.cs
index b0e33e49f7..7ca5221936 100644
--- a/src/csharp/Grpc.IntegrationTesting/InteropClient.cs
+++ b/src/csharp/Grpc.IntegrationTesting/InteropClient.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -217,7 +217,7 @@ namespace Grpc.IntegrationTesting
}
}
- public static void RunEmptyUnary(TestService.ITestServiceClient client)
+ public static void RunEmptyUnary(TestService.TestServiceClient client)
{
Console.WriteLine("running empty_unary");
var response = client.EmptyCall(new Empty());
@@ -225,7 +225,7 @@ namespace Grpc.IntegrationTesting
Console.WriteLine("Passed!");
}
- public static void RunLargeUnary(TestService.ITestServiceClient client)
+ public static void RunLargeUnary(TestService.TestServiceClient client)
{
Console.WriteLine("running large_unary");
var request = new SimpleRequest
@@ -241,7 +241,7 @@ namespace Grpc.IntegrationTesting
Console.WriteLine("Passed!");
}
- public static async Task RunClientStreamingAsync(TestService.ITestServiceClient client)
+ public static async Task RunClientStreamingAsync(TestService.TestServiceClient client)
{
Console.WriteLine("running client_streaming");
@@ -257,7 +257,7 @@ namespace Grpc.IntegrationTesting
Console.WriteLine("Passed!");
}
- public static async Task RunServerStreamingAsync(TestService.ITestServiceClient client)
+ public static async Task RunServerStreamingAsync(TestService.TestServiceClient client)
{
Console.WriteLine("running server_streaming");
@@ -281,7 +281,7 @@ namespace Grpc.IntegrationTesting
Console.WriteLine("Passed!");
}
- public static async Task RunPingPongAsync(TestService.ITestServiceClient client)
+ public static async Task RunPingPongAsync(TestService.TestServiceClient client)
{
Console.WriteLine("running ping_pong");
@@ -338,7 +338,7 @@ namespace Grpc.IntegrationTesting
Console.WriteLine("Passed!");
}
- public static async Task RunEmptyStreamAsync(TestService.ITestServiceClient client)
+ public static async Task RunEmptyStreamAsync(TestService.TestServiceClient client)
{
Console.WriteLine("running empty_stream");
using (var call = client.FullDuplexCall())
@@ -434,7 +434,7 @@ namespace Grpc.IntegrationTesting
Console.WriteLine("Passed!");
}
- public static async Task RunCancelAfterBeginAsync(TestService.ITestServiceClient client)
+ public static async Task RunCancelAfterBeginAsync(TestService.TestServiceClient client)
{
Console.WriteLine("running cancel_after_begin");
@@ -451,7 +451,7 @@ namespace Grpc.IntegrationTesting
Console.WriteLine("Passed!");
}
- public static async Task RunCancelAfterFirstResponseAsync(TestService.ITestServiceClient client)
+ public static async Task RunCancelAfterFirstResponseAsync(TestService.TestServiceClient client)
{
Console.WriteLine("running cancel_after_first_response");
@@ -477,7 +477,7 @@ namespace Grpc.IntegrationTesting
Console.WriteLine("Passed!");
}
- public static async Task RunTimeoutOnSleepingServerAsync(TestService.ITestServiceClient client)
+ public static async Task RunTimeoutOnSleepingServerAsync(TestService.TestServiceClient client)
{
Console.WriteLine("running timeout_on_sleeping_server");
@@ -499,7 +499,7 @@ namespace Grpc.IntegrationTesting
Console.WriteLine("Passed!");
}
- public static async Task RunCustomMetadataAsync(TestService.ITestServiceClient client)
+ public static async Task RunCustomMetadataAsync(TestService.TestServiceClient client)
{
Console.WriteLine("running custom_metadata");
{
@@ -546,7 +546,7 @@ namespace Grpc.IntegrationTesting
Console.WriteLine("Passed!");
}
- public static async Task RunStatusCodeAndMessageAsync(TestService.ITestServiceClient client)
+ public static async Task RunStatusCodeAndMessageAsync(TestService.TestServiceClient client)
{
Console.WriteLine("running status_code_and_message");
var echoStatus = new EchoStatus
@@ -580,7 +580,7 @@ namespace Grpc.IntegrationTesting
Console.WriteLine("Passed!");
}
- public static void RunUnimplementedMethod(UnimplementedService.IUnimplementedServiceClient client)
+ public static void RunUnimplementedMethod(UnimplementedService.UnimplementedServiceClient client)
{
Console.WriteLine("running unimplemented_method");
var e = Assert.Throws<RpcException>(() => client.UnimplementedCall(new Empty()));
diff --git a/src/csharp/Grpc.IntegrationTesting/InteropClientServerTest.cs b/src/csharp/Grpc.IntegrationTesting/InteropClientServerTest.cs
index 5facb87971..4ee1ff5ec8 100644
--- a/src/csharp/Grpc.IntegrationTesting/InteropClientServerTest.cs
+++ b/src/csharp/Grpc.IntegrationTesting/InteropClientServerTest.cs
@@ -51,7 +51,7 @@ namespace Grpc.IntegrationTesting
const string Host = "localhost";
Server server;
Channel channel;
- TestService.ITestServiceClient client;
+ TestService.TestServiceClient client;
[TestFixtureSetUp]
public void Init()
diff --git a/src/csharp/Grpc.IntegrationTesting/MetadataCredentialsTest.cs b/src/csharp/Grpc.IntegrationTesting/MetadataCredentialsTest.cs
index 1c8bfed1f6..f95af5008f 100644
--- a/src/csharp/Grpc.IntegrationTesting/MetadataCredentialsTest.cs
+++ b/src/csharp/Grpc.IntegrationTesting/MetadataCredentialsTest.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -50,15 +50,15 @@ namespace Grpc.IntegrationTesting
const string Host = "localhost";
Server server;
Channel channel;
- TestService.ITestServiceClient client;
+ TestService.TestServiceClient client;
List<ChannelOption> options;
- Mock<TestService.ITestService> serviceMock;
+ Mock<TestService.TestServiceBase> serviceMock;
AsyncAuthInterceptor asyncAuthInterceptor;
[SetUp]
public void Init()
{
- serviceMock = new Mock<TestService.ITestService>();
+ serviceMock = new Mock<TestService.TestServiceBase>();
serviceMock.Setup(m => m.UnaryCall(It.IsAny<SimpleRequest>(), It.IsAny<ServerCallContext>()))
.Returns(new Func<SimpleRequest, ServerCallContext, Task<SimpleResponse>>(UnaryCallHandler));
diff --git a/src/csharp/Grpc.IntegrationTesting/ServicesGrpc.cs b/src/csharp/Grpc.IntegrationTesting/ServicesGrpc.cs
index 996439afbf..46b16cf202 100644
--- a/src/csharp/Grpc.IntegrationTesting/ServicesGrpc.cs
+++ b/src/csharp/Grpc.IntegrationTesting/ServicesGrpc.cs
@@ -36,6 +36,7 @@ namespace Grpc.Testing {
}
// client interface
+ [System.Obsolete("Client side interfaced will be removed in the next release. Use client class directly.")]
public interface IBenchmarkServiceClient
{
global::Grpc.Testing.SimpleResponse UnaryCall(global::Grpc.Testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken));
@@ -47,47 +48,73 @@ namespace Grpc.Testing {
}
// server-side interface
+ [System.Obsolete("Service implementations should inherit from the generated abstract base class instead.")]
public interface IBenchmarkService
{
Task<global::Grpc.Testing.SimpleResponse> UnaryCall(global::Grpc.Testing.SimpleRequest request, ServerCallContext context);
Task StreamingCall(IAsyncStreamReader<global::Grpc.Testing.SimpleRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.SimpleResponse> responseStream, ServerCallContext context);
}
+ // server-side abstract class
+ public abstract class BenchmarkServiceBase
+ {
+ public virtual Task<global::Grpc.Testing.SimpleResponse> UnaryCall(global::Grpc.Testing.SimpleRequest request, ServerCallContext context)
+ {
+ throw new RpcException(new Status(StatusCode.Unimplemented, ""));
+ }
+
+ public virtual Task StreamingCall(IAsyncStreamReader<global::Grpc.Testing.SimpleRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.SimpleResponse> responseStream, ServerCallContext context)
+ {
+ throw new RpcException(new Status(StatusCode.Unimplemented, ""));
+ }
+
+ }
+
// client stub
- public class BenchmarkServiceClient : ClientBase, IBenchmarkServiceClient
+ public class BenchmarkServiceClient : ClientBase<BenchmarkServiceClient>, IBenchmarkServiceClient
{
public BenchmarkServiceClient(Channel channel) : base(channel)
{
}
- public global::Grpc.Testing.SimpleResponse UnaryCall(global::Grpc.Testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public BenchmarkServiceClient(CallInvoker callInvoker) : base(callInvoker)
+ {
+ }
+ ///<summary>Protected parameterless constructor to allow creation of test doubles.</summary>
+ protected BenchmarkServiceClient() : base()
{
- var call = CreateCall(__Method_UnaryCall, new CallOptions(headers, deadline, cancellationToken));
- return Calls.BlockingUnaryCall(call, request);
}
- public global::Grpc.Testing.SimpleResponse UnaryCall(global::Grpc.Testing.SimpleRequest request, CallOptions options)
+ ///<summary>Protected constructor to allow creation of configured clients.</summary>
+ protected BenchmarkServiceClient(ClientBaseConfiguration configuration) : base(configuration)
{
- var call = CreateCall(__Method_UnaryCall, options);
- return Calls.BlockingUnaryCall(call, request);
}
- public AsyncUnaryCall<global::Grpc.Testing.SimpleResponse> UnaryCallAsync(global::Grpc.Testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+
+ public virtual global::Grpc.Testing.SimpleResponse UnaryCall(global::Grpc.Testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_UnaryCall, new CallOptions(headers, deadline, cancellationToken));
- return Calls.AsyncUnaryCall(call, request);
+ return UnaryCall(request, new CallOptions(headers, deadline, cancellationToken));
}
- public AsyncUnaryCall<global::Grpc.Testing.SimpleResponse> UnaryCallAsync(global::Grpc.Testing.SimpleRequest request, CallOptions options)
+ public virtual global::Grpc.Testing.SimpleResponse UnaryCall(global::Grpc.Testing.SimpleRequest request, CallOptions options)
{
- var call = CreateCall(__Method_UnaryCall, options);
- return Calls.AsyncUnaryCall(call, request);
+ return CallInvoker.BlockingUnaryCall(__Method_UnaryCall, null, options, request);
}
- public AsyncDuplexStreamingCall<global::Grpc.Testing.SimpleRequest, global::Grpc.Testing.SimpleResponse> StreamingCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public virtual AsyncUnaryCall<global::Grpc.Testing.SimpleResponse> UnaryCallAsync(global::Grpc.Testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_StreamingCall, new CallOptions(headers, deadline, cancellationToken));
- return Calls.AsyncDuplexStreamingCall(call);
+ return UnaryCallAsync(request, new CallOptions(headers, deadline, cancellationToken));
}
- public AsyncDuplexStreamingCall<global::Grpc.Testing.SimpleRequest, global::Grpc.Testing.SimpleResponse> StreamingCall(CallOptions options)
+ public virtual AsyncUnaryCall<global::Grpc.Testing.SimpleResponse> UnaryCallAsync(global::Grpc.Testing.SimpleRequest request, CallOptions options)
{
- var call = CreateCall(__Method_StreamingCall, options);
- return Calls.AsyncDuplexStreamingCall(call);
+ return CallInvoker.AsyncUnaryCall(__Method_UnaryCall, null, options, request);
+ }
+ public virtual AsyncDuplexStreamingCall<global::Grpc.Testing.SimpleRequest, global::Grpc.Testing.SimpleResponse> StreamingCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ {
+ return StreamingCall(new CallOptions(headers, deadline, cancellationToken));
+ }
+ public virtual AsyncDuplexStreamingCall<global::Grpc.Testing.SimpleRequest, global::Grpc.Testing.SimpleResponse> StreamingCall(CallOptions options)
+ {
+ return CallInvoker.AsyncDuplexStreamingCall(__Method_StreamingCall, null, options);
+ }
+ protected override BenchmarkServiceClient NewInstance(ClientBaseConfiguration configuration)
+ {
+ return new BenchmarkServiceClient(configuration);
}
}
@@ -99,6 +126,14 @@ namespace Grpc.Testing {
.AddMethod(__Method_StreamingCall, serviceImpl.StreamingCall).Build();
}
+ // creates service definition that can be registered with a server
+ public static ServerServiceDefinition BindService(BenchmarkServiceBase serviceImpl)
+ {
+ return ServerServiceDefinition.CreateBuilder(__ServiceName)
+ .AddMethod(__Method_UnaryCall, serviceImpl.UnaryCall)
+ .AddMethod(__Method_StreamingCall, serviceImpl.StreamingCall).Build();
+ }
+
// creates a new client
public static BenchmarkServiceClient NewClient(Channel channel)
{
@@ -153,6 +188,7 @@ namespace Grpc.Testing {
}
// client interface
+ [System.Obsolete("Client side interfaced will be removed in the next release. Use client class directly.")]
public interface IWorkerServiceClient
{
AsyncDuplexStreamingCall<global::Grpc.Testing.ServerArgs, global::Grpc.Testing.ServerStatus> RunServer(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken));
@@ -170,6 +206,7 @@ namespace Grpc.Testing {
}
// server-side interface
+ [System.Obsolete("Service implementations should inherit from the generated abstract base class instead.")]
public interface IWorkerService
{
Task RunServer(IAsyncStreamReader<global::Grpc.Testing.ServerArgs> requestStream, IServerStreamWriter<global::Grpc.Testing.ServerStatus> responseStream, ServerCallContext context);
@@ -178,71 +215,100 @@ namespace Grpc.Testing {
Task<global::Grpc.Testing.Void> QuitWorker(global::Grpc.Testing.Void request, ServerCallContext context);
}
+ // server-side abstract class
+ public abstract class WorkerServiceBase
+ {
+ public virtual Task RunServer(IAsyncStreamReader<global::Grpc.Testing.ServerArgs> requestStream, IServerStreamWriter<global::Grpc.Testing.ServerStatus> responseStream, ServerCallContext context)
+ {
+ throw new RpcException(new Status(StatusCode.Unimplemented, ""));
+ }
+
+ public virtual Task RunClient(IAsyncStreamReader<global::Grpc.Testing.ClientArgs> requestStream, IServerStreamWriter<global::Grpc.Testing.ClientStatus> responseStream, ServerCallContext context)
+ {
+ throw new RpcException(new Status(StatusCode.Unimplemented, ""));
+ }
+
+ public virtual Task<global::Grpc.Testing.CoreResponse> CoreCount(global::Grpc.Testing.CoreRequest request, ServerCallContext context)
+ {
+ throw new RpcException(new Status(StatusCode.Unimplemented, ""));
+ }
+
+ public virtual Task<global::Grpc.Testing.Void> QuitWorker(global::Grpc.Testing.Void request, ServerCallContext context)
+ {
+ throw new RpcException(new Status(StatusCode.Unimplemented, ""));
+ }
+
+ }
+
// client stub
- public class WorkerServiceClient : ClientBase, IWorkerServiceClient
+ public class WorkerServiceClient : ClientBase<WorkerServiceClient>, IWorkerServiceClient
{
public WorkerServiceClient(Channel channel) : base(channel)
{
}
- public AsyncDuplexStreamingCall<global::Grpc.Testing.ServerArgs, global::Grpc.Testing.ServerStatus> RunServer(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public WorkerServiceClient(CallInvoker callInvoker) : base(callInvoker)
{
- var call = CreateCall(__Method_RunServer, new CallOptions(headers, deadline, cancellationToken));
- return Calls.AsyncDuplexStreamingCall(call);
}
- public AsyncDuplexStreamingCall<global::Grpc.Testing.ServerArgs, global::Grpc.Testing.ServerStatus> RunServer(CallOptions options)
+ ///<summary>Protected parameterless constructor to allow creation of test doubles.</summary>
+ protected WorkerServiceClient() : base()
{
- var call = CreateCall(__Method_RunServer, options);
- return Calls.AsyncDuplexStreamingCall(call);
}
- public AsyncDuplexStreamingCall<global::Grpc.Testing.ClientArgs, global::Grpc.Testing.ClientStatus> RunClient(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ ///<summary>Protected constructor to allow creation of configured clients.</summary>
+ protected WorkerServiceClient(ClientBaseConfiguration configuration) : base(configuration)
{
- var call = CreateCall(__Method_RunClient, new CallOptions(headers, deadline, cancellationToken));
- return Calls.AsyncDuplexStreamingCall(call);
}
- public AsyncDuplexStreamingCall<global::Grpc.Testing.ClientArgs, global::Grpc.Testing.ClientStatus> RunClient(CallOptions options)
+
+ public virtual AsyncDuplexStreamingCall<global::Grpc.Testing.ServerArgs, global::Grpc.Testing.ServerStatus> RunServer(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_RunClient, options);
- return Calls.AsyncDuplexStreamingCall(call);
+ return RunServer(new CallOptions(headers, deadline, cancellationToken));
}
- public global::Grpc.Testing.CoreResponse CoreCount(global::Grpc.Testing.CoreRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public virtual AsyncDuplexStreamingCall<global::Grpc.Testing.ServerArgs, global::Grpc.Testing.ServerStatus> RunServer(CallOptions options)
{
- var call = CreateCall(__Method_CoreCount, new CallOptions(headers, deadline, cancellationToken));
- return Calls.BlockingUnaryCall(call, request);
+ return CallInvoker.AsyncDuplexStreamingCall(__Method_RunServer, null, options);
}
- public global::Grpc.Testing.CoreResponse CoreCount(global::Grpc.Testing.CoreRequest request, CallOptions options)
+ public virtual AsyncDuplexStreamingCall<global::Grpc.Testing.ClientArgs, global::Grpc.Testing.ClientStatus> RunClient(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_CoreCount, options);
- return Calls.BlockingUnaryCall(call, request);
+ return RunClient(new CallOptions(headers, deadline, cancellationToken));
}
- public AsyncUnaryCall<global::Grpc.Testing.CoreResponse> CoreCountAsync(global::Grpc.Testing.CoreRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public virtual AsyncDuplexStreamingCall<global::Grpc.Testing.ClientArgs, global::Grpc.Testing.ClientStatus> RunClient(CallOptions options)
{
- var call = CreateCall(__Method_CoreCount, new CallOptions(headers, deadline, cancellationToken));
- return Calls.AsyncUnaryCall(call, request);
+ return CallInvoker.AsyncDuplexStreamingCall(__Method_RunClient, null, options);
}
- public AsyncUnaryCall<global::Grpc.Testing.CoreResponse> CoreCountAsync(global::Grpc.Testing.CoreRequest request, CallOptions options)
+ public virtual global::Grpc.Testing.CoreResponse CoreCount(global::Grpc.Testing.CoreRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_CoreCount, options);
- return Calls.AsyncUnaryCall(call, request);
+ return CoreCount(request, new CallOptions(headers, deadline, cancellationToken));
}
- public global::Grpc.Testing.Void QuitWorker(global::Grpc.Testing.Void request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public virtual global::Grpc.Testing.CoreResponse CoreCount(global::Grpc.Testing.CoreRequest request, CallOptions options)
{
- var call = CreateCall(__Method_QuitWorker, new CallOptions(headers, deadline, cancellationToken));
- return Calls.BlockingUnaryCall(call, request);
+ return CallInvoker.BlockingUnaryCall(__Method_CoreCount, null, options, request);
}
- public global::Grpc.Testing.Void QuitWorker(global::Grpc.Testing.Void request, CallOptions options)
+ public virtual AsyncUnaryCall<global::Grpc.Testing.CoreResponse> CoreCountAsync(global::Grpc.Testing.CoreRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_QuitWorker, options);
- return Calls.BlockingUnaryCall(call, request);
+ return CoreCountAsync(request, new CallOptions(headers, deadline, cancellationToken));
}
- public AsyncUnaryCall<global::Grpc.Testing.Void> QuitWorkerAsync(global::Grpc.Testing.Void request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public virtual AsyncUnaryCall<global::Grpc.Testing.CoreResponse> CoreCountAsync(global::Grpc.Testing.CoreRequest request, CallOptions options)
{
- var call = CreateCall(__Method_QuitWorker, new CallOptions(headers, deadline, cancellationToken));
- return Calls.AsyncUnaryCall(call, request);
+ return CallInvoker.AsyncUnaryCall(__Method_CoreCount, null, options, request);
}
- public AsyncUnaryCall<global::Grpc.Testing.Void> QuitWorkerAsync(global::Grpc.Testing.Void request, CallOptions options)
+ public virtual global::Grpc.Testing.Void QuitWorker(global::Grpc.Testing.Void request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_QuitWorker, options);
- return Calls.AsyncUnaryCall(call, request);
+ return QuitWorker(request, new CallOptions(headers, deadline, cancellationToken));
+ }
+ public virtual global::Grpc.Testing.Void QuitWorker(global::Grpc.Testing.Void request, CallOptions options)
+ {
+ return CallInvoker.BlockingUnaryCall(__Method_QuitWorker, null, options, request);
+ }
+ public virtual AsyncUnaryCall<global::Grpc.Testing.Void> QuitWorkerAsync(global::Grpc.Testing.Void request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ {
+ return QuitWorkerAsync(request, new CallOptions(headers, deadline, cancellationToken));
+ }
+ public virtual AsyncUnaryCall<global::Grpc.Testing.Void> QuitWorkerAsync(global::Grpc.Testing.Void request, CallOptions options)
+ {
+ return CallInvoker.AsyncUnaryCall(__Method_QuitWorker, null, options, request);
+ }
+ protected override WorkerServiceClient NewInstance(ClientBaseConfiguration configuration)
+ {
+ return new WorkerServiceClient(configuration);
}
}
@@ -256,6 +322,16 @@ namespace Grpc.Testing {
.AddMethod(__Method_QuitWorker, serviceImpl.QuitWorker).Build();
}
+ // creates service definition that can be registered with a server
+ public static ServerServiceDefinition BindService(WorkerServiceBase serviceImpl)
+ {
+ return ServerServiceDefinition.CreateBuilder(__ServiceName)
+ .AddMethod(__Method_RunServer, serviceImpl.RunServer)
+ .AddMethod(__Method_RunClient, serviceImpl.RunClient)
+ .AddMethod(__Method_CoreCount, serviceImpl.CoreCount)
+ .AddMethod(__Method_QuitWorker, serviceImpl.QuitWorker).Build();
+ }
+
// creates a new client
public static WorkerServiceClient NewClient(Channel channel)
{
diff --git a/src/csharp/Grpc.IntegrationTesting/SslCredentialsTest.cs b/src/csharp/Grpc.IntegrationTesting/SslCredentialsTest.cs
index 37b2518c21..3df45b5f70 100644
--- a/src/csharp/Grpc.IntegrationTesting/SslCredentialsTest.cs
+++ b/src/csharp/Grpc.IntegrationTesting/SslCredentialsTest.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -53,7 +53,7 @@ namespace Grpc.IntegrationTesting
const string Host = "localhost";
Server server;
Channel channel;
- TestService.ITestServiceClient client;
+ TestService.TestServiceClient client;
[TestFixtureSetUp]
public void Init()
diff --git a/src/csharp/Grpc.IntegrationTesting/TestGrpc.cs b/src/csharp/Grpc.IntegrationTesting/TestGrpc.cs
index 2c469080d9..b84ec2d984 100644
--- a/src/csharp/Grpc.IntegrationTesting/TestGrpc.cs
+++ b/src/csharp/Grpc.IntegrationTesting/TestGrpc.cs
@@ -69,6 +69,7 @@ namespace Grpc.Testing {
}
// client interface
+ [System.Obsolete("Client side interfaced will be removed in the next release. Use client class directly.")]
public interface ITestServiceClient
{
global::Grpc.Testing.Empty EmptyCall(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken));
@@ -90,6 +91,7 @@ namespace Grpc.Testing {
}
// server-side interface
+ [System.Obsolete("Service implementations should inherit from the generated abstract base class instead.")]
public interface ITestService
{
Task<global::Grpc.Testing.Empty> EmptyCall(global::Grpc.Testing.Empty request, ServerCallContext context);
@@ -100,91 +102,126 @@ namespace Grpc.Testing {
Task HalfDuplexCall(IAsyncStreamReader<global::Grpc.Testing.StreamingOutputCallRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context);
}
+ // server-side abstract class
+ public abstract class TestServiceBase
+ {
+ public virtual Task<global::Grpc.Testing.Empty> EmptyCall(global::Grpc.Testing.Empty request, ServerCallContext context)
+ {
+ throw new RpcException(new Status(StatusCode.Unimplemented, ""));
+ }
+
+ public virtual Task<global::Grpc.Testing.SimpleResponse> UnaryCall(global::Grpc.Testing.SimpleRequest request, ServerCallContext context)
+ {
+ throw new RpcException(new Status(StatusCode.Unimplemented, ""));
+ }
+
+ public virtual Task StreamingOutputCall(global::Grpc.Testing.StreamingOutputCallRequest request, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context)
+ {
+ throw new RpcException(new Status(StatusCode.Unimplemented, ""));
+ }
+
+ public virtual Task<global::Grpc.Testing.StreamingInputCallResponse> StreamingInputCall(IAsyncStreamReader<global::Grpc.Testing.StreamingInputCallRequest> requestStream, ServerCallContext context)
+ {
+ throw new RpcException(new Status(StatusCode.Unimplemented, ""));
+ }
+
+ public virtual Task FullDuplexCall(IAsyncStreamReader<global::Grpc.Testing.StreamingOutputCallRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context)
+ {
+ throw new RpcException(new Status(StatusCode.Unimplemented, ""));
+ }
+
+ public virtual Task HalfDuplexCall(IAsyncStreamReader<global::Grpc.Testing.StreamingOutputCallRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context)
+ {
+ throw new RpcException(new Status(StatusCode.Unimplemented, ""));
+ }
+
+ }
+
// client stub
- public class TestServiceClient : ClientBase, ITestServiceClient
+ public class TestServiceClient : ClientBase<TestServiceClient>, ITestServiceClient
{
public TestServiceClient(Channel channel) : base(channel)
{
}
- public global::Grpc.Testing.Empty EmptyCall(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public TestServiceClient(CallInvoker callInvoker) : base(callInvoker)
+ {
+ }
+ ///<summary>Protected parameterless constructor to allow creation of test doubles.</summary>
+ protected TestServiceClient() : base()
+ {
+ }
+ ///<summary>Protected constructor to allow creation of configured clients.</summary>
+ protected TestServiceClient(ClientBaseConfiguration configuration) : base(configuration)
+ {
+ }
+
+ public virtual global::Grpc.Testing.Empty EmptyCall(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_EmptyCall, new CallOptions(headers, deadline, cancellationToken));
- return Calls.BlockingUnaryCall(call, request);
+ return EmptyCall(request, new CallOptions(headers, deadline, cancellationToken));
}
- public global::Grpc.Testing.Empty EmptyCall(global::Grpc.Testing.Empty request, CallOptions options)
+ public virtual global::Grpc.Testing.Empty EmptyCall(global::Grpc.Testing.Empty request, CallOptions options)
{
- var call = CreateCall(__Method_EmptyCall, options);
- return Calls.BlockingUnaryCall(call, request);
+ return CallInvoker.BlockingUnaryCall(__Method_EmptyCall, null, options, request);
}
- public AsyncUnaryCall<global::Grpc.Testing.Empty> EmptyCallAsync(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public virtual AsyncUnaryCall<global::Grpc.Testing.Empty> EmptyCallAsync(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_EmptyCall, new CallOptions(headers, deadline, cancellationToken));
- return Calls.AsyncUnaryCall(call, request);
+ return EmptyCallAsync(request, new CallOptions(headers, deadline, cancellationToken));
}
- public AsyncUnaryCall<global::Grpc.Testing.Empty> EmptyCallAsync(global::Grpc.Testing.Empty request, CallOptions options)
+ public virtual AsyncUnaryCall<global::Grpc.Testing.Empty> EmptyCallAsync(global::Grpc.Testing.Empty request, CallOptions options)
{
- var call = CreateCall(__Method_EmptyCall, options);
- return Calls.AsyncUnaryCall(call, request);
+ return CallInvoker.AsyncUnaryCall(__Method_EmptyCall, null, options, request);
}
- public global::Grpc.Testing.SimpleResponse UnaryCall(global::Grpc.Testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public virtual global::Grpc.Testing.SimpleResponse UnaryCall(global::Grpc.Testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_UnaryCall, new CallOptions(headers, deadline, cancellationToken));
- return Calls.BlockingUnaryCall(call, request);
+ return UnaryCall(request, new CallOptions(headers, deadline, cancellationToken));
}
- public global::Grpc.Testing.SimpleResponse UnaryCall(global::Grpc.Testing.SimpleRequest request, CallOptions options)
+ public virtual global::Grpc.Testing.SimpleResponse UnaryCall(global::Grpc.Testing.SimpleRequest request, CallOptions options)
{
- var call = CreateCall(__Method_UnaryCall, options);
- return Calls.BlockingUnaryCall(call, request);
+ return CallInvoker.BlockingUnaryCall(__Method_UnaryCall, null, options, request);
}
- public AsyncUnaryCall<global::Grpc.Testing.SimpleResponse> UnaryCallAsync(global::Grpc.Testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public virtual AsyncUnaryCall<global::Grpc.Testing.SimpleResponse> UnaryCallAsync(global::Grpc.Testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_UnaryCall, new CallOptions(headers, deadline, cancellationToken));
- return Calls.AsyncUnaryCall(call, request);
+ return UnaryCallAsync(request, new CallOptions(headers, deadline, cancellationToken));
}
- public AsyncUnaryCall<global::Grpc.Testing.SimpleResponse> UnaryCallAsync(global::Grpc.Testing.SimpleRequest request, CallOptions options)
+ public virtual AsyncUnaryCall<global::Grpc.Testing.SimpleResponse> UnaryCallAsync(global::Grpc.Testing.SimpleRequest request, CallOptions options)
{
- var call = CreateCall(__Method_UnaryCall, options);
- return Calls.AsyncUnaryCall(call, request);
+ return CallInvoker.AsyncUnaryCall(__Method_UnaryCall, null, options, request);
}
- public AsyncServerStreamingCall<global::Grpc.Testing.StreamingOutputCallResponse> StreamingOutputCall(global::Grpc.Testing.StreamingOutputCallRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public virtual AsyncServerStreamingCall<global::Grpc.Testing.StreamingOutputCallResponse> StreamingOutputCall(global::Grpc.Testing.StreamingOutputCallRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_StreamingOutputCall, new CallOptions(headers, deadline, cancellationToken));
- return Calls.AsyncServerStreamingCall(call, request);
+ return StreamingOutputCall(request, new CallOptions(headers, deadline, cancellationToken));
}
- public AsyncServerStreamingCall<global::Grpc.Testing.StreamingOutputCallResponse> StreamingOutputCall(global::Grpc.Testing.StreamingOutputCallRequest request, CallOptions options)
+ public virtual AsyncServerStreamingCall<global::Grpc.Testing.StreamingOutputCallResponse> StreamingOutputCall(global::Grpc.Testing.StreamingOutputCallRequest request, CallOptions options)
{
- var call = CreateCall(__Method_StreamingOutputCall, options);
- return Calls.AsyncServerStreamingCall(call, request);
+ return CallInvoker.AsyncServerStreamingCall(__Method_StreamingOutputCall, null, options, request);
}
- public AsyncClientStreamingCall<global::Grpc.Testing.StreamingInputCallRequest, global::Grpc.Testing.StreamingInputCallResponse> StreamingInputCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public virtual AsyncClientStreamingCall<global::Grpc.Testing.StreamingInputCallRequest, global::Grpc.Testing.StreamingInputCallResponse> StreamingInputCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_StreamingInputCall, new CallOptions(headers, deadline, cancellationToken));
- return Calls.AsyncClientStreamingCall(call);
+ return StreamingInputCall(new CallOptions(headers, deadline, cancellationToken));
}
- public AsyncClientStreamingCall<global::Grpc.Testing.StreamingInputCallRequest, global::Grpc.Testing.StreamingInputCallResponse> StreamingInputCall(CallOptions options)
+ public virtual AsyncClientStreamingCall<global::Grpc.Testing.StreamingInputCallRequest, global::Grpc.Testing.StreamingInputCallResponse> StreamingInputCall(CallOptions options)
{
- var call = CreateCall(__Method_StreamingInputCall, options);
- return Calls.AsyncClientStreamingCall(call);
+ return CallInvoker.AsyncClientStreamingCall(__Method_StreamingInputCall, null, options);
}
- public AsyncDuplexStreamingCall<global::Grpc.Testing.StreamingOutputCallRequest, global::Grpc.Testing.StreamingOutputCallResponse> FullDuplexCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public virtual AsyncDuplexStreamingCall<global::Grpc.Testing.StreamingOutputCallRequest, global::Grpc.Testing.StreamingOutputCallResponse> FullDuplexCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_FullDuplexCall, new CallOptions(headers, deadline, cancellationToken));
- return Calls.AsyncDuplexStreamingCall(call);
+ return FullDuplexCall(new CallOptions(headers, deadline, cancellationToken));
}
- public AsyncDuplexStreamingCall<global::Grpc.Testing.StreamingOutputCallRequest, global::Grpc.Testing.StreamingOutputCallResponse> FullDuplexCall(CallOptions options)
+ public virtual AsyncDuplexStreamingCall<global::Grpc.Testing.StreamingOutputCallRequest, global::Grpc.Testing.StreamingOutputCallResponse> FullDuplexCall(CallOptions options)
{
- var call = CreateCall(__Method_FullDuplexCall, options);
- return Calls.AsyncDuplexStreamingCall(call);
+ return CallInvoker.AsyncDuplexStreamingCall(__Method_FullDuplexCall, null, options);
}
- public AsyncDuplexStreamingCall<global::Grpc.Testing.StreamingOutputCallRequest, global::Grpc.Testing.StreamingOutputCallResponse> HalfDuplexCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public virtual AsyncDuplexStreamingCall<global::Grpc.Testing.StreamingOutputCallRequest, global::Grpc.Testing.StreamingOutputCallResponse> HalfDuplexCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_HalfDuplexCall, new CallOptions(headers, deadline, cancellationToken));
- return Calls.AsyncDuplexStreamingCall(call);
+ return HalfDuplexCall(new CallOptions(headers, deadline, cancellationToken));
}
- public AsyncDuplexStreamingCall<global::Grpc.Testing.StreamingOutputCallRequest, global::Grpc.Testing.StreamingOutputCallResponse> HalfDuplexCall(CallOptions options)
+ public virtual AsyncDuplexStreamingCall<global::Grpc.Testing.StreamingOutputCallRequest, global::Grpc.Testing.StreamingOutputCallResponse> HalfDuplexCall(CallOptions options)
{
- var call = CreateCall(__Method_HalfDuplexCall, options);
- return Calls.AsyncDuplexStreamingCall(call);
+ return CallInvoker.AsyncDuplexStreamingCall(__Method_HalfDuplexCall, null, options);
+ }
+ protected override TestServiceClient NewInstance(ClientBaseConfiguration configuration)
+ {
+ return new TestServiceClient(configuration);
}
}
@@ -200,6 +237,18 @@ namespace Grpc.Testing {
.AddMethod(__Method_HalfDuplexCall, serviceImpl.HalfDuplexCall).Build();
}
+ // creates service definition that can be registered with a server
+ public static ServerServiceDefinition BindService(TestServiceBase serviceImpl)
+ {
+ return ServerServiceDefinition.CreateBuilder(__ServiceName)
+ .AddMethod(__Method_EmptyCall, serviceImpl.EmptyCall)
+ .AddMethod(__Method_UnaryCall, serviceImpl.UnaryCall)
+ .AddMethod(__Method_StreamingOutputCall, serviceImpl.StreamingOutputCall)
+ .AddMethod(__Method_StreamingInputCall, serviceImpl.StreamingInputCall)
+ .AddMethod(__Method_FullDuplexCall, serviceImpl.FullDuplexCall)
+ .AddMethod(__Method_HalfDuplexCall, serviceImpl.HalfDuplexCall).Build();
+ }
+
// creates a new client
public static TestServiceClient NewClient(Channel channel)
{
@@ -227,6 +276,7 @@ namespace Grpc.Testing {
}
// client interface
+ [System.Obsolete("Client side interfaced will be removed in the next release. Use client class directly.")]
public interface IUnimplementedServiceClient
{
global::Grpc.Testing.Empty UnimplementedCall(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken));
@@ -236,36 +286,59 @@ namespace Grpc.Testing {
}
// server-side interface
+ [System.Obsolete("Service implementations should inherit from the generated abstract base class instead.")]
public interface IUnimplementedService
{
Task<global::Grpc.Testing.Empty> UnimplementedCall(global::Grpc.Testing.Empty request, ServerCallContext context);
}
+ // server-side abstract class
+ public abstract class UnimplementedServiceBase
+ {
+ public virtual Task<global::Grpc.Testing.Empty> UnimplementedCall(global::Grpc.Testing.Empty request, ServerCallContext context)
+ {
+ throw new RpcException(new Status(StatusCode.Unimplemented, ""));
+ }
+
+ }
+
// client stub
- public class UnimplementedServiceClient : ClientBase, IUnimplementedServiceClient
+ public class UnimplementedServiceClient : ClientBase<UnimplementedServiceClient>, IUnimplementedServiceClient
{
public UnimplementedServiceClient(Channel channel) : base(channel)
{
}
- public global::Grpc.Testing.Empty UnimplementedCall(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public UnimplementedServiceClient(CallInvoker callInvoker) : base(callInvoker)
+ {
+ }
+ ///<summary>Protected parameterless constructor to allow creation of test doubles.</summary>
+ protected UnimplementedServiceClient() : base()
+ {
+ }
+ ///<summary>Protected constructor to allow creation of configured clients.</summary>
+ protected UnimplementedServiceClient(ClientBaseConfiguration configuration) : base(configuration)
+ {
+ }
+
+ public virtual global::Grpc.Testing.Empty UnimplementedCall(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ {
+ return UnimplementedCall(request, new CallOptions(headers, deadline, cancellationToken));
+ }
+ public virtual global::Grpc.Testing.Empty UnimplementedCall(global::Grpc.Testing.Empty request, CallOptions options)
{
- var call = CreateCall(__Method_UnimplementedCall, new CallOptions(headers, deadline, cancellationToken));
- return Calls.BlockingUnaryCall(call, request);
+ return CallInvoker.BlockingUnaryCall(__Method_UnimplementedCall, null, options, request);
}
- public global::Grpc.Testing.Empty UnimplementedCall(global::Grpc.Testing.Empty request, CallOptions options)
+ public virtual AsyncUnaryCall<global::Grpc.Testing.Empty> UnimplementedCallAsync(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_UnimplementedCall, options);
- return Calls.BlockingUnaryCall(call, request);
+ return UnimplementedCallAsync(request, new CallOptions(headers, deadline, cancellationToken));
}
- public AsyncUnaryCall<global::Grpc.Testing.Empty> UnimplementedCallAsync(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public virtual AsyncUnaryCall<global::Grpc.Testing.Empty> UnimplementedCallAsync(global::Grpc.Testing.Empty request, CallOptions options)
{
- var call = CreateCall(__Method_UnimplementedCall, new CallOptions(headers, deadline, cancellationToken));
- return Calls.AsyncUnaryCall(call, request);
+ return CallInvoker.AsyncUnaryCall(__Method_UnimplementedCall, null, options, request);
}
- public AsyncUnaryCall<global::Grpc.Testing.Empty> UnimplementedCallAsync(global::Grpc.Testing.Empty request, CallOptions options)
+ protected override UnimplementedServiceClient NewInstance(ClientBaseConfiguration configuration)
{
- var call = CreateCall(__Method_UnimplementedCall, options);
- return Calls.AsyncUnaryCall(call, request);
+ return new UnimplementedServiceClient(configuration);
}
}
@@ -276,6 +349,13 @@ namespace Grpc.Testing {
.AddMethod(__Method_UnimplementedCall, serviceImpl.UnimplementedCall).Build();
}
+ // creates service definition that can be registered with a server
+ public static ServerServiceDefinition BindService(UnimplementedServiceBase serviceImpl)
+ {
+ return ServerServiceDefinition.CreateBuilder(__ServiceName)
+ .AddMethod(__Method_UnimplementedCall, serviceImpl.UnimplementedCall).Build();
+ }
+
// creates a new client
public static UnimplementedServiceClient NewClient(Channel channel)
{
@@ -311,6 +391,7 @@ namespace Grpc.Testing {
}
// client interface
+ [System.Obsolete("Client side interfaced will be removed in the next release. Use client class directly.")]
public interface IReconnectServiceClient
{
global::Grpc.Testing.Empty Start(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken));
@@ -324,57 +405,81 @@ namespace Grpc.Testing {
}
// server-side interface
+ [System.Obsolete("Service implementations should inherit from the generated abstract base class instead.")]
public interface IReconnectService
{
Task<global::Grpc.Testing.Empty> Start(global::Grpc.Testing.Empty request, ServerCallContext context);
Task<global::Grpc.Testing.ReconnectInfo> Stop(global::Grpc.Testing.Empty request, ServerCallContext context);
}
+ // server-side abstract class
+ public abstract class ReconnectServiceBase
+ {
+ public virtual Task<global::Grpc.Testing.Empty> Start(global::Grpc.Testing.Empty request, ServerCallContext context)
+ {
+ throw new RpcException(new Status(StatusCode.Unimplemented, ""));
+ }
+
+ public virtual Task<global::Grpc.Testing.ReconnectInfo> Stop(global::Grpc.Testing.Empty request, ServerCallContext context)
+ {
+ throw new RpcException(new Status(StatusCode.Unimplemented, ""));
+ }
+
+ }
+
// client stub
- public class ReconnectServiceClient : ClientBase, IReconnectServiceClient
+ public class ReconnectServiceClient : ClientBase<ReconnectServiceClient>, IReconnectServiceClient
{
public ReconnectServiceClient(Channel channel) : base(channel)
{
}
- public global::Grpc.Testing.Empty Start(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public ReconnectServiceClient(CallInvoker callInvoker) : base(callInvoker)
{
- var call = CreateCall(__Method_Start, new CallOptions(headers, deadline, cancellationToken));
- return Calls.BlockingUnaryCall(call, request);
}
- public global::Grpc.Testing.Empty Start(global::Grpc.Testing.Empty request, CallOptions options)
+ ///<summary>Protected parameterless constructor to allow creation of test doubles.</summary>
+ protected ReconnectServiceClient() : base()
{
- var call = CreateCall(__Method_Start, options);
- return Calls.BlockingUnaryCall(call, request);
}
- public AsyncUnaryCall<global::Grpc.Testing.Empty> StartAsync(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ ///<summary>Protected constructor to allow creation of configured clients.</summary>
+ protected ReconnectServiceClient(ClientBaseConfiguration configuration) : base(configuration)
{
- var call = CreateCall(__Method_Start, new CallOptions(headers, deadline, cancellationToken));
- return Calls.AsyncUnaryCall(call, request);
}
- public AsyncUnaryCall<global::Grpc.Testing.Empty> StartAsync(global::Grpc.Testing.Empty request, CallOptions options)
+
+ public virtual global::Grpc.Testing.Empty Start(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_Start, options);
- return Calls.AsyncUnaryCall(call, request);
+ return Start(request, new CallOptions(headers, deadline, cancellationToken));
}
- public global::Grpc.Testing.ReconnectInfo Stop(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public virtual global::Grpc.Testing.Empty Start(global::Grpc.Testing.Empty request, CallOptions options)
{
- var call = CreateCall(__Method_Stop, new CallOptions(headers, deadline, cancellationToken));
- return Calls.BlockingUnaryCall(call, request);
+ return CallInvoker.BlockingUnaryCall(__Method_Start, null, options, request);
}
- public global::Grpc.Testing.ReconnectInfo Stop(global::Grpc.Testing.Empty request, CallOptions options)
+ public virtual AsyncUnaryCall<global::Grpc.Testing.Empty> StartAsync(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_Stop, options);
- return Calls.BlockingUnaryCall(call, request);
+ return StartAsync(request, new CallOptions(headers, deadline, cancellationToken));
}
- public AsyncUnaryCall<global::Grpc.Testing.ReconnectInfo> StopAsync(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ public virtual AsyncUnaryCall<global::Grpc.Testing.Empty> StartAsync(global::Grpc.Testing.Empty request, CallOptions options)
{
- var call = CreateCall(__Method_Stop, new CallOptions(headers, deadline, cancellationToken));
- return Calls.AsyncUnaryCall(call, request);
+ return CallInvoker.AsyncUnaryCall(__Method_Start, null, options, request);
}
- public AsyncUnaryCall<global::Grpc.Testing.ReconnectInfo> StopAsync(global::Grpc.Testing.Empty request, CallOptions options)
+ public virtual global::Grpc.Testing.ReconnectInfo Stop(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
{
- var call = CreateCall(__Method_Stop, options);
- return Calls.AsyncUnaryCall(call, request);
+ return Stop(request, new CallOptions(headers, deadline, cancellationToken));
+ }
+ public virtual global::Grpc.Testing.ReconnectInfo Stop(global::Grpc.Testing.Empty request, CallOptions options)
+ {
+ return CallInvoker.BlockingUnaryCall(__Method_Stop, null, options, request);
+ }
+ public virtual AsyncUnaryCall<global::Grpc.Testing.ReconnectInfo> StopAsync(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+ {
+ return StopAsync(request, new CallOptions(headers, deadline, cancellationToken));
+ }
+ public virtual AsyncUnaryCall<global::Grpc.Testing.ReconnectInfo> StopAsync(global::Grpc.Testing.Empty request, CallOptions options)
+ {
+ return CallInvoker.AsyncUnaryCall(__Method_Stop, null, options, request);
+ }
+ protected override ReconnectServiceClient NewInstance(ClientBaseConfiguration configuration)
+ {
+ return new ReconnectServiceClient(configuration);
}
}
@@ -386,6 +491,14 @@ namespace Grpc.Testing {
.AddMethod(__Method_Stop, serviceImpl.Stop).Build();
}
+ // creates service definition that can be registered with a server
+ public static ServerServiceDefinition BindService(ReconnectServiceBase serviceImpl)
+ {
+ return ServerServiceDefinition.CreateBuilder(__ServiceName)
+ .AddMethod(__Method_Start, serviceImpl.Start)
+ .AddMethod(__Method_Stop, serviceImpl.Stop).Build();
+ }
+
// creates a new client
public static ReconnectServiceClient NewClient(Channel channel)
{
diff --git a/src/csharp/Grpc.IntegrationTesting/TestServiceImpl.cs b/src/csharp/Grpc.IntegrationTesting/TestServiceImpl.cs
index 5a1b4cf319..354318e80e 100644
--- a/src/csharp/Grpc.IntegrationTesting/TestServiceImpl.cs
+++ b/src/csharp/Grpc.IntegrationTesting/TestServiceImpl.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -45,14 +45,14 @@ namespace Grpc.Testing
/// <summary>
/// Implementation of TestService server
/// </summary>
- public class TestServiceImpl : TestService.ITestService
+ public class TestServiceImpl : TestService.TestServiceBase
{
- public Task<Empty> EmptyCall(Empty request, ServerCallContext context)
+ public override Task<Empty> EmptyCall(Empty request, ServerCallContext context)
{
return Task.FromResult(new Empty());
}
- public async Task<SimpleResponse> UnaryCall(SimpleRequest request, ServerCallContext context)
+ public override async Task<SimpleResponse> UnaryCall(SimpleRequest request, ServerCallContext context)
{
await EnsureEchoMetadataAsync(context);
EnsureEchoStatus(request.ResponseStatus, context);
@@ -61,7 +61,7 @@ namespace Grpc.Testing
return response;
}
- public async Task StreamingOutputCall(StreamingOutputCallRequest request, IServerStreamWriter<StreamingOutputCallResponse> responseStream, ServerCallContext context)
+ public override async Task StreamingOutputCall(StreamingOutputCallRequest request, IServerStreamWriter<StreamingOutputCallResponse> responseStream, ServerCallContext context)
{
await EnsureEchoMetadataAsync(context);
EnsureEchoStatus(request.ResponseStatus, context);
@@ -73,7 +73,7 @@ namespace Grpc.Testing
}
}
- public async Task<StreamingInputCallResponse> StreamingInputCall(IAsyncStreamReader<StreamingInputCallRequest> requestStream, ServerCallContext context)
+ public override async Task<StreamingInputCallResponse> StreamingInputCall(IAsyncStreamReader<StreamingInputCallRequest> requestStream, ServerCallContext context)
{
await EnsureEchoMetadataAsync(context);
@@ -85,7 +85,7 @@ namespace Grpc.Testing
return new StreamingInputCallResponse { AggregatedPayloadSize = sum };
}
- public async Task FullDuplexCall(IAsyncStreamReader<StreamingOutputCallRequest> requestStream, IServerStreamWriter<StreamingOutputCallResponse> responseStream, ServerCallContext context)
+ public override async Task FullDuplexCall(IAsyncStreamReader<StreamingOutputCallRequest> requestStream, IServerStreamWriter<StreamingOutputCallResponse> responseStream, ServerCallContext context)
{
await EnsureEchoMetadataAsync(context);
@@ -100,7 +100,7 @@ namespace Grpc.Testing
});
}
- public async Task HalfDuplexCall(IAsyncStreamReader<StreamingOutputCallRequest> requestStream, IServerStreamWriter<StreamingOutputCallResponse> responseStream, ServerCallContext context)
+ public override async Task HalfDuplexCall(IAsyncStreamReader<StreamingOutputCallRequest> requestStream, IServerStreamWriter<StreamingOutputCallResponse> responseStream, ServerCallContext context)
{
throw new NotImplementedException();
}
diff --git a/src/csharp/Grpc.IntegrationTesting/WorkerServiceImpl.cs b/src/csharp/Grpc.IntegrationTesting/WorkerServiceImpl.cs
index e5ad0caa03..80dad9fdd9 100644
--- a/src/csharp/Grpc.IntegrationTesting/WorkerServiceImpl.cs
+++ b/src/csharp/Grpc.IntegrationTesting/WorkerServiceImpl.cs
@@ -45,7 +45,7 @@ namespace Grpc.Testing
/// <summary>
/// Implementation of WorkerService server
/// </summary>
- public class WorkerServiceImpl : WorkerService.IWorkerService
+ public class WorkerServiceImpl : WorkerService.WorkerServiceBase
{
readonly Action stopRequestHandler;
@@ -54,7 +54,7 @@ namespace Grpc.Testing
this.stopRequestHandler = GrpcPreconditions.CheckNotNull(stopRequestHandler);
}
- public async Task RunServer(IAsyncStreamReader<ServerArgs> requestStream, IServerStreamWriter<ServerStatus> responseStream, ServerCallContext context)
+ public override async Task RunServer(IAsyncStreamReader<ServerArgs> requestStream, IServerStreamWriter<ServerStatus> responseStream, ServerCallContext context)
{
GrpcPreconditions.CheckState(await requestStream.MoveNext());
var serverConfig = requestStream.Current.Setup;
@@ -78,7 +78,7 @@ namespace Grpc.Testing
await runner.StopAsync();
}
- public async Task RunClient(IAsyncStreamReader<ClientArgs> requestStream, IServerStreamWriter<ClientStatus> responseStream, ServerCallContext context)
+ public override async Task RunClient(IAsyncStreamReader<ClientArgs> requestStream, IServerStreamWriter<ClientStatus> responseStream, ServerCallContext context)
{
GrpcPreconditions.CheckState(await requestStream.MoveNext());
var clientConfig = requestStream.Current.Setup;
@@ -100,12 +100,12 @@ namespace Grpc.Testing
await runner.StopAsync();
}
- public Task<CoreResponse> CoreCount(CoreRequest request, ServerCallContext context)
+ public override Task<CoreResponse> CoreCount(CoreRequest request, ServerCallContext context)
{
return Task.FromResult(new CoreResponse { Cores = Environment.ProcessorCount });
}
- public Task<Void> QuitWorker(Void request, ServerCallContext context)
+ public override Task<Void> QuitWorker(Void request, ServerCallContext context)
{
stopRequestHandler();
return Task.FromResult(new Void());
diff --git a/src/csharp/Grpc.IntegrationTesting/app.config b/src/csharp/Grpc.IntegrationTesting/app.config
deleted file mode 100644
index 84d7534d65..0000000000
--- a/src/csharp/Grpc.IntegrationTesting/app.config
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
- <runtime>
- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
- <dependentAssembly>
- <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.2.29.0" newVersion="4.2.29.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.2.28.0" newVersion="4.0.0.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Google.Apis.Core" publicKeyToken="4b01fa6e34db77ab" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.9.2.38523" newVersion="1.9.2.38523" />
- </dependentAssembly>
- </assemblyBinding>
- </runtime>
-</configuration> \ No newline at end of file
diff --git a/src/csharp/Grpc.IntegrationTesting/packages.config b/src/csharp/Grpc.IntegrationTesting/packages.config
index 462dc9d604..0ae8bf4e70 100644
--- a/src/csharp/Grpc.IntegrationTesting/packages.config
+++ b/src/csharp/Grpc.IntegrationTesting/packages.config
@@ -2,14 +2,10 @@
<packages>
<package id="BouncyCastle" version="1.7.0" targetFramework="net45" />
<package id="CommandLineParser" version="1.9.71" targetFramework="net45" />
- <package id="Google.Apis.Auth" version="1.10.0" targetFramework="net45" />
- <package id="Google.Apis.Core" version="1.10.0" targetFramework="net45" />
+ <package id="Google.Apis.Auth" version="1.11.1" targetFramework="net45" />
+ <package id="Google.Apis.Core" version="1.11.1" targetFramework="net45" />
<package id="Google.Protobuf" version="3.0.0-beta2" targetFramework="net45" />
<package id="Ix-Async" version="1.2.5" targetFramework="net45" />
- <package id="Microsoft.Bcl" version="1.1.10" targetFramework="net45" />
- <package id="Microsoft.Bcl.Async" version="1.0.168" targetFramework="net45" />
- <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="net45" />
- <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net45" />
<package id="Moq" version="4.2.1510.2205" targetFramework="net45" />
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" />
<package id="NUnit" version="2.6.4" targetFramework="net45" />
diff --git a/src/csharp/grpc.native.csharp/grpc.native.csharp.nuspec b/src/csharp/grpc.native.csharp/grpc.native.csharp.nuspec
index 6a1795b709..cc688e2bc7 100644
--- a/src/csharp/grpc.native.csharp/grpc.native.csharp.nuspec
+++ b/src/csharp/grpc.native.csharp/grpc.native.csharp.nuspec
@@ -10,7 +10,7 @@
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Native extension needed by gRPC C# library. This is not the package you are looking for, it is only meant to be used as a dependency.</description>
<releaseNotes>Release of gRPC C core $version$ libraries.</releaseNotes>
- <copyright>Copyright 2015-2016</copyright>
+ <copyright>Copyright 2015</copyright>
<title>gRPC C# Native Extension</title>
<summary>Native library required by gRPC C#</summary>
<tags>gRPC native</tags>
diff --git a/src/csharp/tests.json b/src/csharp/tests.json
index 4aa93668ad..718bfa3287 100644
--- a/src/csharp/tests.json
+++ b/src/csharp/tests.json
@@ -21,6 +21,7 @@
"Grpc.Core.Tests.CompressionTest",
"Grpc.Core.Tests.ContextPropagationTest",
"Grpc.Core.Tests.GrpcEnvironmentTest",
+ "Grpc.Core.Tests.HalfcloseTest",
"Grpc.Core.Tests.MarshallingErrorsTest",
"Grpc.Core.Tests.MetadataTest",
"Grpc.Core.Tests.NUnitVersionTest",
@@ -35,8 +36,9 @@
"Math.Tests.MathClientServerTest",
"Grpc.HealthCheck.Tests.HealthClientServerTest",
"Grpc.HealthCheck.Tests.HealthServiceImplTest",
- "Grpc.IntegrationTesting.HeaderInterceptorTest",
"Grpc.IntegrationTesting.HistogramTest",
+ "Grpc.IntegrationTesting.GeneratedClientTest",
+ "Grpc.IntegrationTesting.GeneratedServiceBaseTest",
"Grpc.IntegrationTesting.InteropClientServerTest",
"Grpc.IntegrationTesting.MetadataCredentialsTest",
"Grpc.IntegrationTesting.RunnerClientServerTest",
diff --git a/src/node/interop/interop_client.js b/src/node/interop/interop_client.js
index 5969959430..e8f2d37bd8 100644
--- a/src/node/interop/interop_client.js
+++ b/src/node/interop/interop_client.js
@@ -545,6 +545,8 @@ var test_cases = {
Client: testProto.TestService}
};
+exports.test_cases = test_cases;
+
/**
* Execute a single test case.
* @param {string} address The address of the server to connect to, in the
diff --git a/src/core/lib/client_config/resolvers/sockaddr_resolver.h b/src/node/stress/metrics_client.js
index a8b208176c..dc8ef5e711 100644
--- a/src/core/lib/client_config/resolvers/sockaddr_resolver.h
+++ b/src/node/stress/metrics_client.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,20 +31,31 @@
*
*/
-#ifndef GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVERS_SOCKADDR_RESOLVER_H
-#define GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVERS_SOCKADDR_RESOLVER_H
+'use strict';
-#include <grpc/support/port_platform.h>
+var grpc = require('../../..');
-#include "src/core/lib/client_config/resolver_factory.h"
+var proto = grpc.load(__dirname + '/../../proto/grpc/testing/metrics.proto');
+var metrics = proto.grpc.testing;
-grpc_resolver_factory *grpc_ipv4_resolver_factory_create(void);
+function main() {
+ var parseArgs = require('minimist');
+ var argv = parseArgs(process.argv, {
+ string: 'metrics_server_address',
+ boolean: 'total_only'
+ });
+ var client = new metrics.MetricsService(argv.metrics_server_address,
+ grpc.credentials.createInsecure());
+ if (argv.total_only) {
+ client.getGauge({name: 'qps'}, function(err, data) {
+ console.log(data.name + ':', data.long_value);
+ });
+ } else {
+ var call = client.getAllGauges({});
+ call.on('data', function(data) {
+ console.log(data.name + ':', data.long_value);
+ });
+ }
+}
-grpc_resolver_factory *grpc_ipv6_resolver_factory_create(void);
-
-#ifdef GPR_POSIX_SOCKET
-/** Create a unix resolver factory */
-grpc_resolver_factory *grpc_unix_resolver_factory_create(void);
-#endif
-
-#endif /* GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVERS_SOCKADDR_RESOLVER_H */
+main();
diff --git a/src/core/lib/client_config/subchannel_factory.h b/src/node/stress/metrics_server.js
index 96d68a2079..3ab4b4c82d 100644
--- a/src/core/lib/client_config/subchannel_factory.h
+++ b/src/node/stress/metrics_server.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,36 +31,57 @@
*
*/
-#ifndef GRPC_CORE_LIB_CLIENT_CONFIG_SUBCHANNEL_FACTORY_H
-#define GRPC_CORE_LIB_CLIENT_CONFIG_SUBCHANNEL_FACTORY_H
+'use strict';
-#include "src/core/lib/channel/channel_stack.h"
-#include "src/core/lib/client_config/subchannel.h"
+var _ = require('lodash');
-typedef struct grpc_subchannel_factory grpc_subchannel_factory;
-typedef struct grpc_subchannel_factory_vtable grpc_subchannel_factory_vtable;
+var grpc = require('../../..');
-/** Constructor for new configured channels.
- Creating decorators around this type is encouraged to adapt behavior. */
-struct grpc_subchannel_factory {
- const grpc_subchannel_factory_vtable *vtable;
-};
+var proto = grpc.load(__dirname + '/../../proto/grpc/testing/metrics.proto');
+var metrics = proto.grpc.testing;
-struct grpc_subchannel_factory_vtable {
- void (*ref)(grpc_subchannel_factory *factory);
- void (*unref)(grpc_exec_ctx *exec_ctx, grpc_subchannel_factory *factory);
- grpc_subchannel *(*create_subchannel)(grpc_exec_ctx *exec_ctx,
- grpc_subchannel_factory *factory,
- grpc_subchannel_args *args);
-};
+function getGauge(call, callback) {
+ /* jshint validthis: true */
+ // Should be bound to a MetricsServer object
+ var name = call.request.name;
+ if (this.gauges.hasOwnProperty(name)) {
+ callback(null, _.assign({name: name}, this.gauges[name]()));
+ } else {
+ callback({code: grpc.status.NOT_FOUND,
+ details: 'No such gauge: ' + name});
+ }
+}
+
+function getAllGauges(call) {
+ /* jshint validthis: true */
+ // Should be bound to a MetricsServer object
+ _.each(this.gauges, function(getter, name) {
+ call.write(_.assign({name: name}, getter()));
+ });
+ call.end();
+}
+
+function MetricsServer(port) {
+ var server = new grpc.Server();
+ server.addProtoService(metrics.MetricsService.service, {
+ getGauge: _.bind(getGauge, this),
+ getAllGauges: _.bind(getAllGauges, this)
+ });
+ server.bind('localhost:' + port, grpc.ServerCredentials.createInsecure());
+ this.server = server;
+ this.gauges = {};
+}
-void grpc_subchannel_factory_ref(grpc_subchannel_factory *factory);
-void grpc_subchannel_factory_unref(grpc_exec_ctx *exec_ctx,
- grpc_subchannel_factory *factory);
+MetricsServer.prototype.start = function() {
+ this.server.start();
+}
-/** Create a new grpc_subchannel */
-grpc_subchannel *grpc_subchannel_factory_create_subchannel(
- grpc_exec_ctx *exec_ctx, grpc_subchannel_factory *factory,
- grpc_subchannel_args *args);
+MetricsServer.prototype.registerGauge = function(name, getter) {
+ this.gauges[name] = getter;
+};
+
+MetricsServer.prototype.shutdown = function() {
+ this.server.forceShutdown();
+};
-#endif /* GRPC_CORE_LIB_CLIENT_CONFIG_SUBCHANNEL_FACTORY_H */
+module.exports = MetricsServer;
diff --git a/src/node/stress/stress_client.js b/src/node/stress/stress_client.js
new file mode 100644
index 0000000000..8332652e2a
--- /dev/null
+++ b/src/node/stress/stress_client.js
@@ -0,0 +1,126 @@
+/*
+ *
+ * Copyright 2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+'use strict';
+
+var _ = require('lodash');
+
+var grpc = require('../../..');
+
+var interop_client = require('../interop/interop_client');
+var MetricsServer = require('./metrics_server');
+
+var running;
+
+var metrics_server;
+
+var start_time;
+var query_count;
+
+function makeCall(client, test_cases) {
+ if (!running) {
+ return;
+ }
+ var test_case = test_cases[_.random(test_cases.length - 1)];
+ interop_client.test_cases[test_case].run(client, function() {
+ query_count += 1;
+ makeCall(client, test_cases);
+ });
+}
+
+function makeCalls(client, test_cases, parallel_calls_per_channel) {
+ _.times(parallel_calls_per_channel, function() {
+ makeCall(client, test_cases);
+ });
+}
+
+function getQps() {
+ var diff = process.hrtime(start_time);
+ var seconds = diff[0] + diff[1] / 1e9;
+ return {long_value: query_count / seconds};
+}
+
+function start(server_addresses, test_cases, channels_per_server,
+ parallel_calls_per_channel, metrics_port) {
+ running = true;
+ /* Assuming that we are not calling unimplemented_method. The client class
+ * used by empty_unary is (currently) the client class used by every interop
+ * test except unimplemented_method */
+ var Client = interop_client.test_cases.empty_unary.Client;
+ /* Make channels_per_server clients connecting to each server address */
+ var channels = _.flatten(_.times(
+ channels_per_server, _.partial(_.map, server_addresses, function(address) {
+ return new Client(address, grpc.credentials.createInsecure());
+ })));
+ metrics_server = new MetricsServer(metrics_port);
+ metrics_server.registerGauge('qps', getQps);
+ start_time = process.hrtime();
+ query_count = 0;
+ _.each(channels, _.partial(makeCalls, _, test_cases,
+ parallel_calls_per_channel));
+ metrics_server.start();
+}
+
+function stop() {
+ running = false;
+ metrics_server.shutdown();
+ console.log('QPS: ' + getQps().long_value);
+}
+
+function main() {
+ var parseArgs = require('minimist');
+ var argv = parseArgs(process.argv, {
+ string: ['server_addresses', 'test_cases', 'metrics_port'],
+ default: {'server_addresses': 'localhost:8080',
+ 'test_duration-secs': -1,
+ 'num_channels_per_server': 1,
+ 'num_stubs_per_channel': 1,
+ 'metrics_port': '8081'}
+ });
+ var server_addresses = argv.server_addresses.split(',');
+ /* Generate an array of test cases, where the number of instances of each name
+ * corresponds to the number given in the argument.
+ * e.g. 'empty_unary:1,large_unary:2' =>
+ * ['empty_unary', 'large_unary', 'large_unary'] */
+ var test_cases = _.flatten(_.map(argv.test_cases.split(','), function(value) {
+ var split = value.split(':');
+ return _.times(split[1], _.constant(split[0]));
+ }));
+ start(server_addresses, test_cases, argv.num_channels_per_server,
+ argv.num_stubs_per_channel, argv.metrics_port);
+ if (argv['test_duration-secs'] > -1) {
+ setTimeout(stop, argv['test_duration-secs'] * 1000);
+ }
+}
+
+main();
diff --git a/src/proto/grpc/testing/messages.proto b/src/proto/grpc/testing/messages.proto
index 193b6c4171..a063b470c7 100644
--- a/src/proto/grpc/testing/messages.proto
+++ b/src/proto/grpc/testing/messages.proto
@@ -1,5 +1,5 @@
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -159,6 +159,12 @@ message StreamingOutputCallResponse {
}
// For reconnect interop test only.
+// Client tells server what reconnection parameters it used.
+message ReconnectParams {
+ int32 max_reconnect_backoff_ms = 1;
+}
+
+// For reconnect interop test only.
// Server tells client whether its reconnects are following the spec and the
// reconnect backoffs it saw.
message ReconnectInfo {
diff --git a/src/proto/grpc/testing/test.proto b/src/proto/grpc/testing/test.proto
index 9faba297a3..84369db4b8 100644
--- a/src/proto/grpc/testing/test.proto
+++ b/src/proto/grpc/testing/test.proto
@@ -1,5 +1,5 @@
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -80,6 +80,6 @@ service UnimplementedService {
// A service used to control reconnect server.
service ReconnectService {
- rpc Start(grpc.testing.Empty) returns (grpc.testing.Empty);
+ rpc Start(grpc.testing.ReconnectParams) returns (grpc.testing.Empty);
rpc Stop(grpc.testing.Empty) returns (grpc.testing.ReconnectInfo);
}
diff --git a/src/python/grpcio/grpc/_cython/imports.generated.h b/src/python/grpcio/grpc/_cython/imports.generated.h
index adcd8e954a..272e85b485 100644
--- a/src/python/grpcio/grpc/_cython/imports.generated.h
+++ b/src/python/grpcio/grpc/_cython/imports.generated.h
@@ -283,7 +283,7 @@ extern grpc_call_destroy_type grpc_call_destroy_import;
typedef grpc_call_error(*grpc_server_request_call_type)(grpc_server *server, grpc_call **call, grpc_call_details *details, grpc_metadata_array *request_metadata, grpc_completion_queue *cq_bound_to_call, grpc_completion_queue *cq_for_notification, void *tag_new);
extern grpc_server_request_call_type grpc_server_request_call_import;
#define grpc_server_request_call grpc_server_request_call_import
-typedef void *(*grpc_server_register_method_type)(grpc_server *server, const char *method, const char *host, uint32_t flags);
+typedef void *(*grpc_server_register_method_type)(grpc_server *server, const char *method, const char *host, grpc_server_register_method_payload_handling payload_handling, uint32_t flags);
extern grpc_server_register_method_type grpc_server_register_method_import;
#define grpc_server_register_method grpc_server_register_method_import
typedef grpc_call_error(*grpc_server_request_registered_call_type)(grpc_server *server, void *registered_method, grpc_call **call, gpr_timespec *deadline, grpc_metadata_array *request_metadata, grpc_byte_buffer **optional_payload, grpc_completion_queue *cq_bound_to_call, grpc_completion_queue *cq_for_notification, void *tag_new);
diff --git a/src/python/grpcio/grpc/beta/implementations.py b/src/python/grpcio/grpc/beta/implementations.py
index a0ca330d2c..742e94dc65 100644
--- a/src/python/grpcio/grpc/beta/implementations.py
+++ b/src/python/grpcio/grpc/beta/implementations.py
@@ -61,15 +61,16 @@ class ChannelCredentials(object):
self._low_credentials = low_credentials
-def ssl_channel_credentials(root_certificates, private_key, certificate_chain):
+def ssl_channel_credentials(root_certificates=None, private_key=None,
+ certificate_chain=None):
"""Creates a ChannelCredentials for use with an SSL-enabled Channel.
Args:
- root_certificates: The PEM-encoded root certificates or None to ask for
+ root_certificates: The PEM-encoded root certificates or unset to ask for
them to be retrieved from a default location.
- private_key: The PEM-encoded private key to use or None if no private key
+ private_key: The PEM-encoded private key to use or unset if no private key
should be used.
- certificate_chain: The PEM-encoded certificate chain to use or None if no
+ certificate_chain: The PEM-encoded certificate chain to use or unset if no
certificate chain should be used.
Returns:
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
index d88921c963..3452e3a0f5 100644
--- a/src/python/grpcio/grpc_core_dependencies.py
+++ b/src/python/grpcio/grpc_core_dependencies.py
@@ -74,10 +74,21 @@ CORE_SOURCE_FILES = [
'src/core/lib/support/tmpfile_posix.c',
'src/core/lib/support/tmpfile_win32.c',
'src/core/lib/support/wrap_memcpy.c',
+ 'src/core/ext/census/context.c',
+ 'src/core/ext/census/grpc_context.c',
+ 'src/core/ext/census/grpc_filter.c',
+ 'src/core/ext/census/grpc_plugin.c',
+ 'src/core/ext/census/initialize.c',
+ 'src/core/ext/census/mlog.c',
+ 'src/core/ext/census/operation.c',
+ 'src/core/ext/census/placeholders.c',
+ 'src/core/ext/census/tracing.c',
'src/core/ext/lb_policy/grpclb/load_balancer_api.c',
'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c',
'src/core/ext/lb_policy/pick_first/pick_first.c',
'src/core/ext/lb_policy/round_robin/round_robin.c',
+ 'src/core/ext/resolver/dns/native/dns_resolver.c',
+ 'src/core/ext/resolver/sockaddr/sockaddr_resolver.c',
'src/core/ext/transport/chttp2/client/insecure/channel_create.c',
'src/core/ext/transport/chttp2/client/secure/secure_channel_create.c',
'src/core/ext/transport/chttp2/server/insecure/server_chttp2.c',
@@ -103,15 +114,6 @@ CORE_SOURCE_FILES = [
'src/core/ext/transport/chttp2/transport/timeout_encoding.c',
'src/core/ext/transport/chttp2/transport/varint.c',
'src/core/ext/transport/chttp2/transport/writing.c',
- 'src/core/lib/census/context.c',
- 'src/core/lib/census/grpc_context.c',
- 'src/core/lib/census/grpc_filter.c',
- 'src/core/lib/census/grpc_plugin.c',
- 'src/core/lib/census/initialize.c',
- 'src/core/lib/census/mlog.c',
- 'src/core/lib/census/operation.c',
- 'src/core/lib/census/placeholders.c',
- 'src/core/lib/census/tracing.c',
'src/core/lib/channel/channel_args.c',
'src/core/lib/channel/channel_stack.c',
'src/core/lib/channel/channel_stack_builder.c',
@@ -121,6 +123,7 @@ CORE_SOURCE_FILES = [
'src/core/lib/channel/http_client_filter.c',
'src/core/lib/channel/http_server_filter.c',
'src/core/lib/channel/subchannel_call_holder.c',
+ 'src/core/lib/client_config/client_channel_factory.c',
'src/core/lib/client_config/client_config.c',
'src/core/lib/client_config/connector.c',
'src/core/lib/client_config/default_initial_connect_string.c',
@@ -131,10 +134,7 @@ CORE_SOURCE_FILES = [
'src/core/lib/client_config/resolver.c',
'src/core/lib/client_config/resolver_factory.c',
'src/core/lib/client_config/resolver_registry.c',
- 'src/core/lib/client_config/resolvers/dns_resolver.c',
- 'src/core/lib/client_config/resolvers/sockaddr_resolver.c',
'src/core/lib/client_config/subchannel.c',
- 'src/core/lib/client_config/subchannel_factory.c',
'src/core/lib/client_config/subchannel_index.c',
'src/core/lib/client_config/uri_parser.c',
'src/core/lib/compression/compression_algorithm.c',
@@ -148,17 +148,14 @@ CORE_SOURCE_FILES = [
'src/core/lib/iomgr/endpoint.c',
'src/core/lib/iomgr/endpoint_pair_posix.c',
'src/core/lib/iomgr/endpoint_pair_windows.c',
+ 'src/core/lib/iomgr/ev_poll_and_epoll_posix.c',
+ 'src/core/lib/iomgr/ev_posix.c',
'src/core/lib/iomgr/exec_ctx.c',
'src/core/lib/iomgr/executor.c',
- 'src/core/lib/iomgr/fd_posix.c',
'src/core/lib/iomgr/iocp_windows.c',
'src/core/lib/iomgr/iomgr.c',
'src/core/lib/iomgr/iomgr_posix.c',
'src/core/lib/iomgr/iomgr_windows.c',
- 'src/core/lib/iomgr/pollset_multipoller_with_epoll.c',
- 'src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c',
- 'src/core/lib/iomgr/pollset_posix.c',
- 'src/core/lib/iomgr/pollset_set_posix.c',
'src/core/lib/iomgr/pollset_set_windows.c',
'src/core/lib/iomgr/pollset_windows.c',
'src/core/lib/iomgr/resolve_address_posix.c',
diff --git a/src/python/grpcio/tests/interop/_secure_interop_test.py b/src/python/grpcio/tests/interop/_secure_interop_test.py
index 7e3061133f..86d7e43351 100644
--- a/src/python/grpcio/tests/interop/_secure_interop_test.py
+++ b/src/python/grpcio/tests/interop/_secure_interop_test.py
@@ -56,7 +56,7 @@ class SecureInteropTest(
self.stub = test_pb2.beta_create_TestService_stub(
test_utilities.not_really_secure_channel(
'[::]', port, implementations.ssl_channel_credentials(
- resources.test_root_certificates(), None, None),
+ resources.test_root_certificates()),
_SERVER_HOST_OVERRIDE))
def tearDown(self):
diff --git a/src/python/grpcio/tests/interop/client.py b/src/python/grpcio/tests/interop/client.py
index 573ec2bd71..1d10d7e45d 100644
--- a/src/python/grpcio/tests/interop/client.py
+++ b/src/python/grpcio/tests/interop/client.py
@@ -94,7 +94,7 @@ def _stub(args):
channel = test_utilities.not_really_secure_channel(
args.server_host, args.server_port,
- implementations.ssl_channel_credentials(root_certificates, None, None),
+ implementations.ssl_channel_credentials(root_certificates),
args.server_host_override)
stub = test_pb2.beta_create_TestService_stub(
channel, metadata_transformer=metadata_transformer)
diff --git a/src/python/grpcio/tests/unit/beta/_beta_features_test.py b/src/python/grpcio/tests/unit/beta/_beta_features_test.py
index 10877cd310..bb2893a21b 100644
--- a/src/python/grpcio/tests/unit/beta/_beta_features_test.py
+++ b/src/python/grpcio/tests/unit/beta/_beta_features_test.py
@@ -183,7 +183,7 @@ class BetaFeaturesTest(unittest.TestCase):
port = self._server.add_secure_port('[::]:0', server_credentials)
self._server.start()
self._channel_credentials = implementations.ssl_channel_credentials(
- resources.test_root_certificates(), None, None)
+ resources.test_root_certificates())
self._call_credentials = implementations.metadata_call_credentials(
_metadata_plugin)
channel = test_utilities.not_really_secure_channel(
@@ -296,7 +296,7 @@ class ContextManagementAndLifecycleTest(unittest.TestCase):
self._server_credentials = implementations.ssl_server_credentials(
[(resources.private_key(), resources.certificate_chain(),),])
self._channel_credentials = implementations.ssl_channel_credentials(
- resources.test_root_certificates(), None, None)
+ resources.test_root_certificates())
self._stub_options = implementations.stub_options(
thread_pool_size=test_constants.POOL_SIZE)
diff --git a/src/python/grpcio/tests/unit/beta/_face_interface_test.py b/src/python/grpcio/tests/unit/beta/_face_interface_test.py
index ef01908c3b..3a67516906 100644
--- a/src/python/grpcio/tests/unit/beta/_face_interface_test.py
+++ b/src/python/grpcio/tests/unit/beta/_face_interface_test.py
@@ -94,7 +94,7 @@ class _Implementation(test_interfaces.Implementation):
port = server.add_secure_port('[::]:0', server_credentials)
server.start()
channel_credentials = implementations.ssl_channel_credentials(
- resources.test_root_certificates(), None, None)
+ resources.test_root_certificates())
channel = test_utilities.not_really_secure_channel(
'localhost', port, channel_credentials, _SERVER_HOST_OVERRIDE)
stub_options = implementations.stub_options(
diff --git a/src/python/grpcio/tests/unit/beta/_implementations_test.py b/src/python/grpcio/tests/unit/beta/_implementations_test.py
index 6b32305af7..26be670c45 100644
--- a/src/python/grpcio/tests/unit/beta/_implementations_test.py
+++ b/src/python/grpcio/tests/unit/beta/_implementations_test.py
@@ -38,14 +38,13 @@ from tests.unit import resources
class ChannelCredentialsTest(unittest.TestCase):
def test_runtime_provided_root_certificates(self):
- channel_credentials = implementations.ssl_channel_credentials(
- None, None, None)
+ channel_credentials = implementations.ssl_channel_credentials()
self.assertIsInstance(
channel_credentials, implementations.ChannelCredentials)
def test_application_provided_root_certificates(self):
channel_credentials = implementations.ssl_channel_credentials(
- resources.test_root_certificates(), None, None)
+ resources.test_root_certificates())
self.assertIsInstance(
channel_credentials, implementations.ChannelCredentials)
diff --git a/src/ruby/ext/grpc/rb_grpc_imports.generated.h b/src/ruby/ext/grpc/rb_grpc_imports.generated.h
index 22ea84c750..c526f434c6 100644
--- a/src/ruby/ext/grpc/rb_grpc_imports.generated.h
+++ b/src/ruby/ext/grpc/rb_grpc_imports.generated.h
@@ -283,7 +283,7 @@ extern grpc_call_destroy_type grpc_call_destroy_import;
typedef grpc_call_error(*grpc_server_request_call_type)(grpc_server *server, grpc_call **call, grpc_call_details *details, grpc_metadata_array *request_metadata, grpc_completion_queue *cq_bound_to_call, grpc_completion_queue *cq_for_notification, void *tag_new);
extern grpc_server_request_call_type grpc_server_request_call_import;
#define grpc_server_request_call grpc_server_request_call_import
-typedef void *(*grpc_server_register_method_type)(grpc_server *server, const char *method, const char *host, uint32_t flags);
+typedef void *(*grpc_server_register_method_type)(grpc_server *server, const char *method, const char *host, grpc_server_register_method_payload_handling payload_handling, uint32_t flags);
extern grpc_server_register_method_type grpc_server_register_method_import;
#define grpc_server_register_method grpc_server_register_method_import
typedef grpc_call_error(*grpc_server_request_registered_call_type)(grpc_server *server, void *registered_method, grpc_call **call, gpr_timespec *deadline, grpc_metadata_array *request_metadata, grpc_byte_buffer **optional_payload, grpc_completion_queue *cq_bound_to_call, grpc_completion_queue *cq_for_notification, void *tag_new);
diff --git a/src/ruby/lib/grpc/generic/rpc_server.rb b/src/ruby/lib/grpc/generic/rpc_server.rb
index 4b5578b018..5ba77db173 100644
--- a/src/ruby/lib/grpc/generic/rpc_server.rb
+++ b/src/ruby/lib/grpc/generic/rpc_server.rb
@@ -403,7 +403,7 @@ module GRPC
loop_handle_server_calls
end
- # Sends UNAVAILABLE if there are too many unprocessed jobs
+ # Sends RESOURCE_EXHAUSTED if there are too many unprocessed jobs
def available?(an_rpc)
jobs_count, max = @pool.jobs_waiting, @max_waiting_requests
GRPC.logger.info("waiting: #{jobs_count}, max: #{max}")
@@ -411,7 +411,7 @@ module GRPC
GRPC.logger.warn("NOT AVAILABLE: too many jobs_waiting: #{an_rpc}")
noop = proc { |x| x }
c = ActiveCall.new(an_rpc.call, @cq, noop, noop, an_rpc.deadline)
- c.send_status(StatusCodes::UNAVAILABLE, '')
+ c.send_status(StatusCodes::RESOURCE_EXHAUSTED, '')
nil
end
diff --git a/src/ruby/pb/generate_proto_ruby.sh b/src/ruby/pb/generate_proto_ruby.sh
index 727245a3ef..82dad18ad0 100755
--- a/src/ruby/pb/generate_proto_ruby.sh
+++ b/src/ruby/pb/generate_proto_ruby.sh
@@ -40,11 +40,18 @@ $PROTOC -I src/proto src/proto/grpc/health/v1/health.proto \
--ruby_out=src/ruby/pb \
--plugin=$PLUGIN
-$PROTOC -I . test/proto/{messages,test,empty}.proto \
+$PROTOC -I . \
+ src/proto/grpc/testing/{messages,test,empty}.proto \
--grpc_out=src/ruby/pb \
--ruby_out=src/ruby/pb \
--plugin=$PLUGIN
+$PROTOC -I . \
+ src/proto/grpc/testing/{messages,payloads,stats,services,control}.proto \
+ --grpc_out=src/ruby/qps \
+ --ruby_out=src/ruby/qps \
+ --plugin=$PLUGIN
+
$PROTOC -I src/proto/math src/proto/math/math.proto \
--grpc_out=src/ruby/bin \
--ruby_out=src/ruby/bin \
diff --git a/src/ruby/qps/client.rb b/src/ruby/qps/client.rb
new file mode 100644
index 0000000000..d04f707479
--- /dev/null
+++ b/src/ruby/qps/client.rb
@@ -0,0 +1,164 @@
+#!/usr/bin/env ruby
+
+# Copyright 2016, 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.
+
+# Worker and worker service implementation
+
+this_dir = File.expand_path(File.dirname(__FILE__))
+lib_dir = File.join(File.dirname(this_dir), 'lib')
+$LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
+$LOAD_PATH.unshift(this_dir) unless $LOAD_PATH.include?(this_dir)
+
+require 'grpc'
+require 'histogram'
+require 'src/proto/grpc/testing/services_services'
+
+class Poisson
+ def interarrival
+ @lambda_recip * (-Math.log(1.0-rand))
+ end
+ def advance
+ t = @next_time
+ @next_time += interarrival
+ t
+ end
+ def initialize(lambda)
+ @lambda_recip = 1.0/lambda
+ @next_time = Time.now + interarrival
+ end
+end
+
+class BenchmarkClient
+ def initialize(config)
+ opts = {}
+ if config.security_params
+ if config.security_params.use_test_ca
+ certs = load_test_certs
+ cred = GRPC::Core::ChannelCredentials.new(certs[0])
+ else
+ cred = GRPC::Core::ChannelCredentials.new()
+ end
+ if config.security_params.server_host_override
+ opts[GRPC::Core::Channel::SSL_TARGET] =
+ config.security_params.server_host_override
+ end
+ else
+ cred = :this_channel_is_insecure
+ end
+ @histres = config.histogram_params.resolution
+ @histmax = config.histogram_params.max_possible
+ @start_time = Time.now
+ @histogram = Histogram.new(@histres, @histmax)
+ @done = false
+
+ gtsr = Grpc::Testing::SimpleRequest
+ gtpt = Grpc::Testing::PayloadType
+ gtp = Grpc::Testing::Payload
+ simple_params = config.payload_config.simple_params
+ req = gtsr.new(response_type: gtpt::COMPRESSABLE,
+ response_size: simple_params.resp_size,
+ payload: gtp.new(type: gtpt::COMPRESSABLE,
+ body: nulls(simple_params.req_size)))
+
+ (0..config.client_channels-1).each do |chan|
+ gtbss = Grpc::Testing::BenchmarkService::Stub
+ st = config.server_targets
+ stub = gtbss.new(st[chan % st.length], cred, **opts)
+ (0..config.outstanding_rpcs_per_channel-1).each do |r|
+ Thread.new {
+ case config.load_params.load.to_s
+ when 'closed_loop'
+ waiter = nil
+ when 'poisson'
+ waiter = Poisson.new(config.load_params.poisson.offered_load /
+ (config.client_channels *
+ config.outstanding_rpcs_per_channel))
+ end
+ case config.rpc_type
+ when :UNARY
+ unary_ping_ponger(req,stub,config,waiter)
+ when :STREAMING
+ streaming_ping_ponger(req,stub,config,waiter)
+ end
+ }
+ end
+ end
+ end
+ def wait_to_issue(waiter)
+ if waiter
+ delay = waiter.advance-Time.now
+ sleep delay if delay > 0
+ end
+ end
+ def unary_ping_ponger(req, stub, config,waiter)
+ while !@done
+ wait_to_issue(waiter)
+ start = Time.now
+ resp = stub.unary_call(req)
+ @histogram.add((Time.now-start)*1e9)
+ end
+ end
+ def streaming_ping_ponger(req, stub, config, waiter)
+ q = EnumeratorQueue.new(self)
+ resp = stub.streaming_call(q.each_item)
+ start = Time.now
+ q.push(req)
+ resp.each do |r|
+ @histogram.add((Time.now-start)*1e9)
+ if !@done
+ wait_to_issue(waiter)
+ start = Time.now
+ q.push(req)
+ else
+ q.push(self)
+ break
+ end
+ end
+ end
+ def mark(reset)
+ lat = Grpc::Testing::HistogramData.new(
+ bucket: @histogram.contents,
+ min_seen: @histogram.minimum,
+ max_seen: @histogram.maximum,
+ sum: @histogram.sum,
+ sum_of_squares: @histogram.sum_of_squares,
+ count: @histogram.count
+ )
+ elapsed = Time.now-@start_time
+ if reset
+ @start_time = Time.now
+ @histogram = Histogram.new(@histres, @histmax)
+ end
+ Grpc::Testing::ClientStats.new(latencies: lat, time_elapsed: elapsed)
+ end
+ def shutdown
+ @done = true
+ end
+end
diff --git a/src/ruby/qps/histogram.rb b/src/ruby/qps/histogram.rb
new file mode 100644
index 0000000000..bf7a89ac46
--- /dev/null
+++ b/src/ruby/qps/histogram.rb
@@ -0,0 +1,88 @@
+#!/usr/bin/env ruby
+
+# Copyright 2016, 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.
+
+# Histogram class for use in performance testing and measurement
+
+class Histogram
+ # Determine the bucket index for a given value
+ # @param {number} value The value to check
+ # @return {number} The bucket index
+ def bucket_for(value)
+ (Math.log(value)/Math.log(@multiplier)).to_i
+ end
+ # Initialize an empty histogram
+ # @param {number} resolution The resolution of the histogram
+ # @param {number} max_possible The maximum value for the histogram
+ def initialize(resolution, max_possible)
+ @resolution=resolution
+ @max_possible=max_possible
+ @sum=0
+ @sum_of_squares=0
+ @multiplier=1+resolution
+ @count=0
+ @min_seen=max_possible
+ @max_seen=0
+ @buckets=Array.new(bucket_for(max_possible)+1, 0)
+ end
+ # Add a value to the histogram. This updates all statistics with the new
+ # value. Those statistics should not be modified except with this function
+ # @param {number} value The value to add
+ def add(value)
+ @sum += value
+ @sum_of_squares += value * value
+ @count += 1
+ if value < @min_seen
+ @min_seen = value
+ end
+ if value > @max_seen
+ @max_seen = value
+ end
+ @buckets[bucket_for(value)] += 1
+ end
+ def minimum
+ @min_seen
+ end
+ def maximum
+ @max_seen
+ end
+ def sum
+ @sum
+ end
+ def sum_of_squares
+ @sum_of_squares
+ end
+ def count
+ @count
+ end
+ def contents
+ @buckets
+ end
+end
diff --git a/src/ruby/qps/qps-common.rb b/src/ruby/qps/qps-common.rb
new file mode 100644
index 0000000000..4119d600b1
--- /dev/null
+++ b/src/ruby/qps/qps-common.rb
@@ -0,0 +1,76 @@
+#!/usr/bin/env ruby
+
+# Copyright 2016, 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.
+
+# Worker and worker service implementation
+
+this_dir = File.expand_path(File.dirname(__FILE__))
+lib_dir = File.join(File.dirname(this_dir), 'lib')
+$LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
+$LOAD_PATH.unshift(this_dir) unless $LOAD_PATH.include?(this_dir)
+
+require 'grpc'
+
+# produces a string of null chars (\0 aka pack 'x') of length l.
+def nulls(l)
+ fail 'requires #{l} to be +ve' if l < 0
+ [].pack('x' * l).force_encoding('ascii-8bit')
+end
+
+# load the test-only certificates
+def load_test_certs
+ this_dir = File.expand_path(File.dirname(__FILE__))
+ data_dir = File.join(File.dirname(this_dir), 'spec/testdata')
+ files = ['ca.pem', 'server1.key', 'server1.pem']
+ files.map { |f| File.open(File.join(data_dir, f)).read }
+end
+
+# A EnumeratorQueue wraps a Queue yielding the items added to it via each_item.
+class EnumeratorQueue
+ extend Forwardable
+ def_delegators :@q, :push
+
+ def initialize(sentinel)
+ @q = Queue.new
+ @sentinel = sentinel
+ end
+
+ def each_item
+ return enum_for(:each_item) unless block_given?
+ loop do
+ r = @q.pop
+ break if r.equal?(@sentinel)
+ fail r if r.is_a? Exception
+ yield r
+ end
+ end
+end
+
+
diff --git a/src/ruby/qps/server.rb b/src/ruby/qps/server.rb
new file mode 100644
index 0000000000..26f46a3140
--- /dev/null
+++ b/src/ruby/qps/server.rb
@@ -0,0 +1,91 @@
+#!/usr/bin/env ruby
+
+# Copyright 2016, 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.
+
+# Worker and worker service implementation
+
+this_dir = File.expand_path(File.dirname(__FILE__))
+lib_dir = File.join(File.dirname(this_dir), 'lib')
+$LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
+$LOAD_PATH.unshift(this_dir) unless $LOAD_PATH.include?(this_dir)
+
+require 'grpc'
+require 'qps-common'
+require 'src/proto/grpc/testing/messages'
+require 'src/proto/grpc/testing/services_services'
+require 'src/proto/grpc/testing/stats'
+
+class BenchmarkServiceImpl < Grpc::Testing::BenchmarkService::Service
+ def unary_call(req, _call)
+ sr = Grpc::Testing::SimpleResponse
+ pl = Grpc::Testing::Payload
+ sr.new(payload: pl.new(body: nulls(req.response_size)))
+ end
+ def streaming_call(reqs)
+ q = EnumeratorQueue.new(self)
+ Thread.new {
+ sr = Grpc::Testing::SimpleResponse
+ pl = Grpc::Testing::Payload
+ reqs.each do |req|
+ q.push(sr.new(payload: pl.new(body: nulls(req.response_size))))
+ end
+ q.push(self)
+ }
+ q.each_item
+ end
+end
+
+class BenchmarkServer
+ def initialize(config, port)
+ if config.security_params
+ certs = load_test_certs
+ cred = GRPC::Core::ServerCredentials.new(
+ nil, [{private_key: certs[1], cert_chain: certs[2]}], false)
+ else
+ cred = :this_port_is_insecure
+ end
+ @server = GRPC::RpcServer.new
+ @port = @server.add_http2_port("0.0.0.0:" + port.to_s, cred)
+ @server.handle(BenchmarkServiceImpl.new)
+ @start_time = Time.now
+ Thread.new {
+ @server.run
+ }
+ end
+ def mark(reset)
+ s = Grpc::Testing::ServerStats.new(time_elapsed:
+ (Time.now-@start_time).to_f)
+ @start_time = Time.now if reset
+ s
+ end
+ def get_port
+ @port
+ end
+end
diff --git a/src/ruby/qps/src/proto/grpc/testing/control.rb b/src/ruby/qps/src/proto/grpc/testing/control.rb
new file mode 100644
index 0000000000..d007123f26
--- /dev/null
+++ b/src/ruby/qps/src/proto/grpc/testing/control.rb
@@ -0,0 +1,129 @@
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: src/proto/grpc/testing/control.proto
+
+require 'google/protobuf'
+
+require 'src/proto/grpc/testing/payloads'
+require 'src/proto/grpc/testing/stats'
+Google::Protobuf::DescriptorPool.generated_pool.build do
+ add_message "grpc.testing.PoissonParams" do
+ optional :offered_load, :double, 1
+ end
+ add_message "grpc.testing.UniformParams" do
+ optional :interarrival_lo, :double, 1
+ optional :interarrival_hi, :double, 2
+ end
+ add_message "grpc.testing.DeterministicParams" do
+ optional :offered_load, :double, 1
+ end
+ add_message "grpc.testing.ParetoParams" do
+ optional :interarrival_base, :double, 1
+ optional :alpha, :double, 2
+ end
+ add_message "grpc.testing.ClosedLoopParams" do
+ end
+ add_message "grpc.testing.LoadParams" do
+ oneof :load do
+ optional :closed_loop, :message, 1, "grpc.testing.ClosedLoopParams"
+ optional :poisson, :message, 2, "grpc.testing.PoissonParams"
+ optional :uniform, :message, 3, "grpc.testing.UniformParams"
+ optional :determ, :message, 4, "grpc.testing.DeterministicParams"
+ optional :pareto, :message, 5, "grpc.testing.ParetoParams"
+ end
+ end
+ add_message "grpc.testing.SecurityParams" do
+ optional :use_test_ca, :bool, 1
+ optional :server_host_override, :string, 2
+ end
+ add_message "grpc.testing.ClientConfig" do
+ repeated :server_targets, :string, 1
+ optional :client_type, :enum, 2, "grpc.testing.ClientType"
+ optional :security_params, :message, 3, "grpc.testing.SecurityParams"
+ optional :outstanding_rpcs_per_channel, :int32, 4
+ optional :client_channels, :int32, 5
+ optional :async_client_threads, :int32, 7
+ optional :rpc_type, :enum, 8, "grpc.testing.RpcType"
+ optional :load_params, :message, 10, "grpc.testing.LoadParams"
+ optional :payload_config, :message, 11, "grpc.testing.PayloadConfig"
+ optional :histogram_params, :message, 12, "grpc.testing.HistogramParams"
+ repeated :core_list, :int32, 13
+ optional :core_limit, :int32, 14
+ end
+ add_message "grpc.testing.ClientStatus" do
+ optional :stats, :message, 1, "grpc.testing.ClientStats"
+ end
+ add_message "grpc.testing.Mark" do
+ optional :reset, :bool, 1
+ end
+ add_message "grpc.testing.ClientArgs" do
+ oneof :argtype do
+ optional :setup, :message, 1, "grpc.testing.ClientConfig"
+ optional :mark, :message, 2, "grpc.testing.Mark"
+ end
+ end
+ add_message "grpc.testing.ServerConfig" do
+ optional :server_type, :enum, 1, "grpc.testing.ServerType"
+ optional :security_params, :message, 2, "grpc.testing.SecurityParams"
+ optional :port, :int32, 4
+ optional :async_server_threads, :int32, 7
+ optional :core_limit, :int32, 8
+ optional :payload_config, :message, 9, "grpc.testing.PayloadConfig"
+ repeated :core_list, :int32, 10
+ end
+ add_message "grpc.testing.ServerArgs" do
+ oneof :argtype do
+ optional :setup, :message, 1, "grpc.testing.ServerConfig"
+ optional :mark, :message, 2, "grpc.testing.Mark"
+ end
+ end
+ add_message "grpc.testing.ServerStatus" do
+ optional :stats, :message, 1, "grpc.testing.ServerStats"
+ optional :port, :int32, 2
+ optional :cores, :int32, 3
+ end
+ add_message "grpc.testing.CoreRequest" do
+ end
+ add_message "grpc.testing.CoreResponse" do
+ optional :cores, :int32, 1
+ end
+ add_message "grpc.testing.Void" do
+ end
+ add_enum "grpc.testing.ClientType" do
+ value :SYNC_CLIENT, 0
+ value :ASYNC_CLIENT, 1
+ end
+ add_enum "grpc.testing.ServerType" do
+ value :SYNC_SERVER, 0
+ value :ASYNC_SERVER, 1
+ value :ASYNC_GENERIC_SERVER, 2
+ end
+ add_enum "grpc.testing.RpcType" do
+ value :UNARY, 0
+ value :STREAMING, 1
+ end
+end
+
+module Grpc
+ module Testing
+ PoissonParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.PoissonParams").msgclass
+ UniformParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.UniformParams").msgclass
+ DeterministicParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.DeterministicParams").msgclass
+ ParetoParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ParetoParams").msgclass
+ ClosedLoopParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ClosedLoopParams").msgclass
+ LoadParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.LoadParams").msgclass
+ SecurityParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.SecurityParams").msgclass
+ ClientConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ClientConfig").msgclass
+ ClientStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ClientStatus").msgclass
+ Mark = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.Mark").msgclass
+ ClientArgs = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ClientArgs").msgclass
+ ServerConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ServerConfig").msgclass
+ ServerArgs = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ServerArgs").msgclass
+ ServerStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ServerStatus").msgclass
+ CoreRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.CoreRequest").msgclass
+ CoreResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.CoreResponse").msgclass
+ Void = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.Void").msgclass
+ ClientType = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ClientType").enummodule
+ ServerType = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ServerType").enummodule
+ RpcType = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.RpcType").enummodule
+ end
+end
diff --git a/src/ruby/qps/src/proto/grpc/testing/messages.rb b/src/ruby/qps/src/proto/grpc/testing/messages.rb
new file mode 100644
index 0000000000..b9c32dbef5
--- /dev/null
+++ b/src/ruby/qps/src/proto/grpc/testing/messages.rb
@@ -0,0 +1,80 @@
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: src/proto/grpc/testing/messages.proto
+
+require 'google/protobuf'
+
+Google::Protobuf::DescriptorPool.generated_pool.build do
+ add_message "grpc.testing.Payload" do
+ optional :type, :enum, 1, "grpc.testing.PayloadType"
+ optional :body, :bytes, 2
+ end
+ add_message "grpc.testing.EchoStatus" do
+ optional :code, :int32, 1
+ optional :message, :string, 2
+ end
+ add_message "grpc.testing.SimpleRequest" do
+ optional :response_type, :enum, 1, "grpc.testing.PayloadType"
+ optional :response_size, :int32, 2
+ optional :payload, :message, 3, "grpc.testing.Payload"
+ optional :fill_username, :bool, 4
+ optional :fill_oauth_scope, :bool, 5
+ optional :response_compression, :enum, 6, "grpc.testing.CompressionType"
+ optional :response_status, :message, 7, "grpc.testing.EchoStatus"
+ end
+ add_message "grpc.testing.SimpleResponse" do
+ optional :payload, :message, 1, "grpc.testing.Payload"
+ optional :username, :string, 2
+ optional :oauth_scope, :string, 3
+ end
+ add_message "grpc.testing.StreamingInputCallRequest" do
+ optional :payload, :message, 1, "grpc.testing.Payload"
+ end
+ add_message "grpc.testing.StreamingInputCallResponse" do
+ optional :aggregated_payload_size, :int32, 1
+ end
+ add_message "grpc.testing.ResponseParameters" do
+ optional :size, :int32, 1
+ optional :interval_us, :int32, 2
+ end
+ add_message "grpc.testing.StreamingOutputCallRequest" do
+ optional :response_type, :enum, 1, "grpc.testing.PayloadType"
+ repeated :response_parameters, :message, 2, "grpc.testing.ResponseParameters"
+ optional :payload, :message, 3, "grpc.testing.Payload"
+ optional :response_compression, :enum, 6, "grpc.testing.CompressionType"
+ optional :response_status, :message, 7, "grpc.testing.EchoStatus"
+ end
+ add_message "grpc.testing.StreamingOutputCallResponse" do
+ optional :payload, :message, 1, "grpc.testing.Payload"
+ end
+ add_message "grpc.testing.ReconnectInfo" do
+ optional :passed, :bool, 1
+ repeated :backoff_ms, :int32, 2
+ end
+ add_enum "grpc.testing.PayloadType" do
+ value :COMPRESSABLE, 0
+ value :UNCOMPRESSABLE, 1
+ value :RANDOM, 2
+ end
+ add_enum "grpc.testing.CompressionType" do
+ value :NONE, 0
+ value :GZIP, 1
+ value :DEFLATE, 2
+ end
+end
+
+module Grpc
+ module Testing
+ Payload = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.Payload").msgclass
+ EchoStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.EchoStatus").msgclass
+ SimpleRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.SimpleRequest").msgclass
+ SimpleResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.SimpleResponse").msgclass
+ StreamingInputCallRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.StreamingInputCallRequest").msgclass
+ StreamingInputCallResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.StreamingInputCallResponse").msgclass
+ ResponseParameters = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ResponseParameters").msgclass
+ StreamingOutputCallRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.StreamingOutputCallRequest").msgclass
+ StreamingOutputCallResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.StreamingOutputCallResponse").msgclass
+ ReconnectInfo = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ReconnectInfo").msgclass
+ PayloadType = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.PayloadType").enummodule
+ CompressionType = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.CompressionType").enummodule
+ end
+end
diff --git a/src/ruby/qps/src/proto/grpc/testing/payloads.rb b/src/ruby/qps/src/proto/grpc/testing/payloads.rb
new file mode 100644
index 0000000000..ae8855f685
--- /dev/null
+++ b/src/ruby/qps/src/proto/grpc/testing/payloads.rb
@@ -0,0 +1,33 @@
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: src/proto/grpc/testing/payloads.proto
+
+require 'google/protobuf'
+
+Google::Protobuf::DescriptorPool.generated_pool.build do
+ add_message "grpc.testing.ByteBufferParams" do
+ optional :req_size, :int32, 1
+ optional :resp_size, :int32, 2
+ end
+ add_message "grpc.testing.SimpleProtoParams" do
+ optional :req_size, :int32, 1
+ optional :resp_size, :int32, 2
+ end
+ add_message "grpc.testing.ComplexProtoParams" do
+ end
+ add_message "grpc.testing.PayloadConfig" do
+ oneof :payload do
+ optional :bytebuf_params, :message, 1, "grpc.testing.ByteBufferParams"
+ optional :simple_params, :message, 2, "grpc.testing.SimpleProtoParams"
+ optional :complex_params, :message, 3, "grpc.testing.ComplexProtoParams"
+ end
+ end
+end
+
+module Grpc
+ module Testing
+ ByteBufferParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ByteBufferParams").msgclass
+ SimpleProtoParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.SimpleProtoParams").msgclass
+ ComplexProtoParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ComplexProtoParams").msgclass
+ PayloadConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.PayloadConfig").msgclass
+ end
+end
diff --git a/src/ruby/qps/src/proto/grpc/testing/services.rb b/src/ruby/qps/src/proto/grpc/testing/services.rb
new file mode 100644
index 0000000000..b2675c2afe
--- /dev/null
+++ b/src/ruby/qps/src/proto/grpc/testing/services.rb
@@ -0,0 +1,14 @@
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: src/proto/grpc/testing/services.proto
+
+require 'google/protobuf'
+
+require 'src/proto/grpc/testing/messages'
+require 'src/proto/grpc/testing/control'
+Google::Protobuf::DescriptorPool.generated_pool.build do
+end
+
+module Grpc
+ module Testing
+ end
+end
diff --git a/src/ruby/qps/src/proto/grpc/testing/services_services.rb b/src/ruby/qps/src/proto/grpc/testing/services_services.rb
new file mode 100644
index 0000000000..3fd9f20f47
--- /dev/null
+++ b/src/ruby/qps/src/proto/grpc/testing/services_services.rb
@@ -0,0 +1,46 @@
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# Source: src/proto/grpc/testing/services.proto for package 'grpc.testing'
+
+require 'grpc'
+require 'src/proto/grpc/testing/services'
+
+module Grpc
+ module Testing
+ module BenchmarkService
+
+ # TODO: add proto service documentation here
+ class Service
+
+ include GRPC::GenericService
+
+ self.marshal_class_method = :encode
+ self.unmarshal_class_method = :decode
+ self.service_name = 'grpc.testing.BenchmarkService'
+
+ rpc :UnaryCall, SimpleRequest, SimpleResponse
+ rpc :StreamingCall, stream(SimpleRequest), stream(SimpleResponse)
+ end
+
+ Stub = Service.rpc_stub_class
+ end
+ module WorkerService
+
+ # TODO: add proto service documentation here
+ class Service
+
+ include GRPC::GenericService
+
+ self.marshal_class_method = :encode
+ self.unmarshal_class_method = :decode
+ self.service_name = 'grpc.testing.WorkerService'
+
+ rpc :RunServer, stream(ServerArgs), stream(ServerStatus)
+ rpc :RunClient, stream(ClientArgs), stream(ClientStatus)
+ rpc :CoreCount, CoreRequest, CoreResponse
+ rpc :QuitWorker, Void, Void
+ end
+
+ Stub = Service.rpc_stub_class
+ end
+ end
+end
diff --git a/src/ruby/qps/src/proto/grpc/testing/stats.rb b/src/ruby/qps/src/proto/grpc/testing/stats.rb
new file mode 100644
index 0000000000..41f75bedf0
--- /dev/null
+++ b/src/ruby/qps/src/proto/grpc/testing/stats.rb
@@ -0,0 +1,39 @@
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: src/proto/grpc/testing/stats.proto
+
+require 'google/protobuf'
+
+Google::Protobuf::DescriptorPool.generated_pool.build do
+ add_message "grpc.testing.ServerStats" do
+ optional :time_elapsed, :double, 1
+ optional :time_user, :double, 2
+ optional :time_system, :double, 3
+ end
+ add_message "grpc.testing.HistogramParams" do
+ optional :resolution, :double, 1
+ optional :max_possible, :double, 2
+ end
+ add_message "grpc.testing.HistogramData" do
+ repeated :bucket, :uint32, 1
+ optional :min_seen, :double, 2
+ optional :max_seen, :double, 3
+ optional :sum, :double, 4
+ optional :sum_of_squares, :double, 5
+ optional :count, :double, 6
+ end
+ add_message "grpc.testing.ClientStats" do
+ optional :latencies, :message, 1, "grpc.testing.HistogramData"
+ optional :time_elapsed, :double, 2
+ optional :time_user, :double, 3
+ optional :time_system, :double, 4
+ end
+end
+
+module Grpc
+ module Testing
+ ServerStats = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ServerStats").msgclass
+ HistogramParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.HistogramParams").msgclass
+ HistogramData = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.HistogramData").msgclass
+ ClientStats = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ClientStats").msgclass
+ end
+end
diff --git a/src/ruby/qps/worker.rb b/src/ruby/qps/worker.rb
new file mode 100755
index 0000000000..7c29204cc2
--- /dev/null
+++ b/src/ruby/qps/worker.rb
@@ -0,0 +1,128 @@
+#!/usr/bin/env ruby
+
+# Copyright 2016, 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.
+
+# Worker and worker service implementation
+
+this_dir = File.expand_path(File.dirname(__FILE__))
+lib_dir = File.join(File.dirname(this_dir), 'lib')
+$LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
+$LOAD_PATH.unshift(this_dir) unless $LOAD_PATH.include?(this_dir)
+
+require 'grpc'
+require 'optparse'
+require 'histogram'
+require 'etc'
+require 'facter'
+require 'client'
+require 'qps-common'
+require 'server'
+require 'src/proto/grpc/testing/services_services'
+
+class WorkerServiceImpl < Grpc::Testing::WorkerService::Service
+ def cpu_cores
+ Facter.value('processors')['count']
+ end
+ def run_server(reqs)
+ q = EnumeratorQueue.new(self)
+ Thread.new {
+ bms = ''
+ gtss = Grpc::Testing::ServerStatus
+ reqs.each do |req|
+ case req.argtype.to_s
+ when 'setup'
+ bms = BenchmarkServer.new(req.setup, @server_port)
+ q.push(gtss.new(stats: bms.mark(false), port: bms.get_port))
+ when 'mark'
+ q.push(gtss.new(stats: bms.mark(req.mark.reset), cores: cpu_cores))
+ end
+ end
+ q.push(self)
+ bms.stop
+ }
+ q.each_item
+ end
+ def run_client(reqs)
+ q = EnumeratorQueue.new(self)
+ Thread.new {
+ client = ''
+ reqs.each do |req|
+ case req.argtype.to_s
+ when 'setup'
+ client = BenchmarkClient.new(req.setup)
+ q.push(Grpc::Testing::ClientStatus.new(stats: client.mark(false)))
+ when 'mark'
+ q.push(Grpc::Testing::ClientStatus.new(stats:
+ client.mark(req.mark.reset)))
+ end
+ end
+ q.push(self)
+ client.shutdown
+ }
+ q.each_item
+ end
+ def core_count(_args, _call)
+ Grpc::Testing::CoreResponse.new(cores: cpu_cores)
+ end
+ def quit_worker(_args, _call)
+ Thread.new {
+ sleep 3
+ @server.stop
+ }
+ Grpc::Testing::Void.new
+ end
+ def initialize(s, sp)
+ @server = s
+ @server_port = sp
+ end
+end
+
+def main
+ options = {
+ 'driver_port' => 0,
+ 'server_port' => 0
+ }
+ OptionParser.new do |opts|
+ opts.banner = 'Usage: [--driver_port <port>] [--server_port <port>]'
+ opts.on('--driver_port PORT', '<port>') do |v|
+ options['driver_port'] = v
+ end
+ opts.on('--server_port PORT', '<port>') do |v|
+ options['server_port'] = v
+ end
+ end.parse!
+ s = GRPC::RpcServer.new
+ s.add_http2_port("0.0.0.0:" + options['driver_port'].to_s,
+ :this_port_is_insecure)
+ s.handle(WorkerServiceImpl.new(s, options['server_port'].to_i))
+ s.run
+end
+
+main
diff --git a/src/ruby/spec/generic/rpc_server_spec.rb b/src/ruby/spec/generic/rpc_server_spec.rb
index e16ba60387..e688057cb1 100644
--- a/src/ruby/spec/generic/rpc_server_spec.rb
+++ b/src/ruby/spec/generic/rpc_server_spec.rb
@@ -426,7 +426,7 @@ describe GRPC::RpcServer do
threads.each(&:join)
end
- it 'should return UNAVAILABLE on too many jobs', server: true do
+ it 'should return RESOURCE_EXHAUSTED on too many jobs', server: true do
opts = {
a_channel_arg: 'an_arg',
server_override: @server,
@@ -449,7 +449,8 @@ describe GRPC::RpcServer do
begin
stub.an_rpc(req)
rescue GRPC::BadStatus => e
- one_failed_as_unavailable = e.code == StatusCodes::UNAVAILABLE
+ one_failed_as_unavailable =
+ e.code == StatusCodes::RESOURCE_EXHAUSTED
end
end
end
diff --git a/test/core/bad_client/bad_client.c b/test/core/bad_client/bad_client.c
index 433ecf69df..79da278b3c 100644
--- a/test/core/bad_client/bad_client.c
+++ b/test/core/bad_client/bad_client.c
@@ -109,7 +109,8 @@ void grpc_run_bad_client_test(grpc_bad_client_server_side_validator validator,
grpc_server_register_completion_queue(a.server, a.cq, NULL);
a.registered_method =
grpc_server_register_method(a.server, GRPC_BAD_CLIENT_REGISTERED_METHOD,
- GRPC_BAD_CLIENT_REGISTERED_HOST, 0);
+ GRPC_BAD_CLIENT_REGISTERED_HOST,
+ GRPC_SRM_PAYLOAD_READ_INITIAL_BYTE_BUFFER, 0);
grpc_server_start(a.server);
transport = grpc_create_chttp2_transport(&exec_ctx, NULL, sfd.server, 0);
server_setup_transport(&a, transport);
diff --git a/test/core/bad_client/gen_build_yaml.py b/test/core/bad_client/gen_build_yaml.py
index ca26eda170..d49858ed6d 100755
--- a/test/core/bad_client/gen_build_yaml.py
+++ b/test/core/bad_client/gen_build_yaml.py
@@ -44,6 +44,7 @@ BAD_CLIENT_TESTS = {
'connection_prefix': default_test_options._replace(cpu_cost=0.2),
'headers': default_test_options._replace(cpu_cost=0.2),
'initial_settings_frame': default_test_options._replace(cpu_cost=0.2),
+ 'head_of_line_blocking': default_test_options,
'server_registered_method': default_test_options,
'simple_request': default_test_options,
'window_overflow': default_test_options,
diff --git a/test/core/bad_client/tests/head_of_line_blocking.c b/test/core/bad_client/tests/head_of_line_blocking.c
new file mode 100644
index 0000000000..53cd4537b2
--- /dev/null
+++ b/test/core/bad_client/tests/head_of_line_blocking.c
@@ -0,0 +1,151 @@
+/*
+ *
+ * Copyright 2015, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include "test/core/bad_client/bad_client.h"
+
+#include <string.h>
+
+#include <grpc/support/alloc.h>
+
+#include "src/core/lib/surface/server.h"
+#include "test/core/end2end/cq_verifier.h"
+
+static const char prefix[] =
+ "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"
+ // settings frame
+ "\x00\x00\x00\x04\x00\x00\x00\x00\x00"
+ // stream 1 headers: generated from server_registered_method.headers in this
+ // directory
+ "\x00\x00\xd0\x01\x04\x00\x00\x00\x01"
+ "\x10\x05:path\x0f/registered/bar"
+ "\x10\x07:scheme\x04http"
+ "\x10\x07:method\x04POST"
+ "\x10\x0a:authority\x09localhost"
+ "\x10\x0c"
+ "content-type\x10"
+ "application/grpc"
+ "\x10\x14grpc-accept-encoding\x15identity,deflate,gzip"
+ "\x10\x02te\x08trailers"
+ "\x10\x0auser-agent\"bad-client grpc-c/0.12.0.0 (linux)"
+ // data frame for stream 1: advertise a 10000 byte payload (that we won't
+ // fulfill)
+ "\x00\x00\x05\x00\x00\x00\x00\x00\x01"
+ "\x01\x00\x00\x27\x10"
+ // stream 3 headers: generated from server_registered_method.headers in this
+ // directory
+ "\x00\x00\xd0\x01\x04\x00\x00\x00\x03"
+ "\x10\x05:path\x0f/registered/bar"
+ "\x10\x07:scheme\x04http"
+ "\x10\x07:method\x04POST"
+ "\x10\x0a:authority\x09localhost"
+ "\x10\x0c"
+ "content-type\x10"
+ "application/grpc"
+ "\x10\x14grpc-accept-encoding\x15identity,deflate,gzip"
+ "\x10\x02te\x08trailers"
+ "\x10\x0auser-agent\"bad-client grpc-c/0.12.0.0 (linux)"
+ // data frame for stream 3: advertise a 10000 byte payload (that we will
+ // fulfill)
+ "\x00\x00\x05\x00\x00\x00\x00\x00\x03"
+ "\x01\x00\x00\x27\x10"
+ "";
+
+static void *tag(intptr_t t) { return (void *)t; }
+
+static void verifier(grpc_server *server, grpc_completion_queue *cq,
+ void *registered_method) {
+ grpc_call_error error;
+ grpc_call *s;
+ cq_verifier *cqv = cq_verifier_create(cq);
+ grpc_metadata_array request_metadata_recv;
+ gpr_timespec deadline;
+ grpc_byte_buffer *payload = NULL;
+
+ grpc_metadata_array_init(&request_metadata_recv);
+
+ error = grpc_server_request_registered_call(server, registered_method, &s,
+ &deadline, &request_metadata_recv,
+ &payload, cq, cq, tag(101));
+ GPR_ASSERT(GRPC_CALL_OK == error);
+ cq_expect_completion(cqv, tag(101), 1);
+ cq_verify(cqv);
+
+ GPR_ASSERT(payload != NULL);
+
+ grpc_metadata_array_destroy(&request_metadata_recv);
+ grpc_call_destroy(s);
+ grpc_byte_buffer_destroy(payload);
+ cq_verifier_destroy(cqv);
+}
+
+char *g_buffer;
+size_t g_cap = 0;
+size_t g_count = 0;
+
+static void addbuf(const void *data, size_t len) {
+ if (g_count + len > g_cap) {
+ g_cap = GPR_MAX(g_count + len, g_cap * 2);
+ g_buffer = gpr_realloc(g_buffer, g_cap);
+ }
+ memcpy(g_buffer + g_count, data, len);
+ g_count += len;
+}
+
+int main(int argc, char **argv) {
+ int i;
+ grpc_test_init(argc, argv);
+
+#define NUM_FRAMES 10
+#define FRAME_SIZE 1000
+
+ addbuf(prefix, sizeof(prefix) - 1);
+ for (i = 0; i < NUM_FRAMES; i++) {
+ uint8_t hdr[9] = {(uint8_t)(FRAME_SIZE >> 16),
+ (uint8_t)(FRAME_SIZE >> 8),
+ (uint8_t)FRAME_SIZE,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 3};
+ uint8_t msg[FRAME_SIZE];
+ memset(msg, 'a', sizeof(msg));
+ addbuf(hdr, sizeof(hdr));
+ addbuf(msg, FRAME_SIZE);
+ }
+ grpc_run_bad_client_test(verifier, g_buffer, g_count, 0);
+ gpr_free(g_buffer);
+
+ return 0;
+}
diff --git a/test/core/bad_ssl/bad_ssl_test.c b/test/core/bad_ssl/bad_ssl_test.c
index 12c7710af6..c4ae212ec2 100644
--- a/test/core/bad_ssl/bad_ssl_test.c
+++ b/test/core/bad_ssl/bad_ssl_test.c
@@ -87,7 +87,7 @@ static void run_test(const char *target, size_t nops) {
op = ops;
op->op = GRPC_OP_SEND_INITIAL_METADATA;
op->data.send_initial_metadata.count = 0;
- op->flags = 0;
+ op->flags = GRPC_INITIAL_METADATA_IGNORE_CONNECTIVITY;
op->reserved = NULL;
op++;
op->op = GRPC_OP_RECV_STATUS_ON_CLIENT;
diff --git a/test/core/census/mlog_test.c b/test/core/census/mlog_test.c
index 5951461436..36e8a492fd 100644
--- a/test/core/census/mlog_test.c
+++ b/test/core/census/mlog_test.c
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/census/mlog.h"
+#include "src/core/ext/census/mlog.h"
#include <grpc/support/cpu.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
diff --git a/test/core/client_config/resolvers/dns_resolver_connectivity_test.c b/test/core/client_config/resolvers/dns_resolver_connectivity_test.c
index c791ad4e57..bcd9fca9c7 100644
--- a/test/core/client_config/resolvers/dns_resolver_connectivity_test.c
+++ b/test/core/client_config/resolvers/dns_resolver_connectivity_test.c
@@ -31,31 +31,38 @@
*
*/
-#include "src/core/lib/client_config/resolvers/dns_resolver.h"
-
#include <string.h>
#include <grpc/grpc.h>
#include <grpc/support/alloc.h>
+#include "src/core/lib/client_config/resolver_registry.h"
#include "src/core/lib/iomgr/resolve_address.h"
#include "src/core/lib/iomgr/timer.h"
#include "test/core/util/test_config.h"
-static void subchannel_factory_ref(grpc_subchannel_factory *scv) {}
-static void subchannel_factory_unref(grpc_exec_ctx *exec_ctx,
- grpc_subchannel_factory *scv) {}
-static grpc_subchannel *subchannel_factory_create_subchannel(
- grpc_exec_ctx *exec_ctx, grpc_subchannel_factory *factory,
+static void client_channel_factory_ref(grpc_client_channel_factory *scv) {}
+static void client_channel_factory_unref(grpc_exec_ctx *exec_ctx,
+ grpc_client_channel_factory *scv) {}
+static grpc_subchannel *client_channel_factory_create_subchannel(
+ grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *factory,
grpc_subchannel_args *args) {
return NULL;
}
-static const grpc_subchannel_factory_vtable sc_vtable = {
- subchannel_factory_ref, subchannel_factory_unref,
- subchannel_factory_create_subchannel};
+static grpc_channel *client_channel_factory_create_channel(
+ grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *cc_factory,
+ const char *target, grpc_client_channel_type type,
+ grpc_channel_args *args) {
+ GPR_UNREACHABLE_CODE(return NULL);
+}
+
+static const grpc_client_channel_factory_vtable sc_vtable = {
+ client_channel_factory_ref, client_channel_factory_unref,
+ client_channel_factory_create_subchannel,
+ client_channel_factory_create_channel};
-static grpc_subchannel_factory sc_factory = {&sc_vtable};
+static grpc_client_channel_factory cc_factory = {&sc_vtable};
static gpr_mu g_mu;
static bool g_fail_resolution = true;
@@ -79,13 +86,13 @@ static grpc_resolved_addresses *my_resolve_address(const char *name,
}
static grpc_resolver *create_resolver(const char *name) {
- grpc_resolver_factory *factory = grpc_dns_resolver_factory_create();
+ grpc_resolver_factory *factory = grpc_resolver_factory_lookup("dns");
grpc_uri *uri = grpc_uri_parse(name, 0);
GPR_ASSERT(uri);
grpc_resolver_args args;
memset(&args, 0, sizeof(args));
args.uri = uri;
- args.subchannel_factory = &sc_factory;
+ args.client_channel_factory = &cc_factory;
grpc_resolver *resolver =
grpc_resolver_factory_create_resolver(factory, &args);
grpc_resolver_factory_unref(factory);
diff --git a/test/core/client_config/resolvers/dns_resolver_test.c b/test/core/client_config/resolvers/dns_resolver_test.c
index 043b882184..6a9c06e48c 100644
--- a/test/core/client_config/resolvers/dns_resolver_test.c
+++ b/test/core/client_config/resolvers/dns_resolver_test.c
@@ -31,29 +31,35 @@
*
*/
-#include "src/core/lib/client_config/resolvers/dns_resolver.h"
-
#include <string.h>
#include <grpc/support/log.h>
-#include "src/core/lib/client_config/resolver.h"
+#include "src/core/lib/client_config/resolver_registry.h"
#include "test/core/util/test_config.h"
-static void subchannel_factory_ref(grpc_subchannel_factory *scv) {}
-static void subchannel_factory_unref(grpc_exec_ctx *exec_ctx,
- grpc_subchannel_factory *scv) {}
-static grpc_subchannel *subchannel_factory_create_subchannel(
- grpc_exec_ctx *exec_ctx, grpc_subchannel_factory *factory,
+static void client_channel_factory_ref(grpc_client_channel_factory *scv) {}
+static void client_channel_factory_unref(grpc_exec_ctx *exec_ctx,
+ grpc_client_channel_factory *scv) {}
+static grpc_subchannel *client_channel_factory_create_subchannel(
+ grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *factory,
grpc_subchannel_args *args) {
GPR_UNREACHABLE_CODE(return NULL);
}
-static const grpc_subchannel_factory_vtable sc_vtable = {
- subchannel_factory_ref, subchannel_factory_unref,
- subchannel_factory_create_subchannel};
+static grpc_channel *client_channel_factory_create_channel(
+ grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *cc_factory,
+ const char *target, grpc_client_channel_type type,
+ grpc_channel_args *args) {
+ GPR_UNREACHABLE_CODE(return NULL);
+}
+
+static const grpc_client_channel_factory_vtable sc_vtable = {
+ client_channel_factory_ref, client_channel_factory_unref,
+ client_channel_factory_create_subchannel,
+ client_channel_factory_create_channel};
-static grpc_subchannel_factory sc_factory = {&sc_vtable};
+static grpc_client_channel_factory cc_factory = {&sc_vtable};
static void test_succeeds(grpc_resolver_factory *factory, const char *string) {
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
@@ -65,7 +71,7 @@ static void test_succeeds(grpc_resolver_factory *factory, const char *string) {
GPR_ASSERT(uri);
memset(&args, 0, sizeof(args));
args.uri = uri;
- args.subchannel_factory = &sc_factory;
+ args.client_channel_factory = &cc_factory;
resolver = grpc_resolver_factory_create_resolver(factory, &args);
GPR_ASSERT(resolver != NULL);
GRPC_RESOLVER_UNREF(&exec_ctx, resolver, "test_succeeds");
@@ -92,8 +98,9 @@ static void test_fails(grpc_resolver_factory *factory, const char *string) {
int main(int argc, char **argv) {
grpc_resolver_factory *dns;
grpc_test_init(argc, argv);
+ grpc_init();
- dns = grpc_dns_resolver_factory_create();
+ dns = grpc_resolver_factory_lookup("dns");
test_succeeds(dns, "dns:10.2.1.1");
test_succeeds(dns, "dns:10.2.1.1:1234");
@@ -101,6 +108,7 @@ int main(int argc, char **argv) {
test_fails(dns, "ipv4://8.8.8.8/8.8.8.8:8888");
grpc_resolver_factory_unref(dns);
+ grpc_shutdown();
return 0;
}
diff --git a/test/core/client_config/resolvers/sockaddr_resolver_test.c b/test/core/client_config/resolvers/sockaddr_resolver_test.c
index e23616ca23..99b3ca0dc8 100644
--- a/test/core/client_config/resolvers/sockaddr_resolver_test.c
+++ b/test/core/client_config/resolvers/sockaddr_resolver_test.c
@@ -31,29 +31,35 @@
*
*/
-#include "src/core/lib/client_config/resolvers/sockaddr_resolver.h"
-
#include <string.h>
#include <grpc/support/log.h>
-#include "src/core/lib/client_config/resolver.h"
+#include "src/core/lib/client_config/resolver_registry.h"
#include "test/core/util/test_config.h"
-static void subchannel_factory_ref(grpc_subchannel_factory *scv) {}
-static void subchannel_factory_unref(grpc_exec_ctx *exec_ctx,
- grpc_subchannel_factory *scv) {}
-static grpc_subchannel *subchannel_factory_create_subchannel(
- grpc_exec_ctx *exec_ctx, grpc_subchannel_factory *factory,
+static void client_channel_factory_ref(grpc_client_channel_factory *scv) {}
+static void client_channel_factory_unref(grpc_exec_ctx *exec_ctx,
+ grpc_client_channel_factory *scv) {}
+static grpc_subchannel *client_channel_factory_create_subchannel(
+ grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *factory,
grpc_subchannel_args *args) {
GPR_UNREACHABLE_CODE(return NULL);
}
-static const grpc_subchannel_factory_vtable sc_vtable = {
- subchannel_factory_ref, subchannel_factory_unref,
- subchannel_factory_create_subchannel};
+static grpc_channel *client_channel_factory_create_channel(
+ grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *cc_factory,
+ const char *target, grpc_client_channel_type type,
+ grpc_channel_args *args) {
+ GPR_UNREACHABLE_CODE(return NULL);
+}
+
+static const grpc_client_channel_factory_vtable sc_vtable = {
+ client_channel_factory_ref, client_channel_factory_unref,
+ client_channel_factory_create_subchannel,
+ client_channel_factory_create_channel};
-static grpc_subchannel_factory sc_factory = {&sc_vtable};
+static grpc_client_channel_factory cc_factory = {&sc_vtable};
static void test_succeeds(grpc_resolver_factory *factory, const char *string) {
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
@@ -65,7 +71,7 @@ static void test_succeeds(grpc_resolver_factory *factory, const char *string) {
GPR_ASSERT(uri);
memset(&args, 0, sizeof(args));
args.uri = uri;
- args.subchannel_factory = &sc_factory;
+ args.client_channel_factory = &cc_factory;
resolver = grpc_resolver_factory_create_resolver(factory, &args);
GPR_ASSERT(resolver != NULL);
GRPC_RESOLVER_UNREF(&exec_ctx, resolver, "test_succeeds");
@@ -92,12 +98,14 @@ static void test_fails(grpc_resolver_factory *factory, const char *string) {
int main(int argc, char **argv) {
grpc_resolver_factory *ipv4, *ipv6;
grpc_test_init(argc, argv);
+ grpc_init();
- ipv4 = grpc_ipv4_resolver_factory_create();
- ipv6 = grpc_ipv6_resolver_factory_create();
+ ipv4 = grpc_resolver_factory_lookup("ipv4");
+ ipv6 = grpc_resolver_factory_lookup("ipv6");
test_fails(ipv4, "ipv4:10.2.1.1");
test_succeeds(ipv4, "ipv4:10.2.1.1:1234");
+ test_succeeds(ipv4, "ipv4:10.2.1.1:1234,127.0.0.1:4321");
test_fails(ipv4, "ipv4:10.2.1.1:123456");
test_fails(ipv4, "ipv4:www.google.com");
test_fails(ipv4, "ipv4:[");
@@ -111,6 +119,7 @@ int main(int argc, char **argv) {
grpc_resolver_factory_unref(ipv4);
grpc_resolver_factory_unref(ipv6);
+ grpc_shutdown();
return 0;
}
diff --git a/test/core/client_config/uri_parser_test.c b/test/core/client_config/uri_parser_test.c
index e5d0c378ba..f87aa81ee6 100644
--- a/test/core/client_config/uri_parser_test.c
+++ b/test/core/client_config/uri_parser_test.c
@@ -56,6 +56,73 @@ static void test_fails(const char *uri_text) {
GPR_ASSERT(NULL == grpc_uri_parse(uri_text, 0));
}
+static void test_query_parts() {
+ {
+ const char *uri_text = "http://foo/path?a&b=B&c=&#frag";
+ grpc_uri *uri = grpc_uri_parse(uri_text, 0);
+ GPR_ASSERT(uri);
+
+ GPR_ASSERT(0 == strcmp("http", uri->scheme));
+ GPR_ASSERT(0 == strcmp("foo", uri->authority));
+ GPR_ASSERT(0 == strcmp("/path", uri->path));
+ GPR_ASSERT(0 == strcmp("a&b=B&c=&", uri->query));
+ GPR_ASSERT(4 == uri->num_query_parts);
+
+ GPR_ASSERT(0 == strcmp("a", uri->query_parts[0]));
+ GPR_ASSERT(NULL == uri->query_parts_values[0]);
+
+ GPR_ASSERT(0 == strcmp("b", uri->query_parts[1]));
+ GPR_ASSERT(0 == strcmp("B", uri->query_parts_values[1]));
+
+ GPR_ASSERT(0 == strcmp("c", uri->query_parts[2]));
+ GPR_ASSERT(0 == strcmp("", uri->query_parts_values[2]));
+
+ GPR_ASSERT(0 == strcmp("", uri->query_parts[3]));
+ GPR_ASSERT(NULL == uri->query_parts_values[3]);
+
+ GPR_ASSERT(NULL == grpc_uri_get_query_arg(uri, "a"));
+ GPR_ASSERT(0 == strcmp("B", grpc_uri_get_query_arg(uri, "b")));
+ GPR_ASSERT(0 == strcmp("", grpc_uri_get_query_arg(uri, "c")));
+ GPR_ASSERT(NULL == grpc_uri_get_query_arg(uri, ""));
+
+ GPR_ASSERT(0 == strcmp("frag", uri->fragment));
+ grpc_uri_destroy(uri);
+ }
+ {
+ /* test the current behavior of multiple query part values */
+ const char *uri_text = "http://auth/path?foo=bar=baz&foobar==";
+ grpc_uri *uri = grpc_uri_parse(uri_text, 0);
+ GPR_ASSERT(uri);
+
+ GPR_ASSERT(0 == strcmp("http", uri->scheme));
+ GPR_ASSERT(0 == strcmp("auth", uri->authority));
+ GPR_ASSERT(0 == strcmp("/path", uri->path));
+ GPR_ASSERT(0 == strcmp("foo=bar=baz&foobar==", uri->query));
+ GPR_ASSERT(2 == uri->num_query_parts);
+
+ GPR_ASSERT(0 == strcmp("bar", grpc_uri_get_query_arg(uri, "foo")));
+ GPR_ASSERT(0 == strcmp("", grpc_uri_get_query_arg(uri, "foobar")));
+
+ grpc_uri_destroy(uri);
+ }
+ {
+ /* empty query */
+ const char *uri_text = "http://foo/path";
+ grpc_uri *uri = grpc_uri_parse(uri_text, 0);
+ GPR_ASSERT(uri);
+
+ GPR_ASSERT(0 == strcmp("http", uri->scheme));
+ GPR_ASSERT(0 == strcmp("foo", uri->authority));
+ GPR_ASSERT(0 == strcmp("/path", uri->path));
+ GPR_ASSERT(0 == strcmp("", uri->query));
+ GPR_ASSERT(0 == uri->num_query_parts);
+ GPR_ASSERT(NULL == uri->query_parts);
+ GPR_ASSERT(NULL == uri->query_parts_values);
+ GPR_ASSERT(0 == strcmp("", uri->fragment));
+ grpc_uri_destroy(uri);
+ }
+}
+
int main(int argc, char **argv) {
grpc_test_init(argc, argv);
test_succeeds("http://www.google.com", "http", "www.google.com", "", "", "");
@@ -82,5 +149,6 @@ int main(int argc, char **argv) {
test_fails("http://foo?x[bar]");
test_fails("http://foo?bar#lol#");
+ test_query_parts();
return 0;
}
diff --git a/test/core/end2end/dualstack_socket_test.c b/test/core/end2end/dualstack_socket_test.c
index 8568bb1a86..81f76ea79c 100644
--- a/test/core/end2end/dualstack_socket_test.c
+++ b/test/core/end2end/dualstack_socket_test.c
@@ -168,7 +168,7 @@ void test_connect(const char *server_host, const char *client_host, int port,
op = ops;
op->op = GRPC_OP_SEND_INITIAL_METADATA;
op->data.send_initial_metadata.count = 0;
- op->flags = 0;
+ op->flags = expect_ok ? GRPC_INITIAL_METADATA_IGNORE_CONNECTIVITY : 0;
op->reserved = NULL;
op++;
op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT;
@@ -237,7 +237,7 @@ void test_connect(const char *server_host, const char *client_host, int port,
cq_expect_completion(cqv, tag(1), 1);
cq_verify(cqv);
- GPR_ASSERT(status == GRPC_STATUS_DEADLINE_EXCEEDED);
+ GPR_ASSERT(status == GRPC_STATUS_UNAVAILABLE);
}
grpc_call_destroy(c);
diff --git a/test/core/end2end/fixtures/h2_full+poll+pipe.c b/test/core/end2end/fixtures/h2_full+poll+pipe.c
deleted file mode 100644
index 7d57adf665..0000000000
--- a/test/core/end2end/fixtures/h2_full+poll+pipe.c
+++ /dev/null
@@ -1,122 +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.
- *
- */
-
-#include "test/core/end2end/end2end_tests.h"
-
-#include <string.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/host_port.h>
-#include <grpc/support/log.h>
-#include <grpc/support/sync.h>
-#include <grpc/support/thd.h>
-#include <grpc/support/useful.h>
-
-#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
-#include "src/core/lib/channel/client_channel.h"
-#include "src/core/lib/channel/connected_channel.h"
-#include "src/core/lib/channel/http_server_filter.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
-#include "src/core/lib/iomgr/wakeup_fd_posix.h"
-#include "src/core/lib/surface/channel.h"
-#include "src/core/lib/surface/server.h"
-#include "test/core/util/port.h"
-#include "test/core/util/test_config.h"
-
-typedef struct fullstack_fixture_data {
- char *localaddr;
-} fullstack_fixture_data;
-
-static grpc_end2end_test_fixture chttp2_create_fixture_fullstack(
- grpc_channel_args *client_args, grpc_channel_args *server_args) {
- grpc_end2end_test_fixture f;
- int port = grpc_pick_unused_port_or_die();
- fullstack_fixture_data *ffd = gpr_malloc(sizeof(fullstack_fixture_data));
- memset(&f, 0, sizeof(f));
-
- gpr_join_host_port(&ffd->localaddr, "localhost", port);
-
- f.fixture_data = ffd;
- f.cq = grpc_completion_queue_create(NULL);
-
- return f;
-}
-
-void chttp2_init_client_fullstack(grpc_end2end_test_fixture *f,
- grpc_channel_args *client_args) {
- fullstack_fixture_data *ffd = f->fixture_data;
- f->client = grpc_insecure_channel_create(ffd->localaddr, client_args, NULL);
-}
-
-void chttp2_init_server_fullstack(grpc_end2end_test_fixture *f,
- grpc_channel_args *server_args) {
- fullstack_fixture_data *ffd = f->fixture_data;
- if (f->server) {
- grpc_server_destroy(f->server);
- }
- f->server = grpc_server_create(server_args, NULL);
- grpc_server_register_completion_queue(f->server, f->cq, NULL);
- GPR_ASSERT(grpc_server_add_insecure_http2_port(f->server, ffd->localaddr));
- grpc_server_start(f->server);
-}
-
-void chttp2_tear_down_fullstack(grpc_end2end_test_fixture *f) {
- fullstack_fixture_data *ffd = f->fixture_data;
- gpr_free(ffd->localaddr);
- gpr_free(ffd);
-}
-
-/* All test configurations */
-static grpc_end2end_test_config configs[] = {
- {"chttp2/fullstack", FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION,
- chttp2_create_fixture_fullstack, chttp2_init_client_fullstack,
- chttp2_init_server_fullstack, chttp2_tear_down_fullstack},
-};
-
-int main(int argc, char **argv) {
- size_t i;
-
- grpc_allow_specialized_wakeup_fd = 0;
- grpc_platform_become_multipoller = grpc_poll_become_multipoller;
-
- grpc_test_init(argc, argv);
- grpc_init();
-
- for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
- grpc_end2end_tests(argc, argv, configs[i]);
- }
-
- grpc_shutdown();
-
- return 0;
-}
diff --git a/test/core/end2end/fixtures/h2_full+poll.c b/test/core/end2end/fixtures/h2_full+poll.c
deleted file mode 100644
index 71a406ebbc..0000000000
--- a/test/core/end2end/fixtures/h2_full+poll.c
+++ /dev/null
@@ -1,120 +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.
- *
- */
-
-#include "test/core/end2end/end2end_tests.h"
-
-#include <string.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/host_port.h>
-#include <grpc/support/log.h>
-#include <grpc/support/sync.h>
-#include <grpc/support/thd.h>
-#include <grpc/support/useful.h>
-
-#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
-#include "src/core/lib/channel/client_channel.h"
-#include "src/core/lib/channel/connected_channel.h"
-#include "src/core/lib/channel/http_server_filter.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
-#include "src/core/lib/surface/channel.h"
-#include "src/core/lib/surface/server.h"
-#include "test/core/util/port.h"
-#include "test/core/util/test_config.h"
-
-typedef struct fullstack_fixture_data {
- char *localaddr;
-} fullstack_fixture_data;
-
-static grpc_end2end_test_fixture chttp2_create_fixture_fullstack(
- grpc_channel_args *client_args, grpc_channel_args *server_args) {
- grpc_end2end_test_fixture f;
- int port = grpc_pick_unused_port_or_die();
- fullstack_fixture_data *ffd = gpr_malloc(sizeof(fullstack_fixture_data));
- memset(&f, 0, sizeof(f));
-
- gpr_join_host_port(&ffd->localaddr, "localhost", port);
-
- f.fixture_data = ffd;
- f.cq = grpc_completion_queue_create(NULL);
-
- return f;
-}
-
-void chttp2_init_client_fullstack(grpc_end2end_test_fixture *f,
- grpc_channel_args *client_args) {
- fullstack_fixture_data *ffd = f->fixture_data;
- f->client = grpc_insecure_channel_create(ffd->localaddr, client_args, NULL);
-}
-
-void chttp2_init_server_fullstack(grpc_end2end_test_fixture *f,
- grpc_channel_args *server_args) {
- fullstack_fixture_data *ffd = f->fixture_data;
- if (f->server) {
- grpc_server_destroy(f->server);
- }
- f->server = grpc_server_create(server_args, NULL);
- grpc_server_register_completion_queue(f->server, f->cq, NULL);
- GPR_ASSERT(grpc_server_add_insecure_http2_port(f->server, ffd->localaddr));
- grpc_server_start(f->server);
-}
-
-void chttp2_tear_down_fullstack(grpc_end2end_test_fixture *f) {
- fullstack_fixture_data *ffd = f->fixture_data;
- gpr_free(ffd->localaddr);
- gpr_free(ffd);
-}
-
-/* All test configurations */
-static grpc_end2end_test_config configs[] = {
- {"chttp2/fullstack", FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION,
- chttp2_create_fixture_fullstack, chttp2_init_client_fullstack,
- chttp2_init_server_fullstack, chttp2_tear_down_fullstack},
-};
-
-int main(int argc, char **argv) {
- size_t i;
-
- grpc_platform_become_multipoller = grpc_poll_become_multipoller;
-
- grpc_test_init(argc, argv);
- grpc_init();
-
- for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
- grpc_end2end_tests(argc, argv, configs[i]);
- }
-
- grpc_shutdown();
-
- return 0;
-}
diff --git a/test/core/end2end/fixtures/h2_ssl+poll.c b/test/core/end2end/fixtures/h2_ssl+poll.c
deleted file mode 100644
index 63c56fa034..0000000000
--- a/test/core/end2end/fixtures/h2_ssl+poll.c
+++ /dev/null
@@ -1,194 +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.
- *
- */
-
-#include "test/core/end2end/end2end_tests.h"
-
-#include <stdio.h>
-#include <string.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/host_port.h>
-#include <grpc/support/log.h>
-
-#include "src/core/lib/channel/channel_args.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
-#include "src/core/lib/security/credentials.h"
-#include "src/core/lib/support/env.h"
-#include "src/core/lib/support/string.h"
-#include "src/core/lib/support/tmpfile.h"
-#include "test/core/end2end/data/ssl_test_data.h"
-#include "test/core/util/port.h"
-#include "test/core/util/test_config.h"
-
-typedef struct fullstack_secure_fixture_data {
- char *localaddr;
-} fullstack_secure_fixture_data;
-
-static grpc_end2end_test_fixture chttp2_create_fixture_secure_fullstack(
- grpc_channel_args *client_args, grpc_channel_args *server_args) {
- grpc_end2end_test_fixture f;
- int port = grpc_pick_unused_port_or_die();
- fullstack_secure_fixture_data *ffd =
- gpr_malloc(sizeof(fullstack_secure_fixture_data));
- memset(&f, 0, sizeof(f));
-
- gpr_join_host_port(&ffd->localaddr, "localhost", port);
-
- f.fixture_data = ffd;
- f.cq = grpc_completion_queue_create(NULL);
-
- return f;
-}
-
-static void process_auth_failure(void *state, grpc_auth_context *ctx,
- const grpc_metadata *md, size_t md_count,
- grpc_process_auth_metadata_done_cb cb,
- void *user_data) {
- GPR_ASSERT(state == NULL);
- cb(user_data, NULL, 0, NULL, 0, GRPC_STATUS_UNAUTHENTICATED, NULL);
-}
-
-static void chttp2_init_client_secure_fullstack(
- grpc_end2end_test_fixture *f, grpc_channel_args *client_args,
- grpc_channel_credentials *creds) {
- fullstack_secure_fixture_data *ffd = f->fixture_data;
- f->client =
- grpc_secure_channel_create(creds, ffd->localaddr, client_args, NULL);
- GPR_ASSERT(f->client != NULL);
- grpc_channel_credentials_release(creds);
-}
-
-static void chttp2_init_server_secure_fullstack(
- grpc_end2end_test_fixture *f, grpc_channel_args *server_args,
- grpc_server_credentials *server_creds) {
- fullstack_secure_fixture_data *ffd = f->fixture_data;
- if (f->server) {
- grpc_server_destroy(f->server);
- }
- f->server = grpc_server_create(server_args, NULL);
- grpc_server_register_completion_queue(f->server, f->cq, NULL);
- GPR_ASSERT(grpc_server_add_secure_http2_port(f->server, ffd->localaddr,
- server_creds));
- grpc_server_credentials_release(server_creds);
- grpc_server_start(f->server);
-}
-
-void chttp2_tear_down_secure_fullstack(grpc_end2end_test_fixture *f) {
- fullstack_secure_fixture_data *ffd = f->fixture_data;
- gpr_free(ffd->localaddr);
- gpr_free(ffd);
-}
-
-static void chttp2_init_client_simple_ssl_secure_fullstack(
- grpc_end2end_test_fixture *f, grpc_channel_args *client_args) {
- grpc_channel_credentials *ssl_creds =
- grpc_ssl_credentials_create(NULL, NULL, NULL);
- grpc_arg ssl_name_override = {GRPC_ARG_STRING,
- GRPC_SSL_TARGET_NAME_OVERRIDE_ARG,
- {"foo.test.google.fr"}};
- grpc_channel_args *new_client_args =
- grpc_channel_args_copy_and_add(client_args, &ssl_name_override, 1);
- chttp2_init_client_secure_fullstack(f, new_client_args, ssl_creds);
- grpc_channel_args_destroy(new_client_args);
-}
-
-static int fail_server_auth_check(grpc_channel_args *server_args) {
- size_t i;
- if (server_args == NULL) return 0;
- for (i = 0; i < server_args->num_args; i++) {
- if (strcmp(server_args->args[i].key, FAIL_AUTH_CHECK_SERVER_ARG_NAME) ==
- 0) {
- return 1;
- }
- }
- return 0;
-}
-
-static void chttp2_init_server_simple_ssl_secure_fullstack(
- grpc_end2end_test_fixture *f, grpc_channel_args *server_args) {
- grpc_ssl_pem_key_cert_pair pem_cert_key_pair = {test_server1_key,
- test_server1_cert};
- grpc_server_credentials *ssl_creds =
- grpc_ssl_server_credentials_create(NULL, &pem_cert_key_pair, 1, 0, NULL);
- if (fail_server_auth_check(server_args)) {
- grpc_auth_metadata_processor processor = {process_auth_failure, NULL, NULL};
- grpc_server_credentials_set_auth_metadata_processor(ssl_creds, processor);
- }
- chttp2_init_server_secure_fullstack(f, server_args, ssl_creds);
-}
-
-/* All test configurations */
-
-static grpc_end2end_test_config configs[] = {
- {"chttp2/simple_ssl_fullstack",
- FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION |
- FEATURE_MASK_SUPPORTS_PER_CALL_CREDENTIALS,
- chttp2_create_fixture_secure_fullstack,
- chttp2_init_client_simple_ssl_secure_fullstack,
- chttp2_init_server_simple_ssl_secure_fullstack,
- chttp2_tear_down_secure_fullstack},
-};
-
-int main(int argc, char **argv) {
- size_t i;
- FILE *roots_file;
- size_t roots_size = strlen(test_root_cert);
- char *roots_filename;
-
- grpc_platform_become_multipoller = grpc_poll_become_multipoller;
-
- grpc_test_init(argc, argv);
-
- /* Set the SSL roots env var. */
- roots_file = gpr_tmpfile("chttp2_simple_ssl_with_poll_fullstack_test",
- &roots_filename);
- GPR_ASSERT(roots_filename != NULL);
- GPR_ASSERT(roots_file != NULL);
- GPR_ASSERT(fwrite(test_root_cert, 1, roots_size, roots_file) == roots_size);
- fclose(roots_file);
- gpr_setenv(GRPC_DEFAULT_SSL_ROOTS_FILE_PATH_ENV_VAR, roots_filename);
-
- grpc_init();
-
- for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
- grpc_end2end_tests(argc, argv, configs[i]);
- }
-
- grpc_shutdown();
-
- /* Cleanup. */
- remove(roots_filename);
- gpr_free(roots_filename);
-
- return 0;
-}
diff --git a/test/core/end2end/fixtures/h2_uds+poll.c b/test/core/end2end/fixtures/h2_uds+poll.c
deleted file mode 100644
index 793ffba125..0000000000
--- a/test/core/end2end/fixtures/h2_uds+poll.c
+++ /dev/null
@@ -1,126 +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.
- *
- */
-
-#include "test/core/end2end/end2end_tests.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/host_port.h>
-#include <grpc/support/log.h>
-#include <grpc/support/string_util.h>
-#include <grpc/support/sync.h>
-#include <grpc/support/thd.h>
-#include <grpc/support/useful.h>
-
-#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
-#include "src/core/lib/channel/client_channel.h"
-#include "src/core/lib/channel/connected_channel.h"
-#include "src/core/lib/channel/http_server_filter.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
-#include "src/core/lib/support/string.h"
-#include "src/core/lib/surface/channel.h"
-#include "src/core/lib/surface/server.h"
-#include "test/core/util/port.h"
-#include "test/core/util/test_config.h"
-
-typedef struct fullstack_fixture_data {
- char *localaddr;
-} fullstack_fixture_data;
-
-static int unique = 1;
-
-static grpc_end2end_test_fixture chttp2_create_fixture_fullstack(
- grpc_channel_args *client_args, grpc_channel_args *server_args) {
- grpc_end2end_test_fixture f;
- fullstack_fixture_data *ffd = gpr_malloc(sizeof(fullstack_fixture_data));
- memset(&f, 0, sizeof(f));
-
- gpr_asprintf(&ffd->localaddr, "unix:/tmp/grpc_fullstack_test.%d.%d", getpid(),
- unique++);
-
- f.fixture_data = ffd;
- f.cq = grpc_completion_queue_create(NULL);
-
- return f;
-}
-
-void chttp2_init_client_fullstack(grpc_end2end_test_fixture *f,
- grpc_channel_args *client_args) {
- fullstack_fixture_data *ffd = f->fixture_data;
- f->client = grpc_insecure_channel_create(ffd->localaddr, client_args, NULL);
-}
-
-void chttp2_init_server_fullstack(grpc_end2end_test_fixture *f,
- grpc_channel_args *server_args) {
- fullstack_fixture_data *ffd = f->fixture_data;
- if (f->server) {
- grpc_server_destroy(f->server);
- }
- f->server = grpc_server_create(server_args, NULL);
- grpc_server_register_completion_queue(f->server, f->cq, NULL);
- GPR_ASSERT(grpc_server_add_insecure_http2_port(f->server, ffd->localaddr));
- grpc_server_start(f->server);
-}
-
-void chttp2_tear_down_fullstack(grpc_end2end_test_fixture *f) {
- fullstack_fixture_data *ffd = f->fixture_data;
- gpr_free(ffd->localaddr);
- gpr_free(ffd);
-}
-
-/* All test configurations */
-static grpc_end2end_test_config configs[] = {
- {"chttp2/fullstack_uds", FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION,
- chttp2_create_fixture_fullstack, chttp2_init_client_fullstack,
- chttp2_init_server_fullstack, chttp2_tear_down_fullstack},
-};
-
-int main(int argc, char **argv) {
- size_t i;
-
- grpc_platform_become_multipoller = grpc_poll_become_multipoller;
-
- grpc_test_init(argc, argv);
- grpc_init();
-
- for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
- grpc_end2end_tests(argc, argv, configs[i]);
- }
-
- grpc_shutdown();
-
- return 0;
-}
diff --git a/test/core/end2end/fixtures/proxy.c b/test/core/end2end/fixtures/proxy.c
index 1ca53cdad9..a6487a17ac 100644
--- a/test/core/end2end/fixtures/proxy.c
+++ b/test/core/end2end/fixtures/proxy.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/gen_build_yaml.py b/test/core/end2end/gen_build_yaml.py
index 4261fdb676..43ad22e714 100755
--- a/test/core/end2end/gen_build_yaml.py
+++ b/test/core/end2end/gen_build_yaml.py
@@ -53,12 +53,8 @@ END2END_FIXTURES = {
'h2_census': default_unsecure_fixture_options,
'h2_fakesec': default_secure_fixture_options._replace(ci_mac=False),
'h2_full': default_unsecure_fixture_options,
- 'h2_full+poll': default_unsecure_fixture_options._replace(
- platforms=['linux']),
'h2_full+pipe': default_unsecure_fixture_options._replace(
platforms=['linux']),
- 'h2_full+poll+pipe': default_unsecure_fixture_options._replace(
- platforms=['linux']),
'h2_full+trace': default_unsecure_fixture_options._replace(tracing=True),
'h2_oauth2': default_secure_fixture_options._replace(ci_mac=False),
'h2_proxy': default_unsecure_fixture_options._replace(includes_proxy=True,
@@ -69,10 +65,8 @@ END2END_FIXTURES = {
'h2_sockpair+trace': socketpair_unsecure_fixture_options._replace(
ci_mac=False, tracing=True),
'h2_ssl': default_secure_fixture_options,
- 'h2_ssl+poll': default_secure_fixture_options._replace(platforms=['linux']),
'h2_ssl_proxy': default_secure_fixture_options._replace(includes_proxy=True,
ci_mac=False),
- 'h2_uds+poll': uds_fixture_options._replace(platforms=['linux']),
'h2_uds': uds_fixture_options,
}
diff --git a/test/core/end2end/goaway_server_test.c b/test/core/end2end/goaway_server_test.c
new file mode 100644
index 0000000000..5f8c2641e7
--- /dev/null
+++ b/test/core/end2end/goaway_server_test.c
@@ -0,0 +1,301 @@
+/*
+ *
+ * Copyright 2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include <grpc/grpc.h>
+#include <grpc/support/alloc.h>
+#include <grpc/support/log.h>
+#include <grpc/support/string_util.h>
+#include <string.h>
+#include "src/core/lib/iomgr/resolve_address.h"
+#include "src/core/lib/iomgr/sockaddr.h"
+#include "test/core/end2end/cq_verifier.h"
+#include "test/core/util/port.h"
+#include "test/core/util/test_config.h"
+
+static void *tag(intptr_t i) { return (void *)i; }
+
+static gpr_mu g_mu;
+static int g_resolve_port = -1;
+static grpc_resolved_addresses *(*iomgr_resolve_address)(
+ const char *name, const char *default_port);
+
+static void set_resolve_port(int port) {
+ gpr_mu_lock(&g_mu);
+ g_resolve_port = port;
+ gpr_mu_unlock(&g_mu);
+}
+
+static grpc_resolved_addresses *my_resolve_address(const char *name,
+ const char *addr) {
+ if (0 != strcmp(name, "test")) {
+ return iomgr_resolve_address(name, addr);
+ }
+
+ gpr_mu_lock(&g_mu);
+ if (g_resolve_port < 0) {
+ gpr_mu_unlock(&g_mu);
+ return NULL;
+ } else {
+ grpc_resolved_addresses *addrs = gpr_malloc(sizeof(*addrs));
+ addrs->naddrs = 1;
+ addrs->addrs = gpr_malloc(sizeof(*addrs->addrs));
+ memset(addrs->addrs, 0, sizeof(*addrs->addrs));
+ struct sockaddr_in *sa = (struct sockaddr_in *)addrs->addrs[0].addr;
+ sa->sin_family = AF_INET;
+ sa->sin_addr.s_addr = htonl(0x7f000001);
+ sa->sin_port = htons((uint16_t)g_resolve_port);
+ addrs->addrs[0].len = sizeof(*sa);
+ gpr_mu_unlock(&g_mu);
+ return addrs;
+ }
+}
+
+int main(int argc, char **argv) {
+ grpc_completion_queue *cq;
+ cq_verifier *cqv;
+ grpc_op ops[6];
+ grpc_op *op;
+
+ grpc_test_init(argc, argv);
+
+ gpr_mu_init(&g_mu);
+ iomgr_resolve_address = grpc_blocking_resolve_address;
+ grpc_blocking_resolve_address = my_resolve_address;
+ grpc_init();
+
+ int was_cancelled1;
+ int was_cancelled2;
+
+ grpc_metadata_array trailing_metadata_recv1;
+ grpc_metadata_array request_metadata1;
+ grpc_call_details request_details1;
+ grpc_status_code status1;
+ char *details1 = NULL;
+ size_t details_capacity1 = 0;
+ grpc_metadata_array_init(&trailing_metadata_recv1);
+ grpc_metadata_array_init(&request_metadata1);
+ grpc_call_details_init(&request_details1);
+
+ grpc_metadata_array trailing_metadata_recv2;
+ grpc_metadata_array request_metadata2;
+ grpc_call_details request_details2;
+ grpc_status_code status2;
+ char *details2 = NULL;
+ size_t details_capacity2 = 0;
+ grpc_metadata_array_init(&trailing_metadata_recv2);
+ grpc_metadata_array_init(&request_metadata2);
+ grpc_call_details_init(&request_details2);
+
+ cq = grpc_completion_queue_create(NULL);
+ cqv = cq_verifier_create(cq);
+
+ /* reserve two ports */
+ int port1 = grpc_pick_unused_port_or_die();
+ int port2 = grpc_pick_unused_port_or_die();
+
+ char *addr;
+
+ /* create a channel that picks first amongst the servers */
+ grpc_channel *chan = grpc_insecure_channel_create("test", NULL, NULL);
+ /* and an initial call to them */
+ grpc_call *call1 = grpc_channel_create_call(
+ chan, NULL, GRPC_PROPAGATE_DEFAULTS, cq, "/foo", "127.0.0.1",
+ GRPC_TIMEOUT_SECONDS_TO_DEADLINE(20), NULL);
+ /* send initial metadata to probe connectivity */
+ op = ops;
+ op->op = GRPC_OP_SEND_INITIAL_METADATA;
+ op->data.send_initial_metadata.count = 0;
+ op->flags = 0;
+ op->reserved = NULL;
+ op++;
+ GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call1, ops,
+ (size_t)(op - ops),
+ tag(0x101), NULL));
+ /* and receive status to probe termination */
+ op = ops;
+ op->op = GRPC_OP_RECV_STATUS_ON_CLIENT;
+ op->data.recv_status_on_client.trailing_metadata = &trailing_metadata_recv1;
+ op->data.recv_status_on_client.status = &status1;
+ op->data.recv_status_on_client.status_details = &details1;
+ op->data.recv_status_on_client.status_details_capacity = &details_capacity1;
+ op->flags = 0;
+ op->reserved = NULL;
+ op++;
+ GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call1, ops,
+ (size_t)(op - ops),
+ tag(0x102), NULL));
+
+ /* bring a server up on the first port */
+ grpc_server *server1 = grpc_server_create(NULL, NULL);
+ gpr_asprintf(&addr, "127.0.0.1:%d", port1);
+ grpc_server_add_insecure_http2_port(server1, addr);
+ grpc_server_register_completion_queue(server1, cq, NULL);
+ gpr_free(addr);
+ grpc_server_start(server1);
+
+ /* request a call to the server */
+ grpc_call *server_call1;
+ GPR_ASSERT(GRPC_CALL_OK ==
+ grpc_server_request_call(server1, &server_call1, &request_details1,
+ &request_metadata1, cq, cq, tag(0x301)));
+
+ set_resolve_port(port1);
+
+ /* first call should now start */
+ cq_expect_completion(cqv, tag(0x101), 1);
+ cq_expect_completion(cqv, tag(0x301), 1);
+ cq_verify(cqv);
+
+ GPR_ASSERT(GRPC_CHANNEL_READY ==
+ grpc_channel_check_connectivity_state(chan, 0));
+ grpc_channel_watch_connectivity_state(chan, GRPC_CHANNEL_READY,
+ gpr_inf_future(GPR_CLOCK_REALTIME), cq,
+ tag(0x9999));
+
+ /* listen for close on the server call to probe for finishing */
+ op = ops;
+ op->op = GRPC_OP_RECV_CLOSE_ON_SERVER;
+ op->data.recv_close_on_server.cancelled = &was_cancelled1;
+ op->flags = 0;
+ op++;
+ GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(server_call1, ops,
+ (size_t)(op - ops),
+ tag(0x302), NULL));
+
+ /* shutdown first server:
+ * we should see a connectivity change and then nothing */
+ set_resolve_port(-1);
+ grpc_server_shutdown_and_notify(server1, cq, tag(0xdead1));
+ cq_expect_completion(cqv, tag(0x9999), 1);
+ cq_verify(cqv);
+ cq_verify_empty(cqv);
+
+ /* and a new call: should go through to server2 when we start it */
+ grpc_call *call2 = grpc_channel_create_call(
+ chan, NULL, GRPC_PROPAGATE_DEFAULTS, cq, "/foo", "127.0.0.1",
+ GRPC_TIMEOUT_SECONDS_TO_DEADLINE(20), NULL);
+ /* send initial metadata to probe connectivity */
+ op = ops;
+ op->op = GRPC_OP_SEND_INITIAL_METADATA;
+ op->data.send_initial_metadata.count = 0;
+ op->flags = 0;
+ op->reserved = NULL;
+ op++;
+ GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call2, ops,
+ (size_t)(op - ops),
+ tag(0x201), NULL));
+ /* and receive status to probe termination */
+ op = ops;
+ op->op = GRPC_OP_RECV_STATUS_ON_CLIENT;
+ op->data.recv_status_on_client.trailing_metadata = &trailing_metadata_recv2;
+ op->data.recv_status_on_client.status = &status2;
+ op->data.recv_status_on_client.status_details = &details2;
+ op->data.recv_status_on_client.status_details_capacity = &details_capacity2;
+ op->flags = 0;
+ op->reserved = NULL;
+ op++;
+ GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call2, ops,
+ (size_t)(op - ops),
+ tag(0x202), NULL));
+
+ /* and bring up second server */
+ set_resolve_port(port2);
+ grpc_server *server2 = grpc_server_create(NULL, NULL);
+ gpr_asprintf(&addr, "127.0.0.1:%d", port2);
+ grpc_server_add_insecure_http2_port(server2, addr);
+ grpc_server_register_completion_queue(server2, cq, NULL);
+ gpr_free(addr);
+ grpc_server_start(server2);
+
+ /* request a call to the server */
+ grpc_call *server_call2;
+ GPR_ASSERT(GRPC_CALL_OK ==
+ grpc_server_request_call(server2, &server_call2, &request_details2,
+ &request_metadata2, cq, cq, tag(0x401)));
+
+ /* second call should now start */
+ cq_expect_completion(cqv, tag(0x201), 1);
+ cq_expect_completion(cqv, tag(0x401), 1);
+ cq_verify(cqv);
+
+ /* listen for close on the server call to probe for finishing */
+ op = ops;
+ op->op = GRPC_OP_RECV_CLOSE_ON_SERVER;
+ op->data.recv_close_on_server.cancelled = &was_cancelled2;
+ op->flags = 0;
+ op++;
+ GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(server_call2, ops,
+ (size_t)(op - ops),
+ tag(0x402), NULL));
+
+ /* shutdown second server: we should see nothing */
+ grpc_server_shutdown_and_notify(server2, cq, tag(0xdead2));
+ cq_verify_empty(cqv);
+
+ grpc_call_cancel(call1, NULL);
+ grpc_call_cancel(call2, NULL);
+
+ /* now everything else should finish */
+ cq_expect_completion(cqv, tag(0x102), 1);
+ cq_expect_completion(cqv, tag(0x202), 1);
+ cq_expect_completion(cqv, tag(0x302), 1);
+ cq_expect_completion(cqv, tag(0x402), 1);
+ cq_expect_completion(cqv, tag(0xdead1), 1);
+ cq_expect_completion(cqv, tag(0xdead2), 1);
+ cq_verify(cqv);
+
+ grpc_call_destroy(call1);
+ grpc_call_destroy(call2);
+ grpc_call_destroy(server_call1);
+ grpc_call_destroy(server_call2);
+ grpc_server_destroy(server1);
+ grpc_server_destroy(server2);
+ grpc_channel_destroy(chan);
+
+ grpc_metadata_array_destroy(&trailing_metadata_recv1);
+ grpc_metadata_array_destroy(&request_metadata1);
+ grpc_call_details_destroy(&request_details1);
+ gpr_free(details1);
+ grpc_metadata_array_destroy(&trailing_metadata_recv2);
+ grpc_metadata_array_destroy(&request_metadata2);
+ grpc_call_details_destroy(&request_details2);
+ gpr_free(details2);
+
+ cq_verifier_destroy(cqv);
+ grpc_completion_queue_destroy(cq);
+
+ grpc_shutdown();
+ gpr_mu_destroy(&g_mu);
+
+ return 0;
+}
diff --git a/test/core/end2end/tests/idempotent_request.c b/test/core/end2end/tests/idempotent_request.c
index 485a854441..1bc6450414 100644
--- a/test/core/end2end/tests/idempotent_request.c
+++ b/test/core/end2end/tests/idempotent_request.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/simple_delayed_request.c b/test/core/end2end/tests/simple_delayed_request.c
index bb9d462cef..122dcd0a5b 100644
--- a/test/core/end2end/tests/simple_delayed_request.c
+++ b/test/core/end2end/tests/simple_delayed_request.c
@@ -120,7 +120,7 @@ static void simple_delayed_request_body(grpc_end2end_test_config config,
op = ops;
op->op = GRPC_OP_SEND_INITIAL_METADATA;
op->data.send_initial_metadata.count = 0;
- op->flags = 0;
+ op->flags = GRPC_INITIAL_METADATA_IGNORE_CONNECTIVITY;
op->reserved = NULL;
op++;
op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT;
diff --git a/test/core/internal_api_canaries/iomgr.c b/test/core/internal_api_canaries/iomgr.c
index 04d66994cd..f87a80cd90 100644
--- a/test/core/internal_api_canaries/iomgr.c
+++ b/test/core/internal_api_canaries/iomgr.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/internal_api_canaries/support.c b/test/core/internal_api_canaries/support.c
index 7e00e0d2ff..c51cbf2522 100644
--- a/test/core/internal_api_canaries/support.c
+++ b/test/core/internal_api_canaries/support.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/internal_api_canaries/transport.c b/test/core/internal_api_canaries/transport.c
index 01daabaa56..0617865412 100644
--- a/test/core/internal_api_canaries/transport.c
+++ b/test/core/internal_api_canaries/transport.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/iomgr/endpoint_pair_test.c b/test/core/iomgr/endpoint_pair_test.c
index c19680b881..0df94a878f 100644
--- a/test/core/iomgr/endpoint_pair_test.c
+++ b/test/core/iomgr/endpoint_pair_test.c
@@ -31,14 +31,12 @@
*
*/
-#include "src/core/lib/iomgr/tcp_posix.h"
-
+#include "src/core/lib/iomgr/endpoint_pair.h"
#include <grpc/grpc.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/time.h>
#include <grpc/support/useful.h>
-#include "src/core/lib/iomgr/endpoint_pair.h"
#include "test/core/iomgr/endpoint_tests.h"
#include "test/core/util/test_config.h"
diff --git a/test/core/iomgr/fd_posix_test.c b/test/core/iomgr/fd_posix_test.c
index b11b51ef7b..f97f33712e 100644
--- a/test/core/iomgr/fd_posix_test.c
+++ b/test/core/iomgr/fd_posix_test.c
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/iomgr/fd_posix.h"
+#include "src/core/lib/iomgr/ev_posix.h"
#include <ctype.h>
#include <errno.h>
@@ -50,7 +50,8 @@
#include <grpc/support/sync.h>
#include <grpc/support/time.h>
-#include "src/core/lib/iomgr/pollset_posix.h"
+#include "src/core/lib/iomgr/ev_posix.h"
+#include "src/core/lib/iomgr/iomgr.h"
#include "test/core/util/test_config.h"
static gpr_mu *g_mu;
@@ -134,7 +135,7 @@ static void session_shutdown_cb(grpc_exec_ctx *exec_ctx, void *arg, /*session */
static void session_read_cb(grpc_exec_ctx *exec_ctx, void *arg, /*session */
bool success) {
session *se = arg;
- int fd = se->em_fd->fd;
+ int fd = grpc_fd_wrapped_fd(se->em_fd);
ssize_t read_once = 0;
ssize_t read_total = 0;
@@ -204,7 +205,7 @@ static void listen_cb(grpc_exec_ctx *exec_ctx, void *arg, /*=sv_arg*/
return;
}
- fd = accept(listen_em_fd->fd, (struct sockaddr *)&ss, &slen);
+ fd = accept(grpc_fd_wrapped_fd(listen_em_fd), (struct sockaddr *)&ss, &slen);
GPR_ASSERT(fd >= 0);
GPR_ASSERT(fd < FD_SETSIZE);
flags = fcntl(fd, F_GETFL, 0);
@@ -306,7 +307,7 @@ static void client_session_shutdown_cb(grpc_exec_ctx *exec_ctx,
static void client_session_write(grpc_exec_ctx *exec_ctx, void *arg, /*client */
bool success) {
client *cl = arg;
- int fd = cl->em_fd->fd;
+ int fd = grpc_fd_wrapped_fd(cl->em_fd);
ssize_t write_once = 0;
if (!success) {
diff --git a/test/core/iomgr/tcp_client_posix_test.c b/test/core/iomgr/tcp_client_posix_test.c
index 745bb23e1e..22dc9366c3 100644
--- a/test/core/iomgr/tcp_client_posix_test.c
+++ b/test/core/iomgr/tcp_client_posix_test.c
@@ -45,6 +45,7 @@
#include <grpc/support/time.h>
#include "src/core/lib/iomgr/iomgr.h"
+#include "src/core/lib/iomgr/pollset_set.h"
#include "src/core/lib/iomgr/socket_utils_posix.h"
#include "src/core/lib/iomgr/timer.h"
#include "test/core/util/test_config.h"
diff --git a/test/core/iomgr/udp_server_test.c b/test/core/iomgr/udp_server_test.c
index b1f6e726dc..463d40a46b 100644
--- a/test/core/iomgr/udp_server_test.c
+++ b/test/core/iomgr/udp_server_test.c
@@ -36,8 +36,8 @@
#include <grpc/support/log.h>
#include <grpc/support/sync.h>
#include <grpc/support/time.h>
+#include "src/core/lib/iomgr/ev_posix.h"
#include "src/core/lib/iomgr/iomgr.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
#include "test/core/util/test_config.h"
#include <netinet/in.h>
diff --git a/test/core/json/corpus/15a8f2e7f94aa00b46f1b991416aa015dd633580 b/test/core/json/corpus/15a8f2e7f94aa00b46f1b991416aa015dd633580
new file mode 100644
index 0000000000..7e613e891d
--- /dev/null
+++ b/test/core/json/corpus/15a8f2e7f94aa00b46f1b991416aa015dd633580
@@ -0,0 +1 @@
+{"":21} \ No newline at end of file
diff --git a/test/core/json/corpus/56cd60743c2cee939f5f357905bd36ec9363f441 b/test/core/json/corpus/56cd60743c2cee939f5f357905bd36ec9363f441
new file mode 100644
index 0000000000..8d53a05e08
--- /dev/null
+++ b/test/core/json/corpus/56cd60743c2cee939f5f357905bd36ec9363f441
@@ -0,0 +1 @@
+{"":21] \ No newline at end of file
diff --git a/test/core/json/corpus/743e89b768af4bd591ea7228118550b1bfb8e7d1 b/test/core/json/corpus/743e89b768af4bd591ea7228118550b1bfb8e7d1
new file mode 100644
index 0000000000..b232065b09
--- /dev/null
+++ b/test/core/json/corpus/743e89b768af4bd591ea7228118550b1bfb8e7d1
@@ -0,0 +1 @@
+{"":0}f'+G{)13(§!(''\! \ No newline at end of file
diff --git a/test/core/json/corpus/775e8ffda1f5d340dba472d06dc7c8bf8159e379 b/test/core/json/corpus/775e8ffda1f5d340dba472d06dc7c8bf8159e379
new file mode 100644
index 0000000000..6f56d403bb
--- /dev/null
+++ b/test/core/json/corpus/775e8ffda1f5d340dba472d06dc7c8bf8159e379
@@ -0,0 +1 @@
+{"":0},f'+G{)23(§!''! \ No newline at end of file
diff --git a/test/core/json/corpus/8d952ec2e33b2a6a1c7876898719a610f5546388 b/test/core/json/corpus/8d952ec2e33b2a6a1c7876898719a610f5546388
new file mode 100644
index 0000000000..fb7475be91
--- /dev/null
+++ b/test/core/json/corpus/8d952ec2e33b2a6a1c7876898719a610f5546388
@@ -0,0 +1 @@
+{"":0]f'+G{)13(§!(''\! \ No newline at end of file
diff --git a/test/core/json/corpus/a0d4af29c6c223b48fe34d6a09b3a7466242f33c b/test/core/json/corpus/a0d4af29c6c223b48fe34d6a09b3a7466242f33c
new file mode 100644
index 0000000000..db616e9f56
--- /dev/null
+++ b/test/core/json/corpus/a0d4af29c6c223b48fe34d6a09b3a7466242f33c
@@ -0,0 +1 @@
+{"":0],f'`+G{-22(§!''! \ No newline at end of file
diff --git a/test/core/json/fuzzer.c b/test/core/json/fuzzer.c
index a7b9e49878..044db973ab 100644
--- a/test/core/json/fuzzer.c
+++ b/test/core/json/fuzzer.c
@@ -35,16 +35,53 @@
#include <string.h>
#include <grpc/support/alloc.h>
+#include <grpc/support/log.h>
#include "src/core/lib/json/json.h"
+static size_t g_total_size = 0;
+static gpr_allocation_functions g_old_allocs;
+
+void *guard_malloc(size_t size) {
+ size_t *ptr;
+ g_total_size += size;
+ ptr = g_old_allocs.malloc_fn(size + sizeof(size));
+ *ptr++ = size;
+ return ptr;
+}
+
+void *guard_realloc(void *vptr, size_t size) {
+ size_t *ptr = vptr;
+ --ptr;
+ g_total_size -= *ptr;
+ ptr = g_old_allocs.realloc_fn(ptr, size + sizeof(size));
+ g_total_size += size;
+ *ptr++ = size;
+ return ptr;
+}
+
+void guard_free(void *vptr) {
+ size_t *ptr = vptr;
+ --ptr;
+ g_total_size -= *ptr;
+ g_old_allocs.free_fn(ptr);
+}
+
+struct gpr_allocation_functions g_guard_allocs = {guard_malloc, guard_realloc,
+ guard_free};
+
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
- char *s = gpr_malloc(size);
+ char *s;
+ g_old_allocs = gpr_get_allocation_functions();
+ gpr_set_allocation_functions(g_guard_allocs);
+ s = gpr_malloc(size);
memcpy(s, data, size);
grpc_json *x;
if ((x = grpc_json_parse_string_with_len(s, size))) {
grpc_json_destroy(x);
}
gpr_free(s);
+ gpr_set_allocation_functions(g_old_allocs);
+ GPR_ASSERT(g_total_size == 0);
return 0;
}
diff --git a/test/core/json/json_test.c b/test/core/json/json_test.c
index 9775779e3b..ac1abbd8f3 100644
--- a/test/core/json/json_test.c
+++ b/test/core/json/json_test.c
@@ -89,6 +89,8 @@ static testing_pair testing_pairs[] = {
{"{\"foo\": bar}", NULL},
{"{\"foo\": bar\"x\"}", NULL},
{"fals", NULL},
+ {"0,0 ", NULL},
+ {"\"foo\",[]", NULL},
/* Testing unterminated string. */
{"\"\\x", NULL},
/* Testing invalid UTF-16 number. */
diff --git a/test/core/security/jwt_verifier_test.c b/test/core/security/jwt_verifier_test.c
index 41e0793382..077f44d1d6 100644
--- a/test/core/security/jwt_verifier_test.c
+++ b/test/core/security/jwt_verifier_test.c
@@ -35,16 +35,18 @@
#include <string.h>
-#include "src/core/lib/http/httpcli.h"
-#include "src/core/lib/security/b64.h"
-#include "src/core/lib/security/json_token.h"
-#include "test/core/util/test_config.h"
+#include <grpc/grpc.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/slice.h>
#include <grpc/support/string_util.h>
+#include "src/core/lib/http/httpcli.h"
+#include "src/core/lib/security/b64.h"
+#include "src/core/lib/security/json_token.h"
+#include "test/core/util/test_config.h"
+
/* This JSON key was generated with the GCE console and revoked immediately.
The identifiers have been changed as well.
Maximum size for a string literal is 509 chars in C89, yay! */
@@ -568,6 +570,7 @@ static void test_jwt_verifier_bad_format(void) {
int main(int argc, char **argv) {
grpc_test_init(argc, argv);
+ grpc_init();
test_claims_success();
test_expired_claims_failure();
test_invalid_claims_failure();
@@ -579,5 +582,6 @@ int main(int argc, char **argv) {
test_jwt_verifier_bad_json_key();
test_jwt_verifier_bad_signature();
test_jwt_verifier_bad_format();
+ grpc_shutdown();
return 0;
}
diff --git a/test/core/statistics/census_log_tests.c b/test/core/statistics/census_log_tests.c
index 92570d9af9..8646a2fdf1 100644
--- a/test/core/statistics/census_log_tests.c
+++ b/test/core/statistics/census_log_tests.c
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/statistics/census_log.h"
+#include "src/core/ext/census/census_log.h"
#include <grpc/support/cpu.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
diff --git a/test/core/statistics/census_stub_test.c b/test/core/statistics/census_stub_test.c
index dbc7cf74b7..f9dddb6599 100644
--- a/test/core/statistics/census_stub_test.c
+++ b/test/core/statistics/census_stub_test.c
@@ -36,8 +36,8 @@
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
-#include "src/core/lib/statistics/census_interface.h"
-#include "src/core/lib/statistics/census_rpc_stats.h"
+#include "src/core/ext/census/census_interface.h"
+#include "src/core/ext/census/census_rpc_stats.h"
#include "test/core/util/test_config.h"
/* Tests census noop stubs in a simulated rpc flow */
diff --git a/test/core/statistics/hash_table_test.c b/test/core/statistics/hash_table_test.c
index 6fc2d6086d..f63c1a366a 100644
--- a/test/core/statistics/hash_table_test.c
+++ b/test/core/statistics/hash_table_test.c
@@ -35,7 +35,7 @@
#include <stdlib.h>
#include <string.h>
-#include "src/core/lib/statistics/hash_table.h"
+#include "src/core/ext/census/hash_table.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
diff --git a/test/core/statistics/rpc_stats_test.c b/test/core/statistics/rpc_stats_test.c
index 715bd13931..14def4bfe1 100644
--- a/test/core/statistics/rpc_stats_test.c
+++ b/test/core/statistics/rpc_stats_test.c
@@ -39,9 +39,9 @@
#include <grpc/support/string.h>
#include <grpc/support/thd.h>
#include <grpc/support/time.h>
-#include "src/core/lib/statistics/census_interface.h"
-#include "src/core/lib/statistics/census_rpc_stats.h"
-#include "src/core/lib/statistics/census_tracing.h"
+#include "src/core/ext/census/census_interface.h"
+#include "src/core/ext/census/census_rpc_stats.h"
+#include "src/core/ext/census/census_tracing.h"
#include "test/core/util/test_config.h"
/* Ensure all possible state transitions are called without causing problem */
diff --git a/test/core/statistics/trace_test.c b/test/core/statistics/trace_test.c
index 8dab8b6738..790507f2c6 100644
--- a/test/core/statistics/trace_test.c
+++ b/test/core/statistics/trace_test.c
@@ -41,9 +41,9 @@
#include <grpc/support/thd.h>
#include <grpc/support/time.h>
#include <grpc/support/useful.h>
-#include "src/core/lib/statistics/census_interface.h"
-#include "src/core/lib/statistics/census_tracing.h"
-#include "src/core/lib/statistics/census_tracing.h"
+#include "src/core/ext/census/census_interface.h"
+#include "src/core/ext/census/census_tracing.h"
+#include "src/core/ext/census/census_tracing.h"
#include "test/core/util/test_config.h"
/* Ensure all possible state transitions are called without causing problem */
diff --git a/test/core/statistics/window_stats_test.c b/test/core/statistics/window_stats_test.c
index 5192ca53c7..5d71ba613d 100644
--- a/test/core/statistics/window_stats_test.c
+++ b/test/core/statistics/window_stats_test.c
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/statistics/window_stats.h"
+#include "src/core/ext/census/window_stats.h"
#include <grpc/support/log.h>
#include <grpc/support/time.h>
#include <stdlib.h>
diff --git a/test/core/surface/server_test.c b/test/core/surface/server_test.c
index 4c62d8caad..3d2e25379a 100644
--- a/test/core/surface/server_test.c
+++ b/test/core/surface/server_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -42,19 +42,25 @@ void test_register_method_fail(void) {
grpc_server *server = grpc_server_create(NULL, NULL);
void *method;
void *method_old;
- method = grpc_server_register_method(server, NULL, NULL, 0);
+ method =
+ grpc_server_register_method(server, NULL, NULL, GRPC_SRM_PAYLOAD_NONE, 0);
GPR_ASSERT(method == NULL);
- method_old = grpc_server_register_method(server, "m", "h", 0);
+ method_old =
+ grpc_server_register_method(server, "m", "h", GRPC_SRM_PAYLOAD_NONE, 0);
GPR_ASSERT(method_old != NULL);
- method = grpc_server_register_method(server, "m", "h", 0);
+ method = grpc_server_register_method(
+ server, "m", "h", GRPC_SRM_PAYLOAD_READ_INITIAL_BYTE_BUFFER, 0);
GPR_ASSERT(method == NULL);
- method_old = grpc_server_register_method(
- server, "m2", "h2", GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST);
+ method_old =
+ grpc_server_register_method(server, "m2", "h2", GRPC_SRM_PAYLOAD_NONE,
+ GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST);
GPR_ASSERT(method_old != NULL);
- method = grpc_server_register_method(server, "m2", "h2", 0);
+ method =
+ grpc_server_register_method(server, "m2", "h2", GRPC_SRM_PAYLOAD_NONE, 0);
GPR_ASSERT(method == NULL);
method = grpc_server_register_method(
- server, "m2", "h2", GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST);
+ server, "m2", "h2", GRPC_SRM_PAYLOAD_READ_INITIAL_BYTE_BUFFER,
+ GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST);
GPR_ASSERT(method == NULL);
grpc_server_destroy(server);
}
diff --git a/src/core/lib/client_config/resolvers/dns_resolver.h b/test/core/util/one_corpus_entry_fuzzer.c
index de41961ea9..41f9558211 100644
--- a/src/core/lib/client_config/resolvers/dns_resolver.h
+++ b/test/core/util/one_corpus_entry_fuzzer.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,12 +31,16 @@
*
*/
-#ifndef GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVERS_DNS_RESOLVER_H
-#define GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVERS_DNS_RESOLVER_H
+#include <grpc/support/log.h>
+#include "src/core/lib/support/load_file.h"
-#include "src/core/lib/client_config/resolver_factory.h"
+extern int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size);
-/** Create a dns resolver factory */
-grpc_resolver_factory *grpc_dns_resolver_factory_create(void);
-
-#endif /* GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVERS_DNS_RESOLVER_H */
+int main(int argc, char **argv) {
+ int ok = 0;
+ gpr_slice buffer = gpr_load_file(argv[1], 0, &ok);
+ GPR_ASSERT(ok);
+ LLVMFuzzerTestOneInput(GPR_SLICE_START_PTR(buffer), GPR_SLICE_LENGTH(buffer));
+ gpr_slice_unref(buffer);
+ return 0;
+}
diff --git a/test/core/util/reconnect_server.c b/test/core/util/reconnect_server.c
index 5b0b3259c8..d408374a09 100644
--- a/test/core/util/reconnect_server.c
+++ b/test/core/util/reconnect_server.c
@@ -60,8 +60,12 @@ static void pretty_print_backoffs(reconnect_server *server) {
i, backoff / 1000.0, expected_backoff / 1000.0,
(backoff - expected_backoff) * 100.0 / expected_backoff);
expected_backoff *= 1.6;
- if (expected_backoff > 120 * 1000) {
- expected_backoff = 120 * 1000;
+ int max_reconnect_backoff_ms = 120 * 1000;
+ if (server->max_reconnect_backoff_ms > 0) {
+ max_reconnect_backoff_ms = server->max_reconnect_backoff_ms;
+ }
+ if (expected_backoff > max_reconnect_backoff_ms) {
+ expected_backoff = max_reconnect_backoff_ms;
}
}
}
@@ -108,6 +112,7 @@ void reconnect_server_init(reconnect_server *server) {
server->head = NULL;
server->tail = NULL;
server->peer = NULL;
+ server->max_reconnect_backoff_ms = 0;
}
void reconnect_server_start(reconnect_server *server, int port) {
diff --git a/test/core/util/reconnect_server.h b/test/core/util/reconnect_server.h
index e2e6a02461..ed02d49512 100644
--- a/test/core/util/reconnect_server.h
+++ b/test/core/util/reconnect_server.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -52,6 +52,7 @@ typedef struct reconnect_server {
timestamp_list *head;
timestamp_list *tail;
char *peer;
+ int max_reconnect_backoff_ms;
} reconnect_server;
void reconnect_server_init(reconnect_server *server);
diff --git a/test/cpp/end2end/async_end2end_test.cc b/test/cpp/end2end/async_end2end_test.cc
index 38f1311eb7..7e4d6046d6 100644
--- a/test/cpp/end2end/async_end2end_test.cc
+++ b/test/cpp/end2end/async_end2end_test.cc
@@ -53,7 +53,7 @@
#include "test/cpp/util/string_ref_helper.h"
#ifdef GPR_POSIX_SOCKET
-#include "src/core/lib/iomgr/pollset_posix.h"
+#include "src/core/lib/iomgr/ev_posix.h"
#endif
using grpc::testing::EchoRequest;
diff --git a/test/cpp/end2end/client_crash_test.cc b/test/cpp/end2end/client_crash_test.cc
index c01f40dbc2..30b04fb9b9 100644
--- a/test/cpp/end2end/client_crash_test.cc
+++ b/test/cpp/end2end/client_crash_test.cc
@@ -88,6 +88,7 @@ TEST_F(CrashTest, KillBeforeWrite) {
EchoRequest request;
EchoResponse response;
ClientContext context;
+ context.set_fail_fast(false);
auto stream = stub->BidiStream(&context);
@@ -113,6 +114,7 @@ TEST_F(CrashTest, KillAfterWrite) {
EchoRequest request;
EchoResponse response;
ClientContext context;
+ context.set_fail_fast(false);
auto stream = stub->BidiStream(&context);
diff --git a/test/cpp/end2end/server_crash_test_client.cc b/test/cpp/end2end/server_crash_test_client.cc
index 1964840fa5..ece948d5a7 100644
--- a/test/cpp/end2end/server_crash_test_client.cc
+++ b/test/cpp/end2end/server_crash_test_client.cc
@@ -63,6 +63,7 @@ int main(int argc, char** argv) {
EchoRequest request;
EchoResponse response;
grpc::ClientContext context;
+ context.set_fail_fast(false);
if (FLAGS_mode == "bidi") {
auto stream = stub->BidiStream(&context);
diff --git a/test/cpp/end2end/thread_stress_test.cc b/test/cpp/end2end/thread_stress_test.cc
index 245b342a69..94541f9a45 100644
--- a/test/cpp/end2end/thread_stress_test.cc
+++ b/test/cpp/end2end/thread_stress_test.cc
@@ -179,6 +179,7 @@ template <class Service>
class CommonStressTest {
public:
CommonStressTest() : kMaxMessageSize_(8192) {}
+ virtual ~CommonStressTest() {}
virtual void SetUp() = 0;
virtual void TearDown() = 0;
void ResetStub() {
diff --git a/test/cpp/interop/reconnect_interop_client.cc b/test/cpp/interop/reconnect_interop_client.cc
index 87e3bd6c76..797e52c744 100644
--- a/test/cpp/interop/reconnect_interop_client.cc
+++ b/test/cpp/interop/reconnect_interop_client.cc
@@ -37,6 +37,7 @@
#include <gflags/gflags.h>
#include <grpc++/channel.h>
#include <grpc++/client_context.h>
+#include <grpc++/support/channel_arguments.h>
#include <grpc/grpc.h>
#include <grpc/support/log.h>
#include "src/proto/grpc/testing/empty.grpc.pb.h"
@@ -48,13 +49,18 @@
DEFINE_int32(server_control_port, 0, "Server port for control rpcs.");
DEFINE_int32(server_retry_port, 0, "Server port for testing reconnection.");
DEFINE_string(server_host, "127.0.0.1", "Server host to connect to");
+DEFINE_int32(max_reconnect_backoff_ms, 0,
+ "Maximum backoff time, or 0 for default.");
+using grpc::CallCredentials;
using grpc::Channel;
+using grpc::ChannelArguments;
using grpc::ClientContext;
using grpc::CreateTestChannel;
using grpc::Status;
using grpc::testing::Empty;
using grpc::testing::ReconnectInfo;
+using grpc::testing::ReconnectParams;
using grpc::testing::ReconnectService;
int main(int argc, char** argv) {
@@ -68,17 +74,25 @@ int main(int argc, char** argv) {
ReconnectService::NewStub(
CreateTestChannel(server_address.str(), false)));
ClientContext start_context;
- Empty empty_request;
+ ReconnectParams reconnect_params;
+ reconnect_params.set_max_reconnect_backoff_ms(FLAGS_max_reconnect_backoff_ms);
Empty empty_response;
Status start_status =
- control_stub->Start(&start_context, empty_request, &empty_response);
+ control_stub->Start(&start_context, reconnect_params, &empty_response);
GPR_ASSERT(start_status.ok());
gpr_log(GPR_INFO, "Starting connections with retries.");
server_address.str("");
server_address << FLAGS_server_host << ':' << FLAGS_server_retry_port;
+ ChannelArguments channel_args;
+ if (FLAGS_max_reconnect_backoff_ms > 0) {
+ channel_args.SetInt(GRPC_ARG_MAX_RECONNECT_BACKOFF_MS,
+ FLAGS_max_reconnect_backoff_ms);
+ }
std::shared_ptr<Channel> retry_channel =
- CreateTestChannel(server_address.str(), true);
+ CreateTestChannel(server_address.str(), "foo.test.google.fr", true, false,
+ std::shared_ptr<CallCredentials>(), channel_args);
+
// About 13 retries.
const int kDeadlineSeconds = 540;
// Use any rpc to test retry.
@@ -88,15 +102,15 @@ int main(int argc, char** argv) {
retry_context.set_deadline(std::chrono::system_clock::now() +
std::chrono::seconds(kDeadlineSeconds));
Status retry_status =
- retry_stub->Start(&retry_context, empty_request, &empty_response);
+ retry_stub->Start(&retry_context, reconnect_params, &empty_response);
GPR_ASSERT(retry_status.error_code() == grpc::StatusCode::DEADLINE_EXCEEDED);
gpr_log(GPR_INFO, "Done retrying, getting final data from server");
ClientContext stop_context;
ReconnectInfo response;
- Status stop_status =
- control_stub->Stop(&stop_context, empty_request, &response);
+ Status stop_status = control_stub->Stop(&stop_context, Empty(), &response);
GPR_ASSERT(stop_status.ok());
GPR_ASSERT(response.passed() == true);
+ gpr_log(GPR_INFO, "Passed");
return 0;
}
diff --git a/test/cpp/interop/reconnect_interop_server.cc b/test/cpp/interop/reconnect_interop_server.cc
index e2114fae19..53d51e80e7 100644
--- a/test/cpp/interop/reconnect_interop_server.cc
+++ b/test/cpp/interop/reconnect_interop_server.cc
@@ -71,6 +71,7 @@ using grpc::Status;
using grpc::testing::Empty;
using grpc::testing::ReconnectService;
using grpc::testing::ReconnectInfo;
+using grpc::testing::ReconnectParams;
static bool got_sigint = false;
@@ -92,7 +93,8 @@ class ReconnectServiceImpl : public ReconnectService::Service {
void Poll(int seconds) { reconnect_server_poll(&tcp_server_, seconds); }
- Status Start(ServerContext* context, const Empty* request, Empty* response) {
+ Status Start(ServerContext* context, const ReconnectParams* request,
+ Empty* response) {
bool start_server = true;
std::unique_lock<std::mutex> lock(mu_);
while (serving_ && !shutdown_) {
@@ -105,6 +107,8 @@ class ReconnectServiceImpl : public ReconnectService::Service {
if (server_started_) {
start_server = false;
} else {
+ tcp_server_.max_reconnect_backoff_ms =
+ request->max_reconnect_backoff_ms();
server_started_ = true;
}
lock.unlock();
@@ -133,7 +137,9 @@ class ReconnectServiceImpl : public ReconnectService::Service {
const double kTransmissionDelay = 100.0;
const double kBackoffMultiplier = 1.6;
const double kJitterFactor = 0.2;
- const int kMaxBackoffMs = 120 * 1000;
+ const int kMaxBackoffMs = tcp_server_.max_reconnect_backoff_ms
+ ? tcp_server_.max_reconnect_backoff_ms
+ : 120 * 1000;
bool passed = true;
for (timestamp_list* cur = tcp_server_.head; cur && cur->next;
cur = cur->next) {
diff --git a/test/cpp/interop/stress_test.cc b/test/cpp/interop/stress_test.cc
index 1fa6231f9a..38caf31b76 100644
--- a/test/cpp/interop/stress_test.cc
+++ b/test/cpp/interop/stress_test.cc
@@ -98,11 +98,11 @@ DEFINE_string(test_cases, "",
" 'large_unary', 10% of the time and 'empty_stream' the remaining"
" 70% of the time");
-DEFINE_int32(log_level, GPR_LOG_SEVERITY_DEBUG,
+DEFINE_int32(log_level, GPR_LOG_SEVERITY_INFO,
"Severity level of messages that should be logged. Any messages "
"greater than or equal to the level set here will be logged. "
"The choices are: 0 (GPR_LOG_SEVERITY_DEBUG), 1 "
- "(GPR_LOG_SEVERITY_INFO) and 2 (GPR_LOG_SEVERITY_ERROR.");
+ "(GPR_LOG_SEVERITY_INFO) and 2 (GPR_LOG_SEVERITY_ERROR)");
using grpc::testing::kTestCaseList;
using grpc::testing::MetricsService;
diff --git a/test/cpp/util/create_test_channel.cc b/test/cpp/util/create_test_channel.cc
index 0cd9f9e767..fe8b5d5423 100644
--- a/test/cpp/util/create_test_channel.cc
+++ b/test/cpp/util/create_test_channel.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -58,8 +58,9 @@ namespace grpc {
std::shared_ptr<Channel> CreateTestChannel(
const grpc::string& server, const grpc::string& override_hostname,
bool enable_ssl, bool use_prod_roots,
- const std::shared_ptr<CallCredentials>& creds) {
- ChannelArguments channel_args;
+ const std::shared_ptr<CallCredentials>& creds,
+ const ChannelArguments& args) {
+ ChannelArguments channel_args(args);
if (enable_ssl) {
const char* roots_certs = use_prod_roots ? "" : test_root_cert;
SslCredentialsOptions ssl_opts = {roots_certs, "", ""};
@@ -83,6 +84,14 @@ std::shared_ptr<Channel> CreateTestChannel(
std::shared_ptr<Channel> CreateTestChannel(
const grpc::string& server, const grpc::string& override_hostname,
+ bool enable_ssl, bool use_prod_roots,
+ const std::shared_ptr<CallCredentials>& creds) {
+ return CreateTestChannel(server, override_hostname, enable_ssl,
+ use_prod_roots, creds, ChannelArguments());
+}
+
+std::shared_ptr<Channel> CreateTestChannel(
+ const grpc::string& server, const grpc::string& override_hostname,
bool enable_ssl, bool use_prod_roots) {
return CreateTestChannel(server, override_hostname, enable_ssl,
use_prod_roots, std::shared_ptr<CallCredentials>());
diff --git a/test/cpp/util/create_test_channel.h b/test/cpp/util/create_test_channel.h
index b50d653de3..4ff666dc1b 100644
--- a/test/cpp/util/create_test_channel.h
+++ b/test/cpp/util/create_test_channel.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -53,6 +53,12 @@ std::shared_ptr<Channel> CreateTestChannel(
bool enable_ssl, bool use_prod_roots,
const std::shared_ptr<CallCredentials>& creds);
+std::shared_ptr<Channel> CreateTestChannel(
+ const grpc::string& server, const grpc::string& override_hostname,
+ bool enable_ssl, bool use_prod_roots,
+ const std::shared_ptr<CallCredentials>& creds,
+ const ChannelArguments& args);
+
} // namespace grpc
#endif // GRPC_TEST_CPP_UTIL_CREATE_TEST_CHANNEL_H
diff --git a/tools/buildgen/plugins/make_fuzzer_tests.py b/tools/buildgen/plugins/make_fuzzer_tests.py
new file mode 100644
index 0000000000..806489bcd2
--- /dev/null
+++ b/tools/buildgen/plugins/make_fuzzer_tests.py
@@ -0,0 +1,57 @@
+# Copyright 2016, 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.
+
+"""Create tests for each fuzzer"""
+
+import copy
+import glob
+
+def mako_plugin(dictionary):
+ targets = dictionary['targets']
+ tests = dictionary['tests']
+ for tgt in targets:
+ if tgt['build'] == 'fuzzer':
+ new_target = copy.deepcopy(tgt)
+ new_target['build'] = 'test'
+ new_target['name'] += '_one_entry'
+ new_target['run'] = False
+ new_target['deps'].insert(0, 'one_input_fuzzer')
+ targets.append(new_target)
+ for corpus in new_target['corpus_dirs']:
+ for fn in sorted(glob.glob('%s/*' % corpus)):
+ tests.append({
+ 'name': new_target['name'],
+ 'args': [fn],
+ 'exclude_configs': [],
+ 'platforms': ['linux', 'mac', 'windows', 'posix'],
+ 'ci_platforms': ['linux', 'mac', 'windows', 'posix'],
+ 'flaky': False,
+ 'language': 'c',
+ 'cpu_cost': 0.1,
+ })
diff --git a/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh b/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh
index 830d018304..6f4155944c 100755
--- a/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh
+++ b/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh
@@ -31,7 +31,7 @@
set -e
# directories to run against
-DIRS="src/core src/cpp test/core test/cpp include"
+DIRS="src/core/lib src/core/ext src/cpp test/core test/cpp include"
# file matching patterns to check
GLOB="*.h *.c *.cc"
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index b94447c555..fc841e8887 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -773,6 +773,12 @@ include/grpc/impl/codegen/grpc_types.h \
include/grpc/impl/codegen/propagation_bits.h \
include/grpc/impl/codegen/status.h \
include/grpc/status.h \
+src/core/ext/census/aggregation.h \
+src/core/ext/census/census_interface.h \
+src/core/ext/census/census_rpc_stats.h \
+src/core/ext/census/grpc_filter.h \
+src/core/ext/census/mlog.h \
+src/core/ext/census/rpc_metric_id.h \
src/core/ext/lb_policy/grpclb/load_balancer_api.h \
src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h \
src/core/ext/transport/chttp2/transport/alpn.h \
@@ -796,11 +802,6 @@ src/core/ext/transport/chttp2/transport/status_conversion.h \
src/core/ext/transport/chttp2/transport/stream_map.h \
src/core/ext/transport/chttp2/transport/timeout_encoding.h \
src/core/ext/transport/chttp2/transport/varint.h \
-src/core/lib/census/aggregation.h \
-src/core/lib/census/grpc_filter.h \
-src/core/lib/census/grpc_plugin.h \
-src/core/lib/census/mlog.h \
-src/core/lib/census/rpc_metric_id.h \
src/core/lib/channel/channel_args.h \
src/core/lib/channel/channel_stack.h \
src/core/lib/channel/channel_stack_builder.h \
@@ -811,6 +812,7 @@ src/core/lib/channel/context.h \
src/core/lib/channel/http_client_filter.h \
src/core/lib/channel/http_server_filter.h \
src/core/lib/channel/subchannel_call_holder.h \
+src/core/lib/client_config/client_channel_factory.h \
src/core/lib/client_config/client_config.h \
src/core/lib/client_config/connector.h \
src/core/lib/client_config/initial_connect_string.h \
@@ -820,10 +822,7 @@ src/core/lib/client_config/lb_policy_registry.h \
src/core/lib/client_config/resolver.h \
src/core/lib/client_config/resolver_factory.h \
src/core/lib/client_config/resolver_registry.h \
-src/core/lib/client_config/resolvers/dns_resolver.h \
-src/core/lib/client_config/resolvers/sockaddr_resolver.h \
src/core/lib/client_config/subchannel.h \
-src/core/lib/client_config/subchannel_factory.h \
src/core/lib/client_config/subchannel_index.h \
src/core/lib/client_config/uri_parser.h \
src/core/lib/compression/algorithm_metadata.h \
@@ -835,17 +834,16 @@ src/core/lib/http/parser.h \
src/core/lib/iomgr/closure.h \
src/core/lib/iomgr/endpoint.h \
src/core/lib/iomgr/endpoint_pair.h \
+src/core/lib/iomgr/ev_poll_and_epoll_posix.h \
+src/core/lib/iomgr/ev_posix.h \
src/core/lib/iomgr/exec_ctx.h \
src/core/lib/iomgr/executor.h \
-src/core/lib/iomgr/fd_posix.h \
src/core/lib/iomgr/iocp_windows.h \
src/core/lib/iomgr/iomgr.h \
src/core/lib/iomgr/iomgr_internal.h \
src/core/lib/iomgr/iomgr_posix.h \
src/core/lib/iomgr/pollset.h \
-src/core/lib/iomgr/pollset_posix.h \
src/core/lib/iomgr/pollset_set.h \
-src/core/lib/iomgr/pollset_set_posix.h \
src/core/lib/iomgr/pollset_set_windows.h \
src/core/lib/iomgr/pollset_windows.h \
src/core/lib/iomgr/resolve_address.h \
@@ -882,8 +880,6 @@ src/core/lib/security/jwt_verifier.h \
src/core/lib/security/secure_endpoint.h \
src/core/lib/security/security_connector.h \
src/core/lib/security/security_context.h \
-src/core/lib/statistics/census_interface.h \
-src/core/lib/statistics/census_rpc_stats.h \
src/core/lib/surface/api_trace.h \
src/core/lib/surface/call.h \
src/core/lib/surface/call_test_only.h \
@@ -912,10 +908,21 @@ third_party/nanopb/pb.h \
third_party/nanopb/pb_common.h \
third_party/nanopb/pb_decode.h \
third_party/nanopb/pb_encode.h \
+src/core/ext/census/context.c \
+src/core/ext/census/grpc_context.c \
+src/core/ext/census/grpc_filter.c \
+src/core/ext/census/grpc_plugin.c \
+src/core/ext/census/initialize.c \
+src/core/ext/census/mlog.c \
+src/core/ext/census/operation.c \
+src/core/ext/census/placeholders.c \
+src/core/ext/census/tracing.c \
src/core/ext/lb_policy/grpclb/load_balancer_api.c \
src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c \
src/core/ext/lb_policy/pick_first/pick_first.c \
src/core/ext/lb_policy/round_robin/round_robin.c \
+src/core/ext/resolver/dns/native/dns_resolver.c \
+src/core/ext/resolver/sockaddr/sockaddr_resolver.c \
src/core/ext/transport/chttp2/client/insecure/channel_create.c \
src/core/ext/transport/chttp2/client/secure/secure_channel_create.c \
src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \
@@ -941,15 +948,6 @@ src/core/ext/transport/chttp2/transport/stream_map.c \
src/core/ext/transport/chttp2/transport/timeout_encoding.c \
src/core/ext/transport/chttp2/transport/varint.c \
src/core/ext/transport/chttp2/transport/writing.c \
-src/core/lib/census/context.c \
-src/core/lib/census/grpc_context.c \
-src/core/lib/census/grpc_filter.c \
-src/core/lib/census/grpc_plugin.c \
-src/core/lib/census/initialize.c \
-src/core/lib/census/mlog.c \
-src/core/lib/census/operation.c \
-src/core/lib/census/placeholders.c \
-src/core/lib/census/tracing.c \
src/core/lib/channel/channel_args.c \
src/core/lib/channel/channel_stack.c \
src/core/lib/channel/channel_stack_builder.c \
@@ -959,6 +957,7 @@ src/core/lib/channel/connected_channel.c \
src/core/lib/channel/http_client_filter.c \
src/core/lib/channel/http_server_filter.c \
src/core/lib/channel/subchannel_call_holder.c \
+src/core/lib/client_config/client_channel_factory.c \
src/core/lib/client_config/client_config.c \
src/core/lib/client_config/connector.c \
src/core/lib/client_config/default_initial_connect_string.c \
@@ -969,10 +968,7 @@ src/core/lib/client_config/lb_policy_registry.c \
src/core/lib/client_config/resolver.c \
src/core/lib/client_config/resolver_factory.c \
src/core/lib/client_config/resolver_registry.c \
-src/core/lib/client_config/resolvers/dns_resolver.c \
-src/core/lib/client_config/resolvers/sockaddr_resolver.c \
src/core/lib/client_config/subchannel.c \
-src/core/lib/client_config/subchannel_factory.c \
src/core/lib/client_config/subchannel_index.c \
src/core/lib/client_config/uri_parser.c \
src/core/lib/compression/compression_algorithm.c \
@@ -986,17 +982,14 @@ src/core/lib/iomgr/closure.c \
src/core/lib/iomgr/endpoint.c \
src/core/lib/iomgr/endpoint_pair_posix.c \
src/core/lib/iomgr/endpoint_pair_windows.c \
+src/core/lib/iomgr/ev_poll_and_epoll_posix.c \
+src/core/lib/iomgr/ev_posix.c \
src/core/lib/iomgr/exec_ctx.c \
src/core/lib/iomgr/executor.c \
-src/core/lib/iomgr/fd_posix.c \
src/core/lib/iomgr/iocp_windows.c \
src/core/lib/iomgr/iomgr.c \
src/core/lib/iomgr/iomgr_posix.c \
src/core/lib/iomgr/iomgr_windows.c \
-src/core/lib/iomgr/pollset_multipoller_with_epoll.c \
-src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c \
-src/core/lib/iomgr/pollset_posix.c \
-src/core/lib/iomgr/pollset_set_posix.c \
src/core/lib/iomgr/pollset_set_windows.c \
src/core/lib/iomgr/pollset_windows.c \
src/core/lib/iomgr/resolve_address_posix.c \
diff --git a/tools/gce/create_interop_worker.sh b/tools/gce/create_interop_worker.sh
index 3c49c6102a..9170d82144 100755
--- a/tools/gce/create_interop_worker.sh
+++ b/tools/gce/create_interop_worker.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/gce/create_linux_performance_worker.sh b/tools/gce/create_linux_performance_worker.sh
index dfe095ca33..8c9cc46a75 100755
--- a/tools/gce/create_linux_performance_worker.sh
+++ b/tools/gce/create_linux_performance_worker.sh
@@ -29,6 +29,10 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Creates a performance worker on GCE.
+# IMPORTANT: After creating the worker, one needs to manually add the pubkey
+# of jenkins@the-machine-where-jenkins-starts-perf-tests
+# to ~/.ssh/authorized_keys so that multi-machine scenarios can work.
+# See tools/run_tests/run_performance_tests.py for details.
set -ex
@@ -37,7 +41,7 @@ cd $(dirname $0)
CLOUD_PROJECT=grpc-testing
ZONE=us-central1-b # this zone allows 32core machines
-INSTANCE_NAME="${1:-grpc-performance-driver}"
+INSTANCE_NAME="${1:-grpc-performance-server1}"
MACHINE_TYPE=n1-standard-32
gcloud compute instances create $INSTANCE_NAME \
@@ -53,9 +57,9 @@ sleep 60
gcloud compute copy-files \
--project="$CLOUD_PROJECT" \
--zone "$ZONE" \
- jenkins_master.pub linux_performance_worker_init.sh ${INSTANCE_NAME}:~
+ jenkins_master.pub linux_performance_worker_init.sh jenkins@${INSTANCE_NAME}:~
gcloud compute ssh \
--project="$CLOUD_PROJECT" \
--zone "$ZONE" \
- $INSTANCE_NAME --command "./linux_performance_worker_init.sh"
+ jenkins@${INSTANCE_NAME} --command "./linux_performance_worker_init.sh"
diff --git a/tools/gce/linux_performance_worker_init.sh b/tools/gce/linux_performance_worker_init.sh
index fe4d77fb2c..c7272b61a5 100755
--- a/tools/gce/linux_performance_worker_init.sh
+++ b/tools/gce/linux_performance_worker_init.sh
@@ -36,13 +36,10 @@ set -ex
sudo apt-get update
-# Install JRE
-sudo apt-get install -y openjdk-7-jre
+# Install Java 8 JDK (to build gRPC Java)
+sudo apt-get install -y openjdk-8-jdk
sudo apt-get install -y unzip lsof
-# Setup jenkins user (or the user will already exist bcuz magic)
-sudo adduser jenkins --disabled-password || true
-
# Add pubkey of jenkins@grpc-jenkins-master to authorized keys of jenkins@
# This needs to happen as the last step to prevent Jenkins master from connecting
# to a machine that hasn't been properly setup yet.
@@ -89,7 +86,7 @@ curl -O https://bootstrap.pypa.io/get-pip.py
sudo pypy get-pip.py
sudo pypy -m pip install tabulate
-# Node dependences.
+# Node dependencies (nvm has to be installed under user jenkins)
touch .profile
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash
nvm install 0.12 && npm config set cache /tmp/npm-cache
@@ -104,3 +101,5 @@ sudo apt-get install -y mono-devel nuget
# Ruby dependencies
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable --ruby
+
+# Java dependencies - nothing as we already have Java JDK 8
diff --git a/tools/run_tests/performance/__init__.py b/tools/run_tests/performance/__init__.py
new file mode 100644
index 0000000000..100a624dc9
--- /dev/null
+++ b/tools/run_tests/performance/__init__.py
@@ -0,0 +1,28 @@
+# Copyright 2016, 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/tools/run_tests/performance/build_performance.sh b/tools/run_tests/performance/build_performance.sh
index 00cc41ec73..b33ee3a58c 100755
--- a/tools/run_tests/performance/build_performance.sh
+++ b/tools/run_tests/performance/build_performance.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -36,5 +36,18 @@ cd $(dirname $0)/../../..
CONFIG=${CONFIG:-opt}
-# build C++ qps worker & driver
-make CONFIG=${CONFIG} qps_worker qps_driver -j8
+# build C++ qps worker & driver always - we need at least the driver to
+# run any of the scenarios.
+# TODO(jtattermusch): not embedding OpenSSL breaks the C# build because
+# grpc_csharp_ext needs OpenSSL embedded and some intermediate files from
+# this build will be reused.
+make CONFIG=${CONFIG} EMBED_OPENSSL=true EMBED_ZLIB=true qps_worker qps_driver -j8
+
+for language in $@
+do
+ if [ "$language" != "c++" ]
+ then
+ tools/run_tests/run_tests.py -l $language -c $CONFIG --build_only -j 8
+ fi
+done
+
diff --git a/tools/run_tests/performance/remote_host_build.sh b/tools/run_tests/performance/remote_host_build.sh
index f23ea921ce..b8886080a5 100755
--- a/tools/run_tests/performance/remote_host_build.sh
+++ b/tools/run_tests/performance/remote_host_build.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -33,4 +33,4 @@ set -ex
cd $(dirname $0)/../../..
# execute the build script remotely
-ssh "${USER_AT_HOST}" "CONFIG=${CONFIG} ~/performance_workspace/grpc/tools/run_tests/performance/build_performance.sh"
+ssh "${USER_AT_HOST}" "CONFIG=${CONFIG} ~/performance_workspace/grpc/tools/run_tests/performance/build_performance.sh $*"
diff --git a/tools/run_tests/performance/remote_host_prepare.sh b/tools/run_tests/performance/remote_host_prepare.sh
index bad2424a6b..18633d1420 100755
--- a/tools/run_tests/performance/remote_host_prepare.sh
+++ b/tools/run_tests/performance/remote_host_prepare.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -35,10 +35,11 @@ cd $(dirname $0)/../../..
# cleanup after previous builds
ssh "${USER_AT_HOST}" "rm -rf ~/performance_workspace && mkdir -p ~/performance_workspace"
-# TODO(jtattermusch): To be sure there are not running processes that would
+# TODO(jtattermusch): To be sure there are no running processes that would
# mess with the results, be rough and reboot the slave here
# and wait for it to come back online.
+ssh "${USER_AT_HOST}" "killall qps_worker mono node || true"
# push the current sources to the slave and unpack it.
scp ../grpc.tar "${USER_AT_HOST}:~/performance_workspace"
-ssh "${USER_AT_HOST}" "tar -xf ~/performance_workspace/grpc.tar -C ~/performance_workspace" \ No newline at end of file
+ssh "${USER_AT_HOST}" "tar -xf ~/performance_workspace/grpc.tar -C ~/performance_workspace"
diff --git a/tools/run_tests/performance/run_worker_csharp.sh b/tools/run_tests/performance/run_worker_csharp.sh
new file mode 100755
index 0000000000..b91df09b42
--- /dev/null
+++ b/tools/run_tests/performance/run_worker_csharp.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+set -ex
+
+cd $(dirname $0)/../../..
+
+# needed to correctly locate testca
+cd src/csharp/Grpc.IntegrationTesting.QpsWorker/bin/Release
+
+mono Grpc.IntegrationTesting.QpsWorker.exe $@
diff --git a/tools/run_tests/performance/run_worker_node.sh b/tools/run_tests/performance/run_worker_node.sh
new file mode 100755
index 0000000000..46b6ff0177
--- /dev/null
+++ b/tools/run_tests/performance/run_worker_node.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+source ~/.nvm/nvm.sh
+nvm use 0.12
+
+set -ex
+
+cd $(dirname $0)/../../..
+
+node src/node/performance/worker.js $@
diff --git a/tools/run_tests/performance/scenario_config.py b/tools/run_tests/performance/scenario_config.py
new file mode 100644
index 0000000000..f95e531fa2
--- /dev/null
+++ b/tools/run_tests/performance/scenario_config.py
@@ -0,0 +1,153 @@
+# Copyright 2016, 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.
+
+# performance scenario configuration for various languages
+
+class CXXLanguage:
+
+ def __init__(self):
+ self.safename = 'cxx'
+
+ def worker_cmdline(self):
+ return ['bins/opt/qps_worker']
+
+ def worker_port_offset(self):
+ return 0
+
+ def scenarios(self):
+ # TODO(jtattermusch): add more scenarios
+ return {
+ # Scenario 1: generic async streaming ping-pong (contentionless latency)
+ 'cpp_async_generic_streaming_ping_pong': [
+ '--rpc_type=STREAMING',
+ '--client_type=ASYNC_CLIENT',
+ '--server_type=ASYNC_GENERIC_SERVER',
+ '--outstanding_rpcs_per_channel=1',
+ '--client_channels=1',
+ '--bbuf_req_size=0',
+ '--bbuf_resp_size=0',
+ '--async_client_threads=1',
+ '--async_server_threads=1',
+ '--secure_test=true',
+ '--num_servers=1',
+ '--num_clients=1',
+ '--server_core_limit=0',
+ '--client_core_limit=0'],
+ # Scenario 5: Sync unary ping-pong with protobufs
+ 'cpp_sync_unary_ping_pong_protobuf': [
+ '--rpc_type=UNARY',
+ '--client_type=SYNC_CLIENT',
+ '--server_type=SYNC_SERVER',
+ '--outstanding_rpcs_per_channel=1',
+ '--client_channels=1',
+ '--simple_req_size=0',
+ '--simple_resp_size=0',
+ '--secure_test=true',
+ '--num_servers=1',
+ '--num_clients=1',
+ '--server_core_limit=0',
+ '--client_core_limit=0']}
+
+ def __str__(self):
+ return 'c++'
+
+
+class CSharpLanguage:
+
+ def __init__(self):
+ self.safename = str(self)
+
+ def worker_cmdline(self):
+ return ['tools/run_tests/performance/run_worker_csharp.sh']
+
+ def worker_port_offset(self):
+ return 100
+
+ def scenarios(self):
+ # TODO(jtattermusch): add more scenarios
+ return {
+ # Scenario 1: generic async streaming ping-pong (contentionless latency)
+ 'csharp_async_generic_streaming_ping_pong': [
+ '--rpc_type=STREAMING',
+ '--client_type=ASYNC_CLIENT',
+ '--server_type=ASYNC_GENERIC_SERVER',
+ '--outstanding_rpcs_per_channel=1',
+ '--client_channels=1',
+ '--bbuf_req_size=0',
+ '--bbuf_resp_size=0',
+ '--async_client_threads=1',
+ '--async_server_threads=1',
+ '--secure_test=true',
+ '--num_servers=1',
+ '--num_clients=1',
+ '--server_core_limit=0',
+ '--client_core_limit=0']}
+
+ def __str__(self):
+ return 'csharp'
+
+
+class NodeLanguage:
+
+ def __init__(self):
+ pass
+ self.safename = str(self)
+
+ def worker_cmdline(self):
+ return ['tools/run_tests/performance/run_worker_node.sh']
+
+ def worker_port_offset(self):
+ return 200
+
+ def scenarios(self):
+ # TODO(jtattermusch): add more scenarios
+ return {
+ 'node_sync_unary_ping_pong_protobuf': [
+ '--rpc_type=UNARY',
+ '--client_type=ASYNC_CLIENT',
+ '--server_type=ASYNC_SERVER',
+ '--outstanding_rpcs_per_channel=1',
+ '--client_channels=1',
+ '--simple_req_size=0',
+ '--simple_resp_size=0',
+ '--secure_test=false',
+ '--num_servers=1',
+ '--num_clients=1',
+ '--server_core_limit=0',
+ '--client_core_limit=0']}
+
+ def __str__(self):
+ return 'node'
+
+
+LANGUAGES = {
+ 'c++' : CXXLanguage(),
+ 'csharp' : CSharpLanguage(),
+ 'node' : NodeLanguage(),
+}
diff --git a/tools/run_tests/run_csharp.bat b/tools/run_tests/run_csharp.bat
index 82eb58518c..29c879e23b 100644
--- a/tools/run_tests/run_csharp.bat
+++ b/tools/run_tests/run_csharp.bat
@@ -10,9 +10,9 @@ if not "%CONFIG%" == "gcov" (
) else (
@rem Run all tests with code coverage
- packages\OpenCover.4.6.166\tools\OpenCover.Console.exe -target:"packages\NUnit.Runners.2.6.4\tools\nunit-console-x86.exe" -targetdir:"." -targetargs:"%*" -filter:"+[Grpc.Core]*" -register:user -output:coverage_results.xml || goto :error
+ packages\OpenCover.4.6.519\tools\OpenCover.Console.exe -target:"packages\NUnit.Runners.2.6.4\tools\nunit-console-x86.exe" -targetdir:"." -targetargs:"%*" -filter:"+[Grpc.Core]*" -register:user -output:coverage_results.xml || goto :error
- packages\ReportGenerator.2.3.2.0\tools\ReportGenerator.exe -reports:"coverage_results.xml" -targetdir:"..\..\reports\csharp_coverage" -reporttypes:"Html;TextSummary" || goto :error
+ packages\ReportGenerator.2.4.4.0\tools\ReportGenerator.exe -reports:"coverage_results.xml" -targetdir:"..\..\reports\csharp_coverage" -reporttypes:"Html;TextSummary" || goto :error
@rem Generate the index.html file
echo ^<html^>^<head^>^</head^>^<body^>^<a href='csharp_coverage/index.htm'^>csharp coverage^</a^>^<br/^>^</body^>^</html^> >..\..\reports\index.html
diff --git a/tools/run_tests/run_node.sh b/tools/run_tests/run_node.sh
index 30f2c93588..44f75645f5 100755
--- a/tools/run_tests/run_node.sh
+++ b/tools/run_tests/run_node.sh
@@ -48,6 +48,7 @@ if [ "$CONFIG" = "gcov" ]
then
./node_modules/.bin/istanbul cover --dir reports/node_coverage \
-x **/interop/* ./node_modules/.bin/_mocha -- --timeout $timeout $test_directory
+ cp -r reports/node_coverage/lcov-report/* reports/node_coverage/
cd build
gcov Release/obj.target/grpc/ext/*.o
lcov --base-directory . --directory . -c -o coverage.info
@@ -55,8 +56,6 @@ then
genhtml -o ../reports/node_ext_coverage --num-spaces 2 \
-t 'Node gRPC test coverage' coverage.info --rc genhtml_hi_limit=95 \
--rc genhtml_med_limit=80 --no-prefix
- echo '<html><head><meta http-equiv="refresh" content="0;URL=lcov-report/index.html"></head></html>' > \
- ../reports/node_coverage/index.html
else
JUNIT_REPORT_PATH=src/node/report.xml JUNIT_REPORT_STACK=1 \
./node_modules/.bin/mocha --timeout $timeout \
diff --git a/tools/run_tests/run_performance_tests.py b/tools/run_tests/run_performance_tests.py
index 77c0addb42..e1268e2ecb 100755
--- a/tools/run_tests/run_performance_tests.py
+++ b/tools/run_tests/run_performance_tests.py
@@ -31,6 +31,7 @@
"""Run performance tests locally or remotely."""
import argparse
+import itertools
import jobset
import multiprocessing
import os
@@ -39,6 +40,7 @@ import sys
import tempfile
import time
import uuid
+import performance.scenario_config as scenario_config
_ROOT = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '../..'))
@@ -48,80 +50,12 @@ os.chdir(_ROOT)
_REMOTE_HOST_USERNAME = 'jenkins'
-class CXXLanguage:
-
- def __init__(self):
- self.safename = 'cxx'
-
- def scenarios(self):
- # TODO(jtattermusch): add more scenarios
- return {
- # Scenario 1: generic async streaming ping-pong (contentionless latency)
- 'cpp_async_generic_streaming_ping_pong': [
- '--rpc_type=STREAMING',
- '--client_type=ASYNC_CLIENT',
- '--server_type=ASYNC_GENERIC_SERVER',
- '--outstanding_rpcs_per_channel=1',
- '--client_channels=1',
- '--bbuf_req_size=0',
- '--bbuf_resp_size=0',
- '--async_client_threads=1',
- '--async_server_threads=1',
- '--secure_test=true',
- '--num_servers=1',
- '--num_clients=1',
- '--server_core_limit=0',
- '--client_core_limit=0'],
- # Scenario 5: Sync unary ping-pong with protobufs
- 'cpp_sync_unary_ping_pong_protobuf': [
- '--rpc_type=UNARY',
- '--client_type=SYNC_CLIENT',
- '--server_type=SYNC_SERVER',
- '--outstanding_rpcs_per_channel=1',
- '--client_channels=1',
- '--simple_req_size=0',
- '--simple_resp_size=0',
- '--secure_test=true',
- '--num_servers=1',
- '--num_clients=1',
- '--server_core_limit=0',
- '--client_core_limit=0']}
-
- def __str__(self):
- return 'c++'
-
-
-class CSharpLanguage:
-
- def __init__(self):
- self.safename = str(self)
-
- def __str__(self):
- return 'csharp'
-
-
-class NodeLanguage:
-
- def __init__(self):
- pass
- self.safename = str(self)
-
- def __str__(self):
- return 'node'
-
-
-_LANGUAGES = {
- 'c++' : CXXLanguage(),
- 'csharp' : CSharpLanguage(),
- 'node' : NodeLanguage(),
-}
-
-
class QpsWorkerJob:
"""Encapsulates a qps worker server job."""
- def __init__(self, spec, host_and_port):
+ def __init__(self, spec, language, host_and_port):
self._spec = spec
+ self.language = language
self.host_and_port = host_and_port
self._job = jobset.Job(spec, bin_hash=None, newline_on_success=True, travis=True, add_env={})
@@ -133,22 +67,24 @@ class QpsWorkerJob:
return self._job.kill()
-def create_qpsworker_job(language, port=10000, remote_host=None):
+def create_qpsworker_job(language, shortname=None,
+ port=10000, remote_host=None):
# TODO: support more languages
- cmd = 'bins/opt/qps_worker --driver_port=%s' % port
+ cmdline = language.worker_cmdline() + ['--driver_port=%s' % port]
if remote_host:
user_at_host = '%s@%s' % (_REMOTE_HOST_USERNAME, remote_host)
- cmd = 'ssh %s "cd ~/performance_workspace/grpc/ && %s"' % (user_at_host, cmd)
+ cmdline = ['ssh',
+ str(user_at_host),
+ 'cd ~/performance_workspace/grpc/ && %s' % ' '.join(cmdline)]
host_and_port='%s:%s' % (remote_host, port)
else:
host_and_port='localhost:%s' % port
jobspec = jobset.JobSpec(
- cmdline=[cmd],
- shortname='qps_worker',
- timeout_seconds=15*60,
- shell=True)
- return QpsWorkerJob(jobspec, host_and_port)
+ cmdline=cmdline,
+ shortname=shortname,
+ timeout_seconds=15*60)
+ return QpsWorkerJob(jobspec, language, host_and_port)
def create_scenario_jobspec(scenario_name, driver_args, workers, remote_host=None):
@@ -199,7 +135,7 @@ def prepare_remote_hosts(hosts):
cmdline=['tools/run_tests/performance/remote_host_prepare.sh'],
shortname='remote_host_prepare.%s' % host,
environ = {'USER_AT_HOST': user_at_host},
- timeout_seconds=3*60))
+ timeout_seconds=5*60))
jobset.message('START', 'Preparing remote hosts.', do_newline=True)
num_failures, _ = jobset.run(
prepare_jobs, newline_on_success=True, maxjobs=10)
@@ -213,15 +149,15 @@ def prepare_remote_hosts(hosts):
sys.exit(1)
-def build_on_remote_hosts(hosts, build_local=False):
- """Builds performance worker on remote hosts."""
+def build_on_remote_hosts(hosts, languages=scenario_config.LANGUAGES.keys(), build_local=False):
+ """Builds performance worker on remote hosts (and maybe also locally)."""
build_timeout = 15*60
build_jobs = []
for host in hosts:
user_at_host = '%s@%s' % (_REMOTE_HOST_USERNAME, host)
build_jobs.append(
jobset.JobSpec(
- cmdline=['tools/run_tests/performance/remote_host_build.sh'],
+ cmdline=['tools/run_tests/performance/remote_host_build.sh'] + languages,
shortname='remote_host_build.%s' % host,
environ = {'USER_AT_HOST': user_at_host, 'CONFIG': 'opt'},
timeout_seconds=build_timeout))
@@ -229,56 +165,62 @@ def build_on_remote_hosts(hosts, build_local=False):
# Build locally as well
build_jobs.append(
jobset.JobSpec(
- cmdline=['tools/run_tests/performance/build_performance.sh'],
+ cmdline=['tools/run_tests/performance/build_performance.sh'] + languages,
shortname='local_build',
environ = {'CONFIG': 'opt'},
timeout_seconds=build_timeout))
- jobset.message('START', 'Building on remote hosts.', do_newline=True)
+ jobset.message('START', 'Building.', do_newline=True)
num_failures, _ = jobset.run(
build_jobs, newline_on_success=True, maxjobs=10)
if num_failures == 0:
jobset.message('SUCCESS',
- 'Build on remote hosts was successful.',
+ 'Built successfully.',
do_newline=True)
else:
- jobset.message('FAILED', 'Failed to build on remote hosts.',
+ jobset.message('FAILED', 'Build failed.',
do_newline=True)
sys.exit(1)
-def start_qpsworkers(worker_hosts):
+def start_qpsworkers(languages, worker_hosts):
"""Starts QPS workers as background jobs."""
if not worker_hosts:
- # run two workers locally
+ # run two workers locally (for each language)
workers=[(None, 10000), (None, 10010)]
elif len(worker_hosts) == 1:
- # run two workers on the remote host
+ # run two workers on the remote host (for each language)
workers=[(worker_hosts[0], 10000), (worker_hosts[0], 10010)]
else:
- # run one worker per each remote host
+ # run one worker per each remote host (for each language)
workers=[(worker_host, 10000) for worker_host in worker_hosts]
- return [create_qpsworker_job(CXXLanguage(),
- port=worker[1],
+ return [create_qpsworker_job(language,
+ shortname= 'qps_worker_%s_%s' % (language,
+ worker_idx),
+ port=worker[1] + language.worker_port_offset(),
remote_host=worker[0])
- for worker in workers]
+ for language in languages
+ for worker_idx, worker in enumerate(workers)]
-def create_scenarios(languages, workers, remote_host=None):
+def create_scenarios(languages, workers_by_lang, remote_host=None):
"""Create jobspecs for scenarios to run."""
scenarios = []
for language in languages:
for scenario_name, driver_args in language.scenarios().iteritems():
scenario = create_scenario_jobspec(scenario_name,
driver_args,
- workers,
+ workers_by_lang[str(language)],
remote_host=remote_host)
scenarios.append(scenario)
# the very last scenario requests shutting down the workers.
+ all_workers = [worker
+ for workers in workers_by_lang.values()
+ for worker in workers]
scenarios.append(create_scenario_jobspec('quit_workers',
['--quit=true'],
- workers,
+ all_workers,
remote_host=remote_host))
return scenarios
@@ -300,6 +242,11 @@ def finish_qps_workers(jobs):
argp = argparse.ArgumentParser(description='Run performance tests.')
+argp.add_argument('-l', '--language',
+ choices=['all'] + sorted(scenario_config.LANGUAGES.keys()),
+ nargs='+',
+ default=['all'],
+ help='Languages to benchmark.')
argp.add_argument('--remote_driver_host',
default=None,
help='Run QPS driver on given host. By default, QPS driver is run locally.')
@@ -310,6 +257,11 @@ argp.add_argument('--remote_worker_host',
args = argp.parse_args()
+languages = set(scenario_config.LANGUAGES[l]
+ for l in itertools.chain.from_iterable(
+ scenario_config.LANGUAGES.iterkeys() if x == 'all' else [x]
+ for x in args.language))
+
# Put together set of remote hosts where to run and build
remote_hosts = set()
if args.remote_worker_host:
@@ -325,15 +277,18 @@ if remote_hosts:
build_local = False
if not args.remote_driver_host:
build_local = True
-build_on_remote_hosts(remote_hosts, build_local=build_local)
+build_on_remote_hosts(remote_hosts, languages=[str(l) for l in languages], build_local=build_local)
-qpsworker_jobs = start_qpsworkers(args.remote_worker_host)
+qpsworker_jobs = start_qpsworkers(languages, args.remote_worker_host)
-worker_addresses = [job.host_and_port for job in qpsworker_jobs]
+# get list of worker addresses for each language.
+worker_addresses = dict([(str(language), []) for language in languages])
+for job in qpsworker_jobs:
+ worker_addresses[str(job.language)].append(job.host_and_port)
try:
- scenarios = create_scenarios(languages=[CXXLanguage()],
- workers=worker_addresses,
+ scenarios = create_scenarios(languages,
+ workers_by_lang=worker_addresses,
remote_host=args.remote_driver_host)
if not scenarios:
raise Exception('No scenarios to run')
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index 4bad249f41..e51a7fd06f 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -393,6 +393,22 @@
{
"deps": [
"gpr",
+ "gpr_test_util",
+ "grpc",
+ "grpc_test_util"
+ ],
+ "headers": [],
+ "language": "c",
+ "name": "goaway_server_test",
+ "src": [
+ "test/core/end2end/goaway_server_test.c"
+ ],
+ "third_party": false,
+ "type": "target"
+ },
+ {
+ "deps": [
+ "gpr",
"gpr_test_util"
],
"headers": [],
@@ -3154,6 +3170,23 @@
],
"headers": [],
"language": "c",
+ "name": "head_of_line_blocking_bad_client_test",
+ "src": [
+ "test/core/bad_client/tests/head_of_line_blocking.c"
+ ],
+ "third_party": false,
+ "type": "target"
+ },
+ {
+ "deps": [
+ "bad_client_test",
+ "gpr",
+ "gpr_test_util",
+ "grpc_test_util_unsecure",
+ "grpc_unsecure"
+ ],
+ "headers": [],
+ "language": "c",
"name": "headers_bad_client_test",
"src": [
"test/core/bad_client/tests/headers.c"
@@ -3407,40 +3440,6 @@
],
"headers": [],
"language": "c",
- "name": "h2_full+poll_test",
- "src": [
- "test/core/end2end/fixtures/h2_full+poll.c"
- ],
- "third_party": false,
- "type": "target"
- },
- {
- "deps": [
- "end2end_tests",
- "gpr",
- "gpr_test_util",
- "grpc",
- "grpc_test_util"
- ],
- "headers": [],
- "language": "c",
- "name": "h2_full+poll+pipe_test",
- "src": [
- "test/core/end2end/fixtures/h2_full+poll+pipe.c"
- ],
- "third_party": false,
- "type": "target"
- },
- {
- "deps": [
- "end2end_tests",
- "gpr",
- "gpr_test_util",
- "grpc",
- "grpc_test_util"
- ],
- "headers": [],
- "language": "c",
"name": "h2_full+trace_test",
"src": [
"test/core/end2end/fixtures/h2_full+trace.c"
@@ -3560,23 +3559,6 @@
],
"headers": [],
"language": "c",
- "name": "h2_ssl+poll_test",
- "src": [
- "test/core/end2end/fixtures/h2_ssl+poll.c"
- ],
- "third_party": false,
- "type": "target"
- },
- {
- "deps": [
- "end2end_tests",
- "gpr",
- "gpr_test_util",
- "grpc",
- "grpc_test_util"
- ],
- "headers": [],
- "language": "c",
"name": "h2_ssl_proxy_test",
"src": [
"test/core/end2end/fixtures/h2_ssl_proxy.c"
@@ -3603,17 +3585,17 @@
},
{
"deps": [
- "end2end_tests",
+ "end2end_nosec_tests",
"gpr",
"gpr_test_util",
- "grpc",
- "grpc_test_util"
+ "grpc_test_util_unsecure",
+ "grpc_unsecure"
],
"headers": [],
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_census_nosec_test",
"src": [
- "test/core/end2end/fixtures/h2_uds+poll.c"
+ "test/core/end2end/fixtures/h2_census.c"
],
"third_party": false,
"type": "target"
@@ -3628,9 +3610,9 @@
],
"headers": [],
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_compress_nosec_test",
"src": [
- "test/core/end2end/fixtures/h2_census.c"
+ "test/core/end2end/fixtures/h2_compress.c"
],
"third_party": false,
"type": "target"
@@ -3645,9 +3627,9 @@
],
"headers": [],
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_full_nosec_test",
"src": [
- "test/core/end2end/fixtures/h2_compress.c"
+ "test/core/end2end/fixtures/h2_full.c"
],
"third_party": false,
"type": "target"
@@ -3662,9 +3644,9 @@
],
"headers": [],
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_full+pipe_nosec_test",
"src": [
- "test/core/end2end/fixtures/h2_full.c"
+ "test/core/end2end/fixtures/h2_full+pipe.c"
],
"third_party": false,
"type": "target"
@@ -3679,9 +3661,9 @@
],
"headers": [],
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"src": [
- "test/core/end2end/fixtures/h2_full+pipe.c"
+ "test/core/end2end/fixtures/h2_full+trace.c"
],
"third_party": false,
"type": "target"
@@ -3696,9 +3678,9 @@
],
"headers": [],
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "h2_proxy_nosec_test",
"src": [
- "test/core/end2end/fixtures/h2_full+poll.c"
+ "test/core/end2end/fixtures/h2_proxy.c"
],
"third_party": false,
"type": "target"
@@ -3713,9 +3695,9 @@
],
"headers": [],
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"src": [
- "test/core/end2end/fixtures/h2_full+poll+pipe.c"
+ "test/core/end2end/fixtures/h2_sockpair.c"
],
"third_party": false,
"type": "target"
@@ -3730,9 +3712,9 @@
],
"headers": [],
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"src": [
- "test/core/end2end/fixtures/h2_full+trace.c"
+ "test/core/end2end/fixtures/h2_sockpair+trace.c"
],
"third_party": false,
"type": "target"
@@ -3747,9 +3729,9 @@
],
"headers": [],
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"src": [
- "test/core/end2end/fixtures/h2_proxy.c"
+ "test/core/end2end/fixtures/h2_sockpair_1byte.c"
],
"third_party": false,
"type": "target"
@@ -3764,77 +3746,77 @@
],
"headers": [],
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "h2_uds_nosec_test",
"src": [
- "test/core/end2end/fixtures/h2_sockpair.c"
+ "test/core/end2end/fixtures/h2_uds.c"
],
"third_party": false,
"type": "target"
},
{
"deps": [
- "end2end_nosec_tests",
"gpr",
"gpr_test_util",
- "grpc_test_util_unsecure",
- "grpc_unsecure"
+ "grpc",
+ "grpc_test_util",
+ "one_input_fuzzer"
],
"headers": [],
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"src": [
- "test/core/end2end/fixtures/h2_sockpair+trace.c"
+ "test/core/transport/chttp2/hpack_parser_fuzzer_test.c"
],
"third_party": false,
"type": "target"
},
{
"deps": [
- "end2end_nosec_tests",
"gpr",
"gpr_test_util",
- "grpc_test_util_unsecure",
- "grpc_unsecure"
+ "grpc",
+ "grpc_test_util",
+ "one_input_fuzzer"
],
"headers": [],
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"src": [
- "test/core/end2end/fixtures/h2_sockpair_1byte.c"
+ "test/core/http/fuzzer.c"
],
"third_party": false,
"type": "target"
},
{
"deps": [
- "end2end_nosec_tests",
"gpr",
"gpr_test_util",
- "grpc_test_util_unsecure",
- "grpc_unsecure"
+ "grpc",
+ "grpc_test_util",
+ "one_input_fuzzer"
],
"headers": [],
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"src": [
- "test/core/end2end/fixtures/h2_uds.c"
+ "test/core/json/fuzzer.c"
],
"third_party": false,
"type": "target"
},
{
"deps": [
- "end2end_nosec_tests",
"gpr",
"gpr_test_util",
- "grpc_test_util_unsecure",
- "grpc_unsecure"
+ "grpc",
+ "grpc_test_util",
+ "one_input_fuzzer"
],
"headers": [],
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "uri_fuzzer_test_one_entry",
"src": [
- "test/core/end2end/fixtures/h2_uds+poll.c"
+ "test/core/client_config/uri_fuzzer_test.c"
],
"third_party": false,
"type": "target"
@@ -4036,6 +4018,12 @@
"include/grpc/impl/codegen/propagation_bits.h",
"include/grpc/impl/codegen/status.h",
"include/grpc/status.h",
+ "src/core/ext/census/aggregation.h",
+ "src/core/ext/census/census_interface.h",
+ "src/core/ext/census/census_rpc_stats.h",
+ "src/core/ext/census/grpc_filter.h",
+ "src/core/ext/census/mlog.h",
+ "src/core/ext/census/rpc_metric_id.h",
"src/core/ext/lb_policy/grpclb/load_balancer_api.h",
"src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
"src/core/ext/transport/chttp2/transport/alpn.h",
@@ -4059,11 +4047,6 @@
"src/core/ext/transport/chttp2/transport/stream_map.h",
"src/core/ext/transport/chttp2/transport/timeout_encoding.h",
"src/core/ext/transport/chttp2/transport/varint.h",
- "src/core/lib/census/aggregation.h",
- "src/core/lib/census/grpc_filter.h",
- "src/core/lib/census/grpc_plugin.h",
- "src/core/lib/census/mlog.h",
- "src/core/lib/census/rpc_metric_id.h",
"src/core/lib/channel/channel_args.h",
"src/core/lib/channel/channel_stack.h",
"src/core/lib/channel/channel_stack_builder.h",
@@ -4074,6 +4057,7 @@
"src/core/lib/channel/http_client_filter.h",
"src/core/lib/channel/http_server_filter.h",
"src/core/lib/channel/subchannel_call_holder.h",
+ "src/core/lib/client_config/client_channel_factory.h",
"src/core/lib/client_config/client_config.h",
"src/core/lib/client_config/connector.h",
"src/core/lib/client_config/initial_connect_string.h",
@@ -4083,10 +4067,7 @@
"src/core/lib/client_config/resolver.h",
"src/core/lib/client_config/resolver_factory.h",
"src/core/lib/client_config/resolver_registry.h",
- "src/core/lib/client_config/resolvers/dns_resolver.h",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.h",
"src/core/lib/client_config/subchannel.h",
- "src/core/lib/client_config/subchannel_factory.h",
"src/core/lib/client_config/subchannel_index.h",
"src/core/lib/client_config/uri_parser.h",
"src/core/lib/compression/algorithm_metadata.h",
@@ -4098,17 +4079,16 @@
"src/core/lib/iomgr/closure.h",
"src/core/lib/iomgr/endpoint.h",
"src/core/lib/iomgr/endpoint_pair.h",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.h",
+ "src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.h",
"src/core/lib/iomgr/executor.h",
- "src/core/lib/iomgr/fd_posix.h",
"src/core/lib/iomgr/iocp_windows.h",
"src/core/lib/iomgr/iomgr.h",
"src/core/lib/iomgr/iomgr_internal.h",
"src/core/lib/iomgr/iomgr_posix.h",
"src/core/lib/iomgr/pollset.h",
- "src/core/lib/iomgr/pollset_posix.h",
"src/core/lib/iomgr/pollset_set.h",
- "src/core/lib/iomgr/pollset_set_posix.h",
"src/core/lib/iomgr/pollset_set_windows.h",
"src/core/lib/iomgr/pollset_windows.h",
"src/core/lib/iomgr/resolve_address.h",
@@ -4145,8 +4125,6 @@
"src/core/lib/security/secure_endpoint.h",
"src/core/lib/security/security_connector.h",
"src/core/lib/security/security_context.h",
- "src/core/lib/statistics/census_interface.h",
- "src/core/lib/statistics/census_rpc_stats.h",
"src/core/lib/surface/api_trace.h",
"src/core/lib/surface/call.h",
"src/core/lib/surface/call_test_only.h",
@@ -4192,12 +4170,29 @@
"include/grpc/impl/codegen/propagation_bits.h",
"include/grpc/impl/codegen/status.h",
"include/grpc/status.h",
+ "src/core/ext/census/aggregation.h",
+ "src/core/ext/census/census_interface.h",
+ "src/core/ext/census/census_rpc_stats.h",
+ "src/core/ext/census/context.c",
+ "src/core/ext/census/grpc_context.c",
+ "src/core/ext/census/grpc_filter.c",
+ "src/core/ext/census/grpc_filter.h",
+ "src/core/ext/census/grpc_plugin.c",
+ "src/core/ext/census/initialize.c",
+ "src/core/ext/census/mlog.c",
+ "src/core/ext/census/mlog.h",
+ "src/core/ext/census/operation.c",
+ "src/core/ext/census/placeholders.c",
+ "src/core/ext/census/rpc_metric_id.h",
+ "src/core/ext/census/tracing.c",
"src/core/ext/lb_policy/grpclb/load_balancer_api.c",
"src/core/ext/lb_policy/grpclb/load_balancer_api.h",
"src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c",
"src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
"src/core/ext/lb_policy/pick_first/pick_first.c",
"src/core/ext/lb_policy/round_robin/round_robin.c",
+ "src/core/ext/resolver/dns/native/dns_resolver.c",
+ "src/core/ext/resolver/sockaddr/sockaddr_resolver.c",
"src/core/ext/transport/chttp2/client/insecure/channel_create.c",
"src/core/ext/transport/chttp2/client/secure/secure_channel_create.c",
"src/core/ext/transport/chttp2/server/insecure/server_chttp2.c",
@@ -4244,20 +4239,6 @@
"src/core/ext/transport/chttp2/transport/varint.c",
"src/core/ext/transport/chttp2/transport/varint.h",
"src/core/ext/transport/chttp2/transport/writing.c",
- "src/core/lib/census/aggregation.h",
- "src/core/lib/census/context.c",
- "src/core/lib/census/grpc_context.c",
- "src/core/lib/census/grpc_filter.c",
- "src/core/lib/census/grpc_filter.h",
- "src/core/lib/census/grpc_plugin.c",
- "src/core/lib/census/grpc_plugin.h",
- "src/core/lib/census/initialize.c",
- "src/core/lib/census/mlog.c",
- "src/core/lib/census/mlog.h",
- "src/core/lib/census/operation.c",
- "src/core/lib/census/placeholders.c",
- "src/core/lib/census/rpc_metric_id.h",
- "src/core/lib/census/tracing.c",
"src/core/lib/channel/channel_args.c",
"src/core/lib/channel/channel_args.h",
"src/core/lib/channel/channel_stack.c",
@@ -4277,6 +4258,8 @@
"src/core/lib/channel/http_server_filter.h",
"src/core/lib/channel/subchannel_call_holder.c",
"src/core/lib/channel/subchannel_call_holder.h",
+ "src/core/lib/client_config/client_channel_factory.c",
+ "src/core/lib/client_config/client_channel_factory.h",
"src/core/lib/client_config/client_config.c",
"src/core/lib/client_config/client_config.h",
"src/core/lib/client_config/connector.c",
@@ -4296,14 +4279,8 @@
"src/core/lib/client_config/resolver_factory.h",
"src/core/lib/client_config/resolver_registry.c",
"src/core/lib/client_config/resolver_registry.h",
- "src/core/lib/client_config/resolvers/dns_resolver.c",
- "src/core/lib/client_config/resolvers/dns_resolver.h",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.c",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.h",
"src/core/lib/client_config/subchannel.c",
"src/core/lib/client_config/subchannel.h",
- "src/core/lib/client_config/subchannel_factory.c",
- "src/core/lib/client_config/subchannel_factory.h",
"src/core/lib/client_config/subchannel_index.c",
"src/core/lib/client_config/subchannel_index.h",
"src/core/lib/client_config/uri_parser.c",
@@ -4328,12 +4305,14 @@
"src/core/lib/iomgr/endpoint_pair.h",
"src/core/lib/iomgr/endpoint_pair_posix.c",
"src/core/lib/iomgr/endpoint_pair_windows.c",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.c",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.h",
+ "src/core/lib/iomgr/ev_posix.c",
+ "src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.c",
"src/core/lib/iomgr/exec_ctx.h",
"src/core/lib/iomgr/executor.c",
"src/core/lib/iomgr/executor.h",
- "src/core/lib/iomgr/fd_posix.c",
- "src/core/lib/iomgr/fd_posix.h",
"src/core/lib/iomgr/iocp_windows.c",
"src/core/lib/iomgr/iocp_windows.h",
"src/core/lib/iomgr/iomgr.c",
@@ -4343,13 +4322,7 @@
"src/core/lib/iomgr/iomgr_posix.h",
"src/core/lib/iomgr/iomgr_windows.c",
"src/core/lib/iomgr/pollset.h",
- "src/core/lib/iomgr/pollset_multipoller_with_epoll.c",
- "src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c",
- "src/core/lib/iomgr/pollset_posix.c",
- "src/core/lib/iomgr/pollset_posix.h",
"src/core/lib/iomgr/pollset_set.h",
- "src/core/lib/iomgr/pollset_set_posix.c",
- "src/core/lib/iomgr/pollset_set_posix.h",
"src/core/lib/iomgr/pollset_set_windows.c",
"src/core/lib/iomgr/pollset_set_windows.h",
"src/core/lib/iomgr/pollset_windows.c",
@@ -4431,8 +4404,6 @@
"src/core/lib/security/security_context.c",
"src/core/lib/security/security_context.h",
"src/core/lib/security/server_auth_filter.c",
- "src/core/lib/statistics/census_interface.h",
- "src/core/lib/statistics/census_rpc_stats.h",
"src/core/lib/surface/alarm.c",
"src/core/lib/surface/api_trace.c",
"src/core/lib/surface/api_trace.h",
@@ -4661,6 +4632,12 @@
"include/grpc/impl/codegen/propagation_bits.h",
"include/grpc/impl/codegen/status.h",
"include/grpc/status.h",
+ "src/core/ext/census/aggregation.h",
+ "src/core/ext/census/census_interface.h",
+ "src/core/ext/census/census_rpc_stats.h",
+ "src/core/ext/census/grpc_filter.h",
+ "src/core/ext/census/mlog.h",
+ "src/core/ext/census/rpc_metric_id.h",
"src/core/ext/lb_policy/grpclb/load_balancer_api.h",
"src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
"src/core/ext/transport/chttp2/transport/alpn.h",
@@ -4684,11 +4661,6 @@
"src/core/ext/transport/chttp2/transport/stream_map.h",
"src/core/ext/transport/chttp2/transport/timeout_encoding.h",
"src/core/ext/transport/chttp2/transport/varint.h",
- "src/core/lib/census/aggregation.h",
- "src/core/lib/census/grpc_filter.h",
- "src/core/lib/census/grpc_plugin.h",
- "src/core/lib/census/mlog.h",
- "src/core/lib/census/rpc_metric_id.h",
"src/core/lib/channel/channel_args.h",
"src/core/lib/channel/channel_stack.h",
"src/core/lib/channel/channel_stack_builder.h",
@@ -4699,6 +4671,7 @@
"src/core/lib/channel/http_client_filter.h",
"src/core/lib/channel/http_server_filter.h",
"src/core/lib/channel/subchannel_call_holder.h",
+ "src/core/lib/client_config/client_channel_factory.h",
"src/core/lib/client_config/client_config.h",
"src/core/lib/client_config/connector.h",
"src/core/lib/client_config/initial_connect_string.h",
@@ -4708,10 +4681,7 @@
"src/core/lib/client_config/resolver.h",
"src/core/lib/client_config/resolver_factory.h",
"src/core/lib/client_config/resolver_registry.h",
- "src/core/lib/client_config/resolvers/dns_resolver.h",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.h",
"src/core/lib/client_config/subchannel.h",
- "src/core/lib/client_config/subchannel_factory.h",
"src/core/lib/client_config/subchannel_index.h",
"src/core/lib/client_config/uri_parser.h",
"src/core/lib/compression/algorithm_metadata.h",
@@ -4723,17 +4693,16 @@
"src/core/lib/iomgr/closure.h",
"src/core/lib/iomgr/endpoint.h",
"src/core/lib/iomgr/endpoint_pair.h",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.h",
+ "src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.h",
"src/core/lib/iomgr/executor.h",
- "src/core/lib/iomgr/fd_posix.h",
"src/core/lib/iomgr/iocp_windows.h",
"src/core/lib/iomgr/iomgr.h",
"src/core/lib/iomgr/iomgr_internal.h",
"src/core/lib/iomgr/iomgr_posix.h",
"src/core/lib/iomgr/pollset.h",
- "src/core/lib/iomgr/pollset_posix.h",
"src/core/lib/iomgr/pollset_set.h",
- "src/core/lib/iomgr/pollset_set_posix.h",
"src/core/lib/iomgr/pollset_set_windows.h",
"src/core/lib/iomgr/pollset_windows.h",
"src/core/lib/iomgr/resolve_address.h",
@@ -4761,8 +4730,6 @@
"src/core/lib/json/json_common.h",
"src/core/lib/json/json_reader.h",
"src/core/lib/json/json_writer.h",
- "src/core/lib/statistics/census_interface.h",
- "src/core/lib/statistics/census_rpc_stats.h",
"src/core/lib/surface/api_trace.h",
"src/core/lib/surface/call.h",
"src/core/lib/surface/call_test_only.h",
@@ -4802,12 +4769,29 @@
"include/grpc/impl/codegen/propagation_bits.h",
"include/grpc/impl/codegen/status.h",
"include/grpc/status.h",
+ "src/core/ext/census/aggregation.h",
+ "src/core/ext/census/census_interface.h",
+ "src/core/ext/census/census_rpc_stats.h",
+ "src/core/ext/census/context.c",
+ "src/core/ext/census/grpc_context.c",
+ "src/core/ext/census/grpc_filter.c",
+ "src/core/ext/census/grpc_filter.h",
+ "src/core/ext/census/grpc_plugin.c",
+ "src/core/ext/census/initialize.c",
+ "src/core/ext/census/mlog.c",
+ "src/core/ext/census/mlog.h",
+ "src/core/ext/census/operation.c",
+ "src/core/ext/census/placeholders.c",
+ "src/core/ext/census/rpc_metric_id.h",
+ "src/core/ext/census/tracing.c",
"src/core/ext/lb_policy/grpclb/load_balancer_api.c",
"src/core/ext/lb_policy/grpclb/load_balancer_api.h",
"src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c",
"src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
"src/core/ext/lb_policy/pick_first/pick_first.c",
"src/core/ext/lb_policy/round_robin/round_robin.c",
+ "src/core/ext/resolver/dns/native/dns_resolver.c",
+ "src/core/ext/resolver/sockaddr/sockaddr_resolver.c",
"src/core/ext/transport/chttp2/client/insecure/channel_create.c",
"src/core/ext/transport/chttp2/server/insecure/server_chttp2.c",
"src/core/ext/transport/chttp2/transport/alpn.c",
@@ -4852,20 +4836,6 @@
"src/core/ext/transport/chttp2/transport/varint.c",
"src/core/ext/transport/chttp2/transport/varint.h",
"src/core/ext/transport/chttp2/transport/writing.c",
- "src/core/lib/census/aggregation.h",
- "src/core/lib/census/context.c",
- "src/core/lib/census/grpc_context.c",
- "src/core/lib/census/grpc_filter.c",
- "src/core/lib/census/grpc_filter.h",
- "src/core/lib/census/grpc_plugin.c",
- "src/core/lib/census/grpc_plugin.h",
- "src/core/lib/census/initialize.c",
- "src/core/lib/census/mlog.c",
- "src/core/lib/census/mlog.h",
- "src/core/lib/census/operation.c",
- "src/core/lib/census/placeholders.c",
- "src/core/lib/census/rpc_metric_id.h",
- "src/core/lib/census/tracing.c",
"src/core/lib/channel/channel_args.c",
"src/core/lib/channel/channel_args.h",
"src/core/lib/channel/channel_stack.c",
@@ -4885,6 +4855,8 @@
"src/core/lib/channel/http_server_filter.h",
"src/core/lib/channel/subchannel_call_holder.c",
"src/core/lib/channel/subchannel_call_holder.h",
+ "src/core/lib/client_config/client_channel_factory.c",
+ "src/core/lib/client_config/client_channel_factory.h",
"src/core/lib/client_config/client_config.c",
"src/core/lib/client_config/client_config.h",
"src/core/lib/client_config/connector.c",
@@ -4904,14 +4876,8 @@
"src/core/lib/client_config/resolver_factory.h",
"src/core/lib/client_config/resolver_registry.c",
"src/core/lib/client_config/resolver_registry.h",
- "src/core/lib/client_config/resolvers/dns_resolver.c",
- "src/core/lib/client_config/resolvers/dns_resolver.h",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.c",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.h",
"src/core/lib/client_config/subchannel.c",
"src/core/lib/client_config/subchannel.h",
- "src/core/lib/client_config/subchannel_factory.c",
- "src/core/lib/client_config/subchannel_factory.h",
"src/core/lib/client_config/subchannel_index.c",
"src/core/lib/client_config/subchannel_index.h",
"src/core/lib/client_config/uri_parser.c",
@@ -4935,12 +4901,14 @@
"src/core/lib/iomgr/endpoint_pair.h",
"src/core/lib/iomgr/endpoint_pair_posix.c",
"src/core/lib/iomgr/endpoint_pair_windows.c",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.c",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.h",
+ "src/core/lib/iomgr/ev_posix.c",
+ "src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.c",
"src/core/lib/iomgr/exec_ctx.h",
"src/core/lib/iomgr/executor.c",
"src/core/lib/iomgr/executor.h",
- "src/core/lib/iomgr/fd_posix.c",
- "src/core/lib/iomgr/fd_posix.h",
"src/core/lib/iomgr/iocp_windows.c",
"src/core/lib/iomgr/iocp_windows.h",
"src/core/lib/iomgr/iomgr.c",
@@ -4950,13 +4918,7 @@
"src/core/lib/iomgr/iomgr_posix.h",
"src/core/lib/iomgr/iomgr_windows.c",
"src/core/lib/iomgr/pollset.h",
- "src/core/lib/iomgr/pollset_multipoller_with_epoll.c",
- "src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c",
- "src/core/lib/iomgr/pollset_posix.c",
- "src/core/lib/iomgr/pollset_posix.h",
"src/core/lib/iomgr/pollset_set.h",
- "src/core/lib/iomgr/pollset_set_posix.c",
- "src/core/lib/iomgr/pollset_set_posix.h",
"src/core/lib/iomgr/pollset_set_windows.c",
"src/core/lib/iomgr/pollset_set_windows.h",
"src/core/lib/iomgr/pollset_windows.c",
@@ -5015,8 +4977,6 @@
"src/core/lib/json/json_string.c",
"src/core/lib/json/json_writer.c",
"src/core/lib/json/json_writer.h",
- "src/core/lib/statistics/census_interface.h",
- "src/core/lib/statistics/census_rpc_stats.h",
"src/core/lib/surface/alarm.c",
"src/core/lib/surface/api_trace.c",
"src/core/lib/surface/api_trace.h",
@@ -5075,15 +5035,26 @@
"grpc"
],
"headers": [
- "include/grpc/grpc_zookeeper.h",
- "src/core/lib/client_config/resolvers/zookeeper_resolver.h"
+ "include/grpc/grpc_zookeeper.h"
],
"language": "c",
"name": "grpc_zookeeper",
"src": [
"include/grpc/grpc_zookeeper.h",
- "src/core/lib/client_config/resolvers/zookeeper_resolver.c",
- "src/core/lib/client_config/resolvers/zookeeper_resolver.h"
+ "src/core/ext/resolver/zookeeper/zookeeper_resolver.c"
+ ],
+ "third_party": false,
+ "type": "lib"
+ },
+ {
+ "deps": [
+ "gpr"
+ ],
+ "headers": [],
+ "language": "c",
+ "name": "one_input_fuzzer",
+ "src": [
+ "test/core/util/one_corpus_entry_fuzzer.c"
],
"third_party": false,
"type": "lib"
diff --git a/tools/run_tests/stress_test/README.md b/tools/run_tests/stress_test/README.md
index 84f9719cb1..cc82b875cd 100644
--- a/tools/run_tests/stress_test/README.md
+++ b/tools/run_tests/stress_test/README.md
@@ -63,8 +63,8 @@
The stress tests are launched by the following script (path is relative to GRPC root directory) :
`tools/run_tests/stress_test/run_stress_tests_on_gke.py`
-The script has several parameters and you can find out more details by using the `--help` flag.
- - `<grpc_root_dir>$ tools/run_tests/stress_test/run_stress_tests_on_gke.py --help`
+You can find out more details by using the `--help` flag.
+ - `<grpc_root_dir>$ tools/run_tests/stress_test/run_on_gke.py --help`
> **Example**
> ```bash
diff --git a/tools/run_tests/stress_test/STRESS_CLIENT_SPEC.md b/tools/run_tests/stress_test/STRESS_CLIENT_SPEC.md
index c4c9f14513..f9b1667280 100644
--- a/tools/run_tests/stress_test/STRESS_CLIENT_SPEC.md
+++ b/tools/run_tests/stress_test/STRESS_CLIENT_SPEC.md
@@ -6,18 +6,18 @@ This document specifies the features a stress test client should implement in or
--------------
**1.** A stress test client should be able to repeatedly execute one or more of the existing 'interop test cases'. It may just be a wrapper around the existing interop test client. The exact command line arguments the client should support are listed in _Table 1_ below.
-**2.** The stress test client must implement a metrics server defined by _[metrics.proto](https://github.com/grpc/grpc/blob/master/src/proto/grpc/testing/metrics.proto)_ and must expose _qps_ as a long-valued Gauge. The client can track the overall _qps_ in one Gauge or in multiple Gagues (for example: One per Channel or Stub).
+**2.** The stress test client must implement a metrics server defined by _[metrics.proto](https://github.com/grpc/grpc/blob/master/src/proto/grpc/testing/metrics.proto)_ and must expose _qps_ as a long-valued Gauge. The client can track the overall _qps_ in one Gauge or in multiple Gauges (for example: One per Channel or Stub).
The framework periodically queries the _qps_ by calling the `GetAllGauges()` method (the framework assumes that all the returned Gauges are _qps_ Gauges) and uses this to determine if the stress test client is running or crashed or stalled.
> *Note:* In this context, the term _**qps**_ means _interop test cases per second_ (not _messages per second_ or _rpc calls per second_)
**Table 1:** Command line arguments that should be supported by the stress test client.
->_**Note** The current C++ [stress client](https://github.com/grpc/grpc/blob/master/test/cpp/interop/stress_test.cc) supports more flags than those listed here but those flags will soon be deprecated_|
+>_**Note** The current C++ [stress client](https://github.com/grpc/grpc/blob/master/test/cpp/interop/stress_test.cc) supports more flags than those listed here but those flags will soon be deprecated._
Parameter | Description
----------------------|---------------------------------
-`--server_address` | The stress client should accept a list of server addresses in the following format:<br> ```<name_1>:<port_1>,<name_2>:<port_2>..<name_N>:<port_N>``` <br> _Note:_ `<name>` can be either server name or IP address.<br><br>_Type:_ string <br>_default:_ ```localhost:8080``` <br>_Example:_ ``foo.foobar.com:8080,bar.foobar.com:8080`` <br><br> Currently, the stress test framework only passes one server address to the client.
+`--server_addresses` | The stress client should accept a list of server addresses in the following format:<br> ```<name_1>:<port_1>,<name_2>:<port_2>..<name_N>:<port_N>``` <br> _Note:_ `<name>` can be either server name or IP address.<br><br>_Type:_ string <br>_default:_ ```localhost:8080``` <br>_Example:_ ``foo.foobar.com:8080,bar.foobar.com:8080`` <br><br> Currently, the stress test framework only passes one server address to the client.
`--test_cases` | List of test cases along with the relative weights in the following format:<br> `<testcase_1:w_1>,<testcase_2:w_2>...<testcase_n:w_n>`. <br> The test cases names are the same as those currently used by the interop clients<br><br>_Type:_ string <br>_Example:_ `empty_unary:20,large_unary:10,empty_stream:70` <br>(The stress client would then make `empty_unary` calls 20% of the time, `large_unary` calls 10% of the time and `empty_stream` calls 70% of the time.) <br>_Note:_ The weights need not add up to 100.
`--test_duration-secs` | The test duration in seconds. A value of -1 means that the test should run forever until forcefully terminated. <br>_Type:_ int <br>_default:_ -1
`--num_channels_per_server` | Number of channels (i.e connections) to each server. <br> _Type:_ int <br> _default:_ 1 <br><br> _Note:_ Unfortunately, the term `channel` is used differently in `grpc-java` and `C based grpc`. In this context, this really means "number of connections to the server"
diff --git a/tools/run_tests/stress_test/run_on_gke.py b/tools/run_tests/stress_test/run_on_gke.py
index 6a173cc0f5..9d4ac7ac58 100755
--- a/tools/run_tests/stress_test/run_on_gke.py
+++ b/tools/run_tests/stress_test/run_on_gke.py
@@ -633,4 +633,5 @@ if __name__ == '__main__':
os.path.dirname(sys.argv[0]), '../../..'))
os.chdir(grpc_root)
- run_tests(config)
+ if not run_tests(config):
+ sys.exit(1)
diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json
index e516543dae..4396e31d0d 100644
--- a/tools/run_tests/tests.json
+++ b/tools/run_tests/tests.json
@@ -437,6 +437,25 @@
"ci_platforms": [
"linux",
"mac",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "gtest": false,
+ "language": "c",
+ "name": "goaway_server_test",
+ "platforms": [
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [],
+ "ci_platforms": [
+ "linux",
+ "mac",
"posix",
"windows"
],
@@ -2597,6 +2616,27 @@
"posix",
"windows"
],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "gtest": false,
+ "language": "c",
+ "name": "head_of_line_blocking_bad_client_test",
+ "platforms": [
+ "linux",
+ "mac",
+ "posix",
+ "windows"
+ ]
+ },
+ {
+ "args": [],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "posix",
+ "windows"
+ ],
"cpu_cost": 0.2,
"exclude_configs": [],
"flaky": false,
@@ -8091,15 +8131,21 @@
"bad_hostname"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8107,15 +8153,21 @@
"binary_metadata"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8123,15 +8175,21 @@
"call_creds"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8139,15 +8197,21 @@
"cancel_after_accept"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8155,15 +8219,21 @@
"cancel_after_client_done"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8171,15 +8241,21 @@
"cancel_after_invoke"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8187,15 +8263,21 @@
"cancel_before_invoke"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8203,15 +8285,21 @@
"cancel_in_a_vacuum"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8219,15 +8307,21 @@
"cancel_with_status"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8235,15 +8329,21 @@
"compressed_payload"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8251,15 +8351,21 @@
"connectivity"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8267,15 +8373,21 @@
"default_host"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8283,15 +8395,21 @@
"disappearing_server"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8299,15 +8417,21 @@
"empty_batch"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8315,15 +8439,21 @@
"graceful_server_shutdown"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8331,31 +8461,21 @@
"high_initial_seqno"
],
"ci_platforms": [
- "linux"
- ],
- "cpu_cost": 1.0,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_full+poll_test",
- "platforms": [
- "linux"
- ]
- },
- {
- "args": [
- "hpack_size"
- ],
- "ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8363,15 +8483,21 @@
"idempotent_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8379,15 +8505,21 @@
"invoke_large_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8395,15 +8527,21 @@
"large_metadata"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8411,15 +8549,21 @@
"max_concurrent_streams"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8427,15 +8571,21 @@
"max_message_length"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8443,15 +8593,21 @@
"negative_deadline"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8459,15 +8615,21 @@
"no_op"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8475,15 +8637,21 @@
"payload"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8491,15 +8659,21 @@
"ping"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8507,15 +8681,21 @@
"ping_pong_streaming"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8523,15 +8703,21 @@
"registered_call"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8539,15 +8725,21 @@
"request_with_flags"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8555,15 +8747,21 @@
"request_with_payload"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8571,15 +8769,21 @@
"server_finishes_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8587,15 +8791,21 @@
"shutdown_finishes_calls"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8603,15 +8813,21 @@
"shutdown_finishes_tags"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8619,15 +8835,21 @@
"simple_delayed_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8635,15 +8857,21 @@
"simple_metadata"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8651,15 +8879,21 @@
"simple_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8667,15 +8901,21 @@
"trailing_metadata"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8683,15 +8923,20 @@
"bad_hostname"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8699,15 +8944,20 @@
"binary_metadata"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8715,15 +8965,20 @@
"call_creds"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8731,15 +8986,20 @@
"cancel_after_accept"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8747,15 +9007,20 @@
"cancel_after_client_done"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8763,15 +9028,20 @@
"cancel_after_invoke"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8779,15 +9049,20 @@
"cancel_before_invoke"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8795,15 +9070,20 @@
"cancel_in_a_vacuum"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8811,15 +9091,20 @@
"cancel_with_status"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8827,15 +9112,20 @@
"compressed_payload"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8843,15 +9133,20 @@
"connectivity"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8859,15 +9154,20 @@
"default_host"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8875,15 +9175,20 @@
"disappearing_server"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8891,15 +9196,20 @@
"empty_batch"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8907,15 +9217,20 @@
"graceful_server_shutdown"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8923,15 +9238,20 @@
"high_initial_seqno"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8939,15 +9259,20 @@
"hpack_size"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8955,15 +9280,20 @@
"idempotent_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8971,15 +9301,20 @@
"invoke_large_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8987,15 +9322,20 @@
"large_metadata"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9003,15 +9343,20 @@
"max_concurrent_streams"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9019,15 +9364,20 @@
"max_message_length"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9035,15 +9385,20 @@
"negative_deadline"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9051,15 +9406,20 @@
"no_op"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9067,15 +9427,20 @@
"payload"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9083,15 +9448,20 @@
"ping"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9099,15 +9469,20 @@
"ping_pong_streaming"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9115,15 +9490,20 @@
"registered_call"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9131,15 +9511,20 @@
"request_with_flags"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9147,15 +9532,20 @@
"request_with_payload"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9163,15 +9553,20 @@
"server_finishes_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9179,15 +9574,20 @@
"shutdown_finishes_calls"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9195,15 +9595,20 @@
"shutdown_finishes_tags"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9211,15 +9616,20 @@
"simple_delayed_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9227,15 +9637,20 @@
"simple_metadata"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9243,48 +9658,15 @@
"simple_request"
],
"ci_platforms": [
- "linux"
- ],
- "cpu_cost": 1.0,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_full+poll+pipe_test",
- "platforms": [
- "linux"
- ]
- },
- {
- "args": [
- "trailing_metadata"
- ],
- "ci_platforms": [
- "linux"
- ],
- "cpu_cost": 1.0,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_full+poll+pipe_test",
- "platforms": [
- "linux"
- ]
- },
- {
- "args": [
- "bad_hostname"
- ],
- "ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_oauth2_test",
"platforms": [
"windows",
"linux",
@@ -9294,19 +9676,18 @@
},
{
"args": [
- "binary_metadata"
+ "trailing_metadata"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_oauth2_test",
"platforms": [
"windows",
"linux",
@@ -9316,19 +9697,18 @@
},
{
"args": [
- "call_creds"
+ "bad_hostname"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9338,19 +9718,18 @@
},
{
"args": [
- "cancel_after_accept"
+ "binary_metadata"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9360,19 +9739,18 @@
},
{
"args": [
- "cancel_after_client_done"
+ "call_creds"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9382,19 +9760,18 @@
},
{
"args": [
- "cancel_after_invoke"
+ "cancel_after_accept"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9404,19 +9781,18 @@
},
{
"args": [
- "cancel_before_invoke"
+ "cancel_after_client_done"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9426,19 +9802,18 @@
},
{
"args": [
- "cancel_in_a_vacuum"
+ "cancel_after_invoke"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9448,19 +9823,18 @@
},
{
"args": [
- "cancel_with_status"
+ "cancel_before_invoke"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9470,19 +9844,18 @@
},
{
"args": [
- "compressed_payload"
+ "cancel_in_a_vacuum"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9492,19 +9865,18 @@
},
{
"args": [
- "connectivity"
+ "cancel_with_status"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9519,14 +9891,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9541,14 +9912,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9563,14 +9933,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9585,14 +9954,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9607,14 +9975,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9629,14 +9996,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9651,14 +10017,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9673,36 +10038,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
- "posix"
- ],
- "cpu_cost": 1.0,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_full+trace_test",
- "platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ]
- },
- {
- "args": [
- "max_concurrent_streams"
- ],
- "ci_platforms": [
- "windows",
- "linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9717,14 +10059,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9739,14 +10080,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9761,14 +10101,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9783,36 +10122,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
- "platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ]
- },
- {
- "args": [
- "ping"
- ],
- "ci_platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ],
- "cpu_cost": 1.0,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9827,14 +10143,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9849,36 +10164,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
- "platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ]
- },
- {
- "args": [
- "request_with_flags"
- ],
- "ci_platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ],
- "cpu_cost": 1.0,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9893,14 +10185,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9915,14 +10206,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9937,14 +10227,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9959,14 +10248,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9981,14 +10269,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -10003,14 +10290,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -10025,14 +10311,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -10047,14 +10332,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -10075,7 +10359,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10096,7 +10380,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10117,7 +10401,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10138,7 +10422,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10159,7 +10443,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10180,7 +10464,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10201,7 +10485,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10222,7 +10506,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10243,7 +10527,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10264,70 +10548,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
- "platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ]
- },
- {
- "args": [
- "connectivity"
- ],
- "ci_platforms": [
- "windows",
- "linux",
- "posix"
- ],
- "cpu_cost": 0.1,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_oauth2_test",
- "platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ]
- },
- {
- "args": [
- "default_host"
- ],
- "ci_platforms": [
- "windows",
- "linux",
- "posix"
- ],
- "cpu_cost": 1.0,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_oauth2_test",
- "platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ]
- },
- {
- "args": [
- "disappearing_server"
- ],
- "ci_platforms": [
- "windows",
- "linux",
- "posix"
- ],
- "cpu_cost": 1.0,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10348,7 +10569,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10369,7 +10590,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10390,7 +10611,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10411,7 +10632,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10432,7 +10653,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10453,7 +10674,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10474,7 +10695,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10495,7 +10716,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10516,7 +10737,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10537,7 +10758,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10558,7 +10779,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10579,28 +10800,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
- "platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ]
- },
- {
- "args": [
- "ping"
- ],
- "ci_platforms": [
- "windows",
- "linux",
- "posix"
- ],
- "cpu_cost": 1.0,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10621,7 +10821,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10642,7 +10842,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10663,7 +10863,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10684,7 +10884,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10705,7 +10905,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10726,7 +10926,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10747,28 +10947,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
- "platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ]
- },
- {
- "args": [
- "simple_delayed_request"
- ],
- "ci_platforms": [
- "windows",
- "linux",
- "posix"
- ],
- "cpu_cost": 0.1,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10789,7 +10968,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10810,7 +10989,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10831,7 +11010,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10852,7 +11031,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10873,7 +11052,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10894,7 +11073,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10915,7 +11094,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10936,7 +11115,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10957,7 +11136,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10978,7 +11157,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10999,7 +11178,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11020,7 +11199,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11030,18 +11209,18 @@
},
{
"args": [
- "default_host"
+ "compressed_payload"
],
"ci_platforms": [
"windows",
"linux",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11051,7 +11230,7 @@
},
{
"args": [
- "disappearing_server"
+ "empty_batch"
],
"ci_platforms": [
"windows",
@@ -11062,7 +11241,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11072,18 +11251,18 @@
},
{
"args": [
- "empty_batch"
+ "graceful_server_shutdown"
],
"ci_platforms": [
"windows",
"linux",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11093,18 +11272,18 @@
},
{
"args": [
- "graceful_server_shutdown"
+ "high_initial_seqno"
],
"ci_platforms": [
"windows",
"linux",
"posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11114,7 +11293,7 @@
},
{
"args": [
- "high_initial_seqno"
+ "idempotent_request"
],
"ci_platforms": [
"windows",
@@ -11125,7 +11304,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11135,7 +11314,7 @@
},
{
"args": [
- "idempotent_request"
+ "invoke_large_request"
],
"ci_platforms": [
"windows",
@@ -11146,7 +11325,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11156,7 +11335,7 @@
},
{
"args": [
- "invoke_large_request"
+ "large_metadata"
],
"ci_platforms": [
"windows",
@@ -11167,7 +11346,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11177,7 +11356,7 @@
},
{
"args": [
- "large_metadata"
+ "max_concurrent_streams"
],
"ci_platforms": [
"windows",
@@ -11188,7 +11367,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11209,7 +11388,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11230,7 +11409,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11251,7 +11430,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11272,7 +11451,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11293,7 +11472,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11314,7 +11493,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11324,7 +11503,7 @@
},
{
"args": [
- "request_with_payload"
+ "request_with_flags"
],
"ci_platforms": [
"windows",
@@ -11335,7 +11514,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11345,7 +11524,7 @@
},
{
"args": [
- "server_finishes_request"
+ "request_with_payload"
],
"ci_platforms": [
"windows",
@@ -11356,7 +11535,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11366,7 +11545,7 @@
},
{
"args": [
- "shutdown_finishes_calls"
+ "server_finishes_request"
],
"ci_platforms": [
"windows",
@@ -11377,7 +11556,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11387,7 +11566,7 @@
},
{
"args": [
- "shutdown_finishes_tags"
+ "shutdown_finishes_calls"
],
"ci_platforms": [
"windows",
@@ -11398,7 +11577,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11408,18 +11587,18 @@
},
{
"args": [
- "simple_delayed_request"
+ "shutdown_finishes_tags"
],
"ci_platforms": [
"windows",
"linux",
"posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11440,7 +11619,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11461,7 +11640,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11482,7 +11661,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11503,7 +11682,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11524,7 +11703,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11545,7 +11724,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11566,7 +11745,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11587,7 +11766,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11608,7 +11787,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11629,7 +11808,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11650,7 +11829,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11671,7 +11850,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11692,7 +11871,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11713,7 +11892,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11734,7 +11913,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11755,7 +11934,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11776,7 +11955,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11797,7 +11976,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11818,7 +11997,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11839,7 +12018,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11860,7 +12039,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11881,7 +12060,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11902,7 +12081,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11923,7 +12102,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11944,7 +12123,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11965,7 +12144,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11986,7 +12165,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -12007,7 +12186,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -12028,7 +12207,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -12049,7 +12228,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -12070,7 +12249,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -12091,7 +12270,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -12112,7 +12291,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -12133,7 +12312,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -12154,7 +12333,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -12169,13 +12348,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12190,13 +12370,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12211,13 +12392,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12232,13 +12414,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12253,13 +12436,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12274,13 +12458,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12295,13 +12480,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12316,13 +12502,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12337,13 +12524,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12358,13 +12546,80 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "connectivity"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_ssl_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "default_host"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_ssl_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "disappearing_server"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12379,13 +12634,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12400,13 +12656,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12421,13 +12678,36 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "hpack_size"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12442,13 +12722,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12463,13 +12744,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12484,13 +12766,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12505,13 +12788,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12526,13 +12810,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12547,13 +12832,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12568,13 +12854,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12589,13 +12876,36 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "ping"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12610,13 +12920,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12631,13 +12942,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12652,13 +12964,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12673,13 +12986,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12694,13 +13008,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12715,13 +13030,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12736,13 +13052,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12752,18 +13069,19 @@
},
{
"args": [
- "simple_metadata"
+ "simple_delayed_request"
],
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12773,18 +13091,19 @@
},
{
"args": [
- "simple_request"
+ "simple_metadata"
],
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12794,18 +13113,19 @@
},
{
"args": [
- "trailing_metadata"
+ "simple_request"
],
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12815,18 +13135,19 @@
},
{
"args": [
- "bad_hostname"
+ "trailing_metadata"
],
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12836,7 +13157,7 @@
},
{
"args": [
- "binary_metadata"
+ "bad_hostname"
],
"ci_platforms": [
"windows",
@@ -12847,7 +13168,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12857,7 +13178,7 @@
},
{
"args": [
- "call_creds"
+ "binary_metadata"
],
"ci_platforms": [
"windows",
@@ -12868,7 +13189,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12878,18 +13199,18 @@
},
{
"args": [
- "cancel_after_accept"
+ "call_creds"
],
"ci_platforms": [
"windows",
"linux",
"posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12899,7 +13220,7 @@
},
{
"args": [
- "cancel_after_client_done"
+ "cancel_after_accept"
],
"ci_platforms": [
"windows",
@@ -12910,7 +13231,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12920,7 +13241,7 @@
},
{
"args": [
- "cancel_after_invoke"
+ "cancel_after_client_done"
],
"ci_platforms": [
"windows",
@@ -12931,7 +13252,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12941,7 +13262,7 @@
},
{
"args": [
- "cancel_before_invoke"
+ "cancel_after_invoke"
],
"ci_platforms": [
"windows",
@@ -12952,7 +13273,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12962,7 +13283,7 @@
},
{
"args": [
- "cancel_in_a_vacuum"
+ "cancel_before_invoke"
],
"ci_platforms": [
"windows",
@@ -12973,7 +13294,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12983,7 +13304,7 @@
},
{
"args": [
- "cancel_with_status"
+ "cancel_in_a_vacuum"
],
"ci_platforms": [
"windows",
@@ -12994,7 +13315,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13004,7 +13325,7 @@
},
{
"args": [
- "compressed_payload"
+ "cancel_with_status"
],
"ci_platforms": [
"windows",
@@ -13015,7 +13336,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13025,7 +13346,7 @@
},
{
"args": [
- "empty_batch"
+ "default_host"
],
"ci_platforms": [
"windows",
@@ -13036,7 +13357,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13046,18 +13367,18 @@
},
{
"args": [
- "graceful_server_shutdown"
+ "disappearing_server"
],
"ci_platforms": [
"windows",
"linux",
"posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13067,7 +13388,7 @@
},
{
"args": [
- "high_initial_seqno"
+ "empty_batch"
],
"ci_platforms": [
"windows",
@@ -13078,7 +13399,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13088,18 +13409,18 @@
},
{
"args": [
- "hpack_size"
+ "graceful_server_shutdown"
],
"ci_platforms": [
"windows",
"linux",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13109,7 +13430,7 @@
},
{
"args": [
- "idempotent_request"
+ "high_initial_seqno"
],
"ci_platforms": [
"windows",
@@ -13120,7 +13441,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13130,7 +13451,7 @@
},
{
"args": [
- "invoke_large_request"
+ "idempotent_request"
],
"ci_platforms": [
"windows",
@@ -13141,7 +13462,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13151,7 +13472,7 @@
},
{
"args": [
- "large_metadata"
+ "invoke_large_request"
],
"ci_platforms": [
"windows",
@@ -13162,7 +13483,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13172,7 +13493,7 @@
},
{
"args": [
- "max_concurrent_streams"
+ "large_metadata"
],
"ci_platforms": [
"windows",
@@ -13183,7 +13504,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13204,7 +13525,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13225,7 +13546,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13246,7 +13567,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13267,7 +13588,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13288,7 +13609,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13309,7 +13630,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13319,7 +13640,7 @@
},
{
"args": [
- "request_with_flags"
+ "request_with_payload"
],
"ci_platforms": [
"windows",
@@ -13330,7 +13651,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13340,7 +13661,7 @@
},
{
"args": [
- "request_with_payload"
+ "server_finishes_request"
],
"ci_platforms": [
"windows",
@@ -13351,7 +13672,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13361,7 +13682,7 @@
},
{
"args": [
- "server_finishes_request"
+ "shutdown_finishes_calls"
],
"ci_platforms": [
"windows",
@@ -13372,7 +13693,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13382,7 +13703,7 @@
},
{
"args": [
- "shutdown_finishes_calls"
+ "shutdown_finishes_tags"
],
"ci_platforms": [
"windows",
@@ -13393,7 +13714,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13403,18 +13724,18 @@
},
{
"args": [
- "shutdown_finishes_tags"
+ "simple_delayed_request"
],
"ci_platforms": [
"windows",
"linux",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13435,7 +13756,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13456,7 +13777,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13477,7 +13798,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13490,7 +13811,6 @@
"bad_hostname"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13499,9 +13819,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13512,7 +13831,6 @@
"binary_metadata"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13521,9 +13839,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13534,7 +13851,6 @@
"call_creds"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13543,9 +13859,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13556,7 +13871,6 @@
"cancel_after_accept"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13565,9 +13879,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13578,7 +13891,6 @@
"cancel_after_client_done"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13587,9 +13899,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13600,7 +13911,6 @@
"cancel_after_invoke"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13609,9 +13919,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13622,7 +13931,6 @@
"cancel_before_invoke"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13631,9 +13939,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13644,7 +13951,6 @@
"cancel_in_a_vacuum"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13653,9 +13959,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13666,7 +13971,6 @@
"cancel_with_status"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13675,9 +13979,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13688,7 +13991,6 @@
"compressed_payload"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13697,9 +13999,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13710,7 +14011,6 @@
"connectivity"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13719,31 +14019,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
- "platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ]
- },
- {
- "args": [
- "default_host"
- ],
- "ci_platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ],
- "cpu_cost": 1.0,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13754,7 +14031,6 @@
"disappearing_server"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13763,9 +14039,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13776,7 +14051,6 @@
"empty_batch"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13785,9 +14059,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13798,7 +14071,6 @@
"graceful_server_shutdown"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13807,9 +14079,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13820,7 +14091,6 @@
"high_initial_seqno"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13829,9 +14099,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13842,7 +14111,6 @@
"hpack_size"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13851,9 +14119,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13864,7 +14131,6 @@
"idempotent_request"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13873,9 +14139,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13886,7 +14151,6 @@
"invoke_large_request"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13895,9 +14159,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13908,7 +14171,6 @@
"large_metadata"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13917,9 +14179,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13930,7 +14191,6 @@
"max_concurrent_streams"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13939,9 +14199,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13952,7 +14211,6 @@
"max_message_length"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13961,9 +14219,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13974,7 +14231,6 @@
"negative_deadline"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13983,9 +14239,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13996,7 +14251,6 @@
"no_op"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14005,9 +14259,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14018,7 +14271,6 @@
"payload"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14027,9 +14279,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14040,7 +14291,6 @@
"ping"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14049,9 +14299,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14062,7 +14311,6 @@
"ping_pong_streaming"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14071,9 +14319,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14084,7 +14331,6 @@
"registered_call"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14093,9 +14339,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14106,7 +14351,6 @@
"request_with_flags"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14115,9 +14359,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14128,7 +14371,6 @@
"request_with_payload"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14137,9 +14379,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14150,7 +14391,6 @@
"server_finishes_request"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14159,9 +14399,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14172,7 +14411,6 @@
"shutdown_finishes_calls"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14181,9 +14419,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14194,7 +14431,6 @@
"shutdown_finishes_tags"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14203,9 +14439,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14216,7 +14451,6 @@
"simple_delayed_request"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14225,9 +14459,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14238,7 +14471,6 @@
"simple_metadata"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14247,9 +14479,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14260,7 +14491,6 @@
"simple_request"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14269,9 +14499,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14282,7 +14511,6 @@
"trailing_metadata"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14291,9 +14519,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14304,15 +14531,21 @@
"bad_hostname"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14320,31 +14553,21 @@
"binary_metadata"
],
"ci_platforms": [
- "linux"
- ],
- "cpu_cost": 1.0,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_ssl+poll_test",
- "platforms": [
- "linux"
- ]
- },
- {
- "args": [
- "call_creds"
- ],
- "ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14352,15 +14575,21 @@
"cancel_after_accept"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14368,15 +14597,21 @@
"cancel_after_client_done"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14384,15 +14619,21 @@
"cancel_after_invoke"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14400,15 +14641,21 @@
"cancel_before_invoke"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14416,15 +14663,21 @@
"cancel_in_a_vacuum"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14432,15 +14685,21 @@
"cancel_with_status"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14448,15 +14707,21 @@
"compressed_payload"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14464,15 +14729,21 @@
"connectivity"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14480,15 +14751,21 @@
"default_host"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14496,15 +14773,21 @@
"disappearing_server"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14512,15 +14795,21 @@
"empty_batch"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14528,15 +14817,21 @@
"graceful_server_shutdown"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14544,15 +14839,21 @@
"high_initial_seqno"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14560,15 +14861,21 @@
"hpack_size"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14576,15 +14883,21 @@
"idempotent_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14592,15 +14905,21 @@
"invoke_large_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14608,15 +14927,21 @@
"large_metadata"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14624,15 +14949,21 @@
"max_concurrent_streams"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14640,15 +14971,21 @@
"max_message_length"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14656,15 +14993,21 @@
"negative_deadline"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14672,15 +15015,21 @@
"no_op"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14688,15 +15037,21 @@
"payload"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14704,15 +15059,21 @@
"ping"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14720,15 +15081,21 @@
"ping_pong_streaming"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14736,15 +15103,21 @@
"registered_call"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14752,15 +15125,21 @@
"request_with_flags"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14768,15 +15147,21 @@
"request_with_payload"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14784,15 +15169,21 @@
"server_finishes_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14800,15 +15191,21 @@
"shutdown_finishes_calls"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14816,15 +15213,21 @@
"shutdown_finishes_tags"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14832,15 +15235,21 @@
"simple_delayed_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14848,15 +15257,21 @@
"simple_metadata"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14864,15 +15279,21 @@
"simple_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14880,15 +15301,21 @@
"trailing_metadata"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14898,13 +15325,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14919,13 +15347,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14935,18 +15364,19 @@
},
{
"args": [
- "call_creds"
+ "cancel_after_accept"
],
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14956,18 +15386,19 @@
},
{
"args": [
- "cancel_after_accept"
+ "cancel_after_client_done"
],
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14977,18 +15408,19 @@
},
{
"args": [
- "cancel_after_client_done"
+ "cancel_after_invoke"
],
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14998,18 +15430,19 @@
},
{
"args": [
- "cancel_after_invoke"
+ "cancel_before_invoke"
],
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15019,18 +15452,19 @@
},
{
"args": [
- "cancel_before_invoke"
+ "cancel_in_a_vacuum"
],
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15040,18 +15474,19 @@
},
{
"args": [
- "cancel_in_a_vacuum"
+ "cancel_with_status"
],
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15061,18 +15496,41 @@
},
{
"args": [
- "cancel_with_status"
+ "compressed_payload"
],
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "connectivity"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15087,13 +15545,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15108,13 +15567,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15129,13 +15589,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15150,13 +15611,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15171,13 +15633,36 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "hpack_size"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15192,13 +15677,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15213,13 +15699,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15234,13 +15721,36 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "max_concurrent_streams"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15255,13 +15765,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15276,13 +15787,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15297,13 +15809,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15318,13 +15831,36 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "ping"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15339,13 +15875,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15360,13 +15897,36 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "request_with_flags"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15381,13 +15941,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15402,13 +15963,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15423,13 +15985,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15444,13 +16007,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15465,13 +16029,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15486,13 +16051,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15507,13 +16073,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15528,13 +16095,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15547,6 +16115,7 @@
"bad_hostname"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15555,8 +16124,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15567,6 +16137,7 @@
"binary_metadata"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15575,8 +16146,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15584,19 +16156,21 @@
},
{
"args": [
- "call_creds"
+ "cancel_after_accept"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15604,9 +16178,10 @@
},
{
"args": [
- "cancel_after_accept"
+ "cancel_after_client_done"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15615,8 +16190,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15624,9 +16200,10 @@
},
{
"args": [
- "cancel_after_client_done"
+ "cancel_after_invoke"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15635,8 +16212,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15644,9 +16222,10 @@
},
{
"args": [
- "cancel_after_invoke"
+ "cancel_before_invoke"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15655,8 +16234,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15664,9 +16244,10 @@
},
{
"args": [
- "cancel_before_invoke"
+ "cancel_in_a_vacuum"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15675,8 +16256,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15684,9 +16266,10 @@
},
{
"args": [
- "cancel_in_a_vacuum"
+ "cancel_with_status"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15695,8 +16278,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15704,9 +16288,10 @@
},
{
"args": [
- "cancel_with_status"
+ "compressed_payload"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15715,8 +16300,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15724,9 +16310,10 @@
},
{
"args": [
- "compressed_payload"
+ "connectivity"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15735,8 +16322,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15744,19 +16332,21 @@
},
{
"args": [
- "connectivity"
+ "default_host"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15767,6 +16357,7 @@
"disappearing_server"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15775,8 +16366,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15787,6 +16379,7 @@
"empty_batch"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15795,8 +16388,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15807,6 +16401,7 @@
"graceful_server_shutdown"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15815,8 +16410,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15827,6 +16423,7 @@
"high_initial_seqno"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15835,8 +16432,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15847,6 +16445,7 @@
"hpack_size"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15855,8 +16454,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15867,6 +16467,7 @@
"idempotent_request"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15875,8 +16476,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15887,6 +16489,7 @@
"invoke_large_request"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15895,8 +16498,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15907,6 +16511,7 @@
"large_metadata"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15915,8 +16520,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15927,6 +16533,7 @@
"max_concurrent_streams"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15935,8 +16542,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15947,6 +16555,7 @@
"max_message_length"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15955,8 +16564,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15967,6 +16577,7 @@
"negative_deadline"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15975,8 +16586,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15987,6 +16599,7 @@
"no_op"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15995,8 +16608,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16007,6 +16621,7 @@
"payload"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16015,8 +16630,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16027,6 +16643,7 @@
"ping"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16035,8 +16652,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16047,6 +16665,7 @@
"ping_pong_streaming"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16055,8 +16674,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16067,6 +16687,7 @@
"registered_call"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16075,8 +16696,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16087,6 +16709,7 @@
"request_with_flags"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16095,8 +16718,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16107,6 +16731,7 @@
"request_with_payload"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16115,8 +16740,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16127,6 +16753,7 @@
"server_finishes_request"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16135,8 +16762,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16147,6 +16775,7 @@
"shutdown_finishes_calls"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16155,8 +16784,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16167,6 +16797,7 @@
"shutdown_finishes_tags"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16175,8 +16806,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16187,6 +16819,7 @@
"simple_delayed_request"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16195,8 +16828,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16207,6 +16841,7 @@
"simple_metadata"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16215,8 +16850,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16227,6 +16863,7 @@
"simple_request"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16235,8 +16872,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16247,6 +16885,7 @@
"trailing_metadata"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16255,8 +16894,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -16273,7 +16913,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16289,30 +16929,30 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
},
{
"args": [
- "call_creds"
+ "cancel_after_accept"
],
"ci_platforms": [
"linux"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
},
{
"args": [
- "cancel_after_accept"
+ "cancel_after_client_done"
],
"ci_platforms": [
"linux"
@@ -16321,14 +16961,14 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
},
{
"args": [
- "cancel_after_client_done"
+ "cancel_after_invoke"
],
"ci_platforms": [
"linux"
@@ -16337,14 +16977,14 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
},
{
"args": [
- "cancel_after_invoke"
+ "cancel_before_invoke"
],
"ci_platforms": [
"linux"
@@ -16353,14 +16993,14 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
},
{
"args": [
- "cancel_before_invoke"
+ "cancel_in_a_vacuum"
],
"ci_platforms": [
"linux"
@@ -16369,14 +17009,14 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
},
{
"args": [
- "cancel_in_a_vacuum"
+ "cancel_with_status"
],
"ci_platforms": [
"linux"
@@ -16385,14 +17025,14 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
},
{
"args": [
- "cancel_with_status"
+ "compressed_payload"
],
"ci_platforms": [
"linux"
@@ -16401,14 +17041,14 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
},
{
"args": [
- "compressed_payload"
+ "connectivity"
],
"ci_platforms": [
"linux"
@@ -16417,23 +17057,23 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
},
{
"args": [
- "connectivity"
+ "default_host"
],
"ci_platforms": [
"linux"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16449,7 +17089,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16465,7 +17105,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16481,7 +17121,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16497,7 +17137,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16513,7 +17153,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16529,7 +17169,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16545,7 +17185,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16561,7 +17201,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16577,7 +17217,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16593,7 +17233,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16609,7 +17249,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16625,7 +17265,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16641,7 +17281,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16657,7 +17297,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16673,7 +17313,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16689,7 +17329,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16705,7 +17345,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16721,7 +17361,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16737,7 +17377,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16753,7 +17393,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16769,7 +17409,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16785,7 +17425,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16801,7 +17441,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16817,7 +17457,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16833,7 +17473,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16852,7 +17492,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16874,7 +17514,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16896,7 +17536,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16918,7 +17558,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16940,7 +17580,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16962,7 +17602,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16984,7 +17624,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17006,7 +17646,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17028,7 +17668,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17050,7 +17690,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17072,7 +17712,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17094,7 +17734,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17116,7 +17756,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17138,7 +17778,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17160,29 +17800,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
- "platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ]
- },
- {
- "args": [
- "hpack_size"
- ],
- "ci_platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ],
- "cpu_cost": 1.0,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17204,7 +17822,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17226,7 +17844,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17248,7 +17866,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17270,7 +17888,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17292,7 +17910,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17314,7 +17932,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17336,7 +17954,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17358,7 +17976,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17380,7 +17998,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17402,7 +18020,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17424,7 +18042,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17446,7 +18064,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17468,7 +18086,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17490,7 +18108,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17512,7 +18130,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17534,7 +18152,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17556,7 +18174,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17578,7 +18196,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17600,7 +18218,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17622,7 +18240,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17637,14 +18255,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17659,14 +18276,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17681,14 +18297,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17703,14 +18318,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17725,14 +18339,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17747,14 +18360,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17769,14 +18381,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17791,14 +18402,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17808,19 +18418,39 @@
},
{
"args": [
- "compressed_payload"
+ "default_host"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "disappearing_server"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17830,19 +18460,39 @@
},
{
"args": [
- "connectivity"
+ "empty_batch"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "graceful_server_shutdown"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17852,19 +18502,39 @@
},
{
"args": [
- "default_host"
+ "high_initial_seqno"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "idempotent_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17874,19 +18544,39 @@
},
{
"args": [
- "disappearing_server"
+ "invoke_large_request"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "large_metadata"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17896,19 +18586,39 @@
},
{
"args": [
- "empty_batch"
+ "max_message_length"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "negative_deadline"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17918,19 +18628,39 @@
},
{
"args": [
- "graceful_server_shutdown"
+ "no_op"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "payload"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17940,19 +18670,39 @@
},
{
"args": [
- "high_initial_seqno"
+ "ping_pong_streaming"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "registered_call"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17962,19 +18712,39 @@
},
{
"args": [
- "hpack_size"
+ "request_with_payload"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "server_finishes_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17984,19 +18754,39 @@
},
{
"args": [
- "idempotent_request"
+ "shutdown_finishes_calls"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "shutdown_finishes_tags"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18006,19 +18796,39 @@
},
{
"args": [
- "invoke_large_request"
+ "simple_delayed_request"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "simple_metadata"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18028,19 +18838,39 @@
},
{
"args": [
- "large_metadata"
+ "simple_request"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "trailing_metadata"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18050,19 +18880,39 @@
},
{
"args": [
- "max_concurrent_streams"
+ "bad_hostname"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "binary_metadata"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18072,19 +18922,39 @@
},
{
"args": [
- "max_message_length"
+ "cancel_after_accept"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "cancel_after_client_done"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18094,19 +18964,39 @@
},
{
"args": [
- "negative_deadline"
+ "cancel_after_invoke"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "cancel_before_invoke"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18116,19 +19006,39 @@
},
{
"args": [
- "no_op"
+ "cancel_in_a_vacuum"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "cancel_with_status"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18138,19 +19048,60 @@
},
{
"args": [
- "payload"
+ "compressed_payload"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "empty_batch"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "graceful_server_shutdown"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18160,19 +19111,39 @@
},
{
"args": [
- "ping"
+ "high_initial_seqno"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "hpack_size"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18182,19 +19153,39 @@
},
{
"args": [
- "ping_pong_streaming"
+ "idempotent_request"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "invoke_large_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18204,19 +19195,39 @@
},
{
"args": [
- "registered_call"
+ "large_metadata"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "max_concurrent_streams"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18226,19 +19237,39 @@
},
{
"args": [
- "request_with_flags"
+ "max_message_length"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "negative_deadline"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18248,19 +19279,18 @@
},
{
"args": [
- "request_with_payload"
+ "no_op"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18270,19 +19300,39 @@
},
{
"args": [
- "server_finishes_request"
+ "payload"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "ping_pong_streaming"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18292,19 +19342,39 @@
},
{
"args": [
- "shutdown_finishes_calls"
+ "registered_call"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "request_with_flags"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18314,19 +19384,39 @@
},
{
"args": [
- "shutdown_finishes_tags"
+ "request_with_payload"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "server_finishes_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18336,19 +19426,39 @@
},
{
"args": [
- "simple_delayed_request"
+ "shutdown_finishes_calls"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "shutdown_finishes_tags"
],
- "cpu_cost": 0.1,
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18363,14 +19473,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18385,14 +19494,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18407,14 +19515,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18429,14 +19536,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18451,14 +19557,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18473,14 +19578,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18495,14 +19599,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18517,14 +19620,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18539,14 +19641,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18561,14 +19662,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18583,14 +19683,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18605,14 +19704,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18622,19 +19720,39 @@
},
{
"args": [
- "connectivity"
+ "empty_batch"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "graceful_server_shutdown"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18644,19 +19762,39 @@
},
{
"args": [
- "default_host"
+ "high_initial_seqno"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "idempotent_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18666,19 +19804,39 @@
},
{
"args": [
- "disappearing_server"
+ "invoke_large_request"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "large_metadata"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18688,19 +19846,60 @@
},
{
"args": [
- "empty_batch"
+ "max_concurrent_streams"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "max_message_length"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "negative_deadline"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18710,19 +19909,39 @@
},
{
"args": [
- "graceful_server_shutdown"
+ "no_op"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "payload"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18732,19 +19951,39 @@
},
{
"args": [
- "high_initial_seqno"
+ "ping_pong_streaming"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "registered_call"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18754,19 +19993,39 @@
},
{
"args": [
- "hpack_size"
+ "request_with_flags"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "request_with_payload"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18776,19 +20035,39 @@
},
{
"args": [
- "idempotent_request"
+ "server_finishes_request"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "shutdown_finishes_calls"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18798,19 +20077,39 @@
},
{
"args": [
- "invoke_large_request"
+ "shutdown_finishes_tags"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "simple_metadata"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18820,19 +20119,39 @@
},
{
"args": [
- "large_metadata"
+ "simple_request"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "trailing_metadata"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18842,19 +20161,39 @@
},
{
"args": [
- "max_concurrent_streams"
+ "bad_hostname"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "binary_metadata"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18864,19 +20203,39 @@
},
{
"args": [
- "max_message_length"
+ "cancel_after_accept"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "cancel_after_client_done"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18886,19 +20245,39 @@
},
{
"args": [
- "negative_deadline"
+ "cancel_after_invoke"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "cancel_before_invoke"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18908,19 +20287,39 @@
},
{
"args": [
- "no_op"
+ "cancel_in_a_vacuum"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "cancel_with_status"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18930,19 +20329,60 @@
},
{
"args": [
- "payload"
+ "compressed_payload"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "empty_batch"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "graceful_server_shutdown"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18952,19 +20392,39 @@
},
{
"args": [
- "ping"
+ "high_initial_seqno"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "hpack_size"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18974,19 +20434,39 @@
},
{
"args": [
- "ping_pong_streaming"
+ "idempotent_request"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "invoke_large_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18996,19 +20476,39 @@
},
{
"args": [
- "registered_call"
+ "large_metadata"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "max_concurrent_streams"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -19018,19 +20518,39 @@
},
{
"args": [
- "request_with_flags"
+ "max_message_length"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "negative_deadline"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -19040,19 +20560,18 @@
},
{
"args": [
- "request_with_payload"
+ "no_op"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -19062,19 +20581,39 @@
},
{
"args": [
- "server_finishes_request"
+ "payload"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "ping_pong_streaming"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -19084,19 +20623,39 @@
},
{
"args": [
- "shutdown_finishes_calls"
+ "registered_call"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "request_with_flags"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -19106,19 +20665,39 @@
},
{
"args": [
- "shutdown_finishes_tags"
+ "request_with_payload"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "server_finishes_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -19128,19 +20707,39 @@
},
{
"args": [
- "simple_delayed_request"
+ "shutdown_finishes_calls"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "shutdown_finishes_tags"
],
- "cpu_cost": 0.1,
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -19155,14 +20754,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -19177,14 +20775,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -19199,14 +20796,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -19219,15 +20815,19 @@
"bad_hostname"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19235,15 +20835,19 @@
"binary_metadata"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19251,15 +20855,19 @@
"cancel_after_accept"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19267,15 +20875,19 @@
"cancel_after_client_done"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19283,15 +20895,19 @@
"cancel_after_invoke"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19299,15 +20915,19 @@
"cancel_before_invoke"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19315,15 +20935,19 @@
"cancel_in_a_vacuum"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19331,15 +20955,19 @@
"cancel_with_status"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19347,15 +20975,19 @@
"compressed_payload"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19363,31 +20995,19 @@
"connectivity"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
- "platforms": [
- "linux"
- ]
- },
- {
- "args": [
- "default_host"
- ],
- "ci_platforms": [
- "linux"
- ],
- "cpu_cost": 1.0,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19395,15 +21015,19 @@
"disappearing_server"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19411,15 +21035,19 @@
"empty_batch"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19427,15 +21055,19 @@
"graceful_server_shutdown"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19443,15 +21075,19 @@
"high_initial_seqno"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19459,15 +21095,19 @@
"hpack_size"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19475,15 +21115,19 @@
"idempotent_request"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19491,15 +21135,19 @@
"invoke_large_request"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19507,15 +21155,19 @@
"large_metadata"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19523,15 +21175,19 @@
"max_concurrent_streams"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19539,15 +21195,19 @@
"max_message_length"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19555,15 +21215,19 @@
"negative_deadline"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19571,15 +21235,19 @@
"no_op"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19587,15 +21255,19 @@
"payload"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19603,15 +21275,19 @@
"ping"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19619,15 +21295,19 @@
"ping_pong_streaming"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19635,15 +21315,19 @@
"registered_call"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19651,15 +21335,19 @@
"request_with_flags"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19667,15 +21355,19 @@
"request_with_payload"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19683,15 +21375,19 @@
"server_finishes_request"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19699,15 +21395,19 @@
"shutdown_finishes_calls"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19715,15 +21415,19 @@
"shutdown_finishes_tags"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19731,15 +21435,19 @@
"simple_delayed_request"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19747,15 +21455,19 @@
"simple_metadata"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19763,15 +21475,19 @@
"simple_request"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19779,5759 +21495,17245 @@
"trailing_metadata"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
"args": [
- "bad_hostname"
+ "test/core/transport/chttp2/hpack_parser_corpus/0141fcddc9807ee093313b2256f1306fbbdc6cda"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "binary_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/0255050a9ccb25f46d6c1bf6a5a8a4c0c7635599"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_after_accept"
+ "test/core/transport/chttp2/hpack_parser_corpus/0320a995a8c76c64c8a0e0297f632b76d9bc92d6"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_after_client_done"
+ "test/core/transport/chttp2/hpack_parser_corpus/042091aeac4cc255506b96fa11c7354e699fde76"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_after_invoke"
+ "test/core/transport/chttp2/hpack_parser_corpus/0696e7bf7837d98de01c915d3c9d80e5d21b30d2"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_before_invoke"
+ "test/core/transport/chttp2/hpack_parser_corpus/06995c2f3f01c7ec50547415dc324c64030b7a3e"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_in_a_vacuum"
+ "test/core/transport/chttp2/hpack_parser_corpus/06f7ce769fe07804fc842462d4be8c1aa2ba82c2"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_with_status"
+ "test/core/transport/chttp2/hpack_parser_corpus/0781b055c85ab8fbd0a3d0080a32e394af8761c4"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "compressed_payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/080e1f19e6061c5bcac31add2095f87f6ce46129"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "connectivity"
+ "test/core/transport/chttp2/hpack_parser_corpus/0828169ba82152a8907f1001e3d98804397d4610"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "default_host"
+ "test/core/transport/chttp2/hpack_parser_corpus/08ffc4a4160e9fe6f322c28870a89a41fd9c37d7"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "disappearing_server"
+ "test/core/transport/chttp2/hpack_parser_corpus/090a7a758898a6e7c9108b7e8a1cb9cda383e707"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "empty_batch"
+ "test/core/transport/chttp2/hpack_parser_corpus/0940663729501b750a18542e1041cc26385c6148"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "graceful_server_shutdown"
+ "test/core/transport/chttp2/hpack_parser_corpus/0a10bd140c6c5fb109a0816ca061739688a6db9a"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "high_initial_seqno"
+ "test/core/transport/chttp2/hpack_parser_corpus/0a4d3fda02cdcb7adad1daa80d65780c9c8d1464"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "hpack_size"
+ "test/core/transport/chttp2/hpack_parser_corpus/0ad812832efa33e086874fbf3496664d3f1b4dbe"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "idempotent_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/0c9996d4fef87bacd7a001e99a515b3ba3d5788f"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "invoke_large_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/0d6210208831fe55951af56cdeee3d54a91a5361"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "large_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/0d784965b2262df7ed7a1eb57b92a718cc76bde8"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "max_concurrent_streams"
+ "test/core/transport/chttp2/hpack_parser_corpus/0dc9e41eedf35ccedf4e2b0d230ead7c4d72fdb2"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "max_message_length"
+ "test/core/transport/chttp2/hpack_parser_corpus/0dd470c8939ed535de6b36f7b7bfb68aeace493e"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "negative_deadline"
+ "test/core/transport/chttp2/hpack_parser_corpus/0e61e471fa6d3405daef4276ee00cf5fc189f378"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "no_op"
+ "test/core/transport/chttp2/hpack_parser_corpus/0e9196f951874edbb5ed098739ea5c8b6c0751c2"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/11442d93a554b9e7f9ab02782bbf9443bf6e1ddc"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "ping"
+ "test/core/transport/chttp2/hpack_parser_corpus/11833b795d04eda5a3af56ef7b3c3a26a8ee3444"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "ping_pong_streaming"
+ "test/core/transport/chttp2/hpack_parser_corpus/141272316382b0f3e9ec841c735b84e7aa517c3e"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "registered_call"
+ "test/core/transport/chttp2/hpack_parser_corpus/15ae43369798e48c396dfe7d53a21878b96e66c8"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "request_with_flags"
+ "test/core/transport/chttp2/hpack_parser_corpus/166bf1843c229d34a2880d234dd166c27bdc11fd"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "request_with_payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/179e8ac763b4051a953a38b6b3b1f1e1f6cc6c9e"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "server_finishes_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/17faf0ba8a491a835d35977a9007b90ab7d30d2a"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "shutdown_finishes_calls"
+ "test/core/transport/chttp2/hpack_parser_corpus/188f6cf2470e95b228341de305ef839b27f01a5c"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "shutdown_finishes_tags"
+ "test/core/transport/chttp2/hpack_parser_corpus/1ab3e52adace335d02e2b5130eb4f7c918add7fd"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "simple_delayed_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/1b5150514364e2c17f5a4edac1b7af99b936f55a"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "simple_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/1e8befb98cbaba059d6771abd1680e19484e7723"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "simple_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/1e9b962969c359bc2ff766704c8ca8e25f5eccfc"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "trailing_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/1f80af104acf41b912bf4a48fb938267e3718719"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "bad_hostname"
+ "test/core/transport/chttp2/hpack_parser_corpus/1fcc4afd6f48e83d61ea74970df3ca9dcd8ec291"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "binary_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/213a734ccdb813b18ad9f2dd99b7f9967ee1460b"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_after_accept"
+ "test/core/transport/chttp2/hpack_parser_corpus/2151945f43991c27e123c45dc72b93752a47e65f"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_after_client_done"
+ "test/core/transport/chttp2/hpack_parser_corpus/21545d998c27a5a1572a89a552937752432b1c14"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_after_invoke"
+ "test/core/transport/chttp2/hpack_parser_corpus/23c7443fa1ab713e7c34ec50222b1b8cceaedc65"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_before_invoke"
+ "test/core/transport/chttp2/hpack_parser_corpus/2445bb2c6779712dc9e14c01fecb7103f8732858"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_in_a_vacuum"
+ "test/core/transport/chttp2/hpack_parser_corpus/244b0a20500e31d3c538418800db816b07f4d210"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_with_status"
+ "test/core/transport/chttp2/hpack_parser_corpus/2461b9fa6b5bc4b6424dec5b9a18d4ec7c309112"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "compressed_payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/24ec2f3e17d3850564788f3fed17a5c586c44658"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "connectivity"
+ "test/core/transport/chttp2/hpack_parser_corpus/2537b8d6b902b8dfc6e17f194cf7d05ddecf74cf"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "default_host"
+ "test/core/transport/chttp2/hpack_parser_corpus/253ad01acea4b7038edc3f2a8c4a0c0f5c4dcd05"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "disappearing_server"
+ "test/core/transport/chttp2/hpack_parser_corpus/256d0bbdbed22f5867a6f503bf082011e61ee12b"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "empty_batch"
+ "test/core/transport/chttp2/hpack_parser_corpus/26f0e88adbd8f8cdf778131a35b33ecf8711fa49"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "graceful_server_shutdown"
+ "test/core/transport/chttp2/hpack_parser_corpus/2e5dd8fb9d2a31fad9d681eda697d085b647b57c"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "high_initial_seqno"
+ "test/core/transport/chttp2/hpack_parser_corpus/2fdfd2abf30c636ec8c841f1ac26594e25664f0f"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "hpack_size"
+ "test/core/transport/chttp2/hpack_parser_corpus/311dac5092e36134d3490f98aa4207425e0ee941"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "idempotent_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/320fe6224a5b691c0425e34b6b14e8c6fe9f9620"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "invoke_large_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/3255f1c7441a7150dc3c33022bfbe8c956c7b7b1"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "large_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/33bc9db104eb72891fb096f34cbac191b3f9918d"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "max_concurrent_streams"
+ "test/core/transport/chttp2/hpack_parser_corpus/342ff1db70a7616b4ef76c03a42802c6702c18cb"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "max_message_length"
+ "test/core/transport/chttp2/hpack_parser_corpus/344c011df992ccfc0ec682c14a1cb2d7959998c7"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "negative_deadline"
+ "test/core/transport/chttp2/hpack_parser_corpus/35775efb9d0d68fa07987b9a84934389b528e436"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "no_op"
+ "test/core/transport/chttp2/hpack_parser_corpus/3650168db6fe115fb1e73eed4b76cd224d977d01"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/38228bf98cdb50fd3fa830ba5a9d4c7399063dff"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "ping"
+ "test/core/transport/chttp2/hpack_parser_corpus/38717bee901151b22a10beb12c6623ccc844d3c2"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "ping_pong_streaming"
+ "test/core/transport/chttp2/hpack_parser_corpus/3a4bb427a85bdc5bf66ac71db073c99e0dc9f881"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "registered_call"
+ "test/core/transport/chttp2/hpack_parser_corpus/3ab48621d9b8f075369099a8ec7517bd23fd6e70"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "request_with_flags"
+ "test/core/transport/chttp2/hpack_parser_corpus/3aec8d9311130dfbb6584fe6e619579c21992b5f"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "request_with_payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/3b14837f22905dcb04f93aed2aa69bf95924fb9d"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "server_finishes_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/3be63c163805927e04fd7f84d96122c48240e601"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "shutdown_finishes_calls"
+ "test/core/transport/chttp2/hpack_parser_corpus/3bf2e349747c0f539181e0d4084a5fe506811a9e"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "shutdown_finishes_tags"
+ "test/core/transport/chttp2/hpack_parser_corpus/3c5af4d73e94d0e8ad5666b6acb340f929031e95"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "simple_delayed_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/3d2b25346a9671d83bd082d170a45eed739bae6b"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "simple_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/3de7b860c3fba2bc55707fd6875dce276f2f249b"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "simple_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/3e2004ff9f40e398e0f41138a25a8b66e3d843d9"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "trailing_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/3f8983e457033cc85997c356935ba9c21460e86b"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "bad_hostname"
+ "test/core/transport/chttp2/hpack_parser_corpus/4105669086d83a20f8d991088553ba08202478cd"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/4180619316eef7912d1cf52ffe85897242e1ae88"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/420291d7139d9246de747739fd98102434a742dd"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "binary_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/4256437fc5897c0cd5d755816e4e68c7be326849"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/42b25a5413c536478a3e63da5adef4250babf2f4"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/42bef44ae751a45c671d9da5b1231d2ac747a48d"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_accept"
+ "test/core/transport/chttp2/hpack_parser_corpus/438c3c9045c3cf7910aceec34f77b47a70ca4abd"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/43af96b4f65ed0ace7236427f2f8833c4835989e"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/44c6119bb91a452d6128ce0ea0d62938800779ea"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_client_done"
+ "test/core/transport/chttp2/hpack_parser_corpus/46d595331689ae01d77aff387747a98ff3480096"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/471a307b81dc37459087d41532741c5c9d7ba836"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/48900b4a5557530922ce45c15ad0d3b0a337520d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_invoke"
+ "test/core/transport/chttp2/hpack_parser_corpus/48bcce2c6487b18706ef0c609ca39c456215bac8"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/49027bbd3f3f3cafa315843c8fe8280f86985273"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/499376c5e291da2f9c25999abf4960fab5a92ec8"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_before_invoke"
+ "test/core/transport/chttp2/hpack_parser_corpus/4a3b7ce0cdf217963a0b692769e5d6f4befe73b8"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/4a3fdb96bc8c80f1992f0f72f963f84856cbade8"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/4aae80e05793d7adb42a7e6e8a5283b677318777"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_in_a_vacuum"
+ "test/core/transport/chttp2/hpack_parser_corpus/4c7a034d3a3b4f29d99caf021a0e9bbb89706c2e"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/4ce8a43fb17a075627160812ad26c25210d8a82d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/5032a75a98cd14d4dab75c1c5e2cd981abb19dcf"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_with_status"
+ "test/core/transport/chttp2/hpack_parser_corpus/50b3f4b6aed97f442496d27f3b4315a18ba76d5f"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/51064b88a98658d48a0da7f1545c2d1293ad9538"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/51752f12d59fadaaa0dc72e6370612b84ee1555b"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "compressed_payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/51eff6fcbfe1a51ceb3f5f2140c01eea89b4313d"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/51f65f681cf3a1218d83ad58642c06deaea86210"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/521809903d36db80b1ccd707f354361f2bf05075"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "connectivity"
+ "test/core/transport/chttp2/hpack_parser_corpus/52fe8f0e1fa270ea16f66c93f2ffab265ce059e8"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/53de87ae94acdc8e58a369459c12a3240f1294fe"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/54a2b3993c3483745f6314c870a038a8e58f97a7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "default_host"
+ "test/core/transport/chttp2/hpack_parser_corpus/55d60c2e5040a38be8ca41de63e137e3fef892a4"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/5653c44a5b520bdf2bdc599b7966f1d7c44950b3"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/5838b5a683229ebb6e6277e2810863e642b8afc2"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "disappearing_server"
+ "test/core/transport/chttp2/hpack_parser_corpus/588d225784891ac88e30ac6eb5651d63fac34083"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/58d51c21a20b6549567a0ab8fee29d162dd3fc5a"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/58f1036d8ff855841ec25b3c33e85a8fec0d94b7"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "empty_batch"
+ "test/core/transport/chttp2/hpack_parser_corpus/5a99df42fb7bbafa2d55714ee235b1c46776b2ad"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/5b42793550699b2c015bed677cfcddc052f73513"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/5b8ca72ba00231c38b19f582127e6a146eba4282"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "graceful_server_shutdown"
+ "test/core/transport/chttp2/hpack_parser_corpus/5baa13dc95da05e7ba02bbe9583ea24517a29a1a"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/5bab61eb53176449e25c2c82f172b82cb13ffb9d"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/5c6f6b6f7f3e7b435f060abb73c20d2b773a7f56"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "high_initial_seqno"
+ "test/core/transport/chttp2/hpack_parser_corpus/5c9fd9cc7100feaeead1e0e45201945a6e76fd85"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/5ff49c9edc7361797a951585f3e180222c8dd95d"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/6129954942e26c2a9ec071b6659675745613cf3c"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "idempotent_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/61fa69b6b51b0ed91914fe48779173f8d26a1d54"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/6362ac61cfb6e964aff78f3cd648475dfd5fd4e9"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/644deba51c79b6ebd470bd4367452941045d112a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "invoke_large_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/64beae98e2276749b133e6368c9e0f19a79eba96"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/64d7add9192301fd878854dc96f9fa9053f03992"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/65566df65e8f55428b6672cc351df414fa8f936c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "large_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/65bb703af35d5afb824cd68c41d7a1aeb3848d35"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/66c537bf59cb3667c037b3517be3d31245c9da8a"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/66f576baeb0c9435a56eb7375dadc5b5d630ed87"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_concurrent_streams"
+ "test/core/transport/chttp2/hpack_parser_corpus/67b4cec5183659aeae0f5bc71b3adf0542a11828"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/68c94721eda2f62481bff9f1d183df70498d0c5b"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/68ee8169a65d58edb9fc1c752ea81dfec383203c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_message_length"
+ "test/core/transport/chttp2/hpack_parser_corpus/6b203d49bbba6ee74def0d35c2266e06ad3c45d9"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/6d580f28d785c0bf87ac351a31a89289449feadb"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/6f231dec759eb2105e09263d53e171de19a92c74"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "negative_deadline"
+ "test/core/transport/chttp2/hpack_parser_corpus/70ff6621a09e4f641538cb1b27e8b382b2f56a94"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/71981b55f27a1eb6274eda247048fa2c597f5004"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/71c2b0bebf7f0e916e4ab7eb36d47ccca2b9101c"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "no_op"
+ "test/core/transport/chttp2/hpack_parser_corpus/74610e278a5b90aa12ce1beaf222c4306b02ed43"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/748ee9817eba56ec9938601a0e380c74bad4563f"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/7727e3eeb2a48c46bf5a678c300ff8a38b8ffe3a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/78176d80c1d74c4b1b820d386ae483ac4d1d92b7"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/789abb571563a6795220046f76b7cf0ade90743c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/78f5ff40e5554aa9c31b45f79a7ae9699f93e7fd"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "ping"
+ "test/core/transport/chttp2/hpack_parser_corpus/7a28fc2e9c72d51d29e87eed63ed405c9779b5e1"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/7a42083be21dce7f96edef1f3b3b2fea0bcaeb3f"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/7a51275b11ecb1efec9251390531681c8d6f2481"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "ping_pong_streaming"
+ "test/core/transport/chttp2/hpack_parser_corpus/7b9682cd7a3984698f6eac034c59c0f91b4fb83d"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/7ba7239a29d6183960e3986abc8f19cfb548b905"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/7d3b3d5f23d0ede9f7e5dbd1115db58c8a54a213"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "registered_call"
+ "test/core/transport/chttp2/hpack_parser_corpus/8035c81c95dedfc27c3649064f98f49e3e72c21f"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/804e1052842ce4d44b9c775ade2b18fcb8ce7bcf"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/80514b85933ea9bdd3462595f949c5af24409b87"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_flags"
+ "test/core/transport/chttp2/hpack_parser_corpus/8057c32b8bd28a5ec2105d62f2abe8cf69c9f5fc"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/806a3bd4e078d91adeacedfd3e47ef8ae229244a"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8090444f98218e65ff9594789ff22bbea3c0497c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/80e516692955d5f224706f268e247858858e16d8"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/810a1372fa97380265f5529c5043ae96f007f5bb"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8127597d3c146b2a89579e44daef9d03a0f941ec"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "server_finishes_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/82ed571f8922caa572d13b4cc9b5c5fabafaade9"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8328e86178800f87a3bf6f80749984f45b0cd0e8"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/84441efd7d8bdb0ce2fac28f218d3d5d4d77f1d4"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_calls"
+ "test/core/transport/chttp2/hpack_parser_corpus/84cbf70f45a64d5a01d1c96367b6d6160134f1ad"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/85eb0f4502a51e646dab4ae08eabd90613cdf8e1"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/86080f33e4eae21b37863c253ce61eaa13021a97"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_tags"
+ "test/core/transport/chttp2/hpack_parser_corpus/862e3ccf601ee0f7fbd8b23e6811fd50485a118f"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/86bae059b18af8ae263e5ae0022b67da0cfc0fbe"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/870f9cc4bd89c6c04c6a51ceae1efa8634627cd6"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_delayed_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/8762a523cdb78d2344d553fa52a229bd63c44e51"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/894211571f9153c3c2ea4102541dac69be8aaa9c"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/894e9b7832c52acb04bfa994ef53c7105d8db206"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/8b0e12978b8e2eecf62346e438e47d0993845693"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8b3fa0bd4f289eff6a04a5205e04baaeafbdf637"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8d1deedd1e463f8c95129a6f839c380a7c83ab04"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/8d1e029bd72381e382c87e61b4c5a9741d80d644"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8dd1983889b6632228d4897c365a1e6124d101e1"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8dfc2183691385432f92957cff0b2538e5a0ebfa"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "trailing_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/8eb9b86b4f0aa79b8ef84b44e1fb03094e7bb426"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8ec540c36da3814e93da765bf2ff0825b59c1bd0"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8f1bec32f4b8e64062f5405a096543e61d771076"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "bad_hostname"
+ "test/core/transport/chttp2/hpack_parser_corpus/8f3e48c49d0794909f6e8e61e5a4312edf484c33"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8fbbf3c0eaa25b64d0a97a8ee08006539e649199"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/907d0021d42d0fdc867fd02d3609cdce13c8a055"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "binary_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/919511c217a3427c22cad4a71aae31a6cd47b193"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/9267c81c3283da8193c198de05e05fa30631a453"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/92e80997a4237d76f10b70dae2870b7255c97435"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_accept"
+ "test/core/transport/chttp2/hpack_parser_corpus/935322db76f5d4c74c2dc68fc4631915b8e24323"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/939f2627ef6263d0176566de267ff3eb910e6a60"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/94adea6a0d9a44bee6f5e88adcee57be9e9e3597"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_client_done"
+ "test/core/transport/chttp2/hpack_parser_corpus/94dcbe0d3352bd9b230096b8dce9c6d8d63f9d51"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/95dad738f60e3e5eb0f1cdafd91ad461f4418e8f"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/960c0a21c9e5c1a61b93b34da3189b0de1c264df"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_invoke"
+ "test/core/transport/chttp2/hpack_parser_corpus/96903512b1f1dec08206123f024b62d0e31cd4dc"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/96a89c005e8d9992e34cc149b0be096ad0051446"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/97db8a66dd513eea47a5a25115508f4e59984854"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_before_invoke"
+ "test/core/transport/chttp2/hpack_parser_corpus/98f2cb84ad89550cf56ee54e11f1448ae7287247"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/993497422a59b7f9f0f6db8c867339b5c9e4c978"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/999821e3750a7f2c9db663d2d100b4404c225040"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_in_a_vacuum"
+ "test/core/transport/chttp2/hpack_parser_corpus/99b2ed83be40cab431d1940e8de2dc3ebfe9352f"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/99e888b7372b29256dbefd476855ff73584cc00f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/9b18087deb3cfafa1b964aa65d8ee980bc61404e"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_with_status"
+ "test/core/transport/chttp2/hpack_parser_corpus/9b3c745ea3e313909a228a07b49aae110b02ae4a"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/9be1ce0ba77758928ff5e9c45139b1624cbe9c2d"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/9c703141efd69eb8f32a58133c8035fb585e0f4c"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "default_host"
+ "test/core/transport/chttp2/hpack_parser_corpus/9c7f77981677499f0426a0ffb5cb79d5fe55dcb2"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/9ca59e6cadaa5be9af30dfe5620d1bcd70f442e5"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/9d139835d91474e8d8361d65698a31b8b38c4f7b"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "disappearing_server"
+ "test/core/transport/chttp2/hpack_parser_corpus/9e2179564a99e96e179c96f28802a0a2759b581c"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/9e56bb3b68d2e2617cb2d2f0f3941f7fc832e462"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/9f318b2c2ff9cf4615bd06ba13bdd086b4ad08c6"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "empty_batch"
+ "test/core/transport/chttp2/hpack_parser_corpus/9f8d90b1480989fc46ea2f1c66cf687638994587"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/a09db5715f0bc3879a0e18e4db5a6b5640b254a3"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/a0c59a090818bca29d76ccf9843f7e2faf330ddf"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "graceful_server_shutdown"
+ "test/core/transport/chttp2/hpack_parser_corpus/a1cf10478e5e01a0d951c743a3dd45aa5fc409f2"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/a22c0f03f8c005a4612a9dcbcd6a643334c35d2f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/a3154b8ed26b3461f2b091c732da00b63ce8bed3"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "high_initial_seqno"
+ "test/core/transport/chttp2/hpack_parser_corpus/a84a1ed1a24e753a27adfd3ba806f06fc44f899f"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/a871e7ce66afd4f57702cd1299de06cd08995561"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/a8dc736ea964586b7dcbf2bc065ec4675d1daba3"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "idempotent_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/a91a835836c72217824f0b63491d9b623130502a"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ab97c1f6033dc7d96f69b9e1461fd594c16f4ebf"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ac8a8c23acd8c290a11dc7828f7f397957fa6400"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "invoke_large_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/ac94b2788f5252f9e2e8502c7c75e04bef4c0b76"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ad03b4f58470c43db6593a35be48989486d754f9"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/af417c83e831a96fda1bdde99a1af6509ef2df3d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "large_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/affd292cd2ce3306b4651cc7ec0ec0524cbbae3d"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/b0587e6e319f4b56d877e7ed46bc7da9b1e7249c"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/b166aa66b5b3ad178bc38aee5768226c8adc082f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_message_length"
+ "test/core/transport/chttp2/hpack_parser_corpus/b1ade0571262c6e5f1d72f6d25ebb513d2055bc9"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/b244c690157ff21d073940ef8c77d1898f37cf8e"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/b523091ee4f17d20f51f9b5cf82293465cf61780"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "negative_deadline"
+ "test/core/transport/chttp2/hpack_parser_corpus/b7d4d49ac2c530eb8444a449feb689ee50fd210d"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/b855c161121bfa29c6fb22d3c0236fae4af6984e"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/bcaa71abf23b2e5130e0cc464755fe769bf4aaa7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "no_op"
+ "test/core/transport/chttp2/hpack_parser_corpus/bcf4684ce097faa7e9d99b6e93cc2de24f57aee3"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/bdca6504d2ee7925f62e176355bb481344772075"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/beb208fd8675ba7de2ecb12998d2d628d579ca7c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/bf0c98689ab81fc32787023300caf9a4175583dc"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/bf479e97b39b697e715663de6a1e78dd58d64122"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/bf826c96be94d1b42eea0666f7239cc5f699a375"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "ping_pong_streaming"
+ "test/core/transport/chttp2/hpack_parser_corpus/c17650d19ae4a48abb36739c83d8979453f5705f"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/c1e5307d88feda2c3b15fc221cba92bcf41622bf"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/c249f408c552a0408eab3fe1d1cbeca95cd537c1"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "registered_call"
+ "test/core/transport/chttp2/hpack_parser_corpus/c26b460aebc9082c519539069f7e060042989696"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/c2eae71daad0d3561ab4d09b8b85372b8d790bc1"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/c37fda8d02e99132a1de99f959596c784ab8a53c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/c4836760377a7091fb20f4afa9c712875792b9a7"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/c48caad597176404f776d532d4baf9faf7655ee2"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/c4eff0f59986fc5ab09d5bd95f394292f2882659"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "server_finishes_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/c5fc2086d167c8c3a7d9ec778db69c5fa14a59fe"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/c600877ce547166eb1b9d83afbe128d98767f8a3"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/c6a98fdaf6de78e59e1a149a43f3e42222d650b7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_calls"
+ "test/core/transport/chttp2/hpack_parser_corpus/c8d22f7fb4f37f2d8cc7953fa2d599d38d899aec"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/c90951c19b24bac84296e3ec32cdeafe99e99cfb"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/c95ff2a172626efb50e94aa6781feba609820076"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_tags"
+ "test/core/transport/chttp2/hpack_parser_corpus/ca6c557afb9c571de62e9b65ca6469a6133760da"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/cb2d0fb23f66c968af2e80d59f71d4c1aed96fbd"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/cc60a642cc2037ad3c459a57381b8f65d8d7aa35"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_delayed_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/ccd3b8aa26c52f6d9c607c26ebdf621142aff745"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ccdfd1354997eb117bd76b75440a7e4ff20bf564"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/cd7a7b8f08c189e95ae3e2ea44b9015000e823f3"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/ce05678d812a5f8ae8e115938410116ce9169456"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ce6b642b81373f05baa2a6fe6e9d5d1387046285"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/cf84d06e4dddb997a79a41f9b6122bf620bbdb4b"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/cfbcc3e8cd65aa8b654688145ade34b8789468a6"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/d000502f32ca5620d7745f39ff6be3b547e26a6d"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/d131f83ee73450ff45565d0c638be7d8beeb30d9"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "trailing_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/d2817b89d7aaa7fa880c077b1a67168ec2f4f0f7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/d3ccd7039dd34baef465c4b78baa7a30312a8f07"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/d4cfaf3b59b22b654d7af80ee6715ce5015bfdc0"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/d5670827c8e8d4c95ac0f738c0790c19916c0336"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "bad_hostname"
+ "test/core/transport/chttp2/hpack_parser_corpus/d59d7e94863f1ed89cacfbaabf7bc59946036c8f"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/d76d0c7f24ae3cc3f530d5306b8dcc15290c7ff2"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/d8b15e9e555ad9900ba4be8cc9f87bef75725b24"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "binary_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/d9748abd540810c2449c3dd39a0ebb62754e520f"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/da9fc821f0c1e00728b139b36269bc3d21c0a8cc"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/dcd1bd94ad97b4e67fd7e12ff1bf7c039eb17f66"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_accept"
+ "test/core/transport/chttp2/hpack_parser_corpus/dd3ba9b139e13324fc76cd62af84b00ca8b87205"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/de0a9dce0ea4e4bfdcb13f788ae728bf979fed25"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/deb6f9a930d9b31586ede19fd8fd3caae0e5b1f2"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_client_done"
+ "test/core/transport/chttp2/hpack_parser_corpus/dee95e0280b70681eddfb68e3b418126c5661e18"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/df01203edfa2dfe9e108ddde786ae48235624fef"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/df0adbe2523508e9afb42a58d98c2657710d6033"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_invoke"
+ "test/core/transport/chttp2/hpack_parser_corpus/e05fcba1b22f658c8bd6f3c330b2b3c9faebf977"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/e145caa75d73e3d819a9cb4b6217f1f53112f3f8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/e1d86c0094657386197d191855b5645ac1dd5936"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_before_invoke"
+ "test/core/transport/chttp2/hpack_parser_corpus/e25adf8de44f5978d00b7e8c52aee89c5cd1fe93"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/e29f05162e3d96d5549f96aa4a54c868535b2847"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/e3a970ac8636d29da3ded328b876ed3550cb3209"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_in_a_vacuum"
+ "test/core/transport/chttp2/hpack_parser_corpus/e3cfdc862187b4ec28bd4fb2ced5094bb5b09909"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/e4ce52007d001806fc9368b62c124dfc56e8471c"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/e52173f0bc3325629046e85e2dc41acc6ba7d1c3"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_with_status"
+ "test/core/transport/chttp2/hpack_parser_corpus/e6589006e3bda4c57247ad66fcd73ac00ee2cbe2"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/e6fab7572fb2a1c6e107b6f83cffd103a233d021"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/e790f5d312957dbfd20abdefe4b1735779ff9689"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "compressed_payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/e8809017a4cf6c1e80a93f661166ead961f26bb4"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/e9733e973c33b38c2087b7f1deb36688b3b14259"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ea8134769855d574f6673bf0301eb2e24632c6eb"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "empty_batch"
+ "test/core/transport/chttp2/hpack_parser_corpus/eb489536e4e5589a93a17cd36669475b8f2a5e1b"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/eb48ebd4d01e5623dd16ae61938b3333fab3ce78"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/eb6ca7624384239c7f7e0d83edb7cc334b7926d7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "graceful_server_shutdown"
+ "test/core/transport/chttp2/hpack_parser_corpus/ec9457ad41ed745ea9377ffdb16ad09f981daa7f"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/edff5256a2d60d0e51caef25dc1d6f1643dad6d5"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ee4d9c5d22512da42726f47213ff56404d1d81d1"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "high_initial_seqno"
+ "test/core/transport/chttp2/hpack_parser_corpus/eef2f30b5e2ecd98ebefb12d57aba8b4ad52d904"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ef23911de1a27d03d2d4983ca1527e17d6a7092b"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ef5b7fc62a2daecf1e8f928b1fa3ebd028413a41"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "hpack_size"
+ "test/core/transport/chttp2/hpack_parser_corpus/ef718258ca1870198e91a2fbc1eaa90b620673fb"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/efb46deb37a78f41dd760f6b7203b20956eb114e"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/efdd6824bd2456e3e408e0e84369c4fa3aa14f41"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "idempotent_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/efec040a5de1969df5e37e4bc50a0a8f0de341d8"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/f1e30464c24dc1d7cec7ec1dd2adec8512232b43"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/f27a617b936814476770a3b31a5afb80d0f3b423"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "invoke_large_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/f3f0d99ac2962f8fddb25c65fb4c8c6eb63518a9"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/f4628084cf46f139babb886a782b4ab5977d5d2e"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/f4753e8881e4b3c71f2728149be7d04cc648f6a6"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "large_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/f4d6ff635ae4fda497221da4bfa3e593df59a44e"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/f52f4d51aaaed0f9c3a20936cf5efd25d0692f67"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/f7cf30724ab740918eee6e4a6b6658ae3d7706e8"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_concurrent_streams"
+ "test/core/transport/chttp2/hpack_parser_corpus/f823828ffd2a60efee36f1de52cb0f024ac5b4bb"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/f8760761bd5ab7b47376bfbc5a44e16b2d5ca800"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/fb15042c268625089ef6c8aa3d8a6f12d1d02c74"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_message_length"
+ "test/core/transport/chttp2/hpack_parser_corpus/fc3dd4292d6884a770199596f5e9cbc1e869e5fb"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/fd34ec90fe8f9218fd25c3eac151aec998cff6d8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/fdf548cde981fab4fb17bd63a124b75eddc5c836"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "negative_deadline"
+ "test/core/transport/chttp2/hpack_parser_corpus/fe47fb18b064e26479c3c3140082bd01065e897a"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ff2097734bd7bb8451aece13c9336c4624735170"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ff7d6ff060e63355701b2e655c802902338497de"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "no_op"
+ "test/core/http/corpus/0299ca2580e4398d170c4a336e0c33eb2cd9d427"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/05e613853d64a9669ea3cf41b0de777dc24931ba"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/069352518a1d1baa05f317c677d275cefda2ac97"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "payload"
+ "test/core/http/corpus/0925527c9358b1e10ec0f0387cd99f35204d9a34"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/0c5b7c2569410b526605e308309a7f36574e530d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/0ef3d0a84360bb5ad66274f1226f5cb273ecdbcf"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "ping_pong_streaming"
+ "test/core/http/corpus/1e1273f90187fdf5df3625764245610f86af6aa4"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/1fbc57d118f3733287e9a9d808bb8947b3260e55"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/24756c396bc72894fd720092bb6f9c03e66b469f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "registered_call"
+ "test/core/http/corpus/276def41311933421ae7a9ee42e906c85b6a4d3f"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/29daa75432381937fd005cb25e314e328de6e9f9"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/2a75204bc492084ad853682f8de3fb137d5907bc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_flags"
+ "test/core/http/corpus/2d34ba249b755a880525cf53c665633a5e359305"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/33f4ea0c7ea27c37d8f95cfa64d282370efdafd2"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/35554617ea6418bd43161fe9a2c337ed82d7ec5b"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_payload"
+ "test/core/http/corpus/35f0c561297cfc840ddaeebb9fc61091f4eadece"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/3953688866ccb3b4f371f1a858570d6afdb6452d"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/39b19c41ba537f37511eff7727733715db432e76"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "server_finishes_request"
+ "test/core/http/corpus/3e3c4756d5e40b5aa250954cbac86b826e70a7ac"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/3f03265921120c6ffa61b944e213e062a5538d4b"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/3fb034e66ee5494a67acae1b4e6ff64ba92a2046"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_calls"
+ "test/core/http/corpus/466059ed07a0d55d6ad5e522c7d367cbf278eaf9"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/487725eb38511c79a9340bf4560a1411061fa6fa"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/48b9b205cae8ac21512a3f26f49fd53e21ee13c5"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_tags"
+ "test/core/http/corpus/4b1f1f79a0bfa3f942479dd5f8edb59a7c257c55"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/5028c56a5116a186b7343ff59567b47347a0796d"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/533f62b3f495ce704babf3ee8d840f196a714dff"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_metadata"
+ "test/core/http/corpus/5892cbb284771fc9761caae37b19cd6e27dbc104"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/5aeab6e4f7c2a1c09d4ac0dbdb3beac4893607ee"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/5b6292bdf009b0daecbc90b85cca30a88c36eec5"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_request"
+ "test/core/http/corpus/5c1659b77678b41faa4fa13df7772dae3238d1c0"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/5c81f61621e29ec9c6a64ac3af9b3b216141618e"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/657368df512ca6294b9df16adf935a3f374a8be2"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "trailing_metadata"
+ "test/core/http/corpus/7fc4520094902ce2c760d70eaad5b674d2817337"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/81f59a12b458ec3604035cb962165c604d1355e6"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/8f41c50e88ee8c17ecad3d41d63d38fb12aca0b9"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "bad_hostname"
+ "test/core/http/corpus/97c16de7fe3c390a2e6c09ff5c28f17d5c67542c"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/97e4499d450c95660de86747f527e670f2012548"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/9a996857196e0998a1278994a9bab3d35526e7f1"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "binary_metadata"
+ "test/core/http/corpus/9b7e00049ec356ecd84b1747e4e1941140139ae8"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/9f0c38ec455cc363369b3674a2d32bc21c206de1"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/a1dc7bc235e46eb21d91084d7b52d5ff9f45df85"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_accept"
+ "test/core/http/corpus/aa3bbb876eafa8ad8ca4ff2eabc6dd94341d2441"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/b04fea5c041c707db0ad9c09a81672557b52cc47"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/c4acff8aa2ff886f35439f72625d05002990c940"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_client_done"
+ "test/core/http/corpus/c55ce9995b002e88a102ae2891a71e8bacb346c8"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/ca5a0c00b8969310acb73d15ad0d0c602f1bd0c2"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/cce734f1b263de6994f7950e0df7bf0c81449f70"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_invoke"
+ "test/core/http/corpus/d4c3e4cf5d035596433c30eaabbd2b2925f4b453"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/d51f7fcc089f269c7afecaaca51966bab5fde629"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/d936dad71c129cf659097dc3db64550c4dd467f4"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_before_invoke"
+ "test/core/http/corpus/e275b0466a8fb8d9e0e15856e343ddc7112ae66b"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/e5c364b205855a2991ce07482aebb2a3a6147089"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/ee2077e08c3cfccd9bd82adb574ac4fc7d429afb"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_in_a_vacuum"
+ "test/core/http/corpus/fc5d4b9117ba9e87388174aee4f4970bdfe8d066"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/fdeb2c7daa9e7704f67e141106384e6dd0042c0b"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/request1.txt"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_with_status"
+ "test/core/http/corpus/request2.txt"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/request3.txt"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/request4.txt"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "compressed_payload"
+ "test/core/http/corpus/request5.txt"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/response1.txt"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/response2.txt"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "empty_batch"
+ "test/core/http/corpus/response3.txt"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/response4.txt"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/response5.txt"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "graceful_server_shutdown"
+ "test/core/http/corpus/response6.txt"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/toolong.txt"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/006d552e952c42b5340baaeb85c2cb80c81e78dd"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "high_initial_seqno"
+ "test/core/json/corpus/007eb985c44b6089a34995a7d9ebf349f1c2bf18"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/03b74a08f23734691512cb12d0b38d189a8df905"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/0495693af07325fb0d52eafd2d4c4d802c6457c6"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "idempotent_request"
+ "test/core/json/corpus/05454ab015cf74e9c3e8574d995517e05dd56751"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/0716d9708d321ffb6a00818614779e779925365c"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/0a9b3522a8e711e3bd53e2c2eb9d28b34a003acc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "invoke_large_request"
+ "test/core/json/corpus/0ade7c2cf97f75d009975f4d720d1fa6c19f4897"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/0b1fcf0ac07e1e50cfe27316c7e1c8cc997f1318"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/0bc13548356d08009703d35e9c8d74397367bdfb"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "large_metadata"
+ "test/core/json/corpus/0ea9a160c57f2c705dce037196e360bf9be739c5"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/0f20d9c46991c0e97419e2cca07c7389f1d6bdf8"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/0f2e2e6346f70c419300b661251754d50f7ca8ea"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_concurrent_streams"
+ "test/core/json/corpus/108b310facc1a193833fc2971fd83081f775ea0c"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/108e5bcd69b19ad0df743641085163b84f376fe8"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/10e3ecd5624465020fdf0662a67e0f0885536cae"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_message_length"
+ "test/core/json/corpus/113c8c97cbb0a2b6176d75eaa9ac9baaa7ccddcc"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/11479d936dd006410a5946b6081a94d573bf8efd"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/11aa091189b78d1cc35c7ff4907ac16a73aba547"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "negative_deadline"
+ "test/core/json/corpus/1227907b2ee5a9492a890beed55332e4560834c8"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/134d65130947ec69cf8df8483424b45e99cf04e3"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/13584505caa892d94982a968bbc4391ebcfe0d06"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "no_op"
+ "test/core/json/corpus/137f554ee0f6b903acb81ab4e1f98c11fe92b008"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/1401ea03ec78b8f20dc7be952555004d7147f0f5"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/141d45a59b073aeec4443cd7bcf20f7833ddbc95"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "payload"
+ "test/core/json/corpus/15a8f2e7f94aa00b46f1b991416aa015dd633580"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/15c9c1284c27c8893559e15c9b2a50cbd5bbb56f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/15d1a6cda48ef569b368a0c4627435bc2c80a988"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "ping_pong_streaming"
+ "test/core/json/corpus/17a29f2ac6df774585d7713091b299729738030c"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/17b815f1f72cb64481bc40263e91ce063040f739"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/182d57403d2c973a394055017d35b7621aa0aa05"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "registered_call"
+ "test/core/json/corpus/190fbe2da448f6bdec0706c5301ad13363ae3ad9"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/1b045a24b8f1f1fd6e8234d5019952ee7713a8b7"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/1b6453892473a467d07372d45eb05abc2031647a"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_flags"
+ "test/core/json/corpus/1c6463aa2dabcb4fadc8e5441d8b418535e768af"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/1dea95b5050b766274ef80847505c0e4f47f3ebb"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/1df0754d3e7970b3afe549b11ca128dcd0d4832b"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_payload"
+ "test/core/json/corpus/1dfe267b623b20cd97c6e8969d8b9148af9f4a2c"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/1e5c2f367f02e47a8c160cda1cd9d91decbac441"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/20efdba13ca7a3657d071b3d56997aa3b083068a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "server_finishes_request"
+ "test/core/json/corpus/215a956168f77421253e947c2436371d56aa7ea1"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/2174b9ab6bf4f7c21fe1ed56957f1776ef611959"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/232f4bced4075545bb1469d5c2360f083ec7ec65"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_calls"
+ "test/core/json/corpus/26aca41ee8f199e7c0c7cf31d979952571c53fc9"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/27d84210636e9e83786be9e9b96b69f70b743b86"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/27da426a5883662d19ea78f306d7a992be52f827"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_tags"
+ "test/core/json/corpus/296dcda6f7e6979e68ddef7cbc1206a355084ad3"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/29b08c03ca5a6851fa4604a984cb7ff44433a5a5"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/2a3d964ec4527ad9f02129fcbf087b67a6ea6444"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_metadata"
+ "test/core/json/corpus/2b04974149815b143afb17af4388d751217e54ec"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/2b3b1ad952e3acb566e32a84e2d503acde13eb53"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/2cc301a6ed7f01e2cd339f02bd0fda20c227a17e"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_request"
+ "test/core/json/corpus/2d3d5b9275553430b4cfa68114099120ad7809ee"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/2d5dbf403e0c12e2fe21b04ca3daff171c028ab7"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/2d7c769bed62004270034b976b1d940a5686106b"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "trailing_metadata"
+ "test/core/json/corpus/2db120231eea12d9cdc6a00f30839b3cef2046be"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/2db610e1a230409a205cf22fbad3348a54cbe703"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/2df1dd2e2f5d57e7d9d4e60a756a86e603573225"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "bad_hostname"
+ "test/core/json/corpus/2e32faacd3ea4461ec7aace297b4be6904d9a389"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/2e756d91759d7e74f5b776c0d2a1935292f576d1"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/2f09b24f9f5fa0af2c29b604b4b0f97fa6163895"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "binary_metadata"
+ "test/core/json/corpus/3027d901361162b38fcaf17f97ba7d9646e32495"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/30d4467ecb771ece9ed6c78a46adc299072d9db9"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/311048bbf4c4bbabcde73607d7e76915cee9312e"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_accept"
+ "test/core/json/corpus/323b48969d7bf9a50aacf0912f1b5cb02119e2ab"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/33400a242baeb5c46ddb1578c28b10d32a9c3cd3"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/356a192b7913b04c54574d18c28d46e6395428ab"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_client_done"
+ "test/core/json/corpus/35e995c107a71caeb833bb3b79f9f54781b33fa1"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/373769c15c145472c8ec3bdde8fc84e85ec79211"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/3795d911970a1fd8416b93649051b418948e3edf"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_invoke"
+ "test/core/json/corpus/37d3333e1e2a384c3ba14a52682ca29f061d1ac7"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/38cd33bb390445e35b6514024b1317902cb7ba1b"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/3a90c688f44447a78efc111872b061a001f04d2b"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_before_invoke"
+ "test/core/json/corpus/3b1e7b56ad4465d126ea994d34d20dcecbb3a50a"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/3c0a8d6c31edaca124714624eb64cb8ec0cbab13"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/3cc0c9adcf3882f01409c70391c3cd30588ef34c"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_in_a_vacuum"
+ "test/core/json/corpus/3d0d9878b812ce4634962ba3dd755c0953550200"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/3d4d5887a2fcdc5dd360b8a6f89dbce6500d8580"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/3efb5b7ff94c5b9d411c93da9a70e1cc547f4c59"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_with_status"
+ "test/core/json/corpus/421b7e8ea86e3c07474af16ab3ccef55d1857205"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/428d051e437dd260f2a2f7ed920d9734ca34dc90"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/42adc281578ffb1b8684b78b47aa40a16d10b6e7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "compressed_payload"
+ "test/core/json/corpus/43620ecd2e2fd58fe5650da2e9783f980f29ec07"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/43b1ffcda49477adb1632822202631990ed3a269"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/45279f85bf2f533a629073caf89403006279fab2"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "empty_batch"
+ "test/core/json/corpus/455d9bb597f08bf698454157ecd86647b5dec4e0"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/4561eb5c7e43cae048c06aaaad3d5f5218b376e9"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/46417b001eeb87c32b642499fd5e1690d5d88c7f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "graceful_server_shutdown"
+ "test/core/json/corpus/468af040024e96e9878ef33cc52755c5e7f5cbd5"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/469e5ed2547e9e55a96e96eb832c615631e3b576"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/472b07b9fcf2c2451e8781e944bf5f77cd8457c8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "high_initial_seqno"
+ "test/core/json/corpus/486da8aff04083c5e0fe112e733f2ae510e312a1"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/488a5ed641e340ae51992e04ce6590bdec587218"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/4a0a19218e082a343a1b17e5333409af9d98f0f5"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "hpack_size"
+ "test/core/json/corpus/4a6644a1a3d5218f4bbd60220cab79c0b7bef45e"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/4b39d4b8a9a04b9469e8fe4016322327fe540882"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/4bb0294e14946fb1f64213384097a676d3ef94f0"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "idempotent_request"
+ "test/core/json/corpus/4cd66dfabbd964f8c6c4414b07cdb45dae692e19"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/4d134bc072212ace2df385dae143139da74ec0ef"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/4efa35221b2088e785048d0ff8fd99b03d5316fc"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "invoke_large_request"
+ "test/core/json/corpus/4fa2a4a5a2f7dc4ddbdecae3ee85c787817b4cf8"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/4fed4bf2dc6259d9de54e9fa7db4fd5a61f2535e"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/4ff800de0863adb5851fa26935159aa53b11cba7"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "large_metadata"
+ "test/core/json/corpus/4ff99a030518a132748c44bc1d836018e5b82cd0"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/531c87b9772e54e3e183ef729f0a7d5a0d584f46"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/534d66e7b0709d1e7692faae9e7f7299c92bba4b"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_concurrent_streams"
+ "test/core/json/corpus/548775f9d7d13339dba3001f8238b84e9a457533"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/54ec3b2d8a9b7a6d8204712eb1b90da703cf8a79"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/552cfe1d8958e6d003ec8e883c4983dd67ef255e"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_message_length"
+ "test/core/json/corpus/55f0c61d096a08506076489ded3b868db4086770"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/56cd60743c2cee939f5f357905bd36ec9363f441"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/56e5f35e3d08b4e17e3558cacddf9e5ed13a0159"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "negative_deadline"
+ "test/core/json/corpus/580b03c49fba02bb8e399500eb66f2ff0482b22a"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/5852643fbbcf92b0181327b69b4874c6ba6fa9f4"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/58f497e5efaf9f69080f9eef63b0b9dabcfdbc0d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "no_op"
+ "test/core/json/corpus/59129aacfb6cebbe2c52f30ef3424209f7252e82"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/598a287a3e56caae23ed63abc95d5f3457165eef"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/5a37a26dd2482226f534f79d321d28e7a615ab72"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "payload"
+ "test/core/json/corpus/5a710dcd4c78ca1a74ceb9fbfb011f7ac86a5f7b"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/5ae7b87f5377d5ffc16fd3f69b4a4aa7be8b1184"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/5b3fe86d5a309a6ba745881bd220fe1100b271ce"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "ping_pong_streaming"
+ "test/core/json/corpus/5c38b7da113ab4535dbc22777ce8a1480c1c9d1e"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/5ca6c45a8d2e11c782806df43e7668beb4aba8f5"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/5da7b543313339f84fd52e96bacf3a73368a1d2c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "registered_call"
+ "test/core/json/corpus/5e12ae9117668bcc22832640cc626315940aeba8"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/5e397439a2680ed827c46704969c6711dabbda84"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/5e629dfb8b7533c7c2d173d4c3d587c88112cc29"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_flags"
+ "test/core/json/corpus/5e785c7c26813577f3e30ef8f7e37ab2a9ffe39c"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/5f3394f5058822cc044b92654837625897176480"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/5fb9bcbbb30a377209eab0541d144e44e71508d7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_payload"
+ "test/core/json/corpus/6008213a61d06b4382b223768530c3452968b7b3"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/60ba4b2daa4ed4d070fec06687e249e0e6f9ee45"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/625ed64c30c8ab2f0b3bc75690f9faa4270f0041"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "server_finishes_request"
+ "test/core/json/corpus/6314c2b304d04dc0108a95d29a93515e85e2b0b0"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/6462d8079d2ea921617e7d073b85cfab706800d3"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/6474383282788e556aa86f57fc8650137ad264d0"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_calls"
+ "test/core/json/corpus/648c3f58ecc8fb4b8c779e6b11006ab5b1986dad"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/66328e03a2ccd5e54dab23b816182786e6f518b6"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/683e9045bc95e0cb5fc16ec64b118433475ba559"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_tags"
+ "test/core/json/corpus/689f13680f4682303c8aa6828b67955959dc9669"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/68c6ba7f0602a5410d1fa3c5de24fe264436b993"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/699cafde80b1e1777306f781186d1253f018ab23"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_metadata"
+ "test/core/json/corpus/69ab053b59e235fd6af246c5180f15bd95295113"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/69afa12510b2e653b0af7c7030832647b2d63c37"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/6b75857f86be5c51b21a97f4a61e69e8bb6cd698"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_request"
+ "test/core/json/corpus/6c75e71ecde9f073a7bad89f4831c8cde0bc1830"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/6ce5170dc4f2eee3b31a875b6a41f2444959f3dd"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/6d2859436fbbee637f0a5981ca82e8f88a1d0d28"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "trailing_metadata"
+ "test/core/json/corpus/6d63e39f56d1d537bab9c2830303cabab3cd9035"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/6e05a0a240fe2974e14527bbe390d294564156e2"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/6e6c9d301adb0f0ddffd79cdf3426a2de99bad48"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "bad_hostname"
+ "test/core/json/corpus/6e989edf725ec64849377681ce02641c3d1870e8"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "binary_metadata"
+ "test/core/json/corpus/70142f66475ae2fb33722d8d4750f386ecfefe7b"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_accept"
+ "test/core/json/corpus/719edbe667ce2729ac78a22dac29263c91144029"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_client_done"
+ "test/core/json/corpus/71f99ca2bda6ef2e15b965479a79587f9d794be0"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_invoke"
+ "test/core/json/corpus/743e89b768af4bd591ea7228118550b1bfb8e7d1"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_before_invoke"
+ "test/core/json/corpus/7714a1a32872442a2eaff472685f3ea69451a732"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_in_a_vacuum"
+ "test/core/json/corpus/7719a1c782a1ba91c031a682a0a2f8658209adbf"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_with_status"
+ "test/core/json/corpus/775e8ffda1f5d340dba472d06dc7c8bf8159e379"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "compressed_payload"
+ "test/core/json/corpus/77de68daecd823babbb58edb1c8e14d7106e83bb"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "connectivity"
+ "test/core/json/corpus/7957dc9aac31e6a6783fb3a6ee073688fed6cf9d"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "disappearing_server"
+ "test/core/json/corpus/7ae893cbbf9b11ff411640b80985ce618907559c"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "empty_batch"
+ "test/core/json/corpus/7b20ac50954063e3ad00813acab4a98b2bfdb858"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "graceful_server_shutdown"
+ "test/core/json/corpus/7b6273145fb090de1c6163586f884a1da4b5cfbf"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "high_initial_seqno"
+ "test/core/json/corpus/7cf84b5a78281e6c6b5a9884110f3dbc6a40e310"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "hpack_size"
+ "test/core/json/corpus/7ef13b83e6bde582d9000be043e729cd3221c150"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "idempotent_request"
+ "test/core/json/corpus/82059e250904b478f65daa0e647c1647ba6d6a3d"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "invoke_large_request"
+ "test/core/json/corpus/8207fdf4bd302d6b6b1894990b353944a8716aa7"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "large_metadata"
+ "test/core/json/corpus/831a49ad81b59025c241ac9e58bd88463fd798eb"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_concurrent_streams"
+ "test/core/json/corpus/84582c1dbe026475319df14c19967d1dd0bf751f"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_message_length"
+ "test/core/json/corpus/860d4ad0b7c026d1fcf51932b5e46500be7860a6"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "negative_deadline"
+ "test/core/json/corpus/865c7cf36a4f4499a6242e51b77b58b868a7447b"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "no_op"
+ "test/core/json/corpus/87a2b80f9272583517c0207af176fc40ea55022c"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "payload"
+ "test/core/json/corpus/887309d048beef83ad3eabf2a79a64a389ab1c9f"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "ping"
+ "test/core/json/corpus/88d89860ccaf21e5f0f002303a2cd853ecbb2acb"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "ping_pong_streaming"
+ "test/core/json/corpus/88f658400b1870ddf081fb03020c3098b0b1e083"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "registered_call"
+ "test/core/json/corpus/88f8b0984bb2f081918ad883c8f0ffacb5a8ff0a"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_flags"
+ "test/core/json/corpus/89304953495f060c7abd3584d83cb1c8e6d6653b"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_payload"
+ "test/core/json/corpus/8a5f6dc6873e3fd51fd866854d85258f8aa83a02"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "server_finishes_request"
+ "test/core/json/corpus/8a87261277c15667e2957dd52c5db6757ebc8e88"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_calls"
+ "test/core/json/corpus/8aa61d8bd260942521bb1ba82cd4cce2324fdbee"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_tags"
+ "test/core/json/corpus/8d8874439569824e371a0284460440175cdb8a27"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_delayed_request"
+ "test/core/json/corpus/8d952ec2e33b2a6a1c7876898719a610f5546388"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_metadata"
+ "test/core/json/corpus/8e6fec8a05b24f221b6e94fdfe205e5bf7709a2c"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_request"
+ "test/core/json/corpus/8e7fda77644ff91578d25243fad51a3cd6d60860"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "trailing_metadata"
+ "test/core/json/corpus/8ea6295ff82bb119acd44a91b463b19fedafb226"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "bad_hostname"
+ "test/core/json/corpus/8ee51caaa2c2f4ee2e5b4b7ef5a89db7df1068d7"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "binary_metadata"
+ "test/core/json/corpus/8ef4dd9f2d0f9d770c937d9a43413d24df83f09b"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_after_accept"
+ "test/core/json/corpus/8efd86fb78a56a5145ed7739dcb00c78581c5375"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_after_client_done"
+ "test/core/json/corpus/8f0ba762c2fed0fc993feb91948902ac397b0919"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_after_invoke"
+ "test/core/json/corpus/8fe81e450694cac1eb4c4a5c966ffbc56ade3513"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_before_invoke"
+ "test/core/json/corpus/902ba3cda1883801594b6e1b452790cc53948fda"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_in_a_vacuum"
+ "test/core/json/corpus/910a1528b28ebc6ff2f2a4fedb013c86de4103e2"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_with_status"
+ "test/core/json/corpus/92049bf3d8a0ec93c2d1633631c0082e66ca69e7"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "compressed_payload"
+ "test/core/json/corpus/920a3c318f3127b9c30ab02a077555c7dfbb6edb"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "connectivity"
+ "test/core/json/corpus/925fc05dd661aeb4a776dcbc5df3dcb2cefaf0a6"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "disappearing_server"
+ "test/core/json/corpus/9367ba65affd5bf7aabf79c28e783cc5d93518e8"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "empty_batch"
+ "test/core/json/corpus/939f5049b1eefb91ccbd3fcecaed8cb21ea6b285"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "graceful_server_shutdown"
+ "test/core/json/corpus/9405c2b00eaa5526f71cc78914dbd3ecaf093b6e"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "high_initial_seqno"
+ "test/core/json/corpus/94d3598751569d2a5be258e59665cbbf0692dfbe"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "hpack_size"
+ "test/core/json/corpus/94f96d95d01e98fd2f04ce26c0913e5f9a882fb4"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "idempotent_request"
+ "test/core/json/corpus/95b54a84db75abab401d282fdb04440a879a9708"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "invoke_large_request"
+ "test/core/json/corpus/96189202e587ec951d5795da3e03062f2fb5d708"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "large_metadata"
+ "test/core/json/corpus/9711703428704ce2827a719eddb9d54be23a0cb7"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "max_concurrent_streams"
+ "test/core/json/corpus/9734597e96eebe99b2243121a51d178a338ec46f"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "max_message_length"
+ "test/core/json/corpus/9747c85a9510011bf87c23a80b029b9f2d04c37d"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "negative_deadline"
+ "test/core/json/corpus/97d170e1550eee4afc0af065b78cda302a97674c"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "no_op"
+ "test/core/json/corpus/98e02e7fc96479e8d10ff2cc7610be772e2d6fba"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "payload"
+ "test/core/json/corpus/996156b191b619eff79b2fcbb7598518a09b06bc"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "ping"
+ "test/core/json/corpus/99667fcfa6d583a742fb5450527fc86dfb78ebbf"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "ping_pong_streaming"
+ "test/core/json/corpus/9b1ead2dbeeb1a3e9a7bebcf6964c3cfbc7e8867"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "registered_call"
+ "test/core/json/corpus/9b7669e201574bfb979d56110539a90da5aca2c0"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "request_with_flags"
+ "test/core/json/corpus/9c24b456af3cb51a1ff2780c2d9cbdd7d93f6c76"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "request_with_payload"
+ "test/core/json/corpus/9d0441f23ae7d5a3a5b1140497868ee6eeab656b"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "server_finishes_request"
+ "test/core/json/corpus/9d890bd3139a8f9a44d435ff8edfbeb5b072ded0"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "shutdown_finishes_calls"
+ "test/core/json/corpus/9e6a55b6b4563e652a23be9d623ca5055c356940"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "shutdown_finishes_tags"
+ "test/core/json/corpus/9ec88420ef0408642f6930996e35f5b9f18ec88c"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "simple_delayed_request"
+ "test/core/json/corpus/9edd067c569315d5e93b0d14c7eac9fa6d81d3cd"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "simple_metadata"
+ "test/core/json/corpus/9fbda4f714043d975389b536b4497c6d713452e5"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "simple_request"
+ "test/core/json/corpus/9fc8cb8ab3b05e306e5e81d9d949e69f931244ea"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "trailing_metadata"
+ "test/core/json/corpus/a02b857f2eff73e8e188f35529dd91f8144b23b9"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a060d5bfd1235cbbe4bcecf332fa3b03bc2282e3"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a0931fae1d43e7887c1cabde83fdfc52eaeedba8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a0d4af29c6c223b48fe34d6a09b3a7466242f33c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a1abe8a785030d475a7350438fd23a05c382c110"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a1fb86293eac950c2b4f5182d9e4b5d9e0982ef6"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a2d4e3d6f5ba43c9199d5d2011678f82cfd55afc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a39653cb3d97c58c44013197f4d7557577700177"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a4c74ad56ae0e94e96101a8f2ce9b1e588df5e44"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a6b34b06b00e9226f2bd961483f9da81d8de99a8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a72c3b9cc71eb7f0e0e4dabcd2dcd2b997f21c07"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a749d24bac55bc19465acc92b12244c56ca0f20d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a78009ff8b3f4d722ee0eb84795e857e74a58aea"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a7ae4b16677806d78d0016c276b6722eba8eef3c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a806f43dd48e35e75c27814c13a2a96c12449bd1"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a90a858013f90d2a94e0d62a7156ffd6848bf238"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a94bfbfe16d026b52d7f73cf78fdf7d6a6c5c58b"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a9718f029d11a9335ef596cbd42794de5b0b18b5"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/aa6e08a488d1ed00aa51f20c2477fc89e7b0a852"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/aaa038513c192fec501e4e7302156872ce2fde37"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/ac2686c095a5a1c92a1d4209a6c287778720c86d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/ac9231da4082430afe8f4d40127814c613648d8e"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/adc83b19e793491b1c6ea0fd8b46cd9f32e592fc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/aff25e569bd8c93157e08cd18ebcd896438e34c9"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/affced8168ec801de89deac663f708f0c96cf1a4"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b015dfc2f62b640d7c25adab7b38c5fcb5cb64c8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b021dd7cd98b63092685ea092df0dc01c8f63334"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b17485b8bdec8809b3819a83753ca893871df403"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b32ef51eca9c6c658e6fb75fdf96bbba066404e7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b3f0c7f6bb763af1be91d9e74eabfeb199dc1f1f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b45a1635ec526bcc890f9d735976704e516c5f19"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b50ce51a7baa28cd298ebd05b4a3b9b70f9d4370"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b5126721812b925426b30d283d2bb8b6969f230a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b57af943a3ee411bffeaa3872eec9c6fb01569a4"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b5abf6fd22ed0f852781de35d043059d0f86f3cd"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b6589fc6ab0dc82cf12099d1c2d40ab994e8410c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b6f19238d2b04c5b86a17369093dafda34f332e7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b858cb282617fb0956d960215c8e84d1ccf909c6"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b9c38fad09c80db7781fefbe51039752de575ecc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/bb407c8992800444201dccfe744dac49c0295fde"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/bc335734f73502b92d2bd3587259ce915985f0ee"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/bd113c2c8a2328e3674c680c7cff829a6c8ab924"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/be051d58015d4af1977a5dfd14ef3fd070ecc9d2"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/be461a0cd1fda052a69c3fd94f8cf5f6f86afa34"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/bef524502f8dbbc45af717ece01ec88edd7f903b"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c0b6a90832b78ed5f6d129d3640c612540527c85"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c18d315f0d35849b2aae4a47cab4608204b85d76"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c257fd6bc9e5254a733378ab4ddd39629c4a3069"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c2bf7f49d8f2e13a60af4473b3b3451b65b3aa9a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c308517acf6f7088634d491a1608240f83a3ac95"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c3badd71ef8a51b97ce93cbfe99f6778048f2128"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c482a632702ae7f532d126e70149dda4fadc3cd7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c541bb86e55b98e083b141114066f9c17d853374"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c5b50b9015b6aaedd7eb1077b1204858f837b53c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c62ef0dbd1350da9ea5a32e56672d385837643e7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c7a34d6d49e1da1ccd490350c2df3a168ed09ae8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c88c4bec8d440c56d3ea7abce39276f0927dbe0a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c92f147bfc034003ac42ed9e62a16c84102ab417"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c96b0fe6034668edf37ef0f5f391d5107953dc06"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/cac74aa5d7aab7fce0253f00c1a025980c1f9b7a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/caea0a0e6d8708cf682eaa446c344da56a7d5515"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/cc8a3dd2678d4b400ad630f402012b894e841b05"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/cd851bec7adad52f79777fb9347d5fd2f9486aa7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/ce3899b62ba3efe00eb31ddad2861ffe16a30d06"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/ce8b76fdcdbf1c951afc2b115be9acc8a6358b32"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/cec87b67871fc7a59652bc3546fbbb68e4d31e28"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/cf32406111908544e504c84731147f072cdf2fbd"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/cf35dc76bf9a2052636c1ecc92942161830dcdc3"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/cf6a5e6bfe4f15b43e411dd2782e10f1670c9767"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/cfc45616f5f0e7c25df91f6984ff5f6f1648beab"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/cff891e5858ae68d08ecc8470ca6a68c9438bfa3"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/cfff4e9d08cba81b663dd1999710008342851e19"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/crash-f21867fe8b6df0b54c13e2e6e613dce871ecf0f0"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/d1db03c626fb16c3b9cd44cc38cf40ebd355a194"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/d85ca051da784c0441898c5affbf11a2ae8f56bc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/da03f536ceaf609972aa2a699687cc6f73ac0dcd"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/da4b9237bacccdf19c0760cab7aec4a8359010b0"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/dcc45e405208d7a2db33d0b5b9da2a2f1b034957"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/dcc60d3aaa1fc4d00201a3512284fcb79b5b68ef"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/dd0567ae57bf3cc85891a1ca988c2945d9186678"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/dd890a5a32e9f0489c6c77695f2155041f00fc9a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/df88e2baf7b76ffb2e94b9da57fd8d137f44b1ef"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e00ee378c3f6e0b3cd89bd6e7517478d093f73dd"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e0c124e90d068e2a70a3e148052869033453ec58"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e0d87b1f3e54e5adc5c2205f9e14772822a25766"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e1199df649697c570db5d6b2ea09d755eddd32b7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e235f6f2a8b6a22117f1baa932fb6c69799e1136"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e3a654055a867ae62d8e68fa2c410228ac55cb6d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e3c680aac46b9c46392e3b2c43ecdcc1547f2023"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e3d134b35cc25a4861d90023c95988ec6103ddd5"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e3ff65de4b1622315c3b34b7a5e39bffb275489d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e4a4085cc31476f5de9047422851d8ccf86339df"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e4e3c69da200af932c8a79fa055d7aeea28eb1d1"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e6c3dd630428fd54834172b8fd2735fed9416da4"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e71eb37fca2070521e1e07c503c2bcd6445b35ea"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e760e6e22ae8cd1ea78fe28b5eb1f3d7b5fdc536"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e95ff1142118a2ca5b84935612a8a64d55360e64"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e9c5e2c67930513941753c2d54591c7098c82f6c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/eb26070d17ffa908204912e75cb4313835042038"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/ebc6aee49e5ae57722df86e7fa33c420f045a449"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/ed1dc11d713e7487de18ce8317b62916959206d0"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/ede3f66106acd7796da8b3942d029fe213058286"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/eed7bd220cd511b6d42ce6553019266a22a3d56a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/f090932162756b798b1a050b05e3d36a3437c4fc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/f1905eaa84ba6a3593ec6ac0486a5b42893c01f1"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/f4635fbbf765ead81a261ca152df02622e182d2c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/f46eeb1020c7c4153e742a50bc24c2c6939dab1e"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/f473451610783521d51bc08cdd920ddd97f8a71f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/f63aa599600f6e7d648c4287905e16e8e6e479fd"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/f667dcf1c06e87db2dc49d86ea1c285e796f8f8c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/f8d0f85975e49b959799cc52847110cc940b9db1"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/f92c47e35da42d79a48beff54b93cd28f55f05fb"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/f9a33bb8bd78d869fbafa402d9be58940ce2c318"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/fbf6f3156c1bd4bb701839bc0e26533bdccd1c9a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/fe2ef495a1152561572949784c16bf23abb28057"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/fe5dbbcea5ce7e2988b8c69bcfdfde8904aabc1f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/ff8fb34603c7f772768d61504954553e6bed173c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/test1.json"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/test2.json"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/test3.json"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/test4.json"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/test5.json"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/test6.json"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/test7.json"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/test8.json"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/test9.json"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/042dc4512fa3d391c5170cf3aa61e6a638f84342"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/0e9bbe975f2027e8c39c89f85f667530368e7d11"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/14b57bcbf1e17b1db1de491ef2ba3768f704b7dc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/1794310671a060eead6e5ee66ac978a18ec7e84f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/1d30b2a79afbaf2828ff42b9a9647e942ba1ab80"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/1fcf5d9c333b70596cf5ba04d1f7affdf445b971"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/23162c8a8936e20b195404c21337ee734d02a6bc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/23f3198b815ca60bdadcaae682b9f965dda387f1"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/2ef3893b43f1f60b77b59ce06a6bce9815d78eaf"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/356c3c129e203b5c74550b4209764d74b9caefce"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/3b58860f3451d3e7aad99690a8d39782ca5116fc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/47b5228404451fc9d4071fa69192514bb4ce33c1"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/636c5606fc23713a1bae88c8899c0541cfad4fd8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/63fe493b270b17426d77a27cbf3abac5b2c2794a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/655300a902b62662296a8e46bfb04fbcb07182cb"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/6b70979a70a038ff6607d6cf85485ee95baf58e6"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/7314ab3545a7535a26e0e8aad67caea5534d68b1"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/884dcaee2908ffe5f12b65b8eba81016099c4266"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/96c8d266b7dc037288ef305c996608270f72e7fb"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/975536c71ade4800415a7e9c2f1b45c35a6d5ea8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/99750aa67d30beaea8af565c829d4999aa8cb91b"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/a1f0f9b75bb354eb063d7cba4fcfa2d0b88d63de"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/a296eb3d1d436ed7df7195b10aa3c4de3896f98d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/a8b8e66050b424f1b8c07d46f868199fb7f60e38"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/af55baf8c8855e563befdf1eefbcbd46c5ddb8d2"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/b3c0bf66c2bf5d24ef1daf4cc5a9d6d5bd0e8bfd"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/ceb4e2264ba7a8d5be47d276b37ec09489e00245"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/cf4395958f5bfb46fd6f535a39657d016c75114c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/d46668372b7e20154a89409a7430a28e642afdca"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/d6fe7412a0a1d1c733160246f3fa425f4f97682a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/dns.txt"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/ea02d9fea9bad5b89cf353a0169238f584177e71"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/ec4731dddf94ed3ea92ae4d5a71f145ab6e3f6ee"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/ed2f78646f19fc47dd85ff0877c232b71913ece2"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/f6889f4a6350fea1596a3adea5cdac02bd5d1ff3"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/f6f3bd030f0d321efe7c51ca3f057de23509af67"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/f97598cff03306af3c70400608fec47268b5075d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/f9e1ec1fc642b575bc9955618b7065747f56b101"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/fe0630a3aeed2ec6f474f362e4c839478290d5c4"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/ipv4.txt"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/ipv6.txt"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/unix.txt"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
}
]
diff --git a/vsprojects/buildtests_c.sln b/vsprojects/buildtests_c.sln
index f736c86739..a582f2b719 100644
--- a/vsprojects/buildtests_c.sln
+++ b/vsprojects/buildtests_c.sln
@@ -61,6 +61,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_unsecure", "vcxproj\.\
{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "one_input_fuzzer", "vcxproj\.\one_input_fuzzer\one_input_fuzzer.vcxproj", "{3589BCA3-CB0E-58FE-2F67-C4475D5CA517}"
+ ProjectSection(myProperties) = preProject
+ lib = "True"
+ EndProjectSection
+ ProjectSection(ProjectDependencies) = postProject
+ {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
+ EndProjectSection
+EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "reconnect_server", "vcxproj\.\reconnect_server\reconnect_server.vcxproj", "{929C90AE-483F-AC80-EF93-226199F9E428}"
ProjectSection(myProperties) = preProject
lib = "True"
@@ -1058,6 +1066,18 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "connection_prefix_bad_clien
{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "head_of_line_blocking_bad_client_test", "vcxproj\test\head_of_line_blocking_bad_client_test\head_of_line_blocking_bad_client_test.vcxproj", "{23DF0572-DBF1-08DA-8EAD-8508354C90A4}"
+ ProjectSection(myProperties) = preProject
+ lib = "False"
+ EndProjectSection
+ ProjectSection(ProjectDependencies) = postProject
+ {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5}
+ {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}
+ {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}
+ {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037}
+ {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
+ EndProjectSection
+EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "headers_bad_client_test", "vcxproj\test\headers_bad_client_test\headers_bad_client_test.vcxproj", "{7819A11E-607E-F0C0-FC47-C704CF7D818C}"
ProjectSection(myProperties) = preProject
lib = "False"
@@ -1494,6 +1514,22 @@ Global
{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|Win32.Build.0 = Release-DLL|Win32
{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|x64.ActiveCfg = Release-DLL|x64
{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|x64.Build.0 = Release-DLL|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug|Win32.ActiveCfg = Debug|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug|x64.ActiveCfg = Debug|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release|Win32.ActiveCfg = Release|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release|x64.ActiveCfg = Release|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug|Win32.Build.0 = Debug|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug|x64.Build.0 = Debug|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release|Win32.Build.0 = Release|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release|x64.Build.0 = Release|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug-DLL|Win32.ActiveCfg = Debug|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug-DLL|Win32.Build.0 = Debug|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug-DLL|x64.ActiveCfg = Debug|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug-DLL|x64.Build.0 = Debug|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release-DLL|Win32.ActiveCfg = Release|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release-DLL|Win32.Build.0 = Release|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release-DLL|x64.ActiveCfg = Release|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release-DLL|x64.Build.0 = Release|x64
{929C90AE-483F-AC80-EF93-226199F9E428}.Debug|Win32.ActiveCfg = Debug|Win32
{929C90AE-483F-AC80-EF93-226199F9E428}.Debug|x64.ActiveCfg = Debug|x64
{929C90AE-483F-AC80-EF93-226199F9E428}.Release|Win32.ActiveCfg = Release|Win32
@@ -3014,6 +3050,22 @@ Global
{AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release-DLL|Win32.Build.0 = Release|Win32
{AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release-DLL|x64.ActiveCfg = Release|x64
{AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release-DLL|x64.Build.0 = Release|x64
+ {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug|Win32.ActiveCfg = Debug|Win32
+ {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug|x64.ActiveCfg = Debug|x64
+ {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release|Win32.ActiveCfg = Release|Win32
+ {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release|x64.ActiveCfg = Release|x64
+ {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug|Win32.Build.0 = Debug|Win32
+ {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug|x64.Build.0 = Debug|x64
+ {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release|Win32.Build.0 = Release|Win32
+ {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release|x64.Build.0 = Release|x64
+ {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug-DLL|Win32.ActiveCfg = Debug|Win32
+ {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug-DLL|Win32.Build.0 = Debug|Win32
+ {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug-DLL|x64.ActiveCfg = Debug|x64
+ {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug-DLL|x64.Build.0 = Debug|x64
+ {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release-DLL|Win32.ActiveCfg = Release|Win32
+ {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release-DLL|Win32.Build.0 = Release|Win32
+ {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release-DLL|x64.ActiveCfg = Release|x64
+ {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release-DLL|x64.Build.0 = Release|x64
{7819A11E-607E-F0C0-FC47-C704CF7D818C}.Debug|Win32.ActiveCfg = Debug|Win32
{7819A11E-607E-F0C0-FC47-C704CF7D818C}.Debug|x64.ActiveCfg = Debug|x64
{7819A11E-607E-F0C0-FC47-C704CF7D818C}.Release|Win32.ActiveCfg = Release|Win32
diff --git a/vsprojects/grpc.sln b/vsprojects/grpc.sln
index 851bca0d1c..650b857a88 100644
--- a/vsprojects/grpc.sln
+++ b/vsprojects/grpc.sln
@@ -61,6 +61,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_unsecure", "vcxproj\.\
{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "one_input_fuzzer", "vcxproj\.\one_input_fuzzer\one_input_fuzzer.vcxproj", "{3589BCA3-CB0E-58FE-2F67-C4475D5CA517}"
+ ProjectSection(myProperties) = preProject
+ lib = "True"
+ EndProjectSection
+ ProjectSection(ProjectDependencies) = postProject
+ {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
+ EndProjectSection
+EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "reconnect_server", "vcxproj\.\reconnect_server\reconnect_server.vcxproj", "{929C90AE-483F-AC80-EF93-226199F9E428}"
ProjectSection(myProperties) = preProject
lib = "True"
@@ -298,6 +306,22 @@ Global
{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|Win32.Build.0 = Release-DLL|Win32
{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|x64.ActiveCfg = Release-DLL|x64
{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|x64.Build.0 = Release-DLL|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug|Win32.ActiveCfg = Debug|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug|x64.ActiveCfg = Debug|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release|Win32.ActiveCfg = Release|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release|x64.ActiveCfg = Release|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug|Win32.Build.0 = Debug|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug|x64.Build.0 = Debug|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release|Win32.Build.0 = Release|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release|x64.Build.0 = Release|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug-DLL|Win32.ActiveCfg = Debug|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug-DLL|Win32.Build.0 = Debug|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug-DLL|x64.ActiveCfg = Debug|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug-DLL|x64.Build.0 = Debug|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release-DLL|Win32.ActiveCfg = Release|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release-DLL|Win32.Build.0 = Release|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release-DLL|x64.ActiveCfg = Release|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release-DLL|x64.Build.0 = Release|x64
{929C90AE-483F-AC80-EF93-226199F9E428}.Debug|Win32.ActiveCfg = Debug|Win32
{929C90AE-483F-AC80-EF93-226199F9E428}.Debug|x64.ActiveCfg = Debug|x64
{929C90AE-483F-AC80-EF93-226199F9E428}.Release|Win32.ActiveCfg = Release|Win32
diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj b/vsprojects/vcxproj/grpc/grpc.vcxproj
index 93d5a9b02f..10a87f7ae8 100644
--- a/vsprojects/vcxproj/grpc/grpc.vcxproj
+++ b/vsprojects/vcxproj/grpc/grpc.vcxproj
@@ -282,6 +282,12 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc\status.h" />
</ItemGroup>
<ItemGroup>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\aggregation.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\census_interface.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\census_rpc_stats.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\grpc_filter.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\mlog.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\rpc_metric_id.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\alpn.h" />
@@ -305,11 +311,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\stream_map.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\timeout_encoding.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\varint.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\aggregation.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\grpc_filter.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\grpc_plugin.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\mlog.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\rpc_metric_id.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_args.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_stack.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_stack_builder.h" />
@@ -320,6 +321,7 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\http_client_filter.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\http_server_filter.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\subchannel_call_holder.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\client_channel_factory.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\client_config.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\connector.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\initial_connect_string.h" />
@@ -329,10 +331,7 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_factory.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\dns_resolver.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\sockaddr_resolver.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_factory.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_index.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\uri_parser.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\compression\algorithm_metadata.h" />
@@ -344,17 +343,16 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\closure.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\fd_posix.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\iocp_windows.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_internal.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_posix.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_posix.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_posix.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_windows.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address.h" />
@@ -391,8 +389,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\security\secure_endpoint.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\security\security_connector.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\security\security_context.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\statistics\census_interface.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\statistics\census_rpc_stats.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\surface\api_trace.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\surface\call.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\surface\call_test_only.h" />
@@ -423,6 +419,24 @@
<ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb_encode.h" />
</ItemGroup>
<ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\context.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_context.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_filter.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_plugin.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\initialize.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\mlog.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\operation.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\placeholders.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\tracing.c">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.c">
@@ -431,6 +445,10 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\round_robin\round_robin.c">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\native\dns_resolver.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\sockaddr\sockaddr_resolver.c">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\client\insecure\channel_create.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\client\secure\secure_channel_create.c">
@@ -481,24 +499,6 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\writing.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\context.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_context.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_filter.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_plugin.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\initialize.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\mlog.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\operation.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\placeholders.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\tracing.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\channel_args.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\channel_stack.c">
@@ -517,6 +517,8 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\subchannel_call_holder.c">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\client_channel_factory.c">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\client_config.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\connector.c">
@@ -537,14 +539,8 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\dns_resolver.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\sockaddr_resolver.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_factory.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_index.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\uri_parser.c">
@@ -571,12 +567,14 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_windows.c">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.c">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\fd_posix.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iocp_windows.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr.c">
@@ -585,14 +583,6 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_windows.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_multipoller_with_epoll.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_multipoller_with_poll_posix.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_posix.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_posix.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_windows.c">
diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
index 3e5032db0e..c32f03358c 100644
--- a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
@@ -1,6 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\context.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_context.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_filter.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_plugin.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\initialize.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\mlog.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\operation.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\placeholders.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\tracing.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.c">
<Filter>src\core\ext\lb_policy\grpclb</Filter>
</ClCompile>
@@ -13,6 +40,12 @@
<ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\round_robin\round_robin.c">
<Filter>src\core\ext\lb_policy\round_robin</Filter>
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\native\dns_resolver.c">
+ <Filter>src\core\ext\resolver\dns\native</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\sockaddr\sockaddr_resolver.c">
+ <Filter>src\core\ext\resolver\sockaddr</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\client\insecure\channel_create.c">
<Filter>src\core\ext\transport\chttp2\client\insecure</Filter>
</ClCompile>
@@ -88,33 +121,6 @@
<ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\writing.c">
<Filter>src\core\ext\transport\chttp2\transport</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\context.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_context.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_filter.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_plugin.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\initialize.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\mlog.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\operation.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\placeholders.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\tracing.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\channel_args.c">
<Filter>src\core\lib\channel</Filter>
</ClCompile>
@@ -142,6 +148,9 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\subchannel_call_holder.c">
<Filter>src\core\lib\channel</Filter>
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\client_channel_factory.c">
+ <Filter>src\core\lib\client_config</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\client_config.c">
<Filter>src\core\lib\client_config</Filter>
</ClCompile>
@@ -172,18 +181,9 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.c">
<Filter>src\core\lib\client_config</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\dns_resolver.c">
- <Filter>src\core\lib\client_config\resolvers</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\sockaddr_resolver.c">
- <Filter>src\core\lib\client_config\resolvers</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.c">
<Filter>src\core\lib\client_config</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_factory.c">
- <Filter>src\core\lib\client_config</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_index.c">
<Filter>src\core\lib\client_config</Filter>
</ClCompile>
@@ -223,13 +223,16 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_windows.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\fd_posix.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.c">
+ <Filter>src\core\lib\iomgr</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iocp_windows.c">
@@ -244,18 +247,6 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_windows.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_multipoller_with_epoll.c">
- <Filter>src\core\lib\iomgr</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_multipoller_with_poll_posix.c">
- <Filter>src\core\lib\iomgr</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_posix.c">
- <Filter>src\core\lib\iomgr</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_posix.c">
- <Filter>src\core\lib\iomgr</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
@@ -539,6 +530,24 @@
</ClInclude>
</ItemGroup>
<ItemGroup>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\aggregation.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\census_interface.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\census_rpc_stats.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\grpc_filter.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\mlog.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\rpc_metric_id.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.h">
<Filter>src\core\ext\lb_policy\grpclb</Filter>
</ClInclude>
@@ -608,21 +617,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\varint.h">
<Filter>src\core\ext\transport\chttp2\transport</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\aggregation.h">
- <Filter>src\core\lib\census</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\grpc_filter.h">
- <Filter>src\core\lib\census</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\grpc_plugin.h">
- <Filter>src\core\lib\census</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\mlog.h">
- <Filter>src\core\lib\census</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\rpc_metric_id.h">
- <Filter>src\core\lib\census</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_args.h">
<Filter>src\core\lib\channel</Filter>
</ClInclude>
@@ -653,6 +647,9 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\subchannel_call_holder.h">
<Filter>src\core\lib\channel</Filter>
</ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\client_channel_factory.h">
+ <Filter>src\core\lib\client_config</Filter>
+ </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\client_config.h">
<Filter>src\core\lib\client_config</Filter>
</ClInclude>
@@ -680,18 +677,9 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.h">
<Filter>src\core\lib\client_config</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\dns_resolver.h">
- <Filter>src\core\lib\client_config\resolvers</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\sockaddr_resolver.h">
- <Filter>src\core\lib\client_config\resolvers</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.h">
<Filter>src\core\lib\client_config</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_factory.h">
- <Filter>src\core\lib\client_config</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_index.h">
<Filter>src\core\lib\client_config</Filter>
</ClInclude>
@@ -725,13 +713,16 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.h">
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.h">
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\fd_posix.h">
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.h">
+ <Filter>src\core\lib\iomgr</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\iocp_windows.h">
@@ -749,15 +740,9 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_posix.h">
- <Filter>src\core\lib\iomgr</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_posix.h">
- <Filter>src\core\lib\iomgr</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
@@ -866,12 +851,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\security\security_context.h">
<Filter>src\core\lib\security</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\statistics\census_interface.h">
- <Filter>src\core\lib\statistics</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\statistics\census_rpc_stats.h">
- <Filter>src\core\lib\statistics</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\surface\api_trace.h">
<Filter>src\core\lib\surface</Filter>
</ClInclude>
@@ -980,6 +959,9 @@
<Filter Include="src\core\ext">
<UniqueIdentifier>{3f32a58f-394f-5f13-06aa-6cc52cc2daaf}</UniqueIdentifier>
</Filter>
+ <Filter Include="src\core\ext\census">
+ <UniqueIdentifier>{9bf70bd2-f553-11b2-c237-abd148971eea}</UniqueIdentifier>
+ </Filter>
<Filter Include="src\core\ext\lb_policy">
<UniqueIdentifier>{030f00ff-6c54-76c8-12df-37e3008335d1}</UniqueIdentifier>
</Filter>
@@ -1004,6 +986,18 @@
<Filter Include="src\core\ext\lb_policy\round_robin">
<UniqueIdentifier>{2472d352-cf94-f317-646e-72b769cea846}</UniqueIdentifier>
</Filter>
+ <Filter Include="src\core\ext\resolver">
+ <UniqueIdentifier>{6bfa6808-9dcb-8990-deed-5cf58a149dda}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\resolver\dns">
+ <UniqueIdentifier>{e8fe6413-ab8c-48d5-2c7b-aa79e3db4ab2}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\resolver\dns\native">
+ <UniqueIdentifier>{94e34be0-29d2-1731-3c1e-617ec4986acb}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\resolver\sockaddr">
+ <UniqueIdentifier>{98c1ccc2-2c91-a3d2-6040-a2e15993d51a}</UniqueIdentifier>
+ </Filter>
<Filter Include="src\core\ext\transport">
<UniqueIdentifier>{e3abfd0a-064e-0f2f-c8e8-7c5a7e98142a}</UniqueIdentifier>
</Filter>
@@ -1034,18 +1028,12 @@
<Filter Include="src\core\lib">
<UniqueIdentifier>{5b2ded3f-84a5-f6b4-2060-286c7d1dc945}</UniqueIdentifier>
</Filter>
- <Filter Include="src\core\lib\census">
- <UniqueIdentifier>{f4108884-98c3-ac2e-c669-83cd41343975}</UniqueIdentifier>
- </Filter>
<Filter Include="src\core\lib\channel">
<UniqueIdentifier>{1931b044-90f3-cd68-b5f8-23be77ca8efc}</UniqueIdentifier>
</Filter>
<Filter Include="src\core\lib\client_config">
<UniqueIdentifier>{2f3260de-be57-d18d-6882-61d115baa159}</UniqueIdentifier>
</Filter>
- <Filter Include="src\core\lib\client_config\resolvers">
- <UniqueIdentifier>{b9d8db6c-2c68-1c90-fe5e-37da90f47ae6}</UniqueIdentifier>
- </Filter>
<Filter Include="src\core\lib\compression">
<UniqueIdentifier>{dadf7fe9-3f15-d431-e4f6-f987b090536c}</UniqueIdentifier>
</Filter>
@@ -1064,9 +1052,6 @@
<Filter Include="src\core\lib\security">
<UniqueIdentifier>{c4661d64-349f-01c1-1ba8-0602f9047595}</UniqueIdentifier>
</Filter>
- <Filter Include="src\core\lib\statistics">
- <UniqueIdentifier>{4dc3c48b-e931-ed47-ffa2-b4ea3a7956ec}</UniqueIdentifier>
- </Filter>
<Filter Include="src\core\lib\surface">
<UniqueIdentifier>{a21971fb-304f-da08-b1b2-7bd8df8ac373}</UniqueIdentifier>
</Filter>
diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
index 98a6bee170..1b064aad2e 100644
--- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
+++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
@@ -272,6 +272,12 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc\status.h" />
</ItemGroup>
<ItemGroup>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\aggregation.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\census_interface.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\census_rpc_stats.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\grpc_filter.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\mlog.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\rpc_metric_id.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\alpn.h" />
@@ -295,11 +301,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\stream_map.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\timeout_encoding.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\varint.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\aggregation.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\grpc_filter.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\grpc_plugin.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\mlog.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\rpc_metric_id.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_args.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_stack.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_stack_builder.h" />
@@ -310,6 +311,7 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\http_client_filter.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\http_server_filter.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\subchannel_call_holder.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\client_channel_factory.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\client_config.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\connector.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\initial_connect_string.h" />
@@ -319,10 +321,7 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_factory.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\dns_resolver.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\sockaddr_resolver.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_factory.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_index.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\uri_parser.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\compression\algorithm_metadata.h" />
@@ -334,17 +333,16 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\closure.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\fd_posix.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\iocp_windows.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_internal.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_posix.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_posix.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_posix.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_windows.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address.h" />
@@ -372,8 +370,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\json\json_common.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\json\json_reader.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\json\json_writer.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\statistics\census_interface.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\statistics\census_rpc_stats.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\surface\api_trace.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\surface\call.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\surface\call_test_only.h" />
@@ -399,6 +395,24 @@
<ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb_encode.h" />
</ItemGroup>
<ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\context.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_context.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_filter.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_plugin.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\initialize.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\mlog.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\operation.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\placeholders.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\tracing.c">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.c">
@@ -407,6 +421,10 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\round_robin\round_robin.c">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\native\dns_resolver.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\sockaddr\sockaddr_resolver.c">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\client\insecure\channel_create.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\server\insecure\server_chttp2.c">
@@ -453,24 +471,6 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\writing.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\context.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_context.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_filter.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_plugin.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\initialize.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\mlog.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\operation.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\placeholders.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\tracing.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\channel_args.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\channel_stack.c">
@@ -489,6 +489,8 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\subchannel_call_holder.c">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\client_channel_factory.c">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\client_config.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\connector.c">
@@ -509,14 +511,8 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\dns_resolver.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\sockaddr_resolver.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_factory.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_index.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\uri_parser.c">
@@ -541,12 +537,14 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_windows.c">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.c">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\fd_posix.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iocp_windows.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr.c">
@@ -555,14 +553,6 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_windows.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_multipoller_with_epoll.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_multipoller_with_poll_posix.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_posix.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_posix.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_windows.c">
diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
index 81c8a874fc..9fd878bc2c 100644
--- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
@@ -1,6 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\context.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_context.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_filter.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_plugin.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\initialize.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\mlog.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\operation.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\placeholders.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\tracing.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.c">
<Filter>src\core\ext\lb_policy\grpclb</Filter>
</ClCompile>
@@ -13,6 +40,12 @@
<ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\round_robin\round_robin.c">
<Filter>src\core\ext\lb_policy\round_robin</Filter>
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\native\dns_resolver.c">
+ <Filter>src\core\ext\resolver\dns\native</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\sockaddr\sockaddr_resolver.c">
+ <Filter>src\core\ext\resolver\sockaddr</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\client\insecure\channel_create.c">
<Filter>src\core\ext\transport\chttp2\client\insecure</Filter>
</ClCompile>
@@ -82,33 +115,6 @@
<ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\writing.c">
<Filter>src\core\ext\transport\chttp2\transport</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\context.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_context.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_filter.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_plugin.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\initialize.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\mlog.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\operation.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\placeholders.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\tracing.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\channel_args.c">
<Filter>src\core\lib\channel</Filter>
</ClCompile>
@@ -136,6 +142,9 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\subchannel_call_holder.c">
<Filter>src\core\lib\channel</Filter>
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\client_channel_factory.c">
+ <Filter>src\core\lib\client_config</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\client_config.c">
<Filter>src\core\lib\client_config</Filter>
</ClCompile>
@@ -166,18 +175,9 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.c">
<Filter>src\core\lib\client_config</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\dns_resolver.c">
- <Filter>src\core\lib\client_config\resolvers</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\sockaddr_resolver.c">
- <Filter>src\core\lib\client_config\resolvers</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.c">
<Filter>src\core\lib\client_config</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_factory.c">
- <Filter>src\core\lib\client_config</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_index.c">
<Filter>src\core\lib\client_config</Filter>
</ClCompile>
@@ -214,13 +214,16 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_windows.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\fd_posix.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.c">
+ <Filter>src\core\lib\iomgr</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iocp_windows.c">
@@ -235,18 +238,6 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_windows.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_multipoller_with_epoll.c">
- <Filter>src\core\lib\iomgr</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_multipoller_with_poll_posix.c">
- <Filter>src\core\lib\iomgr</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_posix.c">
- <Filter>src\core\lib\iomgr</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_posix.c">
- <Filter>src\core\lib\iomgr</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
@@ -476,6 +467,24 @@
</ClInclude>
</ItemGroup>
<ItemGroup>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\aggregation.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\census_interface.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\census_rpc_stats.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\grpc_filter.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\mlog.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\rpc_metric_id.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.h">
<Filter>src\core\ext\lb_policy\grpclb</Filter>
</ClInclude>
@@ -545,21 +554,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\varint.h">
<Filter>src\core\ext\transport\chttp2\transport</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\aggregation.h">
- <Filter>src\core\lib\census</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\grpc_filter.h">
- <Filter>src\core\lib\census</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\grpc_plugin.h">
- <Filter>src\core\lib\census</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\mlog.h">
- <Filter>src\core\lib\census</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\rpc_metric_id.h">
- <Filter>src\core\lib\census</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_args.h">
<Filter>src\core\lib\channel</Filter>
</ClInclude>
@@ -590,6 +584,9 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\subchannel_call_holder.h">
<Filter>src\core\lib\channel</Filter>
</ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\client_channel_factory.h">
+ <Filter>src\core\lib\client_config</Filter>
+ </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\client_config.h">
<Filter>src\core\lib\client_config</Filter>
</ClInclude>
@@ -617,18 +614,9 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.h">
<Filter>src\core\lib\client_config</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\dns_resolver.h">
- <Filter>src\core\lib\client_config\resolvers</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\sockaddr_resolver.h">
- <Filter>src\core\lib\client_config\resolvers</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.h">
<Filter>src\core\lib\client_config</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_factory.h">
- <Filter>src\core\lib\client_config</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_index.h">
<Filter>src\core\lib\client_config</Filter>
</ClInclude>
@@ -662,13 +650,16 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.h">
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.h">
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\fd_posix.h">
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.h">
+ <Filter>src\core\lib\iomgr</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\iocp_windows.h">
@@ -686,15 +677,9 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_posix.h">
- <Filter>src\core\lib\iomgr</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_posix.h">
- <Filter>src\core\lib\iomgr</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
@@ -776,12 +761,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\json\json_writer.h">
<Filter>src\core\lib\json</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\statistics\census_interface.h">
- <Filter>src\core\lib\statistics</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\statistics\census_rpc_stats.h">
- <Filter>src\core\lib\statistics</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\surface\api_trace.h">
<Filter>src\core\lib\surface</Filter>
</ClInclude>
@@ -875,6 +854,9 @@
<Filter Include="src\core\ext">
<UniqueIdentifier>{82f86e8c-00a4-f566-d235-670fc629798d}</UniqueIdentifier>
</Filter>
+ <Filter Include="src\core\ext\census">
+ <UniqueIdentifier>{3f21cd12-b8b9-18f8-8780-e21bbe2285d0}</UniqueIdentifier>
+ </Filter>
<Filter Include="src\core\ext\lb_policy">
<UniqueIdentifier>{a23781d2-27e4-7cb0-12cd-59782ecb21ce}</UniqueIdentifier>
</Filter>
@@ -899,6 +881,18 @@
<Filter Include="src\core\ext\lb_policy\round_robin">
<UniqueIdentifier>{e5fc1091-5d60-404f-775b-686ef4b3266f}</UniqueIdentifier>
</Filter>
+ <Filter Include="src\core\ext\resolver">
+ <UniqueIdentifier>{88c78e27-267a-95df-07c5-50e5fbc2f40c}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\resolver\dns">
+ <UniqueIdentifier>{2e0a9b4f-6394-7c0e-6e5a-0f8b3ee29b41}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\resolver\dns\native">
+ <UniqueIdentifier>{3d5398c8-928b-9096-8eb7-f8c40ee68c4d}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\resolver\sockaddr">
+ <UniqueIdentifier>{71686ed0-fbf9-02a4-d65a-a73f7dc4e2be}</UniqueIdentifier>
+ </Filter>
<Filter Include="src\core\ext\transport">
<UniqueIdentifier>{967c89fe-c97c-27e2-aac0-9ba5854cb5fa}</UniqueIdentifier>
</Filter>
@@ -923,18 +917,12 @@
<Filter Include="src\core\lib">
<UniqueIdentifier>{8bd5b461-bff8-6aa8-b5a6-85da2834eb8a}</UniqueIdentifier>
</Filter>
- <Filter Include="src\core\lib\census">
- <UniqueIdentifier>{19582d5a-dab7-9dc1-c7e9-cc147fd52e5f}</UniqueIdentifier>
- </Filter>
<Filter Include="src\core\lib\channel">
<UniqueIdentifier>{fb964f3d-a59c-a7ba-fee5-6072dbb94a7b}</UniqueIdentifier>
</Filter>
<Filter Include="src\core\lib\client_config">
<UniqueIdentifier>{29ca2974-89e4-1a74-3e4d-0d63e2f77566}</UniqueIdentifier>
</Filter>
- <Filter Include="src\core\lib\client_config\resolvers">
- <UniqueIdentifier>{2d959ef9-9703-dc92-a56f-9fe136dadfb9}</UniqueIdentifier>
- </Filter>
<Filter Include="src\core\lib\compression">
<UniqueIdentifier>{b88002e9-185e-4e64-49f5-2d8989ce87f6}</UniqueIdentifier>
</Filter>
@@ -950,9 +938,6 @@
<Filter Include="src\core\lib\json">
<UniqueIdentifier>{681cdaeb-c47f-8853-d985-bf13c2873947}</UniqueIdentifier>
</Filter>
- <Filter Include="src\core\lib\statistics">
- <UniqueIdentifier>{d0ab6d54-ae25-fc49-3656-91d9db57366a}</UniqueIdentifier>
- </Filter>
<Filter Include="src\core\lib\surface">
<UniqueIdentifier>{506dc3b3-d884-2b59-0dfa-57ed6affa2d3}</UniqueIdentifier>
</Filter>
diff --git a/vsprojects/vcxproj/one_input_fuzzer/one_input_fuzzer.vcxproj b/vsprojects/vcxproj/one_input_fuzzer/one_input_fuzzer.vcxproj
new file mode 100644
index 0000000000..ad343e0b4d
--- /dev/null
+++ b/vsprojects/vcxproj/one_input_fuzzer/one_input_fuzzer.vcxproj
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{3589BCA3-CB0E-58FE-2F67-C4475D5CA517}</ProjectGuid>
+ <IgnoreWarnIntDirInTempDetected>true</IgnoreWarnIntDirInTempDetected>
+ <IntDir>$(SolutionDir)IntDir\$(MSBuildProjectName)\</IntDir>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '10.0'" Label="Configuration">
+ <PlatformToolset>v100</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '11.0'" Label="Configuration">
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration">
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration">
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(SolutionDir)\..\vsprojects\global.props" />
+ <Import Project="$(SolutionDir)\..\vsprojects\winsock.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)'=='Debug'">
+ <TargetName>one_input_fuzzer</TargetName>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Release'">
+ <TargetName>one_input_fuzzer</TargetName>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\test\core\util\one_corpus_entry_fuzzer.c">
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\gpr\gpr.vcxproj">
+ <Project>{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+ <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+ <PropertyGroup>
+ <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+ </PropertyGroup>
+ </Target>
+</Project>
+
diff --git a/vsprojects/vcxproj/one_input_fuzzer/one_input_fuzzer.vcxproj.filters b/vsprojects/vcxproj/one_input_fuzzer/one_input_fuzzer.vcxproj.filters
new file mode 100644
index 0000000000..8935dfab0f
--- /dev/null
+++ b/vsprojects/vcxproj/one_input_fuzzer/one_input_fuzzer.vcxproj.filters
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\test\core\util\one_corpus_entry_fuzzer.c">
+ <Filter>test\core\util</Filter>
+ </ClCompile>
+ </ItemGroup>
+
+ <ItemGroup>
+ <Filter Include="test">
+ <UniqueIdentifier>{178c17dc-766b-aa84-e928-d6bd0e456ff9}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="test\core">
+ <UniqueIdentifier>{f08c2f86-ff65-4ce8-1ae6-e40fae0cef67}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="test\core\util">
+ <UniqueIdentifier>{17c672ec-2cce-5636-14c8-4812cd2e1b9a}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
+
diff --git a/vsprojects/vcxproj/test/head_of_line_blocking_bad_client_test/head_of_line_blocking_bad_client_test.vcxproj b/vsprojects/vcxproj/test/head_of_line_blocking_bad_client_test/head_of_line_blocking_bad_client_test.vcxproj
new file mode 100644
index 0000000000..fb10f95574
--- /dev/null
+++ b/vsprojects/vcxproj/test/head_of_line_blocking_bad_client_test/head_of_line_blocking_bad_client_test.vcxproj
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\1.0.204.1.props')" />
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{23DF0572-DBF1-08DA-8EAD-8508354C90A4}</ProjectGuid>
+ <IgnoreWarnIntDirInTempDetected>true</IgnoreWarnIntDirInTempDetected>
+ <IntDir>$(SolutionDir)IntDir\$(MSBuildProjectName)\</IntDir>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '10.0'" Label="Configuration">
+ <PlatformToolset>v100</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '11.0'" Label="Configuration">
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration">
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration">
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(SolutionDir)\..\vsprojects\global.props" />
+ <Import Project="$(SolutionDir)\..\vsprojects\openssl.props" />
+ <Import Project="$(SolutionDir)\..\vsprojects\winsock.props" />
+ <Import Project="$(SolutionDir)\..\vsprojects\zlib.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)'=='Debug'">
+ <TargetName>head_of_line_blocking_bad_client_test</TargetName>
+ <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib>
+ <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib>
+ <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl>
+ <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Release'">
+ <TargetName>head_of_line_blocking_bad_client_test</TargetName>
+ <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib>
+ <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib>
+ <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl>
+ <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\test\core\bad_client\tests\head_of_line_blocking.c">
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\test/bad_client\bad_client_test\bad_client_test.vcxproj">
+ <Project>{BA67B418-B699-E41A-9CC4-0279C49481A5}</Project>
+ </ProjectReference>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc_test_util_unsecure\grpc_test_util_unsecure.vcxproj">
+ <Project>{0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}</Project>
+ </ProjectReference>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc_unsecure\grpc_unsecure.vcxproj">
+ <Project>{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}</Project>
+ </ProjectReference>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\gpr_test_util\gpr_test_util.vcxproj">
+ <Project>{EAB0A629-17A9-44DB-B5FF-E91A721FE037}</Project>
+ </ProjectReference>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\gpr\gpr.vcxproj">
+ <Project>{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="packages.config" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies\grpc.dependencies.zlib.targets')" />
+ <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies\grpc.dependencies.zlib.targets')" />
+ <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies\grpc.dependencies.openssl.targets')" />
+ <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies\grpc.dependencies.openssl.targets')" />
+ </ImportGroup>
+ <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+ <PropertyGroup>
+ <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+ </PropertyGroup>
+ <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets')" />
+ <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets')" />
+ <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets')" />
+ <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props')" />
+ <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets')" />
+ </Target>
+</Project>
+
diff --git a/vsprojects/vcxproj/test/head_of_line_blocking_bad_client_test/head_of_line_blocking_bad_client_test.vcxproj.filters b/vsprojects/vcxproj/test/head_of_line_blocking_bad_client_test/head_of_line_blocking_bad_client_test.vcxproj.filters
new file mode 100644
index 0000000000..c3609f0de4
--- /dev/null
+++ b/vsprojects/vcxproj/test/head_of_line_blocking_bad_client_test/head_of_line_blocking_bad_client_test.vcxproj.filters
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\test\core\bad_client\tests\head_of_line_blocking.c">
+ <Filter>test\core\bad_client\tests</Filter>
+ </ClCompile>
+ </ItemGroup>
+
+ <ItemGroup>
+ <Filter Include="test">
+ <UniqueIdentifier>{c7d7f2b5-9afd-5668-b11f-ceb3a3503569}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="test\core">
+ <UniqueIdentifier>{3175d310-96bd-0c78-72e3-b5985873fa82}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="test\core\bad_client">
+ <UniqueIdentifier>{d7e592e2-acda-4572-59b7-20845fb05bd5}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="test\core\bad_client\tests">
+ <UniqueIdentifier>{1fa3207b-dc88-d316-7c13-9ac70ddc850e}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
+