aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Julien Boeuf <jboeuf@google.com>2016-05-18 22:12:43 -0700
committerGravatar Julien Boeuf <jboeuf@google.com>2016-05-18 22:12:43 -0700
commita4880374f9e49ce648cdf3b7512804613280075e (patch)
tree8ee37af5eab830def6f5f196e5f79b55169f12f5
parentfc1ed17fdea8ba574586cfc479f77de3b200f1c6 (diff)
parenta71b0afdc2916e85c03d73eb9fbedd3d9070676a (diff)
Merge branch 'master' of github.com:grpc/grpc into credentials_refactoring
-rw-r--r--BUILD20
-rw-r--r--Makefile64
-rw-r--r--binding.gyp4
-rw-r--r--build.yaml37
-rw-r--r--config.m46
-rw-r--r--examples/csharp/helloworld/generate_protos.bat29
-rw-r--r--examples/csharp/route_guide/generate_protos.bat29
-rw-r--r--examples/node/README.md10
-rw-r--r--examples/node/dynamic_codegen/README.md1
-rw-r--r--examples/node/dynamic_codegen/greeter_client.js (renamed from examples/node/greeter_client.js)2
-rw-r--r--examples/node/dynamic_codegen/greeter_server.js (renamed from examples/node/greeter_server.js)2
-rw-r--r--examples/node/dynamic_codegen/route_guide/README.md (renamed from examples/node/route_guide/README.md)0
-rw-r--r--examples/node/dynamic_codegen/route_guide/route_guide_client.js (renamed from examples/node/route_guide/route_guide_client.js)2
-rw-r--r--examples/node/dynamic_codegen/route_guide/route_guide_db.json (renamed from examples/node/route_guide/route_guide_db.json)0
-rw-r--r--examples/node/dynamic_codegen/route_guide/route_guide_server.js (renamed from examples/node/route_guide/route_guide_server.js)2
-rw-r--r--examples/node/package.json3
-rw-r--r--examples/node/static_codegen/README.md7
-rw-r--r--examples/node/static_codegen/greeter_client.js55
-rw-r--r--examples/node/static_codegen/greeter_server.js59
-rw-r--r--examples/node/static_codegen/helloworld_grpc_pb.js44
-rw-r--r--examples/node/static_codegen/helloworld_pb.js332
-rw-r--r--examples/node/static_codegen/route_guide/README.md5
-rw-r--r--examples/node/static_codegen/route_guide/route_guide_client.js247
-rw-r--r--examples/node/static_codegen/route_guide/route_guide_db.json601
-rw-r--r--examples/node/static_codegen/route_guide/route_guide_grpc_pb.js110
-rw-r--r--examples/node/static_codegen/route_guide/route_guide_pb.js1033
-rw-r--r--examples/node/static_codegen/route_guide/route_guide_server.js261
-rw-r--r--gRPC.podspec9
-rw-r--r--grpc.def1
-rwxr-xr-xgrpc.gemspec7
-rw-r--r--include/grpc++/impl/codegen/call.h7
-rw-r--r--include/grpc++/impl/codegen/proto_utils.h11
-rw-r--r--include/grpc++/impl/server_builder_option.h8
-rw-r--r--include/grpc++/impl/server_builder_plugin.h67
-rw-r--r--include/grpc++/impl/server_initializer.h (renamed from src/ruby/ext/grpc/rb_signal.c)58
-rw-r--r--include/grpc++/server.h8
-rw-r--r--include/grpc++/server_builder.h13
-rw-r--r--include/grpc/grpc_cronet.h51
-rw-r--r--include/grpc/impl/codegen/compression_types.h29
-rw-r--r--package.json2
-rw-r--r--package.xml45
-rw-r--r--src/compiler/python_generator.cc110
-rw-r--r--src/core/ext/client_config/subchannel_call_holder.c1
-rw-r--r--src/core/ext/transport/cronet/client/secure/cronet_channel_create.c69
-rw-r--r--src/core/ext/transport/cronet/transport/cronet_api_dummy.c85
-rw-r--r--src/core/ext/transport/cronet/transport/cronet_transport.c640
-rw-r--r--src/core/lib/channel/channel_args.c9
-rw-r--r--src/core/lib/channel/compress_filter.c12
-rw-r--r--src/core/lib/channel/compress_filter.h2
-rw-r--r--src/core/lib/http/parser.c3
-rw-r--r--src/core/lib/iomgr/ev_poll_and_epoll_posix.c2
-rw-r--r--src/core/lib/iomgr/ev_poll_posix.c1212
-rw-r--r--src/core/lib/iomgr/ev_poll_posix.h41
-rw-r--r--src/core/lib/iomgr/ev_posix.c93
-rw-r--r--src/core/lib/iomgr/exec_ctx.c17
-rw-r--r--src/core/lib/iomgr/exec_ctx.h29
-rw-r--r--src/core/lib/iomgr/iomgr_posix.c6
-rw-r--r--src/core/lib/iomgr/udp_server.c18
-rw-r--r--src/core/lib/iomgr/udp_server.h6
-rw-r--r--src/core/lib/support/string_util_win32.c2
-rw-r--r--src/core/lib/surface/byte_buffer_reader.c19
-rw-r--r--src/core/lib/surface/call.c32
-rw-r--r--src/core/lib/surface/init.c2
-rw-r--r--src/cpp/common/channel_arguments.cc2
-rw-r--r--src/cpp/server/server.cc19
-rw-r--r--src/cpp/server/server_builder.cc38
-rw-r--r--src/csharp/Grpc.Core.Tests/ChannelTest.cs39
-rw-r--r--src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs51
-rw-r--r--src/csharp/Grpc.Core/Channel.cs34
-rw-r--r--src/csharp/Grpc.Core/Internal/AsyncCall.cs15
-rw-r--r--src/csharp/Grpc.Core/Internal/AsyncCallBase.cs2
-rw-r--r--src/csharp/Grpc.Examples.Tests/MathClientServerTests.cs2
-rw-r--r--src/csharp/Grpc.Examples/MathExamples.cs38
-rw-r--r--src/csharp/Grpc.Examples/MathServiceImpl.cs29
-rw-r--r--src/csharp/Grpc.IntegrationTesting/InteropClient.cs4
-rw-r--r--src/csharp/Grpc.IntegrationTesting/StressTestClient.cs2
-rw-r--r--src/csharp/build_packages.bat29
-rw-r--r--src/csharp/buildall.bat29
-rwxr-xr-xsrc/node/tools/bin/protoc.js7
-rwxr-xr-xsrc/node/tools/bin/protoc_plugin.js8
-rw-r--r--src/php/ext/grpc/call.c11
-rw-r--r--src/php/ext/grpc/call.h4
-rw-r--r--src/php/ext/grpc/call_credentials.c12
-rw-r--r--src/php/ext/grpc/channel.c4
-rwxr-xr-xsrc/php/ext/grpc/channel.h2
-rw-r--r--src/php/ext/grpc/channel_credentials.c8
-rw-r--r--src/php/ext/grpc/server.c8
-rw-r--r--src/php/ext/grpc/server_credentials.c4
-rw-r--r--src/php/ext/grpc/timeval.c14
-rwxr-xr-xsrc/php/ext/grpc/timeval.h2
-rw-r--r--src/proto/grpc/reflection/v1alpha/reflection.proto151
-rw-r--r--src/proto/grpc/testing/echo_messages.proto7
-rw-r--r--src/python/grpcio/grpc/_adapter/_low.py20
-rw-r--r--src/python/grpcio/grpc/_adapter/_types.py4
-rw-r--r--src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi38
-rw-r--r--src/python/grpcio/grpc/_cython/_cygrpc/records.pxd.pxi4
-rw-r--r--src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi74
-rw-r--r--src/python/grpcio/grpc/_cython/imports.generated.c2
-rw-r--r--src/python/grpcio/grpc/_cython/imports.generated.h13
-rw-r--r--src/python/grpcio/grpc/beta/interfaces.py2
-rw-r--r--src/python/grpcio/grpc_core_dependencies.py4
-rw-r--r--src/python/grpcio/tests/health_check/__init__.py28
-rw-r--r--src/python/grpcio/tests/health_check/_health_servicer_test.py75
-rw-r--r--src/python/grpcio/tests/protoc_plugin/beta_python_plugin_test.py295
-rw-r--r--src/python/grpcio/tests/protoc_plugin/protos/payload/test_payload.proto51
-rw-r--r--src/python/grpcio/tests/protoc_plugin/protos/requests/r/test_requests.proto77
-rw-r--r--src/python/grpcio/tests/protoc_plugin/protos/responses/test_responses.proto (renamed from src/python/grpcio_health_checking/grpc/health/v1/health.proto)22
-rw-r--r--src/python/grpcio/tests/protoc_plugin/protos/service/test_service.proto (renamed from src/python/grpcio/tests/protoc_plugin/protoc_plugin_test.proto)85
-rw-r--r--src/python/grpcio/tests/qps/benchmark_client.py60
-rw-r--r--src/python/grpcio/tests/qps/client_runner.py2
-rw-r--r--src/python/grpcio/tests/qps/worker_server.py5
-rw-r--r--src/python/grpcio/tests/tests.json5
-rw-r--r--src/python/grpcio/tests/unit/_cython/_channel_test.py2
-rw-r--r--src/python/grpcio/tests/unit/_cython/cygrpc_test.py58
-rw-r--r--src/python/grpcio/tests/unit/framework/common/test_constants.py9
-rw-r--r--src/python/grpcio/tests/unit/framework/interfaces/face/_blocking_invocation_inline_service.py10
-rw-r--r--src/python/grpcio/tests/unit/framework/interfaces/face/_future_invocation_asynchronous_event_service.py8
-rw-r--r--src/python/grpcio_health_checking/.gitignore5
-rw-r--r--src/python/grpcio_health_checking/MANIFEST.in5
-rw-r--r--src/python/grpcio_health_checking/grpc/health/v1/health.py129
-rw-r--r--src/python/grpcio_health_checking/grpc_health/__init__.py (renamed from src/python/grpcio_health_checking/grpc/__init__.py)0
-rw-r--r--src/python/grpcio_health_checking/grpc_health/health/__init__.py (renamed from src/python/grpcio_health_checking/grpc/health/__init__.py)0
-rw-r--r--src/python/grpcio_health_checking/grpc_health/health/v1/__init__.py (renamed from src/python/grpcio_health_checking/grpc/health/v1/__init__.py)0
-rw-r--r--src/python/grpcio_health_checking/grpc_health/health/v1/health.py66
-rw-r--r--src/python/grpcio_health_checking/health_commands.py (renamed from src/python/grpcio_health_checking/commands.py)30
-rw-r--r--src/python/grpcio_health_checking/setup.py15
-rw-r--r--src/ruby/ext/grpc/rb_completion_queue.c52
-rw-r--r--src/ruby/ext/grpc/rb_completion_queue.h2
-rw-r--r--src/ruby/ext/grpc/rb_grpc.c2
-rw-r--r--src/ruby/ext/grpc/rb_grpc_imports.generated.c2
-rw-r--r--src/ruby/ext/grpc/rb_grpc_imports.generated.h4
-rw-r--r--src/ruby/ext/grpc/rb_server.c2
-rw-r--r--src/ruby/lib/grpc.rb3
-rw-r--r--src/ruby/lib/grpc/generic/active_call.rb5
-rw-r--r--src/ruby/lib/grpc/generic/client_stub.rb7
-rw-r--r--src/ruby/lib/grpc/generic/rpc_server.rb4
-rw-r--r--src/ruby/tools/grpc-tools.gemspec2
-rw-r--r--templates/package.json.template2
-rw-r--r--templates/package.xml.template38
-rw-r--r--templates/src/csharp/build_packages.bat.template29
-rw-r--r--templates/src/python/grpcio/grpc/_cython/imports.generated.h.template9
-rw-r--r--test/core/bad_client/tests/large_metadata.c336
-rw-r--r--test/core/channel/channel_args_test.c3
-rw-r--r--test/core/client_config/lb_policies_test.c8
-rw-r--r--test/core/client_config/set_initial_connect_string_test.c44
-rw-r--r--test/core/end2end/dualstack_socket_test.c5
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer.c74
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/001ea98069c10f808c281da9bbdd84cc05c3bad1bin0 -> 400 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/01f52e31dfffdab89d83acd39925c3dd81baa76fbin0 -> 474 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/02c3cf8d52fbc43f89b5f516a17cea23b68fc8d5bin0 -> 325 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/032744b59cafd3320cc932ad39926a9bc92f589ebin0 -> 865 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/0385c7b41263419e25a4342fbfc44fbd65eb2ed5bin0 -> 345 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/04d93c9df413717f71abd091592b5238afb799e8bin0 -> 336 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/064d50aee4416ccf32f4e4fe7b770b7802265ffebin0 -> 693 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/066e7fcb68e83b432c414f63f6de73e5f5099e49bin0 -> 266 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/06c714e289673cf982ce2ac0670707a15f2ac5eabin0 -> 337 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/071247b8fddda8aa520d9142c89039fbf8bf6ceebin0 -> 411 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/07cb3b9baca1bbcce2e199e551073ba2fdd4e05cbin0 -> 614 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/07fa2b6ed650d436f423adcccfcbe63ce6253de0bin0 -> 416 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/081e3248dfca2b32837c4738daee3a4698caaf15bin0 -> 500 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/088bf259e854abd9508d91b23983737f8e9e242cbin0 -> 387 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/0976de1461fb037c6987d77d088416440b524ddebin0 -> 334 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/0adaf5f559e1fb9cd8cd5b29911e13bca315c606bin0 -> 347 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/0af5adf68560b3a7036ad23af62e4f9749eca690bin0 -> 228 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/0becc6ede499ddc452fd4e6c3c0413a1107a8373bin0 -> 325 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/0c531e03e56a5cf48bdd531a8c11a19e4a3b0aebbin0 -> 522 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/0c65733bc09e8527347e20f5c876c5b64570d423bin0 -> 672 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/0c7b763d22885462527123656fa17af7520fc55dbin0 -> 233 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/0d604693a9d3e76f54d28a26142abd729b0a9acdbin0 -> 364 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/0d993b34021ec088f1aa3e5acdd98089b4104b07bin0 -> 337 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/0def53b5575cc6ab2fbbd17e2bc6a24de9656f84bin0 -> 533 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/0e2ddbe92c08eb9ad3cbee1d0db2264baaca12dfbin0 -> 523 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/0ea509d249ae28faba8980aacb972c7ea28d3fd5bin0 -> 693 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/0f16eeeecdebcb59022bda5a0972d1b3429648fdbin0 -> 230 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/0f81830560dbb9c6d3889b5d581b918c6cade65fbin0 -> 293 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/105d9784648fe2d6c22fbefa69c9a26fff1c6481bin0 -> 337 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/11153bfeee3cdede86a52151dbb939c3ffee48edbin0 -> 690 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/113c1d1bac15d550124f1ffb9012c32755adf27fbin0 -> 353 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/11759723c597e6806f8873e5062d31516cdb97eabin0 -> 474 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/12abf5dcf2aba770f7b94ce5d96d7a8565a9aa19bin0 -> 526 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/12b904b97ed234fa45073b4e346ebe3211558528bin0 -> 605 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/12c00ed8945bdae03f03142cb964a47ea0c5786ebin0 -> 561 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/12f977ee18a7499d18a503a47e71b4f241052640bin0 -> 228 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/145acf7c03a0bc6c4a40d710ba5813b9f28efe2abin0 -> 389 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/14ccbe1d9d7302d642e51ede3d4d846e85310fc2bin0 -> 342 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/1586adc8c21b5796ba52203379faeb5f251f5c1dbin0 -> 227 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/1608a688768bdecdb205a455401ce5d9a1424a22bin0 -> 337 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/162b4ec7cf39df091898e01057b2fa39605b34bbbin0 -> 346 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/16858f1f9db0e248a15ce09d9848612de1f4bba6bin0 -> 767 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/16e681f1867a1ac5612e1a88fddaed0bcb4521e7bin0 -> 417 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/16ebac3f7cea2b46f660ec6a5ef3401c3e17a2e9bin0 -> 693 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/17ec0503991dc248d2b188edfa3d28573a1c2154bin0 -> 429 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/17fb35db0b73c331a66120dbc491300b2d1665e0bin0 -> 285 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/190c4ca0cf29c99bc987d2792c7f62e1007c0245bin0 -> 327 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/1949f4a75f7d501d5279a01f58a444640379bd78bin0 -> 268 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/1972f535ae202777efdd15a09138efc37e07ac01bin0 -> 347 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/198e691a9dabd23ed5c156f3a6e2c06a4379c15bbin0 -> 294 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/1a16a4b32cb0cb3a759ec20edf332cdfc5d1717ebin0 -> 528 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/1af0744fe0ccad11d6df023803ab699e1464c8dabin0 -> 230 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/1b6d8326532cea974655dc86657d8e3b9ba021debin0 -> 448 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/1b78d906803b539ea9f135e41b58257365948855bin0 -> 347 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/1ba0190ef2cde93332f850753a05b89ae5f39f1fbin0 -> 411 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/1c24396c21f2c6aa2ad9b9a14877b7edf0ce61d2bin0 -> 234 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/1c86c4f2d173059e5cfe67b446fdfa285743f61fbin0 -> 527 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/1cbbae18babaa20229b42b4633ef812bd3b40ad4bin0 -> 232 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/1d259d9c908db8a0a7012c054bfde7f86474dab7bin0 -> 577 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/1d55650c5bc30ea68168a9287820e25d2d53ab4cbin0 -> 345 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/1d795268725d3a08883b05b021a437654aaed908bin0 -> 321 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/1d7bd5961f6963c65054fb9a24d913601f37bf3dbin0 -> 734 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/1eefda69c1787cc55a8bd43774ca13563e0972bcbin0 -> 544 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/1f4d0adab39a988792cca201626c28293e247226bin0 -> 597 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/1f7847ed44c5acbc52c5d16b0222b44067076478bin0 -> 267 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/200521ca3891bfed841ca8c22691196a1a03ccd3bin0 -> 527 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/205dd562c7202d4231b232a6804889e77eba5292bin0 -> 433 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/2193a1e20caee37676d08c88154a462acf120fb0bin0 -> 376 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/21da45db854aeae9bef8576d6cb5859c0cf7a34cbin0 -> 410 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/226b0315f87b08521c9a2d3e2b50c01ec421be14bin0 -> 551 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/22c9ed2979d9963bce6500997f1e0433988e7e37bin0 -> 386 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/247d0d09deeeb76422cd1d06305a63378a498656bin0 -> 330 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/24fbdfa73f26686633871ddad9698d7059db488fbin0 -> 234 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/2535940afe69b3106b7696a486a2617d0d9a7150bin0 -> 266 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/25aa74daea95f9fc46a78239bd2e78ccf0fb3ffcbin0 -> 267 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/26930c35fbe83e4d165b8b7f218ac8ea231c87ddbin0 -> 869 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/26dfa46c2bb2e6af6f52bac6f03a9e4406c6e700bin0 -> 552 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/27a8643ba6047e12de1b2a4f7d0994a2c095a6d5bin0 -> 607 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/27f5e317e8a3a1098e786b96175c15d0855c4855bin0 -> 527 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/285b0b9b11fe506527c880d3a866ba94f8038cdfbin0 -> 347 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/28851da472cd09123465241e0d59697f563f53a8bin0 -> 389 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/28c56acb0f9b47ead49f34c0d92a661fa04952c2bin0 -> 646 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/2923d9c864597016358f37ce4014c61648b7290abin0 -> 1182 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/29a6d7ab3e7ea8d331358df45e5b0926e768e227bin0 -> 528 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/2a410e3d783bc93e63206e28f92b6a40e1db09cfbin0 -> 475 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/2b80854b52267dd70b622670e401280387f15dd2bin0 -> 365 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/2d5613b7bc0f5060eb1fa0449face6a9c503b589bin0 -> 742 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/2d7f42d3df4a206d09a9fa3126333a61f5e678ecbin0 -> 598 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/2d82b2376d689485814ade91df8f65ee08395a02bin0 -> 343 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/2df65610f1c24ad1cf9a5b22614434c96ffc12fbbin0 -> 268 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/2e48a9c8d204975060e81f37c7a46ab501750067bin0 -> 895 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/2e7441eacf8fcc7043f24b3beba4fcbe3c0c5ea0bin0 -> 354 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/2ef149e8fd68e06fcb7ba2fb43a17cc1dcfd989bbin0 -> 266 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/2f35914500b09477fe245bc130f86bbd15112ce7bin0 -> 39 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/2fece42b158854855dd42eac3fc7b8f1eb61fb04bin0 -> 373 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/3017e9f66dacf5a01f8c7d65b8a72d4f68aa6a28bin0 -> 670 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/30948ba77c2e56903a9ad5190cc74e59d42f67febin0 -> 695 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/30d6ca02d96fe1d1b91b7fa5180789a6cc9d0d45bin0 -> 434 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/30fc581d975cd8384b86be0ae59792a605ca68c6bin0 -> 341 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/3152365a4d8540623c9fb3a93712d096bf6b34e6bin0 -> 343 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/324b9341bfc56b24a60f0687a52981fcdeaa8733bin0 -> 896 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/32a6ea045d1288418617e5e0c52ae02c1f6598aabin0 -> 356 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/3356fa1721a0dec9fedacba8d86e6100a49d5316bin0 -> 231 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/33af00c8deb0f0fdfc113f21c3cb5769aa474587bin0 -> 528 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/33b7cb7d4dcd380b207f1137722fe394de2a0f8ebin0 -> 357 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/33ff864434b4f0c0e08c00ec2442cb521e9f79edbin0 -> 322 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/34aca5e37920615e8c141ed1fe4e419ae2e4df65bin0 -> 319 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/35ba1a4df4d362ea98e9386269bfbb95c5ed4874bin0 -> 226 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/3662f5312562bbe4503018a820692962e7dd66c8bin0 -> 527 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/37309bbfb4f0d78e6138b13a4e5da5944c95b97dbin0 -> 267 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/37bc0646132afe8c79cda5e76de150a473fc0680bin0 -> 524 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/385626d51cd29e1b32befeaecde5df7248270754bin0 -> 272 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/39160bc99597105d50cf7a15698090399a2482eabin0 -> 339 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/391ef74273ae5e1cd8a2342c5370fde5df1a7140bin0 -> 528 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/39525bbff413519199d1cf2c564d62b9c3c7736ebin0 -> 380 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/39b6daa9ae088667c5080709ca829cf51e66212dbin0 -> 375 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/3a90fbc998ad7219e447db6155e6174e0117dd49bin0 -> 353 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/3af9522626ddfeb1ef461e3ba0f397ea4b2d99fbbin0 -> 267 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/3b60e6663ac7ceaa40f91d3a68fcb9c35e3e99b8bin0 -> 361 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/3bdfaad171c20468a866329355621cd579eff21cbin0 -> 267 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/3c18f7c2d8fef6f119fe5bdbb5d191a92c627cb3bin0 -> 405 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/3c933aea09501c81d7e065c671cdc3bd55f8caf9bin0 -> 527 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/3cac139b58decec7c0d1f1318e8f1f28f9650c19bin0 -> 400 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/3cd19f8138a81f242cb92212df2b4812cde8385abin0 -> 703 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/3d7d13b272c46ccceca36729e9893e5142961fd3bin0 -> 311 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/3d9534f373e79edd704cc9529600efd62451fb78bin0 -> 346 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/3e4c1755d1ad78103f10c2af7c7d2f86326f02f6bin0 -> 360 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/3e8bef87bb89525914b5e7964969a66eabc78eeebin0 -> 339 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/3fada97db682f675597cb58c5d43a72e283ab960bin0 -> 475 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/40fb9f1d9086ace2de0ad59648d196ba0705ae00bin0 -> 348 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/41921ba00dfc038778074b1af81104555ca74927bin0 -> 347 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/41de80653b78b98f5caa7f6d00a96d72bc245068bin0 -> 365 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/4212d95c0bfdf34b9c7fbd05bc732fa1bbb226cebin0 -> 581 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/4236180c7d6f2edba5355b79bbe1a5c16266dd95bin0 -> 294 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/428b5b04a92ad6c28fc38451236c85338b9f8ce0bin0 -> 289 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/42a92ac224829067ee7dbadafb777bd38f076c6fbin0 -> 331 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/42c2e90f2e228d6bec0d81e55f08647a2d651bbebin0 -> 551 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/42c50f9543819ff7f440a7ac660cea374355c455bin0 -> 331 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/42c5f1965243b4bdf0212123d3430010bdacefaabin0 -> 343 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/4305b19e8a214d2cf47436d964d52d10e430575fbin0 -> 268 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/43646936116c18140ff0f01306d16280943eedacbin0 -> 406 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/43874e2bb721b485a93d80b7f1c3e3630f746b02bin0 -> 343 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/43ed8f46ad700ddd4c2a7a15f0cd209954f0a774bin0 -> 338 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/43f79e748c5da73a13555b00cf5050af68f07829bin0 -> 338 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/43ff758aba2eca1e355f0062ca8fa2dcc8edc69cbin0 -> 527 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/4427b547b6693c39f08ba67c5d2ad012d5088f83bin0 -> 346 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/442bb0df4955b8dc95cc69af79a522a04c23dfe1bin0 -> 267 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/44378830a865936e205bb757a69bdf8d788bf26ebin0 -> 303 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/4471ee009359844e7600175546a3b36a21329666bin0 -> 525 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/454fb5eab23aacdba559ed9a9a36941732eb3276bin0 -> 274 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/461949a48f4f2234cce6bfc1476bc9fd96552c0ebin0 -> 354 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/462ae7e1d7eb4a4d8b4d5daaa1422b7cf835e127bin0 -> 353 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/46325fcd7a3a718f2188f49e28ad9d0c9dcd06a9bin0 -> 235 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/4667156173c437c62fdea99a199f3aed0b504fe0bin0 -> 357 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/46f88af92fbd99c386bd24d8a045a9a9c2469d53bin0 -> 526 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/4799a2aacdba08bd3e418c5659060829a997d715bin0 -> 319 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/47f2ead1b9cd99a8603dc5fd583afe3d4287deabbin0 -> 267 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/485410954a625f5749bce6ae923a620371542ed8bin0 -> 230 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/48f56289592da153b3c50bcc26ad6d4d3a7e443bbin0 -> 345 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/49d816ae44b329820f47979c5790eebc8eadafd7bin0 -> 353 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/4a2ee017facf4df1929e7db4b34b12018b64461cbin0 -> 526 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/4a6c8938a8a30567a481599eddfc137fa5454b21bin0 -> 326 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/4a97016bb83b0db1c51fbb4d4f9c909dd85bdb41bin0 -> 334 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/4b011706723e645407b871241c2c11004103d628bin0 -> 338 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/4bedfc6d01a2d6bc0911d48123d6b8b30a46732ebin0 -> 267 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/4c03f9d60bfc5a2ab41c1703672a339838890ef3bin0 -> 345 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/4c34bbb26218f40a8ea1bafc8c50cd814a781cd2bin0 -> 378 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/4c6258b5299bd03560e292fcf3008efc60bc6cd1bin0 -> 296 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/4d7b5b98536de248387605efd813ba23b8b613ddbin0 -> 407 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/4d800cf62e39478c1bc1db8222a8d810fff6ad85bin0 -> 660 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/4d81efc0d5945caada326e2f6e55167120f0d3cebin0 -> 353 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/4ea18756816848daf5e799ce1d75ecf52353eb08bin0 -> 955 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/4f320381bfd3927493db8037238bdce1766c68eebin0 -> 365 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/50a96367b6a52c58a36364f4b1ec0583c7f315a5bin0 -> 274 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5151ad7147bbb75b1b377ce03f4ef5ef0f4f1c82bin0 -> 360 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5220909c423d2b321e8459355c965fb330288565bin0 -> 333 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/52b5c86f262d46624b2211151a38cbd69c705734bin0 -> 805 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5394ae134e9023432ac137789815e2b24d1bab3bbin0 -> 774 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/53e9f9a4b0347651b3833c3e153e743a1194e0fabin0 -> 342 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/543ea879faab347874ad5e297684a62a1555e1abbin0 -> 365 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/548190b9eb539e0841bcdd6e2c095cbef6ebd119bin0 -> 294 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/54d5ac6cc4bd944e60b7464e36c5d1b144c17da4bin0 -> 354 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5515fa05b890973031b0e2cc8c2925f3974e2821bin0 -> 406 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/560fe3fe0bb266ccb8c59ce19302bce23835097dbin0 -> 760 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/56ac47e07bf3f42310773a4c66ee9d3afc27a8a3bin0 -> 692 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/570215c70de40add2ad62bed9ce47f8b6b231de6bin0 -> 370 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/572ab3983e406a82325f02edfdd7981d040cfbdbbin0 -> 358 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/573665d817a96a324fb8ba40a06425f572327b78bin0 -> 298 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/57bc1a4501ceb31b4ead1c2428798be073eb9db3bin0 -> 267 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/58c57e0ef4c2a630150f53ccdc2bfa798d5b9eaebin0 -> 345 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/59de0a42d012ca3dd8b7fa2f1b1c6642cb86fad4bin0 -> 267 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5a1d370abacb9f46fa966c8e58992897606a7900bin0 -> 337 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5a34e7fd2ff3f8e32ce85138931a387dc5f15db0bin0 -> 344 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5a3d25f74f7629c675be11faaea35921229b8757bin0 -> 342 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5ae4d5439ec6910a5fcd9c41f20ae843942853c6bin0 -> 528 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5b3f6f20f348cc4e5fb07cdb6e8614ca24f2cf13bin0 -> 591 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5c117dbd5d3146fd94c667f15f4c006fea88d14dbin0 -> 411 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5c388b60e622e14c9abfb5b46c65207a319e09e4bin0 -> 396 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5c43f3a5de9c581693432dbb2ad604550c3948f5bin0 -> 232 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5cce719931cf1f07536401134de4325b942be87dbin0 -> 335 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5cd55495dee689728feee959bcb09e2ab13d013dbin0 -> 475 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5cf8b4c70476c124711e731cd2e00f67906bd457bin0 -> 356 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5d5ce71ab1258e014e06e6a2edb94a47a4ae1b35bin0 -> 374 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5d76fdb98fb38243a1f1c5f96d31ece34c5a91b7bin0 -> 896 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5da437d4fd58607deeed34bcb21accece71a056bbin0 -> 458 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5ddcbde7afa43e7fe4e44ef1470fc0c282873caebin0 -> 379 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5e880db498f9baae544cdbc23476873d8766ac58bin0 -> 544 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5eae70ef8ab19fead6a9275e3e40df6b201159b1bin0 -> 528 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5ed431181bedd9a496aa3bb2330957c621f1443dbin0 -> 266 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5ed8998cfc22cce008e3988b3591b1c9ddbfaa75bin0 -> 405 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5f07e5246d765494ee26c689072ab3ced452f30ebin0 -> 473 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5f52309deaa1b641fe199889d18f921d6909fc14bin0 -> 339 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/5f7eee027cbd6ae8e989150d9bd8a4fd39654c01bin0 -> 229 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/600096fe00d5f67726674fb9b0d2a6621a25e79cbin0 -> 294 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6123f6116f3cacb4aabdbe26aed24ed0981d6c1cbin0 -> 529 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/617a2a3f6b6d5d53993db606a8818235ae8d9b96bin0 -> 552 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/617ef08330c0e852f9aae6c63ddc5893b8b2c722bin0 -> 379 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/618e64836dc7f374745be963b7b3c62cc02ae2cabin0 -> 476 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/61ce843c87f7bda1fabcb6ae3f41e85e6e2332acbin0 -> 232 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/61f410c711bc5d53be9e932217ebd035f2716417bin0 -> 543 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/629eac0e7443a273b5c351757c03fe15a0b87c1cbin0 -> 471 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/62c995646f15be1819bd13e32a60af46297d73b4bin0 -> 702 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/634d809c430738b89f0e677eec36506e537e86b3bin0 -> 474 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/63b91deaac58a7b64fb5999628ff3ff5d32b719dbin0 -> 670 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/63babc04d35adbe48add6e93386dfc838b0bbd25bin0 -> 794 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/645b8377f905399af625a01c76ff088745fe1640bin0 -> 273 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/649cf0ee983cb5792042687181ce7e4d81f090a5bin0 -> 389 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/64d55e872c2148eefb0d7c3df101fd955b709f24bin0 -> 332 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6531f1c311678c9247ad6820519bc7e73f56cb81bin0 -> 362 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/655f952ec49cbc6176ad1bcfa45a87bd6c3542f0bin0 -> 382 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6639deedbf04eceba6017f712b287235540b5528bin0 -> 523 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/665d7b4f8082be87864e6ad3a6a3faa1d52ad6e5bin0 -> 336 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/66f0ed73b2d4ca3edbd23d5b669e75e4d0ffd292bin0 -> 228 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6722929b4924f4d50ccfb999460e9a31ca104b4cbin0 -> 339 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6868e669f4b9a77ae5227767ec455fe6f82e55a1bin0 -> 412 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6887af467b343d6e1a8125ef10eb0a630f2dc06dbin0 -> 232 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/68c65dc60f887050eb8cd7f946bf37aea2ade9f2bin0 -> 337 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/68f9d39b83bbc7cb4f743c8814800e6692988897bin0 -> 525 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/69d0f8b4a9452d11620c7d3c1fa532a618d65858bin0 -> 358 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6a1d877fe1eed1199511b8f28889d8f17665708ebin0 -> 474 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6ac88da4119df5e1592a05bac7ecb92af59dc1d1bin0 -> 410 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6b1e10a936df3b42720ebc9179fb74aa147f8b14bin0 -> 343 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6bd27df0dc9a3f73108de7bad443433aa5ee1175bin0 -> 754 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6c5707e8b1aa9a70ec87014cd660df4a7b910ee3bin0 -> 896 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6c91623f5a30f65110a4083897bad2882f032c51bin0 -> 355 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6c9b144f4e6dae6944b524a077dde07ac79e58d5bin0 -> 705 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6ca83e5d3f4544a14da513dc798f02464febdcd8bin0 -> 475 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6ce9895c780428861d12440946508c6641352544bin0 -> 365 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6df1c575d7f8fdf5593f1f60d9dc540d018fc58cbin0 -> 342 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6e97f4e782ca976d4890199d48fcfd64173e24f9bin0 -> 741 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6f0bbfce7c5027932fb0f809494413e12a4ad3c1bin0 -> 339 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6f39da8f5bbae89a13dd36755f7b3c4a30c25833bin0 -> 522 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6fa93aadbb6ecdc32c9111be7692ec28ec11be72bin0 -> 405 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6fb7b01c1b363390eb9188bcac05f8f11e20c01dbin0 -> 228 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6fbbaf9f6f49fabad4a0e47cea9e4048d8f130edbin0 -> 301 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6fe041f1468b495d3186da906f9a5091e5761387bin0 -> 570 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/6fff95a8d3566b2721fa46e9828b47635f13d9efbin0 -> 230 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/700f56e26286daf472d371effb9bca13fffa3d77bin0 -> 693 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/705c87b99197c87eb2ed148f8b3fdc60f8616f15bin0 -> 304 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/718d23058d5c805a2984c087cd89f9cb6af065b4bin0 -> 527 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/7217d93c1da3ae8ed085a5e6988227dcf430cd89bin0 -> 548 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/724063b7a5ee36246d72923e776331487434b81abin0 -> 339 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/72a79517b8f9b57f62dc1203a6b5eefadf27c088bin0 -> 361 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/72f71befa8ebb4b2c1842aec78d840b2a4abdb85bin0 -> 395 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/73a6e07089ee011746c1ec3146b8a1b4b82c835ebin0 -> 345 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/7421d8acd877abd9d437ad447dfae29893cd2f37bin0 -> 345 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/746d9837f0fc3c989b7fe0585b8365478f1c21fcbin0 -> 332 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/746ecd23f1c41206dd4180a7afb032411f315d73bin0 -> 752 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/7487f56a435277d9bd7ef38d361e8ad7cdf62375bin0 -> 532 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/75755ae5cb0ae4f711dd15925f9f681d23408bb8bin0 -> 232 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/774a64c60765d78b3b980ff9a6538219d6908a3dbin0 -> 530 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/783b1f17ae90eba0ff7728e767b56ea6885e0b28bin0 -> 527 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/78499fa2980dce2fde92b74421f486bf544cfb8fbin0 -> 406 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/788f18727a0aeb5e200527bca7c889c9954be343bin0 -> 233 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/78c3bbeaeb266aac1df0d4abe78bbca68fb085a8bin0 -> 893 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/7957953ca449974ec39c6a137c0acdedb71c3b02bin0 -> 326 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/798fd96821ee3d91952373024f35cdceb10ccbedbin0 -> 273 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/79ac297c667d2ae77c05d2af275b05138439ee5bbin0 -> 524 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/7b4b493ac5a36d3b3fed0b66bc504206548a3537bin0 -> 273 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/7bb25e1821f1ff6ea4c85259444f7f40b430aa1fbin0 -> 572 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/7bd75ddceb75724e5e9205cf7fadec03d8e1aca2bin0 -> 574 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/7bdc25dc79ca942673e515126e22474fd89ce55ebin0 -> 742 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/7bf8d2b77d85e4042e47d0dbe6da9441c6d9530bbin0 -> 337 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/7c193442a422da21cdeb14f681b0d4179aaeaf5fbin0 -> 349 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/7c6a381eac8fbc8fccada2b2069c3f773a9c6961bin0 -> 266 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/7c70dd584df7a4fda61d08ab8ef85ec70c85b7f5bin0 -> 266 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/7cc958be492e942df2b784fcc08a63d57c7fef92bin0 -> 333 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/7d8eeb8778051e621abf74daf43dd4010117d9f9bin0 -> 324 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/7e29172a1d27c4f8a0b138306db1043373b2d0babin0 -> 348 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/7ec62c16916c2c30847b578d2148893924287bfebin0 -> 341 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/7eea6a4b31c4f10281f31a7461f35af7331becf2bin0 -> 328 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/7efac665d3dabc2162f4407e3bedbd65b3007335bin0 -> 358 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/7fe7a6ab57422c40c7e0e2333c3bbb6ae6a0d9a3bin0 -> 526 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/80ecd5087801e974eae7db730a496d2aca110648bin0 -> 920 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/81489a0c6a71c48e9f343cb5ff8e8b5693d5df19bin0 -> 528 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/819cac3befd0d7b12ffd734c26df1cdf43c376a2bin0 -> 303 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/81e64ec00272538edef6336423738277647b5ed0bin0 -> 229 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/82182d7a9c73a70f5eec58c03b1db511d7feb95dbin0 -> 267 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/839b0cad1196be563cec8e8a55184fc001b8401abin0 -> 293 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/840928fe62714fdb003b3f0a40c2c4897f9d7938bin0 -> 352 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/84650393df0dca7ca3244faa7ac036873d3dcce1bin0 -> 343 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/85bd45792a3cf2116fab5e99e2d824ee804af843bin0 -> 346 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/875280c0c54d1662b07150e728f9ac0c1af7bf66bin0 -> 810 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/87e510c4dd906ec4de0066e93b2475480fc0768bbin0 -> 344 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/88139a0d01f144556ef861af4450f466081443f5bin0 -> 350 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/8854a331f3c5ddc4ace70e0505901e53aa48e386bin0 -> 266 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/88600f27cb602db290f07eb0e8b6f10488c0760fbin0 -> 544 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/8979c4017b72b970dc33095be26788f52f37a959bin0 -> 524 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/8a4183e6bb75036228a42039d678fca0ea6751b7bin0 -> 267 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/8aaa277cf855a972c6dec9fc49b171ce3232a26abin0 -> 267 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/8ab19633328ea9e493dee313e135e7d851aa7911bin0 -> 412 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/8b30c1f058ac421b6c51c4591ef9e4adc2886b44bin0 -> 293 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/8b37ce939cb8d42c459f5e286de980c7b62f14bebin0 -> 296 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/8ba87aeecf944e0eb387f8f2d9e30964c9f860debin0 -> 345 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/8bd94413e2d60effc2806dd7153216a1b6487162bin0 -> 343 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/8c395b9251d60823ef14014f6ad58b29968a1681bin0 -> 418 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/8c540353717db453eeb865e5b9b7f2efe6c5d5b7bin0 -> 966 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/8d386a409662ef68370c0c552742bd0ea6d527d5bin0 -> 42 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/8d91dd322c7972a13cb98461b0eb284116905887bin0 -> 347 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/8dab1d2d4f470c669688103f52718a7783113cf1bin0 -> 354 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/8dcb4dd3d2fa04ffc83f7fd7f9306ae4105ef7efbin0 -> 354 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/8ebddbd256887fb5fe1be69a46023b34f815d2e8bin0 -> 365 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/8edad87970b31dad2b23184d864fe5ad9efb05e5bin0 -> 791 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/8f4187ea7f2efbcd933fdb2b0652b71ecaff7822bin0 -> 348 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/9080684608701e015c764f643dc45fa939d86ed3bin0 -> 703 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/92d44998655e82d89a614c7b6a2f08c5fc7f8805bin0 -> 551 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/92ec3b6722dde442121b3d1ed3ef23976c72cba8bin0 -> 93 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/940a622e8995529f6b0455906d8a035902682d2dbin0 -> 903 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/940e35bed3ff2b52a29e5b15acf9fe39772eb5debin0 -> 346 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/94571a4b13c435117ef9bd914443ce9a07da8e3fbin0 -> 362 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/95940316e7104e9c2d5123b31e36b2dfd12fcea2bin0 -> 338 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/95dd85860bde08e1d0ecef805ad55f66008923afbin0 -> 430 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/95f223f8964d294aafc2a6041a83cfa7761c31abbin0 -> 235 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/9629c00d91e6146b29f7559a944e6bf8dce7d0f1bin0 -> 359 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/96a6293d4fc97c75f037bdb0f73dc5b62bbfa2e6bin0 -> 594 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/97011f865fcf9c57560d5ed3cb05883ff298ee35bin0 -> 268 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/97440beca022cd5799f76654d8bec51f62c0bbafbin0 -> 231 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/976613cb09127a752d628c4a3cf73b8e3168e0afbin0 -> 345 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/97817475213736527fdc3b2a28cd45f52fe4ce1abin0 -> 338 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/97efcb1f37032ebf01b4b1065a9df66590b7051fbin0 -> 528 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/980f0198dc66e867b1a5d04cf24bc02fbdf3b839bin0 -> 266 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/98569dc166bfcfef45a66db4de1c0f34340c269cbin0 -> 386 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/988bd333d5dabe1561cf4429e7481ff110be0da4bin0 -> 528 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/98cdb5ba5725c6b2ed39fc514401fe987fc2d9afbin0 -> 267 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/9989534524a212092e9d7fede16106b586c434f4bin0 -> 267 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/999737edf1e9740df084c4326ec983137ccd7111bin0 -> 348 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/99e8f2ea80ed1d5a78fd5236e89d404bb0c03940bin0 -> 294 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/9a0f0818ff9fbfd81e0d0eadeef7b85ca2d4fd46bin0 -> 528 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/9a9af9f266737f95cfedbf5c8fcea22660c3f085bin0 -> 662 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/9ab3be55bd49749439f7aa1bfe2d178ad663b003bin0 -> 317 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/9addda4c7a9940fbbda2218ec58560c10e1df9f7bin0 -> 895 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/9b5b436057dfcf4299e52ad49c74e45ef04be7a2bin0 -> 550 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/9cb91ce75745cc30995b8985a35ea31db766e54cbin0 -> 340 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/9d004fd9a35647ba7ec169e6fedbf9dce5f9623fbin0 -> 357 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/9d69b6fb15c861c294878da8aaf16a531dfb1b70bin0 -> 526 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/9d74922516d210da71d40395f17a3cef4161894dbin0 -> 605 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/9dd25a6857d92ef52169ec95a0cdfbc8570b6d99bin0 -> 347 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/9e48b3aa2c25dbbab21148bdac91b5169ce088bfbin0 -> 272 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/9f00c8665f3918e666d424ee67a2556f2651d64fbin0 -> 338 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/9f43969c0777a021539b59eafdac9dd2f51422d5bin0 -> 706 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/9f643e51d8e91e7e0348017d98078f078a1790b9bin0 -> 268 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/9f86fc902ca36482d09f6c11e821b79bfc0b98ccbin0 -> 547 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/a0e80579e201495c2337292a3508b2d220e9737abin0 -> 894 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/a18ed3861270cd42a661211d9d970c488fed46adbin0 -> 339 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/a1f6961a480f1eb49b394118b05b9cdabfb6f0a3bin0 -> 606 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/a36a156c5ed8a55aec450393deaed66c0e9117c9bin0 -> 1095 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/a380f7e56171dc69269afb6364216bc69925eb8abin0 -> 346 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/a3926a25374714a71c8bd515564d294df229c7cfbin0 -> 337 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/a3d52dfd05da328d3f109d125e6c1a15470eab06bin0 -> 345 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/a41e8b175a837b55e540874c3f056a9d9535866cbin0 -> 401 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/a4d41bf7bce38a255a431912f6b57637645221e8bin0 -> 542 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/a619bb6ff4871fab3045e46bef8036f80d605f37bin0 -> 275 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/a62960425c597cf5d2bd38e9412363991479837fbin0 -> 228 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/a64136997cd4c4be7d93f10fd6a1d12cdc22691cbin0 -> 722 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/a6541e0f317553947d53cfb9318367aff2898ad5bin0 -> 348 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/a8115b0be87517139447c9fefc33e225f2efdf32bin0 -> 523 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/aa6e8ab6cab71f0d7fe316a19c47fbeba5351315bin0 -> 693 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/abaca8e8237d5add7e35752471688233d265efc2bin0 -> 364 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/abbd9f85ad500d55dda6009681ddffca1849b632bin0 -> 346 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/abcfa029d3eb7c016a162e78e7351f64b9905a42bin0 -> 520 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/abdb7891569085e3df0f6c7a5348c12bf3dd1ae0bin0 -> 40 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/ad6369d2c51c4787778ff9dbd86cc6df44312f1dbin0 -> 327 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/ada998a4b5a9895f514ddbf8da775f5c59736021bin0 -> 293 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/af1fbe820d92608782360791113393055c171da0bin0 -> 528 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/af990e5c81c307c188a79f4cdfdae4e8e15dc4a2bin0 -> 376 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/aff1fdfe79c104bce110cec92e1e021caf012fdebin0 -> 313 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/b2432248370f7590e894c54f2dd13fe9df9fa53ebin0 -> 895 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/b262c677b8c46262f1fc4982f5abf4ef603abe1cbin0 -> 292 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/b2af0db70de3a6ddcb188d1f6f2a673133a8f9c7bin0 -> 405 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/b2f450dc86671548200a1fe6ee0ee76171edc578bin0 -> 760 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/b35f51d95f597075bb93cd9d2135870fe0a73486bin0 -> 349 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/b37ab56aacf7fea7dcade26810117c45e6041068bin0 -> 606 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/b5bec1a19e2ca2394f2c3235266c22a7167bfa5dbin0 -> 338 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/b5dfbf1965f794634249cc6be9d20d2a9fc6e332bin0 -> 354 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/b6694ec2d425e8ce6ad9ff712a999fabfa5ce113bin0 -> 346 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/b6c47632d8d697f9f2923bde053f7a5571150705bin0 -> 525 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/b892c064b2703ac0dc31766946be487b197a541ebin0 -> 375 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/b8d0be707d9505c0e63253904979492c22cd9fdcbin0 -> 327 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/b8e06536840e31a343b3a42b677d623bacfccd99bin0 -> 353 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/b8ea2247c5b1636148fa66fdce22ed1cc72b6bddbin0 -> 605 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/b9318513eb6b1db553855cd062ebbd4d1db9b846bin0 -> 341 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/b95899d40afc4b3ff87af2285b61ba66939873fabin0 -> 552 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/b98ef7107754379c22a3ad59cffa3183e0804c0ebin0 -> 346 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/b9913b354096dbe1796814e2cea80addef6ee386bin0 -> 658 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/ba3d174125e7378292fcbad9bfe8129dabf88b3abin0 -> 230 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/baab31938837e1a3cb49ca12fb886fcbb7d48501bin0 -> 316 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/bac43cd2ed1dbf3a89a0c66d8983b586066ef463bin0 -> 320 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/bb2affdc830241ebea35795fed3bc8d478330eecbin0 -> 474 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/bb54fde05891ecc235263ad087cfd9682a25f76dbin0 -> 389 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/bba4073cde10ba7abaac18d6303e310d02a47826bin0 -> 384 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/bc2967ecf8402d442ef63ca451497431932a7e57bin0 -> 345 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/bc8dd89f31fa5e89cabace6d7701d2a218f97aedbin0 -> 524 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/bd04c9dc7eaf030313d4c87f190a9d973b96ac2dbin0 -> 347 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/bd585e031f586c4313c6b00e5f247f6b272ce902bin0 -> 528 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/bdab9cab03ad7aa611612e02775018112303d3cdbin0 -> 296 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/be29c4d0b6568b06c69fc339ac29890baac569debin0 -> 551 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/be757e0ca581bb4ec14fbba6e87569f93f4c7750bin0 -> 338 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/be8114a7bd73ce15fe0495171234d0af526e41f1bin0 -> 336 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/becdf72b57104cede4a1fc7b7a4c97a3cbf3b7b4bin0 -> 333 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/beff7e2d09ef0547a3b1a498311c665954d8baeabin0 -> 490 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/bfe2840aecee88c5301aedd16a6ac8cea0262005bin0 -> 345 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c061aa42448363b548d90cbf4a7660fb2b043518bin0 -> 266 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c0bb5f00fc14ea4f2000f75e6d1d94f23e6203f6bin0 -> 354 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c0e04f5709338a500b3be166714ed7b0013c17d0bin0 -> 543 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c11e6f232cfdc5fffffa2c79150b5647704912c0bin0 -> 405 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c16876cdc8ab36ef7083bf4579849ee94239af0fbin0 -> 533 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c1ac67facfa4ca5ad92c3eed576a59d41558480fbin0 -> 475 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c1d33a370a8ec2c2ea380472cc49172c679fa5bcbin0 -> 893 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c1d84db44208d08a84084986094aeac3eebfe3b8bin0 -> 231 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c259fba0af17dd1636501feddd52e501b51c4137bin0 -> 337 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c29f63aa5c4462b359c9028b6e6031dc088d7d46bin0 -> 294 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c2eb3287f8b83c9281826e3c773ca347056ee115bin0 -> 546 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c32029d5683ad5cfa1af3b534c53bc2f7f513f50bin0 -> 895 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c370cb2ce56d1006fea0af1a823042927c0cfa07bin0 -> 549 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c3ade78c7fea61ed2e2cd843f9c551b107ae050fbin0 -> 535 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c40e43a76f0c493414386dd90ab892042a6914d2bin0 -> 358 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c4b438b82ac86439296c31dd7de86a753034c807bin0 -> 705 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c5154ce0384c3becaf12f83c51114bb3ccd0b673bin0 -> 353 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c5446cba5971d6f44ee93097a21c1b8936f4020abin0 -> 274 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c6733483e94f755f1cbf796f8aa3d10a2c371aa3bin0 -> 377 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c8f0972dabb904bc6d35ed576fc9a49eb2ed5273bin0 -> 403 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c93f16b5b678d3019eb05bd0774598e7d34e9b3bbin0 -> 338 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/c97c41c0c76a901f458bf9b4d785fb53fe8a2980bin0 -> 195 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/ca418a61964cb360014b574fe29aa20b193df04fbin0 -> 865 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/cb9a688f0dbc2015c77920f344e2d029c87384ffbin0 -> 333 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/cd779b587b80719e2838853c2eac8d4595c0faa4bin0 -> 234 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/ceecce905981d8291a79fe32f89e8be688dfee7ebin0 -> 266 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/d079f5c8a10611dc655cef33f73100f5f43787a8bin0 -> 526 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/d107d21374f4dba27f173d4edd5c8009e3b0f8c4bin0 -> 528 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/d110d5d3a672bf483f230825e735d372b0b2c1a5bin0 -> 671 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/d18b2a1520207761100992c88b50f6b410c62184bin0 -> 232 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/d22287b96b3dcb840fc65e4be60e409fb0f6bfe5bin0 -> 547 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/d27e050b2758f6658d166b0d30e9db9595388ef9bin0 -> 533 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/d3089d3ef9be14080abc156e5f2128c3c1a2f23abin0 -> 353 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/d3090a5221ea984dc474c3fb448b71957f8197a4bin0 -> 648 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/d56b3dae753b110e9e1a050486c6deb6ac399bd8bin0 -> 354 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/d576eb2948463f86f576d85e41d30a8cf3b972c2bin0 -> 230 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/d5824da8aeaf96a9e5f590a851e58e2534d178a5bin0 -> 347 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/d67c22b4174555c3e596c58dc7c28e84b1da8353bin0 -> 334 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/d68001237e6366c844a6509fa03e677e6adfb75fbin0 -> 694 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/d681712608025610b8ecc8a76a822516fb659953bin0 -> 826 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/d87b7bcd1b05a2f8cc04a2aadb999bcf65b84911bin0 -> 266 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/d8d117e45b7bc0c48f606d9ef844f00a363a8a38bin0 -> 352 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/d99bfa6bb10d30f64b533ea7620fc08b762a7bf3bin0 -> 354 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/d9d80422059678f0a011b8e8fdedd3d20c025b91bin0 -> 469 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/da2ace62505959bae7b4f158220f7ce97d20423dbin0 -> 676 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/dac17b9025074828797ef0dd1e3895baf875627fbin0 -> 268 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/db0dbec7a0811cac7b250cf9b248d47936edc0d0bin0 -> 326 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/dc38c75bcb7df7e61428d8f12ff01a1ec1b68a99bin0 -> 405 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/dcc8e14bbb75292968233ce89acd404303a53cc3bin0 -> 267 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/dcd0182c3027a0d6cc7a9a8c26f647d45bf3d3dfbin0 -> 230 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/deb08a636c04030bc28459820c7ddbace429b40abin0 -> 352 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/df106c9859b09869094c77aeba44e6e9ce909246bin0 -> 417 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/df380dfd997318c00cfc75313e6a7ecb041d38afbin0 -> 380 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/dfe4f327699ddea25103dd17b68e9a0fb726f4a7bin0 -> 342 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/e007d8c9aa6c37e8b62fab4cb95b2807fc49105fbin0 -> 230 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/e0507daae4458401edc11e5c76b246d6d5a44e3dbin0 -> 358 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/e08b85aa24c9d0a49f8946c8400b86b5ea9211c8bin0 -> 528 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/e0b7eb44f182f08d2eeaeecc76ef7b3efeff1fc4bin0 -> 354 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/e13361499a2326ef8dbc3746ceb61c61b2e1ad57bin0 -> 295 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/e15a0a0fb7b4f1c05088bc119c492ac20eb5dbcfbin0 -> 360 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/e192ba28f8a3bc9079b810c46ecc526f84609863bin0 -> 244 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/e33eb4b19232b2e32bc8f18e43459c4ed15bfc4fbin0 -> 704 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/e3b45752c8160c48885420e20c24bb7124128f16bin0 -> 230 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/e3c1dbfb1ef140f6bdcf7d683e2b2071aacba9babin0 -> 195 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/e3eda76a93e94d081a9dfd675975fe2fc1d670dcbin0 -> 347 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/e53a201505fe8412278d7444b1a915b353bacb3ebin0 -> 548 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/e7484552736c89fe721019daaad8739a68f1a926bin0 -> 788 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/e80302182fbd464b72d2b9be495901c0c3e93344bin0 -> 312 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/e805c33631e579c782550439f123b78e1ad8e180bin0 -> 360 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/eab01c8a32e76c8f354055807399a808848234e6bin0 -> 267 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/ebc30c5cbe17138976223f2283fe42d9e4c6f39abin0 -> 914 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/ebe414975652c12fbbfd99efd2da1cd4c72c340cbin0 -> 345 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/ec230c6a27149df85cad53f33478ffc11bd92d4ebin0 -> 231 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/ec97d4ee730261bdc3b14349a3346fd45929bd17bin0 -> 346 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/ecf0a3cd157191263734f4f2de9689d5a02e439bbin0 -> 553 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/ed361ec32383606748bedeb8eee6510041b0f366bin0 -> 473 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/edcf7ea2ec8443a92883e68e5e18353fad8f6d21bin0 -> 229 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/ef32866f14ccd80c1231fa742b53fba46ae15d6fbin0 -> 322 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/ef63ab3c4dbf27ed1f15c2b310bf41ff3a2a7e3cbin0 -> 233 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/ef967ba35676b971983b1e95e62c383a978a37f7bin0 -> 343 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/eff00cadc3130c257b3fe360ea5d32fb034aadffbin0 -> 577 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/f0649728d5f9e1a91735eaa429605ce0da6c00c0bin0 -> 295 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/f0d881bdd69c3945694068719a7a6b6b094dee3cbin0 -> 694 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/f18f2d094ef0f0c971173153279bc44bfa3c1187bin0 -> 231 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/f1a7981f4f19f6318e0f16cafe9541d1564f9e15bin0 -> 336 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/f27ae36fe8211e46f49656597658daab1429b163bin0 -> 670 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/f2f014c6ef70e40f9334096f34584ea4f1f882d7bin0 -> 298 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/f463b733bfacabdd064c6b5a0551d72398f833afbin0 -> 354 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/f5867f7dbacd22878e2955f4be8fca147442aa9dbin0 -> 346 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/f5a7503830d1e74c6a7230c10c5007a5f8ad5a0fbin0 -> 346 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/f62ae81e655f294699b73830d3abaa787196cb23bin0 -> 299 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/f7316eaa3f54119ac5b7fb24e8b92debdf57c3f1bin0 -> 233 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/f7909263cd7edc56186185c0b3421ebb68ad8d2bbin0 -> 475 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/f912a072f4abf312ebbe7f1a2bf5ebd8c51e35e2bin0 -> 500 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/fa44038e372af4ab374d3e94ec61662051e0dd74bin0 -> 229 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/faa0471930dc99deb5b1ffdc9bab7c1267b4ddbbbin0 -> 232 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/fac54fba5614e5930104bc7391773b490c0523b2bin0 -> 533 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/fb0bef1e4142a7bcfa30e93f834fb6315438d1adbin0 -> 337 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/fb9ad6fd8276dd9b38b27ee8907f0db5a3a2cedfbin0 -> 325 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/fbeb44db0fc0f6b70c226053448c7170f62543b1bin0 -> 526 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/fc39c0c12cde4ef57c217955886ed9508214ca98bin0 -> 382 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/fd4d68895bc219f52d93f3f2f302ff138e8ffedabin0 -> 352 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/fe565289309a897d640309b9bf214d3036c2216bbin0 -> 363 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/fe7ac5c3403c7f1673ead3176af4efe7c60b2c02bin0 -> 268 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/fe9d7f510475f17a7592213c9b2e614ce7d38f22bin0 -> 231 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/ff2fd7bfc554729dc2a40554597e3a95ab8baefebin0 -> 233 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/ff8ffcfafaf420d6fee1cfa087204975ab8e14d6bin0 -> 334 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/ffc74f2184f64032a1f67b5f843a683ea1372b74bin0 -> 335 bytes
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer_corpus/full_request.binbin0 -> 48 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/04bef86965e816c0cd330896ecd981dd3b14275cbin0 -> 303 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/0c6f2e0a2232788cb20c4f52ffa18d7ab8f0b938bin0 -> 50 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/1526ac4266e152b029b7c283255fe4fb6507f726bin0 -> 1153 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/15c8bfec99ff18b11211d464c824fc139cc791fdbin0 -> 51 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/169f579e66b4b8ff423891a40380e648e8d45247bin0 -> 62 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/23e8c1377addaf67019ea36a084e0b68ca7a33dbbin0 -> 24 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/25d2969baf8bd256e15b2ab72707682b2d18b40abin0 -> 480 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/2862adc802092f1a422416a1666a5142f71d5d7fbin0 -> 13 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/28680d04887f96a1167dd913573ec8daa2a39625bin0 -> 59 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/28f54e558b181e294e101447c7a79d976fe36fcbbin0 -> 64 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/3c01b1f89d50fa37fcb3457cd3dd6502fe84e25bbin0 -> 16 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/4097094277bc09981f428280fc0cc0f590f20dedbin0 -> 51 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/44b6be630161765a3de5872629602ca14789c3bdbin0 -> 19 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/49c5568cb0de363bc9f9298f1eacaace6c8a268abin0 -> 70 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/54555ceac4403855f4cf20367f7be05714c46c51bin0 -> 486 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/5821752bf8923fdaebc8484662624d8acd382716bin0 -> 21 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/59d28886db21f371ac9d999b68b116bcf425d971bin0 -> 10 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/690158fb146f7f3b3ea820979307a8d8e6f38314bin0 -> 353 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/6ca3910d5f4f7967311853724b072750716dcb48bin0 -> 20 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/6f30de3096eb71f697885fdd9cbddd9ee6ce46c4bin0 -> 35 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/7f1530d4b702e68d043f89d9e63d314319dcd803bin0 -> 52 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/85a7e47ef707d3b31cad924ed6c697c3678ab569bin0 -> 31 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/911e2ea20b6c10431e48f70d9933987815926a9dbin0 -> 35 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/93ac93b7deabdfb4f86eb37a1e9f6669957d14a6bin0 -> 11 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/9eaf2ad607a943141c29f334b2c66c2e59e99980bin0 -> 54 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/a210d629c305b89a34b7ff3c41ae4566cd22186bbin0 -> 393 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/a29a547671badd3154789e1a02bdb87332fcd6a4bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/a5592f15d5424ab7e16a18e77027ab91c846d90abin0 -> 414 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/a5cf80b996b2ba8c9580f8ecd22720c48de41044bin0 -> 51 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/b24c25c6d4b57a5f3d64a0adb205bf4f150c9138bin0 -> 14 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/beabbe93f1e9b2e56f729af30559ec03a00f53fabin0 -> 660 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/cbe59c62c6d36c7307c438159327e320cd2fcf57bin0 -> 38 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/ce1c326f3b0147841550ce3b5126390764bae8e8bin0 -> 583 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/d21ca2b01baa21a666257d1a1e0275587eeb565dbin0 -> 361 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/d2f71a800612876010558ce804c9a72ad0a1b9fcbin0 -> 52 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/d637cc9387087de633b9db535d19f64795c43be1bin0 -> 40 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/dd5ac34f5b220970447b2733848de78570c47883bin0 -> 18 bytes
-rw-r--r--test/core/end2end/fuzzers/client_fuzzer_corpus/f2a6bb4e0137541e2b140b976764377d07d822d6bin0 -> 71 bytes
-rw-r--r--test/core/iomgr/udp_server_test.c38
-rw-r--r--test/core/iomgr/workqueue_test.c13
-rw-r--r--test/core/surface/public_headers_must_be_c89.c1
-rw-r--r--test/core/util/port.h10
-rw-r--r--test/core/util/port_posix.c27
-rw-r--r--test/core/util/port_windows.c26
-rw-r--r--test/cpp/end2end/async_end2end_test.cc34
-rw-r--r--test/cpp/end2end/end2end_test.cc28
-rw-r--r--test/cpp/end2end/server_builder_plugin_test.cc256
-rw-r--r--test/cpp/end2end/test_service_impl.cc8
-rw-r--r--test/cpp/end2end/test_service_impl.h1
-rw-r--r--test/cpp/interop/client.cc13
-rw-r--r--test/cpp/interop/interop_client.cc339
-rw-r--r--test/cpp/interop/interop_client.h62
-rw-r--r--test/cpp/interop/metrics_client.cc16
-rw-r--r--test/cpp/interop/stress_interop_client.cc59
-rw-r--r--test/cpp/interop/stress_interop_client.h28
-rw-r--r--test/cpp/interop/stress_test.cc21
-rw-r--r--test/distrib/csharp/build_vs2015.bat29
-rw-r--r--third_party/objective_c/Cronet/cronet_c_for_grpc.h202
m---------third_party/protobuf0
-rw-r--r--tools/buildgen/plugins/make_fuzzer_tests.py1
-rwxr-xr-xtools/distrib/check_copyright.py1
-rwxr-xr-xtools/distrib/check_include_guards.py5
-rw-r--r--tools/distrib/python/grpcio_tools/protoc_lib_deps.py2
-rw-r--r--tools/doxygen/Doxyfile.c++2
-rw-r--r--tools/doxygen/Doxyfile.c++.internal2
-rw-r--r--tools/doxygen/Doxyfile.core1
-rw-r--r--tools/doxygen/Doxyfile.core.internal7
-rwxr-xr-xtools/gce/create_linux_performance_worker.sh2
-rwxr-xr-xtools/gce/linux_performance_worker_init.sh3
-rwxr-xr-xtools/gcp/stress_test/run_client.py14
-rwxr-xr-xtools/gcp/stress_test/run_server.py10
-rwxr-xr-xtools/gcp/stress_test/stress_test_utils.py7
-rw-r--r--tools/gource/create_auth_context.h (renamed from src/ruby/ext/grpc/rb_signal.h)13
-rwxr-xr-x[-rw-r--r--]tools/gource/gen-all-logs.sh (renamed from src/ruby/lib/grpc/signals.rb)54
-rwxr-xr-xtools/gource/gource.sh12
-rwxr-xr-xtools/gource/make-video.sh47
-rwxr-xr-xtools/jenkins/run_performance.sh2
-rw-r--r--tools/run_tests/build_artifact_csharp.bat29
-rwxr-xr-xtools/run_tests/build_package_node.sh2
-rwxr-xr-xtools/run_tests/build_python.sh4
-rw-r--r--tools/run_tests/configs.json3
-rwxr-xr-xtools/run_tests/dockerize/docker_run_tests.sh1
-rwxr-xr-xtools/run_tests/jobset.py8
-rwxr-xr-xtools/run_tests/performance/bq_upload_result.py43
-rwxr-xr-xtools/run_tests/performance/build_performance.sh5
-rwxr-xr-xtools/run_tests/performance/build_performance_go.sh44
-rwxr-xr-xtools/run_tests/performance/kill_workers.sh3
-rwxr-xr-xtools/run_tests/performance/remote_host_prepare.sh2
-rwxr-xr-xtools/run_tests/performance/run_netperf.sh45
-rwxr-xr-xtools/run_tests/performance/run_worker_go.sh37
-rw-r--r--tools/run_tests/performance/scenario_config.py209
-rw-r--r--tools/run_tests/post_tests_csharp.bat29
-rw-r--r--tools/run_tests/pre_build_c.bat29
-rw-r--r--tools/run_tests/pre_build_csharp.bat29
-rwxr-xr-xtools/run_tests/run_interop_tests.py4
-rwxr-xr-xtools/run_tests/run_performance_tests.py76
-rwxr-xr-xtools/run_tests/run_tests.py104
-rwxr-xr-xtools/run_tests/sanity/check_submodules.sh2
-rw-r--r--tools/run_tests/sources_and_headers.json48
-rw-r--r--tools/run_tests/stress_test/configs/csharp.json7
-rw-r--r--tools/run_tests/stress_test/configs/java.json15
-rwxr-xr-xtools/run_tests/stress_test/print_summary.py59
-rw-r--r--tools/run_tests/tests.json17501
-rw-r--r--vsprojects/build_plugins.bat29
-rw-r--r--vsprojects/build_vs2010.bat29
-rw-r--r--vsprojects/build_vs2013.bat29
-rw-r--r--vsprojects/build_vs2015.bat29
-rw-r--r--vsprojects/coapp/openssl/buildall.bat28
-rw-r--r--vsprojects/coapp/zlib/buildall.bat29
-rw-r--r--vsprojects/vcxproj/grpc++/grpc++.vcxproj2
-rw-r--r--vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters6
-rw-r--r--vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj2
-rw-r--r--vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters6
-rw-r--r--vsprojects/vcxproj/grpc/grpc.vcxproj11
-rw-r--r--vsprojects/vcxproj/grpc/grpc.vcxproj.filters39
-rw-r--r--vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj3
-rw-r--r--vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters6
-rw-r--r--vsprojects/vcxproj/test/server_builder_plugin_test/server_builder_plugin_test.vcxproj207
-rw-r--r--vsprojects/vcxproj/test/server_builder_plugin_test/server_builder_plugin_test.vcxproj.filters21
796 files changed, 24363 insertions, 3949 deletions
diff --git a/BUILD b/BUILD
index bb20346a68..7601a4ac5a 100644
--- a/BUILD
+++ b/BUILD
@@ -179,6 +179,7 @@ cc_library(
"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_poll_posix.h",
"src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.h",
"src/core/lib/iomgr/executor.h",
@@ -294,6 +295,7 @@ cc_library(
"src/core/ext/client_config/subchannel_call_holder.h",
"src/core/ext/client_config/subchannel_index.h",
"src/core/ext/client_config/uri_parser.h",
+ "third_party/objective_c/Cronet/cronet_c_for_grpc.h",
"src/core/ext/lb_policy/grpclb/load_balancer_api.h",
"src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h",
"src/core/ext/census/aggregation.h",
@@ -321,6 +323,7 @@ cc_library(
"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_posix.c",
"src/core/lib/iomgr/ev_posix.c",
"src/core/lib/iomgr/exec_ctx.c",
"src/core/lib/iomgr/executor.c",
@@ -456,6 +459,9 @@ cc_library(
"src/core/ext/client_config/uri_parser.c",
"src/core/ext/transport/chttp2/server/insecure/server_chttp2.c",
"src/core/ext/transport/chttp2/client/insecure/channel_create.c",
+ "src/core/ext/transport/cronet/client/secure/cronet_channel_create.c",
+ "src/core/ext/transport/cronet/transport/cronet_api_dummy.c",
+ "src/core/ext/transport/cronet/transport/cronet_transport.c",
"src/core/ext/lb_policy/grpclb/load_balancer_api.c",
"src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c",
"src/core/ext/lb_policy/pick_first/pick_first.c",
@@ -500,6 +506,7 @@ cc_library(
"include/grpc/impl/codegen/sync_posix.h",
"include/grpc/impl/codegen/sync_win32.h",
"include/grpc/impl/codegen/time.h",
+ "include/grpc/grpc_cronet.h",
"include/grpc/grpc_security.h",
"include/grpc/grpc_security_constants.h",
"include/grpc/census.h",
@@ -542,6 +549,7 @@ cc_library(
"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_poll_posix.h",
"src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.h",
"src/core/lib/iomgr/executor.h",
@@ -662,6 +670,7 @@ cc_library(
"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_posix.c",
"src/core/lib/iomgr/ev_posix.c",
"src/core/lib/iomgr/exec_ctx.c",
"src/core/lib/iomgr/executor.c",
@@ -909,6 +918,8 @@ cc_library(
"include/grpc++/impl/rpc_service_method.h",
"include/grpc++/impl/serialization_traits.h",
"include/grpc++/impl/server_builder_option.h",
+ "include/grpc++/impl/server_builder_plugin.h",
+ "include/grpc++/impl/server_initializer.h",
"include/grpc++/impl/service_type.h",
"include/grpc++/impl/sync.h",
"include/grpc++/impl/sync_cxx11.h",
@@ -1055,6 +1066,8 @@ cc_library(
"include/grpc++/impl/rpc_service_method.h",
"include/grpc++/impl/serialization_traits.h",
"include/grpc++/impl/server_builder_option.h",
+ "include/grpc++/impl/server_builder_plugin.h",
+ "include/grpc++/impl/server_initializer.h",
"include/grpc++/impl/service_type.h",
"include/grpc++/impl/sync.h",
"include/grpc++/impl/sync_cxx11.h",
@@ -1350,6 +1363,7 @@ objc_library(
"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_posix.c",
"src/core/lib/iomgr/ev_posix.c",
"src/core/lib/iomgr/exec_ctx.c",
"src/core/lib/iomgr/executor.c",
@@ -1485,6 +1499,9 @@ objc_library(
"src/core/ext/client_config/uri_parser.c",
"src/core/ext/transport/chttp2/server/insecure/server_chttp2.c",
"src/core/ext/transport/chttp2/client/insecure/channel_create.c",
+ "src/core/ext/transport/cronet/client/secure/cronet_channel_create.c",
+ "src/core/ext/transport/cronet/transport/cronet_api_dummy.c",
+ "src/core/ext/transport/cronet/transport/cronet_transport.c",
"src/core/ext/lb_policy/grpclb/load_balancer_api.c",
"src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c",
"src/core/ext/lb_policy/pick_first/pick_first.c",
@@ -1529,6 +1546,7 @@ objc_library(
"include/grpc/impl/codegen/sync_posix.h",
"include/grpc/impl/codegen/sync_win32.h",
"include/grpc/impl/codegen/time.h",
+ "include/grpc/grpc_cronet.h",
"include/grpc/grpc_security.h",
"include/grpc/grpc_security_constants.h",
"include/grpc/census.h",
@@ -1550,6 +1568,7 @@ objc_library(
"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_poll_posix.h",
"src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.h",
"src/core/lib/iomgr/executor.h",
@@ -1665,6 +1684,7 @@ objc_library(
"src/core/ext/client_config/subchannel_call_holder.h",
"src/core/ext/client_config/subchannel_index.h",
"src/core/ext/client_config/uri_parser.h",
+ "third_party/objective_c/Cronet/cronet_c_for_grpc.h",
"src/core/ext/lb_policy/grpclb/load_balancer_api.h",
"src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h",
"src/core/ext/census/aggregation.h",
diff --git a/Makefile b/Makefile
index fb48db7496..0d2603c221 100644
--- a/Makefile
+++ b/Makefile
@@ -187,8 +187,8 @@ CC_ubsan = clang
CXX_ubsan = clang++
LD_ubsan = clang
LDXX_ubsan = clang++
-CPPFLAGS_ubsan = -O1 -fsanitize-coverage=edge -fsanitize=undefined -fno-omit-frame-pointer -Wno-unused-command-line-argument
-LDFLAGS_ubsan = -fsanitize=undefined
+CPPFLAGS_ubsan = -O0 -fsanitize-coverage=edge -fsanitize=undefined,unsigned-integer-overflow -fno-omit-frame-pointer -Wno-unused-command-line-argument -Wvarargs
+LDFLAGS_ubsan = -fsanitize=undefined,unsigned-integer-overflow
DEFINES_ubsan = NDEBUG
DEFINES_ubsan += GRPC_TEST_SLOWDOWN_BUILD_FACTOR=1.5
@@ -1042,6 +1042,7 @@ reconnect_interop_client: $(BINDIR)/$(CONFIG)/reconnect_interop_client
reconnect_interop_server: $(BINDIR)/$(CONFIG)/reconnect_interop_server
secure_auth_context_test: $(BINDIR)/$(CONFIG)/secure_auth_context_test
secure_sync_unary_ping_pong_test: $(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test
+server_builder_plugin_test: $(BINDIR)/$(CONFIG)/server_builder_plugin_test
server_crash_test: $(BINDIR)/$(CONFIG)/server_crash_test
server_crash_test_client: $(BINDIR)/$(CONFIG)/server_crash_test_client
shutdown_test: $(BINDIR)/$(CONFIG)/shutdown_test
@@ -1410,6 +1411,7 @@ buildtests_cxx: buildtests_zookeeper privatelibs_cxx \
$(BINDIR)/$(CONFIG)/reconnect_interop_server \
$(BINDIR)/$(CONFIG)/secure_auth_context_test \
$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test \
+ $(BINDIR)/$(CONFIG)/server_builder_plugin_test \
$(BINDIR)/$(CONFIG)/server_crash_test \
$(BINDIR)/$(CONFIG)/server_crash_test_client \
$(BINDIR)/$(CONFIG)/shutdown_test \
@@ -1743,6 +1745,8 @@ test_cxx: test_zookeeper buildtests_cxx
$(Q) $(BINDIR)/$(CONFIG)/secure_auth_context_test || ( echo test secure_auth_context_test failed ; exit 1 )
$(E) "[RUN] Testing secure_sync_unary_ping_pong_test"
$(Q) $(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test || ( echo test secure_sync_unary_ping_pong_test failed ; exit 1 )
+ $(E) "[RUN] Testing server_builder_plugin_test"
+ $(Q) $(BINDIR)/$(CONFIG)/server_builder_plugin_test || ( echo test server_builder_plugin_test failed ; exit 1 )
$(E) "[RUN] Testing server_crash_test"
$(Q) $(BINDIR)/$(CONFIG)/server_crash_test || ( echo test server_crash_test failed ; exit 1 )
$(E) "[RUN] Testing shutdown_test"
@@ -2507,6 +2511,7 @@ LIBGRPC_SRC = \
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_posix.c \
src/core/lib/iomgr/ev_posix.c \
src/core/lib/iomgr/exec_ctx.c \
src/core/lib/iomgr/executor.c \
@@ -2642,6 +2647,9 @@ LIBGRPC_SRC = \
src/core/ext/client_config/uri_parser.c \
src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \
src/core/ext/transport/chttp2/client/insecure/channel_create.c \
+ src/core/ext/transport/cronet/client/secure/cronet_channel_create.c \
+ src/core/ext/transport/cronet/transport/cronet_api_dummy.c \
+ src/core/ext/transport/cronet/transport/cronet_transport.c \
src/core/ext/lb_policy/grpclb/load_balancer_api.c \
src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c \
third_party/nanopb/pb_common.c \
@@ -2689,6 +2697,7 @@ PUBLIC_HEADERS_C += \
include/grpc/impl/codegen/sync_posix.h \
include/grpc/impl/codegen/sync_win32.h \
include/grpc/impl/codegen/time.h \
+ include/grpc/grpc_cronet.h \
include/grpc/grpc_security.h \
include/grpc/grpc_security_constants.h \
include/grpc/census.h \
@@ -2857,6 +2866,7 @@ LIBGRPC_UNSECURE_SRC = \
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_posix.c \
src/core/lib/iomgr/ev_posix.c \
src/core/lib/iomgr/exec_ctx.c \
src/core/lib/iomgr/executor.c \
@@ -3221,6 +3231,8 @@ PUBLIC_HEADERS_CXX += \
include/grpc++/impl/rpc_service_method.h \
include/grpc++/impl/serialization_traits.h \
include/grpc++/impl/server_builder_option.h \
+ include/grpc++/impl/server_builder_plugin.h \
+ include/grpc++/impl/server_initializer.h \
include/grpc++/impl/service_type.h \
include/grpc++/impl/sync.h \
include/grpc++/impl/sync_cxx11.h \
@@ -3525,6 +3537,8 @@ PUBLIC_HEADERS_CXX += \
include/grpc++/impl/rpc_service_method.h \
include/grpc++/impl/serialization_traits.h \
include/grpc++/impl/server_builder_option.h \
+ include/grpc++/impl/server_builder_plugin.h \
+ include/grpc++/impl/server_initializer.h \
include/grpc++/impl/service_type.h \
include/grpc++/impl/sync.h \
include/grpc++/impl/sync_cxx11.h \
@@ -11502,6 +11516,49 @@ endif
endif
+SERVER_BUILDER_PLUGIN_TEST_SRC = \
+ test/cpp/end2end/server_builder_plugin_test.cc \
+
+SERVER_BUILDER_PLUGIN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_BUILDER_PLUGIN_TEST_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/server_builder_plugin_test: openssl_dep_error
+
+else
+
+
+
+
+ifeq ($(NO_PROTOBUF),true)
+
+# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+.
+
+$(BINDIR)/$(CONFIG)/server_builder_plugin_test: protobuf_dep_error
+
+else
+
+$(BINDIR)/$(CONFIG)/server_builder_plugin_test: $(PROTOBUF_DEP) $(SERVER_BUILDER_PLUGIN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+ $(E) "[LD] Linking $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) $(LDXX) $(LDFLAGS) $(SERVER_BUILDER_PLUGIN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_builder_plugin_test
+
+endif
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/cpp/end2end/server_builder_plugin_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+
+deps_server_builder_plugin_test: $(SERVER_BUILDER_PLUGIN_TEST_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(SERVER_BUILDER_PLUGIN_TEST_OBJS:.o=.dep)
+endif
+endif
+
+
SERVER_CRASH_TEST_SRC = \
test/cpp/end2end/server_crash_test.cc \
@@ -14356,6 +14413,9 @@ ifneq ($(OPENSSL_DEP),)
# otherwise parallel compilation will fail if a source is compiled first.
src/core/ext/transport/chttp2/client/secure/secure_channel_create.c: $(OPENSSL_DEP)
src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c: $(OPENSSL_DEP)
+src/core/ext/transport/cronet/client/secure/cronet_channel_create.c: $(OPENSSL_DEP)
+src/core/ext/transport/cronet/transport/cronet_api_dummy.c: $(OPENSSL_DEP)
+src/core/ext/transport/cronet/transport/cronet_transport.c: $(OPENSSL_DEP)
src/core/lib/http/httpcli_security_connector.c: $(OPENSSL_DEP)
src/core/lib/security/context/security_context.c: $(OPENSSL_DEP)
src/core/lib/security/credentials/composite/composite_credentials.c: $(OPENSSL_DEP)
diff --git a/binding.gyp b/binding.gyp
index 86adca1a41..f2271cbcbd 100644
--- a/binding.gyp
+++ b/binding.gyp
@@ -582,6 +582,7 @@
'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_posix.c',
'src/core/lib/iomgr/ev_posix.c',
'src/core/lib/iomgr/exec_ctx.c',
'src/core/lib/iomgr/executor.c',
@@ -717,6 +718,9 @@
'src/core/ext/client_config/uri_parser.c',
'src/core/ext/transport/chttp2/server/insecure/server_chttp2.c',
'src/core/ext/transport/chttp2/client/insecure/channel_create.c',
+ 'src/core/ext/transport/cronet/client/secure/cronet_channel_create.c',
+ 'src/core/ext/transport/cronet/transport/cronet_api_dummy.c',
+ 'src/core/ext/transport/cronet/transport/cronet_transport.c',
'src/core/ext/lb_policy/grpclb/load_balancer_api.c',
'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c',
'third_party/nanopb/pb_common.c',
diff --git a/build.yaml b/build.yaml
index 7ab16ef88f..09ab5276f9 100644
--- a/build.yaml
+++ b/build.yaml
@@ -166,6 +166,7 @@ filegroups:
- 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_poll_posix.h
- src/core/lib/iomgr/ev_posix.h
- src/core/lib/iomgr/exec_ctx.h
- src/core/lib/iomgr/executor.h
@@ -240,6 +241,7 @@ filegroups:
- 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_posix.c
- src/core/lib/iomgr/ev_posix.c
- src/core/lib/iomgr/exec_ctx.c
- src/core/lib/iomgr/executor.c
@@ -400,6 +402,7 @@ filegroups:
- grpc_client_config
- name: grpc_secure
public_headers:
+ - include/grpc/grpc_cronet.h
- include/grpc/grpc_security.h
- include/grpc/grpc_security_constants.h
headers:
@@ -564,6 +567,16 @@ filegroups:
- grpc_transport_chttp2
- grpc_base
- grpc_secure
+- name: grpc_transport_cronet_client_secure
+ headers:
+ - third_party/objective_c/Cronet/cronet_c_for_grpc.h
+ src:
+ - src/core/ext/transport/cronet/client/secure/cronet_channel_create.c
+ - src/core/ext/transport/cronet/transport/cronet_api_dummy.c
+ - src/core/ext/transport/cronet/transport/cronet_transport.c
+ filegroups:
+ - grpc_base
+ - grpc_transport_chttp2
- name: nanopb
headers:
- third_party/nanopb/pb.h
@@ -608,6 +621,8 @@ filegroups:
- include/grpc++/impl/rpc_service_method.h
- include/grpc++/impl/serialization_traits.h
- include/grpc++/impl/server_builder_option.h
+ - include/grpc++/impl/server_builder_plugin.h
+ - include/grpc++/impl/server_initializer.h
- include/grpc++/impl/service_type.h
- include/grpc++/impl/sync.h
- include/grpc++/impl/sync_cxx11.h
@@ -751,6 +766,7 @@ libs:
- grpc_transport_chttp2_client_secure
- grpc_transport_chttp2_server_insecure
- grpc_transport_chttp2_client_insecure
+ - grpc_transport_cronet_client_secure
- grpc_lb_policy_grpclb
- grpc_lb_policy_pick_first
- grpc_lb_policy_round_robin
@@ -2932,6 +2948,19 @@ targets:
- mac
- linux
- posix
+- name: server_builder_plugin_test
+ gtest: true
+ build: test
+ language: c++
+ src:
+ - test/cpp/end2end/server_builder_plugin_test.cc
+ deps:
+ - grpc++_test_util
+ - grpc_test_util
+ - grpc++
+ - grpc
+ - gpr_test_util
+ - gpr
- name: server_crash_test
gtest: true
cpu_cost: 0.1
@@ -3257,14 +3286,16 @@ configs:
timeout_multiplier: 5
ubsan:
CC: clang
- CPPFLAGS: -O1 -fsanitize-coverage=edge -fsanitize=undefined -fno-omit-frame-pointer
- -Wno-unused-command-line-argument
+ CPPFLAGS: -O0 -fsanitize-coverage=edge -fsanitize=undefined,unsigned-integer-overflow
+ -fno-omit-frame-pointer -Wno-unused-command-line-argument -Wvarargs
CXX: clang++
DEFINES: NDEBUG
LD: clang
- LDFLAGS: -fsanitize=undefined
+ LDFLAGS: -fsanitize=undefined,unsigned-integer-overflow
LDXX: clang++
compile_the_world: true
+ test_environ:
+ UBSAN_OPTIONS: print_stacktrace=1
timeout_multiplier: 1.5
defaults:
boringssl:
diff --git a/config.m4 b/config.m4
index e0f82827aa..67c9bef293 100644
--- a/config.m4
+++ b/config.m4
@@ -101,6 +101,7 @@ if test "$PHP_GRPC" != "no"; then
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_posix.c \
src/core/lib/iomgr/ev_posix.c \
src/core/lib/iomgr/exec_ctx.c \
src/core/lib/iomgr/executor.c \
@@ -236,6 +237,9 @@ if test "$PHP_GRPC" != "no"; then
src/core/ext/client_config/uri_parser.c \
src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \
src/core/ext/transport/chttp2/client/insecure/channel_create.c \
+ src/core/ext/transport/cronet/client/secure/cronet_channel_create.c \
+ src/core/ext/transport/cronet/transport/cronet_api_dummy.c \
+ src/core/ext/transport/cronet/transport/cronet_transport.c \
src/core/ext/lb_policy/grpclb/load_balancer_api.c \
src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c \
third_party/nanopb/pb_common.c \
@@ -574,6 +578,8 @@ if test "$PHP_GRPC" != "no"; then
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/ext/transport/cronet/client/secure)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/cronet/transport)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/channel)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/compression)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/debug)
diff --git a/examples/csharp/helloworld/generate_protos.bat b/examples/csharp/helloworld/generate_protos.bat
index 99f81a7d82..3be1ceb80f 100644
--- a/examples/csharp/helloworld/generate_protos.bat
+++ b/examples/csharp/helloworld/generate_protos.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@rem (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+@rem OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
@rem Generate the C# code for .proto files
setlocal
diff --git a/examples/csharp/route_guide/generate_protos.bat b/examples/csharp/route_guide/generate_protos.bat
index 12be52c680..b3c5136063 100644
--- a/examples/csharp/route_guide/generate_protos.bat
+++ b/examples/csharp/route_guide/generate_protos.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@rem (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+@rem OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
@rem Generate the C# code for .proto files
setlocal
diff --git a/examples/node/README.md b/examples/node/README.md
index 28878833ce..59fb4a17f5 100644
--- a/examples/node/README.md
+++ b/examples/node/README.md
@@ -22,18 +22,24 @@ INSTALL
TRY IT!
-------
+There are two ways to generate the code needed to work with protocol buffers in Node.js - one approach uses [Protobuf.js](https://github.com/dcodeIO/ProtoBuf.js/) to dynamically generate the code at runtime, the other uses code statically generated using the protocol buffer compiler `protoc`. The examples behave identically, and either server can be used with either client.
+
- Run the server
```sh
$ # from this directory
- $ node ./greeter_server.js &
+ $ node ./dynamic_codegen/greeter_server.js &
+ $ # OR
+ $ node ./static_codegen/greeter_server.js &
```
- Run the client
```sh
$ # from this directory
- $ node ./greeter_client.js
+ $ node ./dynamic_codegen/greeter_client.js
+ $ # OR
+ $ node ./dynamic_codegen/greeter_client.js
```
TUTORIAL
diff --git a/examples/node/dynamic_codegen/README.md b/examples/node/dynamic_codegen/README.md
new file mode 100644
index 0000000000..1a6ec17a3e
--- /dev/null
+++ b/examples/node/dynamic_codegen/README.md
@@ -0,0 +1 @@
+This is the dynamic code generation variant of the Node examples. Code in these examples is generated at runtime using Protobuf.js.
diff --git a/examples/node/greeter_client.js b/examples/node/dynamic_codegen/greeter_client.js
index 2820acbbb7..e24fb07f4c 100644
--- a/examples/node/greeter_client.js
+++ b/examples/node/dynamic_codegen/greeter_client.js
@@ -31,7 +31,7 @@
*
*/
-var PROTO_PATH = __dirname + '/../protos/helloworld.proto';
+var PROTO_PATH = __dirname + '/../../protos/helloworld.proto';
var grpc = require('grpc');
var hello_proto = grpc.load(PROTO_PATH).helloworld;
diff --git a/examples/node/greeter_server.js b/examples/node/dynamic_codegen/greeter_server.js
index e7ad51f600..aa43e4c672 100644
--- a/examples/node/greeter_server.js
+++ b/examples/node/dynamic_codegen/greeter_server.js
@@ -31,7 +31,7 @@
*
*/
-var PROTO_PATH = __dirname + '/../protos/helloworld.proto';
+var PROTO_PATH = __dirname + '/../../protos/helloworld.proto';
var grpc = require('grpc');
var hello_proto = grpc.load(PROTO_PATH).helloworld;
diff --git a/examples/node/route_guide/README.md b/examples/node/dynamic_codegen/route_guide/README.md
index 22bcf78986..22bcf78986 100644
--- a/examples/node/route_guide/README.md
+++ b/examples/node/dynamic_codegen/route_guide/README.md
diff --git a/examples/node/route_guide/route_guide_client.js b/examples/node/dynamic_codegen/route_guide/route_guide_client.js
index fd05a59b63..775b9addbf 100644
--- a/examples/node/route_guide/route_guide_client.js
+++ b/examples/node/dynamic_codegen/route_guide/route_guide_client.js
@@ -31,7 +31,7 @@
*
*/
-var PROTO_PATH = __dirname + '/../../protos/route_guide.proto';
+var PROTO_PATH = __dirname + '/../../../protos/route_guide.proto';
var async = require('async');
var fs = require('fs');
diff --git a/examples/node/route_guide/route_guide_db.json b/examples/node/dynamic_codegen/route_guide/route_guide_db.json
index 9d6a980ab7..9d6a980ab7 100644
--- a/examples/node/route_guide/route_guide_db.json
+++ b/examples/node/dynamic_codegen/route_guide/route_guide_db.json
diff --git a/examples/node/route_guide/route_guide_server.js b/examples/node/dynamic_codegen/route_guide/route_guide_server.js
index 6c01fac246..6d59348cc9 100644
--- a/examples/node/route_guide/route_guide_server.js
+++ b/examples/node/dynamic_codegen/route_guide/route_guide_server.js
@@ -31,7 +31,7 @@
*
*/
-var PROTO_PATH = __dirname + '/../../protos/route_guide.proto';
+var PROTO_PATH = __dirname + '/../../../protos/route_guide.proto';
var fs = require('fs');
var parseArgs = require('minimist');
diff --git a/examples/node/package.json b/examples/node/package.json
index d135df2464..2cae031175 100644
--- a/examples/node/package.json
+++ b/examples/node/package.json
@@ -3,7 +3,8 @@
"version": "0.1.0",
"dependencies": {
"async": "^1.5.2",
- "grpc": "0.13.0",
+ "google-protobuf": "^3.0.0-alpha.5",
+ "grpc": "^0.14.0",
"lodash": "^4.6.1",
"minimist": "^1.2.0"
}
diff --git a/examples/node/static_codegen/README.md b/examples/node/static_codegen/README.md
new file mode 100644
index 0000000000..fc97d34a38
--- /dev/null
+++ b/examples/node/static_codegen/README.md
@@ -0,0 +1,7 @@
+This is the static code generation variant of the Node examples. Code in these examples is pre-generated using protoc and the Node gRPC protoc plugin, and the generated code can be found in various `*_pb.js` files. The command line sequence for generating those files is as follows (assuming that `protoc` and `grpc_node_plugin` are present, and starting in the base directory of this package):
+
+```sh
+cd ../protos
+protoc --js_out=import_style=commonjs,binary:../node/static_codegen/ --grpc_out=../node/static_codegen --plugin=protoc-gen-grpc=grpc_node_plugin helloworld.proto
+protoc --js_out=import_style=commonjs,binary:../node/static_codegen/route_guide/ --grpc_out=../node/static_codegen/route_guide/ --plugin=protoc-gen-grpc=grpc_node_plugin route_guide.proto
+```
diff --git a/examples/node/static_codegen/greeter_client.js b/examples/node/static_codegen/greeter_client.js
new file mode 100644
index 0000000000..da80cf34d8
--- /dev/null
+++ b/examples/node/static_codegen/greeter_client.js
@@ -0,0 +1,55 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+var messages = require('./helloworld_pb');
+var services = require('./helloworld_grpc_pb');
+
+var grpc = require('grpc');
+
+function main() {
+ var client = new services.GreeterClient('localhost:50051',
+ grpc.credentials.createInsecure());
+ var user;
+ if (process.argv.length >= 3) {
+ user = process.argv[2];
+ } else {
+ user = 'world';
+ }
+ var request = new messages.HelloRequest();
+ request.setName(user);
+ client.sayHello(request, function(err, response) {
+ console.log('Greeting:', response.getMessage());
+ });
+}
+
+main();
diff --git a/examples/node/static_codegen/greeter_server.js b/examples/node/static_codegen/greeter_server.js
new file mode 100644
index 0000000000..a1591b89fa
--- /dev/null
+++ b/examples/node/static_codegen/greeter_server.js
@@ -0,0 +1,59 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+var messages = require('./helloworld_pb');
+var services = require('./helloworld_grpc_pb');
+
+var grpc = require('grpc');
+
+/**
+ * Implements the SayHello RPC method.
+ */
+function sayHello(call, callback) {
+ var reply = new messages.HelloReply();
+ reply.setMessage('Hello ' + call.request.getName());
+ callback(null, reply);
+}
+
+/**
+ * Starts an RPC server that receives requests for the Greeter service at the
+ * sample server port
+ */
+function main() {
+ var server = new grpc.Server();
+ server.addService(services.GreeterService, {sayHello: sayHello});
+ server.bind('0.0.0.0:50051', grpc.ServerCredentials.createInsecure());
+ server.start();
+}
+
+main();
diff --git a/examples/node/static_codegen/helloworld_grpc_pb.js b/examples/node/static_codegen/helloworld_grpc_pb.js
new file mode 100644
index 0000000000..846f8b6bf5
--- /dev/null
+++ b/examples/node/static_codegen/helloworld_grpc_pb.js
@@ -0,0 +1,44 @@
+// GENERATED CODE -- DO NOT EDIT!
+
+'use strict';
+var grpc = require('grpc');
+var helloworld_pb = require('./helloworld_pb.js');
+
+function serialize_HelloReply(arg) {
+ if (!(arg instanceof helloworld_pb.HelloReply)) {
+ throw new Error('Expected argument of type HelloReply');
+ }
+ return new Buffer(arg.serializeBinary());
+}
+
+function deserialize_HelloReply(buffer_arg) {
+ return helloworld_pb.HelloReply.deserializeBinary(new Uint8Array(buffer_arg));
+}
+
+function serialize_HelloRequest(arg) {
+ if (!(arg instanceof helloworld_pb.HelloRequest)) {
+ throw new Error('Expected argument of type HelloRequest');
+ }
+ return new Buffer(arg.serializeBinary());
+}
+
+function deserialize_HelloRequest(buffer_arg) {
+ return helloworld_pb.HelloRequest.deserializeBinary(new Uint8Array(buffer_arg));
+}
+
+
+var GreeterService = exports.GreeterService = {
+ sayHello: {
+ path: '/helloworld.Greeter/SayHello',
+ requestStream: false,
+ responseStream: false,
+ requestType: helloworld_pb.HelloRequest,
+ responseType: helloworld_pb.HelloReply,
+ requestSerialize: serialize_HelloRequest,
+ requestDeserialize: deserialize_HelloRequest,
+ responseSerialize: serialize_HelloReply,
+ responseDeserialize: deserialize_HelloReply,
+ },
+};
+
+exports.GreeterClient = grpc.makeGenericClientConstructor(GreeterService);
diff --git a/examples/node/static_codegen/helloworld_pb.js b/examples/node/static_codegen/helloworld_pb.js
new file mode 100644
index 0000000000..6405bd90f1
--- /dev/null
+++ b/examples/node/static_codegen/helloworld_pb.js
@@ -0,0 +1,332 @@
+/**
+ * @fileoverview
+ * @enhanceable
+ * @public
+ */
+// GENERATED CODE -- DO NOT EDIT!
+
+var jspb = require('google-protobuf');
+var goog = jspb;
+var global = Function('return this')();
+
+goog.exportSymbol('proto.helloworld.HelloReply', null, global);
+goog.exportSymbol('proto.helloworld.HelloRequest', null, global);
+
+/**
+ * Generated by JsPbCodeGenerator.
+ * @param {Array=} opt_data Optional initial data array, typically from a
+ * server response, or constructed directly in Javascript. The array is used
+ * in place and becomes part of the constructed object. It is not cloned.
+ * If no data is provided, the constructed object will be empty, but still
+ * valid.
+ * @extends {jspb.Message}
+ * @constructor
+ */
+proto.helloworld.HelloRequest = function(opt_data) {
+ jspb.Message.initialize(this, opt_data, 0, -1, null, null);
+};
+goog.inherits(proto.helloworld.HelloRequest, jspb.Message);
+if (goog.DEBUG && !COMPILED) {
+ proto.helloworld.HelloRequest.displayName = 'proto.helloworld.HelloRequest';
+}
+
+
+if (jspb.Message.GENERATE_TO_OBJECT) {
+/**
+ * Creates an object representation of this proto suitable for use in Soy templates.
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
+ * For the list of reserved names please see:
+ * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
+ * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
+ * for transitional soy proto support: http://goto/soy-param-migration
+ * @return {!Object}
+ */
+proto.helloworld.HelloRequest.prototype.toObject = function(opt_includeInstance) {
+ return proto.helloworld.HelloRequest.toObject(opt_includeInstance, this);
+};
+
+
+/**
+ * Static version of the {@see toObject} method.
+ * @param {boolean|undefined} includeInstance Whether to include the JSPB
+ * instance for transitional soy proto support:
+ * http://goto/soy-param-migration
+ * @param {!proto.helloworld.HelloRequest} msg The msg instance to transform.
+ * @return {!Object}
+ */
+proto.helloworld.HelloRequest.toObject = function(includeInstance, msg) {
+ var f, obj = {
+ name: msg.getName()
+ };
+
+ if (includeInstance) {
+ obj.$jspbMessageInstance = msg
+ }
+ return obj;
+};
+}
+
+
+/**
+ * Deserializes binary data (in protobuf wire format).
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
+ * @return {!proto.helloworld.HelloRequest}
+ */
+proto.helloworld.HelloRequest.deserializeBinary = function(bytes) {
+ var reader = new jspb.BinaryReader(bytes);
+ var msg = new proto.helloworld.HelloRequest;
+ return proto.helloworld.HelloRequest.deserializeBinaryFromReader(msg, reader);
+};
+
+
+/**
+ * Deserializes binary data (in protobuf wire format) from the
+ * given reader into the given message object.
+ * @param {!proto.helloworld.HelloRequest} msg The message object to deserialize into.
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
+ * @return {!proto.helloworld.HelloRequest}
+ */
+proto.helloworld.HelloRequest.deserializeBinaryFromReader = function(msg, reader) {
+ while (reader.nextField()) {
+ if (reader.isEndGroup()) {
+ break;
+ }
+ var field = reader.getFieldNumber();
+ switch (field) {
+ case 1:
+ var value = /** @type {string} */ (reader.readString());
+ msg.setName(value);
+ break;
+ default:
+ reader.skipField();
+ break;
+ }
+ }
+ return msg;
+};
+
+
+/**
+ * Class method variant: serializes the given message to binary data
+ * (in protobuf wire format), writing to the given BinaryWriter.
+ * @param {!proto.helloworld.HelloRequest} message
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.helloworld.HelloRequest.serializeBinaryToWriter = function(message, writer) {
+ message.serializeBinaryToWriter(writer);
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format).
+ * @return {!Uint8Array}
+ */
+proto.helloworld.HelloRequest.prototype.serializeBinary = function() {
+ var writer = new jspb.BinaryWriter();
+ this.serializeBinaryToWriter(writer);
+ return writer.getResultBuffer();
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format),
+ * writing to the given BinaryWriter.
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.helloworld.HelloRequest.prototype.serializeBinaryToWriter = function (writer) {
+ var f = undefined;
+ f = this.getName();
+ if (f.length > 0) {
+ writer.writeString(
+ 1,
+ f
+ );
+ }
+};
+
+
+/**
+ * Creates a deep clone of this proto. No data is shared with the original.
+ * @return {!proto.helloworld.HelloRequest} The clone.
+ */
+proto.helloworld.HelloRequest.prototype.cloneMessage = function() {
+ return /** @type {!proto.helloworld.HelloRequest} */ (jspb.Message.cloneMessage(this));
+};
+
+
+/**
+ * optional string name = 1;
+ * @return {string}
+ */
+proto.helloworld.HelloRequest.prototype.getName = function() {
+ return /** @type {string} */ (jspb.Message.getFieldProto3(this, 1, ""));
+};
+
+
+/** @param {string} value */
+proto.helloworld.HelloRequest.prototype.setName = function(value) {
+ jspb.Message.setField(this, 1, value);
+};
+
+
+
+/**
+ * Generated by JsPbCodeGenerator.
+ * @param {Array=} opt_data Optional initial data array, typically from a
+ * server response, or constructed directly in Javascript. The array is used
+ * in place and becomes part of the constructed object. It is not cloned.
+ * If no data is provided, the constructed object will be empty, but still
+ * valid.
+ * @extends {jspb.Message}
+ * @constructor
+ */
+proto.helloworld.HelloReply = function(opt_data) {
+ jspb.Message.initialize(this, opt_data, 0, -1, null, null);
+};
+goog.inherits(proto.helloworld.HelloReply, jspb.Message);
+if (goog.DEBUG && !COMPILED) {
+ proto.helloworld.HelloReply.displayName = 'proto.helloworld.HelloReply';
+}
+
+
+if (jspb.Message.GENERATE_TO_OBJECT) {
+/**
+ * Creates an object representation of this proto suitable for use in Soy templates.
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
+ * For the list of reserved names please see:
+ * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
+ * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
+ * for transitional soy proto support: http://goto/soy-param-migration
+ * @return {!Object}
+ */
+proto.helloworld.HelloReply.prototype.toObject = function(opt_includeInstance) {
+ return proto.helloworld.HelloReply.toObject(opt_includeInstance, this);
+};
+
+
+/**
+ * Static version of the {@see toObject} method.
+ * @param {boolean|undefined} includeInstance Whether to include the JSPB
+ * instance for transitional soy proto support:
+ * http://goto/soy-param-migration
+ * @param {!proto.helloworld.HelloReply} msg The msg instance to transform.
+ * @return {!Object}
+ */
+proto.helloworld.HelloReply.toObject = function(includeInstance, msg) {
+ var f, obj = {
+ message: msg.getMessage()
+ };
+
+ if (includeInstance) {
+ obj.$jspbMessageInstance = msg
+ }
+ return obj;
+};
+}
+
+
+/**
+ * Deserializes binary data (in protobuf wire format).
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
+ * @return {!proto.helloworld.HelloReply}
+ */
+proto.helloworld.HelloReply.deserializeBinary = function(bytes) {
+ var reader = new jspb.BinaryReader(bytes);
+ var msg = new proto.helloworld.HelloReply;
+ return proto.helloworld.HelloReply.deserializeBinaryFromReader(msg, reader);
+};
+
+
+/**
+ * Deserializes binary data (in protobuf wire format) from the
+ * given reader into the given message object.
+ * @param {!proto.helloworld.HelloReply} msg The message object to deserialize into.
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
+ * @return {!proto.helloworld.HelloReply}
+ */
+proto.helloworld.HelloReply.deserializeBinaryFromReader = function(msg, reader) {
+ while (reader.nextField()) {
+ if (reader.isEndGroup()) {
+ break;
+ }
+ var field = reader.getFieldNumber();
+ switch (field) {
+ case 1:
+ var value = /** @type {string} */ (reader.readString());
+ msg.setMessage(value);
+ break;
+ default:
+ reader.skipField();
+ break;
+ }
+ }
+ return msg;
+};
+
+
+/**
+ * Class method variant: serializes the given message to binary data
+ * (in protobuf wire format), writing to the given BinaryWriter.
+ * @param {!proto.helloworld.HelloReply} message
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.helloworld.HelloReply.serializeBinaryToWriter = function(message, writer) {
+ message.serializeBinaryToWriter(writer);
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format).
+ * @return {!Uint8Array}
+ */
+proto.helloworld.HelloReply.prototype.serializeBinary = function() {
+ var writer = new jspb.BinaryWriter();
+ this.serializeBinaryToWriter(writer);
+ return writer.getResultBuffer();
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format),
+ * writing to the given BinaryWriter.
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.helloworld.HelloReply.prototype.serializeBinaryToWriter = function (writer) {
+ var f = undefined;
+ f = this.getMessage();
+ if (f.length > 0) {
+ writer.writeString(
+ 1,
+ f
+ );
+ }
+};
+
+
+/**
+ * Creates a deep clone of this proto. No data is shared with the original.
+ * @return {!proto.helloworld.HelloReply} The clone.
+ */
+proto.helloworld.HelloReply.prototype.cloneMessage = function() {
+ return /** @type {!proto.helloworld.HelloReply} */ (jspb.Message.cloneMessage(this));
+};
+
+
+/**
+ * optional string message = 1;
+ * @return {string}
+ */
+proto.helloworld.HelloReply.prototype.getMessage = function() {
+ return /** @type {string} */ (jspb.Message.getFieldProto3(this, 1, ""));
+};
+
+
+/** @param {string} value */
+proto.helloworld.HelloReply.prototype.setMessage = function(value) {
+ jspb.Message.setField(this, 1, value);
+};
+
+
+goog.object.extend(exports, proto.helloworld);
diff --git a/examples/node/static_codegen/route_guide/README.md b/examples/node/static_codegen/route_guide/README.md
new file mode 100644
index 0000000000..22bcf78986
--- /dev/null
+++ b/examples/node/static_codegen/route_guide/README.md
@@ -0,0 +1,5 @@
+#gRPC Basics: Node.js sample code
+
+The files in this folder are the samples used in [gRPC Basics: Node.js][], a detailed tutorial for using gRPC in Node.js.
+
+[gRPC Basics: Node.js]:http://www.grpc.io/docs/tutorials/basic/node.html
diff --git a/examples/node/static_codegen/route_guide/route_guide_client.js b/examples/node/static_codegen/route_guide/route_guide_client.js
new file mode 100644
index 0000000000..ecde78616b
--- /dev/null
+++ b/examples/node/static_codegen/route_guide/route_guide_client.js
@@ -0,0 +1,247 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+var messages = require('./route_guide_pb');
+var services = require('./route_guide_grpc_pb');
+
+var async = require('async');
+var fs = require('fs');
+var parseArgs = require('minimist');
+var path = require('path');
+var _ = require('lodash');
+var grpc = require('grpc');
+
+var client = new services.RouteGuideClient('localhost:50051',
+ grpc.credentials.createInsecure());
+
+var COORD_FACTOR = 1e7;
+
+/**
+ * Run the getFeature demo. Calls getFeature with a point known to have a
+ * feature and a point known not to have a feature.
+ * @param {function} callback Called when this demo is complete
+ */
+function runGetFeature(callback) {
+ var next = _.after(2, callback);
+ function featureCallback(error, feature) {
+ if (error) {
+ callback(error);
+ }
+ var latitude = feature.getLocation().getLatitude();
+ var longitude = feature.getLocation().getLongitude();
+ if (feature.getName() === '') {
+ console.log('Found no feature at ' +
+ latitude/COORD_FACTOR + ', ' + longitude/COORD_FACTOR);
+ } else {
+ console.log('Found feature called "' + feature.getName() + '" at ' +
+ latitude/COORD_FACTOR + ', ' + longitude/COORD_FACTOR);
+ }
+ next();
+ }
+ var point1 = new messages.Point();
+ point1.setLatitude(409146138);
+ point1.setLongitude(-746188906);
+ var point2 = new messages.Point();
+ point2.setLatitude(0);
+ point2.setLongitude(0);
+ client.getFeature(point1, featureCallback);
+ client.getFeature(point2, featureCallback);
+}
+
+/**
+ * Run the listFeatures demo. Calls listFeatures with a rectangle containing all
+ * of the features in the pre-generated database. Prints each response as it
+ * comes in.
+ * @param {function} callback Called when this demo is complete
+ */
+function runListFeatures(callback) {
+ var rect = new messages.Rectangle();
+ var lo = new messages.Point();
+ lo.setLatitude(400000000);
+ lo.setLongitude(-750000000);
+ rect.setLo(lo);
+ var hi = new messages.Point();
+ hi.setLatitude(420000000);
+ hi.setLongitude(-730000000);
+ rect.setHi(hi);
+ console.log('Looking for features between 40, -75 and 42, -73');
+ var call = client.listFeatures(rect);
+ call.on('data', function(feature) {
+ console.log('Found feature called "' + feature.getName() + '" at ' +
+ feature.getLocation().getLatitude()/COORD_FACTOR + ', ' +
+ feature.getLocation().getLongitude()/COORD_FACTOR);
+ });
+ call.on('end', callback);
+}
+
+/**
+ * Run the recordRoute demo. Sends several randomly chosen points from the
+ * pre-generated feature database with a variable delay in between. Prints the
+ * statistics when they are sent from the server.
+ * @param {function} callback Called when this demo is complete
+ */
+function runRecordRoute(callback) {
+ var argv = parseArgs(process.argv, {
+ string: 'db_path'
+ });
+ fs.readFile(path.resolve(argv.db_path), function(err, data) {
+ if (err) callback(err);
+ // Transform the loaded features to Feature objects
+ var feature_list = _.map(JSON.parse(data), function(value) {
+ var feature = new messages.Feature();
+ feature.setName(value.name);
+ var location = new messages.Point();
+ location.setLatitude(value.location.latitude);
+ location.setLongitude(value.location.longitude);
+ feature.setLocation(location);
+ return feature;
+ });
+
+ var num_points = 10;
+ var call = client.recordRoute(function(error, stats) {
+ if (error) {
+ callback(error);
+ }
+ console.log('Finished trip with', stats.getPointCount(), 'points');
+ console.log('Passed', stats.getFeatureCount(), 'features');
+ console.log('Travelled', stats.getDistance(), 'meters');
+ console.log('It took', stats.getElapsedTime(), 'seconds');
+ callback();
+ });
+ /**
+ * Constructs a function that asynchronously sends the given point and then
+ * delays sending its callback
+ * @param {messages.Point} location The point to send
+ * @return {function(function)} The function that sends the point
+ */
+ function pointSender(location) {
+ /**
+ * Sends the point, then calls the callback after a delay
+ * @param {function} callback Called when complete
+ */
+ return function(callback) {
+ console.log('Visiting point ' + location.getLatitude()/COORD_FACTOR +
+ ', ' + location.getLongitude()/COORD_FACTOR);
+ call.write(location);
+ _.delay(callback, _.random(500, 1500));
+ };
+ }
+ var point_senders = [];
+ for (var i = 0; i < num_points; i++) {
+ var rand_point = feature_list[_.random(0, feature_list.length - 1)];
+ point_senders[i] = pointSender(rand_point.getLocation());
+ }
+ async.series(point_senders, function() {
+ call.end();
+ });
+ });
+}
+
+/**
+ * Run the routeChat demo. Send some chat messages, and print any chat messages
+ * that are sent from the server.
+ * @param {function} callback Called when the demo is complete
+ */
+function runRouteChat(callback) {
+ var call = client.routeChat();
+ call.on('data', function(note) {
+ console.log('Got message "' + note.getMessage() + '" at ' +
+ note.getLocation().getLatitude() + ', ' +
+ note.getLocation().getLongitude());
+ });
+
+ call.on('end', callback);
+
+ var notes = [{
+ location: {
+ latitude: 0,
+ longitude: 0
+ },
+ message: 'First message'
+ }, {
+ location: {
+ latitude: 0,
+ longitude: 1
+ },
+ message: 'Second message'
+ }, {
+ location: {
+ latitude: 1,
+ longitude: 0
+ },
+ message: 'Third message'
+ }, {
+ location: {
+ latitude: 0,
+ longitude: 0
+ },
+ message: 'Fourth message'
+ }];
+ for (var i = 0; i < notes.length; i++) {
+ var note = notes[i];
+ console.log('Sending message "' + note.message + '" at ' +
+ note.location.latitude + ', ' + note.location.longitude);
+ var noteMsg = new messages.RouteNote();
+ noteMsg.setMessage(note.message);
+ var location = new messages.Point();
+ location.setLatitude(note.location.latitude);
+ location.setLongitude(note.location.longitude);
+ noteMsg.setLocation(location);
+ call.write(noteMsg);
+ }
+ call.end();
+}
+
+/**
+ * Run all of the demos in order
+ */
+function main() {
+ async.series([
+ runGetFeature,
+ runListFeatures,
+ runRecordRoute,
+ runRouteChat
+ ]);
+}
+
+if (require.main === module) {
+ main();
+}
+
+exports.runGetFeature = runGetFeature;
+
+exports.runListFeatures = runListFeatures;
+
+exports.runRecordRoute = runRecordRoute;
+
+exports.runRouteChat = runRouteChat;
diff --git a/examples/node/static_codegen/route_guide/route_guide_db.json b/examples/node/static_codegen/route_guide/route_guide_db.json
new file mode 100644
index 0000000000..9d6a980ab7
--- /dev/null
+++ b/examples/node/static_codegen/route_guide/route_guide_db.json
@@ -0,0 +1,601 @@
+[{
+ "location": {
+ "latitude": 407838351,
+ "longitude": -746143763
+ },
+ "name": "Patriots Path, Mendham, NJ 07945, USA"
+}, {
+ "location": {
+ "latitude": 408122808,
+ "longitude": -743999179
+ },
+ "name": "101 New Jersey 10, Whippany, NJ 07981, USA"
+}, {
+ "location": {
+ "latitude": 413628156,
+ "longitude": -749015468
+ },
+ "name": "U.S. 6, Shohola, PA 18458, USA"
+}, {
+ "location": {
+ "latitude": 419999544,
+ "longitude": -740371136
+ },
+ "name": "5 Conners Road, Kingston, NY 12401, USA"
+}, {
+ "location": {
+ "latitude": 414008389,
+ "longitude": -743951297
+ },
+ "name": "Mid Hudson Psychiatric Center, New Hampton, NY 10958, USA"
+}, {
+ "location": {
+ "latitude": 419611318,
+ "longitude": -746524769
+ },
+ "name": "287 Flugertown Road, Livingston Manor, NY 12758, USA"
+}, {
+ "location": {
+ "latitude": 406109563,
+ "longitude": -742186778
+ },
+ "name": "4001 Tremley Point Road, Linden, NJ 07036, USA"
+}, {
+ "location": {
+ "latitude": 416802456,
+ "longitude": -742370183
+ },
+ "name": "352 South Mountain Road, Wallkill, NY 12589, USA"
+}, {
+ "location": {
+ "latitude": 412950425,
+ "longitude": -741077389
+ },
+ "name": "Bailey Turn Road, Harriman, NY 10926, USA"
+}, {
+ "location": {
+ "latitude": 412144655,
+ "longitude": -743949739
+ },
+ "name": "193-199 Wawayanda Road, Hewitt, NJ 07421, USA"
+}, {
+ "location": {
+ "latitude": 415736605,
+ "longitude": -742847522
+ },
+ "name": "406-496 Ward Avenue, Pine Bush, NY 12566, USA"
+}, {
+ "location": {
+ "latitude": 413843930,
+ "longitude": -740501726
+ },
+ "name": "162 Merrill Road, Highland Mills, NY 10930, USA"
+}, {
+ "location": {
+ "latitude": 410873075,
+ "longitude": -744459023
+ },
+ "name": "Clinton Road, West Milford, NJ 07480, USA"
+}, {
+ "location": {
+ "latitude": 412346009,
+ "longitude": -744026814
+ },
+ "name": "16 Old Brook Lane, Warwick, NY 10990, USA"
+}, {
+ "location": {
+ "latitude": 402948455,
+ "longitude": -747903913
+ },
+ "name": "3 Drake Lane, Pennington, NJ 08534, USA"
+}, {
+ "location": {
+ "latitude": 406337092,
+ "longitude": -740122226
+ },
+ "name": "6324 8th Avenue, Brooklyn, NY 11220, USA"
+}, {
+ "location": {
+ "latitude": 406421967,
+ "longitude": -747727624
+ },
+ "name": "1 Merck Access Road, Whitehouse Station, NJ 08889, USA"
+}, {
+ "location": {
+ "latitude": 416318082,
+ "longitude": -749677716
+ },
+ "name": "78-98 Schalck Road, Narrowsburg, NY 12764, USA"
+}, {
+ "location": {
+ "latitude": 415301720,
+ "longitude": -748416257
+ },
+ "name": "282 Lakeview Drive Road, Highland Lake, NY 12743, USA"
+}, {
+ "location": {
+ "latitude": 402647019,
+ "longitude": -747071791
+ },
+ "name": "330 Evelyn Avenue, Hamilton Township, NJ 08619, USA"
+}, {
+ "location": {
+ "latitude": 412567807,
+ "longitude": -741058078
+ },
+ "name": "New York State Reference Route 987E, Southfields, NY 10975, USA"
+}, {
+ "location": {
+ "latitude": 416855156,
+ "longitude": -744420597
+ },
+ "name": "103-271 Tempaloni Road, Ellenville, NY 12428, USA"
+}, {
+ "location": {
+ "latitude": 404663628,
+ "longitude": -744820157
+ },
+ "name": "1300 Airport Road, North Brunswick Township, NJ 08902, USA"
+}, {
+ "location": {
+ "latitude": 407113723,
+ "longitude": -749746483
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 402133926,
+ "longitude": -743613249
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 400273442,
+ "longitude": -741220915
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 411236786,
+ "longitude": -744070769
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 411633782,
+ "longitude": -746784970
+ },
+ "name": "211-225 Plains Road, Augusta, NJ 07822, USA"
+}, {
+ "location": {
+ "latitude": 415830701,
+ "longitude": -742952812
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 413447164,
+ "longitude": -748712898
+ },
+ "name": "165 Pedersen Ridge Road, Milford, PA 18337, USA"
+}, {
+ "location": {
+ "latitude": 405047245,
+ "longitude": -749800722
+ },
+ "name": "100-122 Locktown Road, Frenchtown, NJ 08825, USA"
+}, {
+ "location": {
+ "latitude": 418858923,
+ "longitude": -746156790
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 417951888,
+ "longitude": -748484944
+ },
+ "name": "650-652 Willi Hill Road, Swan Lake, NY 12783, USA"
+}, {
+ "location": {
+ "latitude": 407033786,
+ "longitude": -743977337
+ },
+ "name": "26 East 3rd Street, New Providence, NJ 07974, USA"
+}, {
+ "location": {
+ "latitude": 417548014,
+ "longitude": -740075041
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 410395868,
+ "longitude": -744972325
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 404615353,
+ "longitude": -745129803
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 406589790,
+ "longitude": -743560121
+ },
+ "name": "611 Lawrence Avenue, Westfield, NJ 07090, USA"
+}, {
+ "location": {
+ "latitude": 414653148,
+ "longitude": -740477477
+ },
+ "name": "18 Lannis Avenue, New Windsor, NY 12553, USA"
+}, {
+ "location": {
+ "latitude": 405957808,
+ "longitude": -743255336
+ },
+ "name": "82-104 Amherst Avenue, Colonia, NJ 07067, USA"
+}, {
+ "location": {
+ "latitude": 411733589,
+ "longitude": -741648093
+ },
+ "name": "170 Seven Lakes Drive, Sloatsburg, NY 10974, USA"
+}, {
+ "location": {
+ "latitude": 412676291,
+ "longitude": -742606606
+ },
+ "name": "1270 Lakes Road, Monroe, NY 10950, USA"
+}, {
+ "location": {
+ "latitude": 409224445,
+ "longitude": -748286738
+ },
+ "name": "509-535 Alphano Road, Great Meadows, NJ 07838, USA"
+}, {
+ "location": {
+ "latitude": 406523420,
+ "longitude": -742135517
+ },
+ "name": "652 Garden Street, Elizabeth, NJ 07202, USA"
+}, {
+ "location": {
+ "latitude": 401827388,
+ "longitude": -740294537
+ },
+ "name": "349 Sea Spray Court, Neptune City, NJ 07753, USA"
+}, {
+ "location": {
+ "latitude": 410564152,
+ "longitude": -743685054
+ },
+ "name": "13-17 Stanley Street, West Milford, NJ 07480, USA"
+}, {
+ "location": {
+ "latitude": 408472324,
+ "longitude": -740726046
+ },
+ "name": "47 Industrial Avenue, Teterboro, NJ 07608, USA"
+}, {
+ "location": {
+ "latitude": 412452168,
+ "longitude": -740214052
+ },
+ "name": "5 White Oak Lane, Stony Point, NY 10980, USA"
+}, {
+ "location": {
+ "latitude": 409146138,
+ "longitude": -746188906
+ },
+ "name": "Berkshire Valley Management Area Trail, Jefferson, NJ, USA"
+}, {
+ "location": {
+ "latitude": 404701380,
+ "longitude": -744781745
+ },
+ "name": "1007 Jersey Avenue, New Brunswick, NJ 08901, USA"
+}, {
+ "location": {
+ "latitude": 409642566,
+ "longitude": -746017679
+ },
+ "name": "6 East Emerald Isle Drive, Lake Hopatcong, NJ 07849, USA"
+}, {
+ "location": {
+ "latitude": 408031728,
+ "longitude": -748645385
+ },
+ "name": "1358-1474 New Jersey 57, Port Murray, NJ 07865, USA"
+}, {
+ "location": {
+ "latitude": 413700272,
+ "longitude": -742135189
+ },
+ "name": "367 Prospect Road, Chester, NY 10918, USA"
+}, {
+ "location": {
+ "latitude": 404310607,
+ "longitude": -740282632
+ },
+ "name": "10 Simon Lake Drive, Atlantic Highlands, NJ 07716, USA"
+}, {
+ "location": {
+ "latitude": 409319800,
+ "longitude": -746201391
+ },
+ "name": "11 Ward Street, Mount Arlington, NJ 07856, USA"
+}, {
+ "location": {
+ "latitude": 406685311,
+ "longitude": -742108603
+ },
+ "name": "300-398 Jefferson Avenue, Elizabeth, NJ 07201, USA"
+}, {
+ "location": {
+ "latitude": 419018117,
+ "longitude": -749142781
+ },
+ "name": "43 Dreher Road, Roscoe, NY 12776, USA"
+}, {
+ "location": {
+ "latitude": 412856162,
+ "longitude": -745148837
+ },
+ "name": "Swan Street, Pine Island, NY 10969, USA"
+}, {
+ "location": {
+ "latitude": 416560744,
+ "longitude": -746721964
+ },
+ "name": "66 Pleasantview Avenue, Monticello, NY 12701, USA"
+}, {
+ "location": {
+ "latitude": 405314270,
+ "longitude": -749836354
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 414219548,
+ "longitude": -743327440
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 415534177,
+ "longitude": -742900616
+ },
+ "name": "565 Winding Hills Road, Montgomery, NY 12549, USA"
+}, {
+ "location": {
+ "latitude": 406898530,
+ "longitude": -749127080
+ },
+ "name": "231 Rocky Run Road, Glen Gardner, NJ 08826, USA"
+}, {
+ "location": {
+ "latitude": 407586880,
+ "longitude": -741670168
+ },
+ "name": "100 Mount Pleasant Avenue, Newark, NJ 07104, USA"
+}, {
+ "location": {
+ "latitude": 400106455,
+ "longitude": -742870190
+ },
+ "name": "517-521 Huntington Drive, Manchester Township, NJ 08759, USA"
+}, {
+ "location": {
+ "latitude": 400066188,
+ "longitude": -746793294
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 418803880,
+ "longitude": -744102673
+ },
+ "name": "40 Mountain Road, Napanoch, NY 12458, USA"
+}, {
+ "location": {
+ "latitude": 414204288,
+ "longitude": -747895140
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 414777405,
+ "longitude": -740615601
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 415464475,
+ "longitude": -747175374
+ },
+ "name": "48 North Road, Forestburgh, NY 12777, USA"
+}, {
+ "location": {
+ "latitude": 404062378,
+ "longitude": -746376177
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 405688272,
+ "longitude": -749285130
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 400342070,
+ "longitude": -748788996
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 401809022,
+ "longitude": -744157964
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 404226644,
+ "longitude": -740517141
+ },
+ "name": "9 Thompson Avenue, Leonardo, NJ 07737, USA"
+}, {
+ "location": {
+ "latitude": 410322033,
+ "longitude": -747871659
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 407100674,
+ "longitude": -747742727
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 418811433,
+ "longitude": -741718005
+ },
+ "name": "213 Bush Road, Stone Ridge, NY 12484, USA"
+}, {
+ "location": {
+ "latitude": 415034302,
+ "longitude": -743850945
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 411349992,
+ "longitude": -743694161
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 404839914,
+ "longitude": -744759616
+ },
+ "name": "1-17 Bergen Court, New Brunswick, NJ 08901, USA"
+}, {
+ "location": {
+ "latitude": 414638017,
+ "longitude": -745957854
+ },
+ "name": "35 Oakland Valley Road, Cuddebackville, NY 12729, USA"
+}, {
+ "location": {
+ "latitude": 412127800,
+ "longitude": -740173578
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 401263460,
+ "longitude": -747964303
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 412843391,
+ "longitude": -749086026
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 418512773,
+ "longitude": -743067823
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 404318328,
+ "longitude": -740835638
+ },
+ "name": "42-102 Main Street, Belford, NJ 07718, USA"
+}, {
+ "location": {
+ "latitude": 419020746,
+ "longitude": -741172328
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 404080723,
+ "longitude": -746119569
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 401012643,
+ "longitude": -744035134
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 404306372,
+ "longitude": -741079661
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 403966326,
+ "longitude": -748519297
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 405002031,
+ "longitude": -748407866
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 409532885,
+ "longitude": -742200683
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 416851321,
+ "longitude": -742674555
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 406411633,
+ "longitude": -741722051
+ },
+ "name": "3387 Richmond Terrace, Staten Island, NY 10303, USA"
+}, {
+ "location": {
+ "latitude": 413069058,
+ "longitude": -744597778
+ },
+ "name": "261 Van Sickle Road, Goshen, NY 10924, USA"
+}, {
+ "location": {
+ "latitude": 418465462,
+ "longitude": -746859398
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 411733222,
+ "longitude": -744228360
+ },
+ "name": ""
+}, {
+ "location": {
+ "latitude": 410248224,
+ "longitude": -747127767
+ },
+ "name": "3 Hasta Way, Newton, NJ 07860, USA"
+}]
diff --git a/examples/node/static_codegen/route_guide/route_guide_grpc_pb.js b/examples/node/static_codegen/route_guide/route_guide_grpc_pb.js
new file mode 100644
index 0000000000..1dd71331db
--- /dev/null
+++ b/examples/node/static_codegen/route_guide/route_guide_grpc_pb.js
@@ -0,0 +1,110 @@
+// GENERATED CODE -- DO NOT EDIT!
+
+'use strict';
+var grpc = require('grpc');
+var route_guide_pb = require('./route_guide_pb.js');
+
+function serialize_Feature(arg) {
+ if (!(arg instanceof route_guide_pb.Feature)) {
+ throw new Error('Expected argument of type Feature');
+ }
+ return new Buffer(arg.serializeBinary());
+}
+
+function deserialize_Feature(buffer_arg) {
+ return route_guide_pb.Feature.deserializeBinary(new Uint8Array(buffer_arg));
+}
+
+function serialize_Point(arg) {
+ if (!(arg instanceof route_guide_pb.Point)) {
+ throw new Error('Expected argument of type Point');
+ }
+ return new Buffer(arg.serializeBinary());
+}
+
+function deserialize_Point(buffer_arg) {
+ return route_guide_pb.Point.deserializeBinary(new Uint8Array(buffer_arg));
+}
+
+function serialize_Rectangle(arg) {
+ if (!(arg instanceof route_guide_pb.Rectangle)) {
+ throw new Error('Expected argument of type Rectangle');
+ }
+ return new Buffer(arg.serializeBinary());
+}
+
+function deserialize_Rectangle(buffer_arg) {
+ return route_guide_pb.Rectangle.deserializeBinary(new Uint8Array(buffer_arg));
+}
+
+function serialize_RouteNote(arg) {
+ if (!(arg instanceof route_guide_pb.RouteNote)) {
+ throw new Error('Expected argument of type RouteNote');
+ }
+ return new Buffer(arg.serializeBinary());
+}
+
+function deserialize_RouteNote(buffer_arg) {
+ return route_guide_pb.RouteNote.deserializeBinary(new Uint8Array(buffer_arg));
+}
+
+function serialize_RouteSummary(arg) {
+ if (!(arg instanceof route_guide_pb.RouteSummary)) {
+ throw new Error('Expected argument of type RouteSummary');
+ }
+ return new Buffer(arg.serializeBinary());
+}
+
+function deserialize_RouteSummary(buffer_arg) {
+ return route_guide_pb.RouteSummary.deserializeBinary(new Uint8Array(buffer_arg));
+}
+
+
+var RouteGuideService = exports.RouteGuideService = {
+ getFeature: {
+ path: '/routeguide.RouteGuide/GetFeature',
+ requestStream: false,
+ responseStream: false,
+ requestType: route_guide_pb.Point,
+ responseType: route_guide_pb.Feature,
+ requestSerialize: serialize_Point,
+ requestDeserialize: deserialize_Point,
+ responseSerialize: serialize_Feature,
+ responseDeserialize: deserialize_Feature,
+ },
+ listFeatures: {
+ path: '/routeguide.RouteGuide/ListFeatures',
+ requestStream: false,
+ responseStream: true,
+ requestType: route_guide_pb.Rectangle,
+ responseType: route_guide_pb.Feature,
+ requestSerialize: serialize_Rectangle,
+ requestDeserialize: deserialize_Rectangle,
+ responseSerialize: serialize_Feature,
+ responseDeserialize: deserialize_Feature,
+ },
+ recordRoute: {
+ path: '/routeguide.RouteGuide/RecordRoute',
+ requestStream: true,
+ responseStream: false,
+ requestType: route_guide_pb.Point,
+ responseType: route_guide_pb.RouteSummary,
+ requestSerialize: serialize_Point,
+ requestDeserialize: deserialize_Point,
+ responseSerialize: serialize_RouteSummary,
+ responseDeserialize: deserialize_RouteSummary,
+ },
+ routeChat: {
+ path: '/routeguide.RouteGuide/RouteChat',
+ requestStream: true,
+ responseStream: true,
+ requestType: route_guide_pb.RouteNote,
+ responseType: route_guide_pb.RouteNote,
+ requestSerialize: serialize_RouteNote,
+ requestDeserialize: deserialize_RouteNote,
+ responseSerialize: serialize_RouteNote,
+ responseDeserialize: deserialize_RouteNote,
+ },
+};
+
+exports.RouteGuideClient = grpc.makeGenericClientConstructor(RouteGuideService);
diff --git a/examples/node/static_codegen/route_guide/route_guide_pb.js b/examples/node/static_codegen/route_guide/route_guide_pb.js
new file mode 100644
index 0000000000..f604cd6d50
--- /dev/null
+++ b/examples/node/static_codegen/route_guide/route_guide_pb.js
@@ -0,0 +1,1033 @@
+/**
+ * @fileoverview
+ * @enhanceable
+ * @public
+ */
+// GENERATED CODE -- DO NOT EDIT!
+
+var jspb = require('google-protobuf');
+var goog = jspb;
+var global = Function('return this')();
+
+goog.exportSymbol('proto.routeguide.Feature', null, global);
+goog.exportSymbol('proto.routeguide.Point', null, global);
+goog.exportSymbol('proto.routeguide.Rectangle', null, global);
+goog.exportSymbol('proto.routeguide.RouteNote', null, global);
+goog.exportSymbol('proto.routeguide.RouteSummary', null, global);
+
+/**
+ * Generated by JsPbCodeGenerator.
+ * @param {Array=} opt_data Optional initial data array, typically from a
+ * server response, or constructed directly in Javascript. The array is used
+ * in place and becomes part of the constructed object. It is not cloned.
+ * If no data is provided, the constructed object will be empty, but still
+ * valid.
+ * @extends {jspb.Message}
+ * @constructor
+ */
+proto.routeguide.Point = function(opt_data) {
+ jspb.Message.initialize(this, opt_data, 0, -1, null, null);
+};
+goog.inherits(proto.routeguide.Point, jspb.Message);
+if (goog.DEBUG && !COMPILED) {
+ proto.routeguide.Point.displayName = 'proto.routeguide.Point';
+}
+
+
+if (jspb.Message.GENERATE_TO_OBJECT) {
+/**
+ * Creates an object representation of this proto suitable for use in Soy templates.
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
+ * For the list of reserved names please see:
+ * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
+ * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
+ * for transitional soy proto support: http://goto/soy-param-migration
+ * @return {!Object}
+ */
+proto.routeguide.Point.prototype.toObject = function(opt_includeInstance) {
+ return proto.routeguide.Point.toObject(opt_includeInstance, this);
+};
+
+
+/**
+ * Static version of the {@see toObject} method.
+ * @param {boolean|undefined} includeInstance Whether to include the JSPB
+ * instance for transitional soy proto support:
+ * http://goto/soy-param-migration
+ * @param {!proto.routeguide.Point} msg The msg instance to transform.
+ * @return {!Object}
+ */
+proto.routeguide.Point.toObject = function(includeInstance, msg) {
+ var f, obj = {
+ latitude: msg.getLatitude(),
+ longitude: msg.getLongitude()
+ };
+
+ if (includeInstance) {
+ obj.$jspbMessageInstance = msg
+ }
+ return obj;
+};
+}
+
+
+/**
+ * Deserializes binary data (in protobuf wire format).
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
+ * @return {!proto.routeguide.Point}
+ */
+proto.routeguide.Point.deserializeBinary = function(bytes) {
+ var reader = new jspb.BinaryReader(bytes);
+ var msg = new proto.routeguide.Point;
+ return proto.routeguide.Point.deserializeBinaryFromReader(msg, reader);
+};
+
+
+/**
+ * Deserializes binary data (in protobuf wire format) from the
+ * given reader into the given message object.
+ * @param {!proto.routeguide.Point} msg The message object to deserialize into.
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
+ * @return {!proto.routeguide.Point}
+ */
+proto.routeguide.Point.deserializeBinaryFromReader = function(msg, reader) {
+ while (reader.nextField()) {
+ if (reader.isEndGroup()) {
+ break;
+ }
+ var field = reader.getFieldNumber();
+ switch (field) {
+ case 1:
+ var value = /** @type {number} */ (reader.readInt32());
+ msg.setLatitude(value);
+ break;
+ case 2:
+ var value = /** @type {number} */ (reader.readInt32());
+ msg.setLongitude(value);
+ break;
+ default:
+ reader.skipField();
+ break;
+ }
+ }
+ return msg;
+};
+
+
+/**
+ * Class method variant: serializes the given message to binary data
+ * (in protobuf wire format), writing to the given BinaryWriter.
+ * @param {!proto.routeguide.Point} message
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.routeguide.Point.serializeBinaryToWriter = function(message, writer) {
+ message.serializeBinaryToWriter(writer);
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format).
+ * @return {!Uint8Array}
+ */
+proto.routeguide.Point.prototype.serializeBinary = function() {
+ var writer = new jspb.BinaryWriter();
+ this.serializeBinaryToWriter(writer);
+ return writer.getResultBuffer();
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format),
+ * writing to the given BinaryWriter.
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.routeguide.Point.prototype.serializeBinaryToWriter = function (writer) {
+ var f = undefined;
+ f = this.getLatitude();
+ if (f !== 0) {
+ writer.writeInt32(
+ 1,
+ f
+ );
+ }
+ f = this.getLongitude();
+ if (f !== 0) {
+ writer.writeInt32(
+ 2,
+ f
+ );
+ }
+};
+
+
+/**
+ * Creates a deep clone of this proto. No data is shared with the original.
+ * @return {!proto.routeguide.Point} The clone.
+ */
+proto.routeguide.Point.prototype.cloneMessage = function() {
+ return /** @type {!proto.routeguide.Point} */ (jspb.Message.cloneMessage(this));
+};
+
+
+/**
+ * optional int32 latitude = 1;
+ * @return {number}
+ */
+proto.routeguide.Point.prototype.getLatitude = function() {
+ return /** @type {number} */ (jspb.Message.getFieldProto3(this, 1, 0));
+};
+
+
+/** @param {number} value */
+proto.routeguide.Point.prototype.setLatitude = function(value) {
+ jspb.Message.setField(this, 1, value);
+};
+
+
+/**
+ * optional int32 longitude = 2;
+ * @return {number}
+ */
+proto.routeguide.Point.prototype.getLongitude = function() {
+ return /** @type {number} */ (jspb.Message.getFieldProto3(this, 2, 0));
+};
+
+
+/** @param {number} value */
+proto.routeguide.Point.prototype.setLongitude = function(value) {
+ jspb.Message.setField(this, 2, value);
+};
+
+
+
+/**
+ * Generated by JsPbCodeGenerator.
+ * @param {Array=} opt_data Optional initial data array, typically from a
+ * server response, or constructed directly in Javascript. The array is used
+ * in place and becomes part of the constructed object. It is not cloned.
+ * If no data is provided, the constructed object will be empty, but still
+ * valid.
+ * @extends {jspb.Message}
+ * @constructor
+ */
+proto.routeguide.Rectangle = function(opt_data) {
+ jspb.Message.initialize(this, opt_data, 0, -1, null, null);
+};
+goog.inherits(proto.routeguide.Rectangle, jspb.Message);
+if (goog.DEBUG && !COMPILED) {
+ proto.routeguide.Rectangle.displayName = 'proto.routeguide.Rectangle';
+}
+
+
+if (jspb.Message.GENERATE_TO_OBJECT) {
+/**
+ * Creates an object representation of this proto suitable for use in Soy templates.
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
+ * For the list of reserved names please see:
+ * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
+ * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
+ * for transitional soy proto support: http://goto/soy-param-migration
+ * @return {!Object}
+ */
+proto.routeguide.Rectangle.prototype.toObject = function(opt_includeInstance) {
+ return proto.routeguide.Rectangle.toObject(opt_includeInstance, this);
+};
+
+
+/**
+ * Static version of the {@see toObject} method.
+ * @param {boolean|undefined} includeInstance Whether to include the JSPB
+ * instance for transitional soy proto support:
+ * http://goto/soy-param-migration
+ * @param {!proto.routeguide.Rectangle} msg The msg instance to transform.
+ * @return {!Object}
+ */
+proto.routeguide.Rectangle.toObject = function(includeInstance, msg) {
+ var f, obj = {
+ lo: (f = msg.getLo()) && proto.routeguide.Point.toObject(includeInstance, f),
+ hi: (f = msg.getHi()) && proto.routeguide.Point.toObject(includeInstance, f)
+ };
+
+ if (includeInstance) {
+ obj.$jspbMessageInstance = msg
+ }
+ return obj;
+};
+}
+
+
+/**
+ * Deserializes binary data (in protobuf wire format).
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
+ * @return {!proto.routeguide.Rectangle}
+ */
+proto.routeguide.Rectangle.deserializeBinary = function(bytes) {
+ var reader = new jspb.BinaryReader(bytes);
+ var msg = new proto.routeguide.Rectangle;
+ return proto.routeguide.Rectangle.deserializeBinaryFromReader(msg, reader);
+};
+
+
+/**
+ * Deserializes binary data (in protobuf wire format) from the
+ * given reader into the given message object.
+ * @param {!proto.routeguide.Rectangle} msg The message object to deserialize into.
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
+ * @return {!proto.routeguide.Rectangle}
+ */
+proto.routeguide.Rectangle.deserializeBinaryFromReader = function(msg, reader) {
+ while (reader.nextField()) {
+ if (reader.isEndGroup()) {
+ break;
+ }
+ var field = reader.getFieldNumber();
+ switch (field) {
+ case 1:
+ var value = new proto.routeguide.Point;
+ reader.readMessage(value,proto.routeguide.Point.deserializeBinaryFromReader);
+ msg.setLo(value);
+ break;
+ case 2:
+ var value = new proto.routeguide.Point;
+ reader.readMessage(value,proto.routeguide.Point.deserializeBinaryFromReader);
+ msg.setHi(value);
+ break;
+ default:
+ reader.skipField();
+ break;
+ }
+ }
+ return msg;
+};
+
+
+/**
+ * Class method variant: serializes the given message to binary data
+ * (in protobuf wire format), writing to the given BinaryWriter.
+ * @param {!proto.routeguide.Rectangle} message
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.routeguide.Rectangle.serializeBinaryToWriter = function(message, writer) {
+ message.serializeBinaryToWriter(writer);
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format).
+ * @return {!Uint8Array}
+ */
+proto.routeguide.Rectangle.prototype.serializeBinary = function() {
+ var writer = new jspb.BinaryWriter();
+ this.serializeBinaryToWriter(writer);
+ return writer.getResultBuffer();
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format),
+ * writing to the given BinaryWriter.
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.routeguide.Rectangle.prototype.serializeBinaryToWriter = function (writer) {
+ var f = undefined;
+ f = this.getLo();
+ if (f != null) {
+ writer.writeMessage(
+ 1,
+ f,
+ proto.routeguide.Point.serializeBinaryToWriter
+ );
+ }
+ f = this.getHi();
+ if (f != null) {
+ writer.writeMessage(
+ 2,
+ f,
+ proto.routeguide.Point.serializeBinaryToWriter
+ );
+ }
+};
+
+
+/**
+ * Creates a deep clone of this proto. No data is shared with the original.
+ * @return {!proto.routeguide.Rectangle} The clone.
+ */
+proto.routeguide.Rectangle.prototype.cloneMessage = function() {
+ return /** @type {!proto.routeguide.Rectangle} */ (jspb.Message.cloneMessage(this));
+};
+
+
+/**
+ * optional Point lo = 1;
+ * @return {proto.routeguide.Point}
+ */
+proto.routeguide.Rectangle.prototype.getLo = function() {
+ return /** @type{proto.routeguide.Point} */ (
+ jspb.Message.getWrapperField(this, proto.routeguide.Point, 1));
+};
+
+
+/** @param {proto.routeguide.Point|undefined} value */
+proto.routeguide.Rectangle.prototype.setLo = function(value) {
+ jspb.Message.setWrapperField(this, 1, value);
+};
+
+
+proto.routeguide.Rectangle.prototype.clearLo = function() {
+ this.setLo(undefined);
+};
+
+
+/**
+ * optional Point hi = 2;
+ * @return {proto.routeguide.Point}
+ */
+proto.routeguide.Rectangle.prototype.getHi = function() {
+ return /** @type{proto.routeguide.Point} */ (
+ jspb.Message.getWrapperField(this, proto.routeguide.Point, 2));
+};
+
+
+/** @param {proto.routeguide.Point|undefined} value */
+proto.routeguide.Rectangle.prototype.setHi = function(value) {
+ jspb.Message.setWrapperField(this, 2, value);
+};
+
+
+proto.routeguide.Rectangle.prototype.clearHi = function() {
+ this.setHi(undefined);
+};
+
+
+
+/**
+ * Generated by JsPbCodeGenerator.
+ * @param {Array=} opt_data Optional initial data array, typically from a
+ * server response, or constructed directly in Javascript. The array is used
+ * in place and becomes part of the constructed object. It is not cloned.
+ * If no data is provided, the constructed object will be empty, but still
+ * valid.
+ * @extends {jspb.Message}
+ * @constructor
+ */
+proto.routeguide.Feature = function(opt_data) {
+ jspb.Message.initialize(this, opt_data, 0, -1, null, null);
+};
+goog.inherits(proto.routeguide.Feature, jspb.Message);
+if (goog.DEBUG && !COMPILED) {
+ proto.routeguide.Feature.displayName = 'proto.routeguide.Feature';
+}
+
+
+if (jspb.Message.GENERATE_TO_OBJECT) {
+/**
+ * Creates an object representation of this proto suitable for use in Soy templates.
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
+ * For the list of reserved names please see:
+ * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
+ * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
+ * for transitional soy proto support: http://goto/soy-param-migration
+ * @return {!Object}
+ */
+proto.routeguide.Feature.prototype.toObject = function(opt_includeInstance) {
+ return proto.routeguide.Feature.toObject(opt_includeInstance, this);
+};
+
+
+/**
+ * Static version of the {@see toObject} method.
+ * @param {boolean|undefined} includeInstance Whether to include the JSPB
+ * instance for transitional soy proto support:
+ * http://goto/soy-param-migration
+ * @param {!proto.routeguide.Feature} msg The msg instance to transform.
+ * @return {!Object}
+ */
+proto.routeguide.Feature.toObject = function(includeInstance, msg) {
+ var f, obj = {
+ name: msg.getName(),
+ location: (f = msg.getLocation()) && proto.routeguide.Point.toObject(includeInstance, f)
+ };
+
+ if (includeInstance) {
+ obj.$jspbMessageInstance = msg
+ }
+ return obj;
+};
+}
+
+
+/**
+ * Deserializes binary data (in protobuf wire format).
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
+ * @return {!proto.routeguide.Feature}
+ */
+proto.routeguide.Feature.deserializeBinary = function(bytes) {
+ var reader = new jspb.BinaryReader(bytes);
+ var msg = new proto.routeguide.Feature;
+ return proto.routeguide.Feature.deserializeBinaryFromReader(msg, reader);
+};
+
+
+/**
+ * Deserializes binary data (in protobuf wire format) from the
+ * given reader into the given message object.
+ * @param {!proto.routeguide.Feature} msg The message object to deserialize into.
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
+ * @return {!proto.routeguide.Feature}
+ */
+proto.routeguide.Feature.deserializeBinaryFromReader = function(msg, reader) {
+ while (reader.nextField()) {
+ if (reader.isEndGroup()) {
+ break;
+ }
+ var field = reader.getFieldNumber();
+ switch (field) {
+ case 1:
+ var value = /** @type {string} */ (reader.readString());
+ msg.setName(value);
+ break;
+ case 2:
+ var value = new proto.routeguide.Point;
+ reader.readMessage(value,proto.routeguide.Point.deserializeBinaryFromReader);
+ msg.setLocation(value);
+ break;
+ default:
+ reader.skipField();
+ break;
+ }
+ }
+ return msg;
+};
+
+
+/**
+ * Class method variant: serializes the given message to binary data
+ * (in protobuf wire format), writing to the given BinaryWriter.
+ * @param {!proto.routeguide.Feature} message
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.routeguide.Feature.serializeBinaryToWriter = function(message, writer) {
+ message.serializeBinaryToWriter(writer);
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format).
+ * @return {!Uint8Array}
+ */
+proto.routeguide.Feature.prototype.serializeBinary = function() {
+ var writer = new jspb.BinaryWriter();
+ this.serializeBinaryToWriter(writer);
+ return writer.getResultBuffer();
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format),
+ * writing to the given BinaryWriter.
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.routeguide.Feature.prototype.serializeBinaryToWriter = function (writer) {
+ var f = undefined;
+ f = this.getName();
+ if (f.length > 0) {
+ writer.writeString(
+ 1,
+ f
+ );
+ }
+ f = this.getLocation();
+ if (f != null) {
+ writer.writeMessage(
+ 2,
+ f,
+ proto.routeguide.Point.serializeBinaryToWriter
+ );
+ }
+};
+
+
+/**
+ * Creates a deep clone of this proto. No data is shared with the original.
+ * @return {!proto.routeguide.Feature} The clone.
+ */
+proto.routeguide.Feature.prototype.cloneMessage = function() {
+ return /** @type {!proto.routeguide.Feature} */ (jspb.Message.cloneMessage(this));
+};
+
+
+/**
+ * optional string name = 1;
+ * @return {string}
+ */
+proto.routeguide.Feature.prototype.getName = function() {
+ return /** @type {string} */ (jspb.Message.getFieldProto3(this, 1, ""));
+};
+
+
+/** @param {string} value */
+proto.routeguide.Feature.prototype.setName = function(value) {
+ jspb.Message.setField(this, 1, value);
+};
+
+
+/**
+ * optional Point location = 2;
+ * @return {proto.routeguide.Point}
+ */
+proto.routeguide.Feature.prototype.getLocation = function() {
+ return /** @type{proto.routeguide.Point} */ (
+ jspb.Message.getWrapperField(this, proto.routeguide.Point, 2));
+};
+
+
+/** @param {proto.routeguide.Point|undefined} value */
+proto.routeguide.Feature.prototype.setLocation = function(value) {
+ jspb.Message.setWrapperField(this, 2, value);
+};
+
+
+proto.routeguide.Feature.prototype.clearLocation = function() {
+ this.setLocation(undefined);
+};
+
+
+
+/**
+ * Generated by JsPbCodeGenerator.
+ * @param {Array=} opt_data Optional initial data array, typically from a
+ * server response, or constructed directly in Javascript. The array is used
+ * in place and becomes part of the constructed object. It is not cloned.
+ * If no data is provided, the constructed object will be empty, but still
+ * valid.
+ * @extends {jspb.Message}
+ * @constructor
+ */
+proto.routeguide.RouteNote = function(opt_data) {
+ jspb.Message.initialize(this, opt_data, 0, -1, null, null);
+};
+goog.inherits(proto.routeguide.RouteNote, jspb.Message);
+if (goog.DEBUG && !COMPILED) {
+ proto.routeguide.RouteNote.displayName = 'proto.routeguide.RouteNote';
+}
+
+
+if (jspb.Message.GENERATE_TO_OBJECT) {
+/**
+ * Creates an object representation of this proto suitable for use in Soy templates.
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
+ * For the list of reserved names please see:
+ * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
+ * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
+ * for transitional soy proto support: http://goto/soy-param-migration
+ * @return {!Object}
+ */
+proto.routeguide.RouteNote.prototype.toObject = function(opt_includeInstance) {
+ return proto.routeguide.RouteNote.toObject(opt_includeInstance, this);
+};
+
+
+/**
+ * Static version of the {@see toObject} method.
+ * @param {boolean|undefined} includeInstance Whether to include the JSPB
+ * instance for transitional soy proto support:
+ * http://goto/soy-param-migration
+ * @param {!proto.routeguide.RouteNote} msg The msg instance to transform.
+ * @return {!Object}
+ */
+proto.routeguide.RouteNote.toObject = function(includeInstance, msg) {
+ var f, obj = {
+ location: (f = msg.getLocation()) && proto.routeguide.Point.toObject(includeInstance, f),
+ message: msg.getMessage()
+ };
+
+ if (includeInstance) {
+ obj.$jspbMessageInstance = msg
+ }
+ return obj;
+};
+}
+
+
+/**
+ * Deserializes binary data (in protobuf wire format).
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
+ * @return {!proto.routeguide.RouteNote}
+ */
+proto.routeguide.RouteNote.deserializeBinary = function(bytes) {
+ var reader = new jspb.BinaryReader(bytes);
+ var msg = new proto.routeguide.RouteNote;
+ return proto.routeguide.RouteNote.deserializeBinaryFromReader(msg, reader);
+};
+
+
+/**
+ * Deserializes binary data (in protobuf wire format) from the
+ * given reader into the given message object.
+ * @param {!proto.routeguide.RouteNote} msg The message object to deserialize into.
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
+ * @return {!proto.routeguide.RouteNote}
+ */
+proto.routeguide.RouteNote.deserializeBinaryFromReader = function(msg, reader) {
+ while (reader.nextField()) {
+ if (reader.isEndGroup()) {
+ break;
+ }
+ var field = reader.getFieldNumber();
+ switch (field) {
+ case 1:
+ var value = new proto.routeguide.Point;
+ reader.readMessage(value,proto.routeguide.Point.deserializeBinaryFromReader);
+ msg.setLocation(value);
+ break;
+ case 2:
+ var value = /** @type {string} */ (reader.readString());
+ msg.setMessage(value);
+ break;
+ default:
+ reader.skipField();
+ break;
+ }
+ }
+ return msg;
+};
+
+
+/**
+ * Class method variant: serializes the given message to binary data
+ * (in protobuf wire format), writing to the given BinaryWriter.
+ * @param {!proto.routeguide.RouteNote} message
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.routeguide.RouteNote.serializeBinaryToWriter = function(message, writer) {
+ message.serializeBinaryToWriter(writer);
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format).
+ * @return {!Uint8Array}
+ */
+proto.routeguide.RouteNote.prototype.serializeBinary = function() {
+ var writer = new jspb.BinaryWriter();
+ this.serializeBinaryToWriter(writer);
+ return writer.getResultBuffer();
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format),
+ * writing to the given BinaryWriter.
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.routeguide.RouteNote.prototype.serializeBinaryToWriter = function (writer) {
+ var f = undefined;
+ f = this.getLocation();
+ if (f != null) {
+ writer.writeMessage(
+ 1,
+ f,
+ proto.routeguide.Point.serializeBinaryToWriter
+ );
+ }
+ f = this.getMessage();
+ if (f.length > 0) {
+ writer.writeString(
+ 2,
+ f
+ );
+ }
+};
+
+
+/**
+ * Creates a deep clone of this proto. No data is shared with the original.
+ * @return {!proto.routeguide.RouteNote} The clone.
+ */
+proto.routeguide.RouteNote.prototype.cloneMessage = function() {
+ return /** @type {!proto.routeguide.RouteNote} */ (jspb.Message.cloneMessage(this));
+};
+
+
+/**
+ * optional Point location = 1;
+ * @return {proto.routeguide.Point}
+ */
+proto.routeguide.RouteNote.prototype.getLocation = function() {
+ return /** @type{proto.routeguide.Point} */ (
+ jspb.Message.getWrapperField(this, proto.routeguide.Point, 1));
+};
+
+
+/** @param {proto.routeguide.Point|undefined} value */
+proto.routeguide.RouteNote.prototype.setLocation = function(value) {
+ jspb.Message.setWrapperField(this, 1, value);
+};
+
+
+proto.routeguide.RouteNote.prototype.clearLocation = function() {
+ this.setLocation(undefined);
+};
+
+
+/**
+ * optional string message = 2;
+ * @return {string}
+ */
+proto.routeguide.RouteNote.prototype.getMessage = function() {
+ return /** @type {string} */ (jspb.Message.getFieldProto3(this, 2, ""));
+};
+
+
+/** @param {string} value */
+proto.routeguide.RouteNote.prototype.setMessage = function(value) {
+ jspb.Message.setField(this, 2, value);
+};
+
+
+
+/**
+ * Generated by JsPbCodeGenerator.
+ * @param {Array=} opt_data Optional initial data array, typically from a
+ * server response, or constructed directly in Javascript. The array is used
+ * in place and becomes part of the constructed object. It is not cloned.
+ * If no data is provided, the constructed object will be empty, but still
+ * valid.
+ * @extends {jspb.Message}
+ * @constructor
+ */
+proto.routeguide.RouteSummary = function(opt_data) {
+ jspb.Message.initialize(this, opt_data, 0, -1, null, null);
+};
+goog.inherits(proto.routeguide.RouteSummary, jspb.Message);
+if (goog.DEBUG && !COMPILED) {
+ proto.routeguide.RouteSummary.displayName = 'proto.routeguide.RouteSummary';
+}
+
+
+if (jspb.Message.GENERATE_TO_OBJECT) {
+/**
+ * Creates an object representation of this proto suitable for use in Soy templates.
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
+ * For the list of reserved names please see:
+ * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
+ * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
+ * for transitional soy proto support: http://goto/soy-param-migration
+ * @return {!Object}
+ */
+proto.routeguide.RouteSummary.prototype.toObject = function(opt_includeInstance) {
+ return proto.routeguide.RouteSummary.toObject(opt_includeInstance, this);
+};
+
+
+/**
+ * Static version of the {@see toObject} method.
+ * @param {boolean|undefined} includeInstance Whether to include the JSPB
+ * instance for transitional soy proto support:
+ * http://goto/soy-param-migration
+ * @param {!proto.routeguide.RouteSummary} msg The msg instance to transform.
+ * @return {!Object}
+ */
+proto.routeguide.RouteSummary.toObject = function(includeInstance, msg) {
+ var f, obj = {
+ pointCount: msg.getPointCount(),
+ featureCount: msg.getFeatureCount(),
+ distance: msg.getDistance(),
+ elapsedTime: msg.getElapsedTime()
+ };
+
+ if (includeInstance) {
+ obj.$jspbMessageInstance = msg
+ }
+ return obj;
+};
+}
+
+
+/**
+ * Deserializes binary data (in protobuf wire format).
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
+ * @return {!proto.routeguide.RouteSummary}
+ */
+proto.routeguide.RouteSummary.deserializeBinary = function(bytes) {
+ var reader = new jspb.BinaryReader(bytes);
+ var msg = new proto.routeguide.RouteSummary;
+ return proto.routeguide.RouteSummary.deserializeBinaryFromReader(msg, reader);
+};
+
+
+/**
+ * Deserializes binary data (in protobuf wire format) from the
+ * given reader into the given message object.
+ * @param {!proto.routeguide.RouteSummary} msg The message object to deserialize into.
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
+ * @return {!proto.routeguide.RouteSummary}
+ */
+proto.routeguide.RouteSummary.deserializeBinaryFromReader = function(msg, reader) {
+ while (reader.nextField()) {
+ if (reader.isEndGroup()) {
+ break;
+ }
+ var field = reader.getFieldNumber();
+ switch (field) {
+ case 1:
+ var value = /** @type {number} */ (reader.readInt32());
+ msg.setPointCount(value);
+ break;
+ case 2:
+ var value = /** @type {number} */ (reader.readInt32());
+ msg.setFeatureCount(value);
+ break;
+ case 3:
+ var value = /** @type {number} */ (reader.readInt32());
+ msg.setDistance(value);
+ break;
+ case 4:
+ var value = /** @type {number} */ (reader.readInt32());
+ msg.setElapsedTime(value);
+ break;
+ default:
+ reader.skipField();
+ break;
+ }
+ }
+ return msg;
+};
+
+
+/**
+ * Class method variant: serializes the given message to binary data
+ * (in protobuf wire format), writing to the given BinaryWriter.
+ * @param {!proto.routeguide.RouteSummary} message
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.routeguide.RouteSummary.serializeBinaryToWriter = function(message, writer) {
+ message.serializeBinaryToWriter(writer);
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format).
+ * @return {!Uint8Array}
+ */
+proto.routeguide.RouteSummary.prototype.serializeBinary = function() {
+ var writer = new jspb.BinaryWriter();
+ this.serializeBinaryToWriter(writer);
+ return writer.getResultBuffer();
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format),
+ * writing to the given BinaryWriter.
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.routeguide.RouteSummary.prototype.serializeBinaryToWriter = function (writer) {
+ var f = undefined;
+ f = this.getPointCount();
+ if (f !== 0) {
+ writer.writeInt32(
+ 1,
+ f
+ );
+ }
+ f = this.getFeatureCount();
+ if (f !== 0) {
+ writer.writeInt32(
+ 2,
+ f
+ );
+ }
+ f = this.getDistance();
+ if (f !== 0) {
+ writer.writeInt32(
+ 3,
+ f
+ );
+ }
+ f = this.getElapsedTime();
+ if (f !== 0) {
+ writer.writeInt32(
+ 4,
+ f
+ );
+ }
+};
+
+
+/**
+ * Creates a deep clone of this proto. No data is shared with the original.
+ * @return {!proto.routeguide.RouteSummary} The clone.
+ */
+proto.routeguide.RouteSummary.prototype.cloneMessage = function() {
+ return /** @type {!proto.routeguide.RouteSummary} */ (jspb.Message.cloneMessage(this));
+};
+
+
+/**
+ * optional int32 point_count = 1;
+ * @return {number}
+ */
+proto.routeguide.RouteSummary.prototype.getPointCount = function() {
+ return /** @type {number} */ (jspb.Message.getFieldProto3(this, 1, 0));
+};
+
+
+/** @param {number} value */
+proto.routeguide.RouteSummary.prototype.setPointCount = function(value) {
+ jspb.Message.setField(this, 1, value);
+};
+
+
+/**
+ * optional int32 feature_count = 2;
+ * @return {number}
+ */
+proto.routeguide.RouteSummary.prototype.getFeatureCount = function() {
+ return /** @type {number} */ (jspb.Message.getFieldProto3(this, 2, 0));
+};
+
+
+/** @param {number} value */
+proto.routeguide.RouteSummary.prototype.setFeatureCount = function(value) {
+ jspb.Message.setField(this, 2, value);
+};
+
+
+/**
+ * optional int32 distance = 3;
+ * @return {number}
+ */
+proto.routeguide.RouteSummary.prototype.getDistance = function() {
+ return /** @type {number} */ (jspb.Message.getFieldProto3(this, 3, 0));
+};
+
+
+/** @param {number} value */
+proto.routeguide.RouteSummary.prototype.setDistance = function(value) {
+ jspb.Message.setField(this, 3, value);
+};
+
+
+/**
+ * optional int32 elapsed_time = 4;
+ * @return {number}
+ */
+proto.routeguide.RouteSummary.prototype.getElapsedTime = function() {
+ return /** @type {number} */ (jspb.Message.getFieldProto3(this, 4, 0));
+};
+
+
+/** @param {number} value */
+proto.routeguide.RouteSummary.prototype.setElapsedTime = function(value) {
+ jspb.Message.setField(this, 4, value);
+};
+
+
+goog.object.extend(exports, proto.routeguide);
diff --git a/examples/node/static_codegen/route_guide/route_guide_server.js b/examples/node/static_codegen/route_guide/route_guide_server.js
new file mode 100644
index 0000000000..53628fb046
--- /dev/null
+++ b/examples/node/static_codegen/route_guide/route_guide_server.js
@@ -0,0 +1,261 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+var messages = require('./route_guide_pb');
+var services = require('./route_guide_grpc_pb');
+
+var fs = require('fs');
+var parseArgs = require('minimist');
+var path = require('path');
+var _ = require('lodash');
+var grpc = require('grpc');
+
+var COORD_FACTOR = 1e7;
+
+/**
+ * For simplicity, a point is a record type that looks like
+ * {latitude: number, longitude: number}, and a feature is a record type that
+ * looks like {name: string, location: point}. feature objects with name===''
+ * are points with no feature.
+ */
+
+/**
+ * List of feature objects at points that have been requested so far.
+ */
+var feature_list = [];
+
+/**
+ * Get a feature object at the given point, or creates one if it does not exist.
+ * @param {point} point The point to check
+ * @return {feature} The feature object at the point. Note that an empty name
+ * indicates no feature
+ */
+function checkFeature(point) {
+ var feature;
+ // Check if there is already a feature object for the given point
+ for (var i = 0; i < feature_list.length; i++) {
+ feature = feature_list[i];
+ if (feature.getLocation().getLatitude() === point.getLatitude() &&
+ feature.getLocation().getLongitude() === point.getLongitude()) {
+ return feature;
+ }
+ }
+ var name = '';
+ feature = new messages.Feature();
+ feature.setName(name);
+ feature.setLocation(point);
+ return feature;
+}
+
+/**
+ * getFeature request handler. Gets a request with a point, and responds with a
+ * feature object indicating whether there is a feature at that point.
+ * @param {EventEmitter} call Call object for the handler to process
+ * @param {function(Error, feature)} callback Response callback
+ */
+function getFeature(call, callback) {
+ callback(null, checkFeature(call.request));
+}
+
+/**
+ * listFeatures request handler. Gets a request with two points, and responds
+ * with a stream of all features in the bounding box defined by those points.
+ * @param {Writable} call Writable stream for responses with an additional
+ * request property for the request value.
+ */
+function listFeatures(call) {
+ var lo = call.request.getLo();
+ var hi = call.request.getHi();
+ var left = _.min([lo.getLongitude(), hi.getLongitude()]);
+ var right = _.max([lo.getLongitude(), hi.getLongitude()]);
+ var top = _.max([lo.getLatitude(), hi.getLatitude()]);
+ var bottom = _.min([lo.getLatitude(), hi.getLatitude()]);
+ // For each feature, check if it is in the given bounding box
+ _.each(feature_list, function(feature) {
+ if (feature.getName() === '') {
+ return;
+ }
+ if (feature.getLocation().getLongitude() >= left &&
+ feature.getLocation().getLongitude() <= right &&
+ feature.getLocation().getLatitude() >= bottom &&
+ feature.getLocation().getLatitude() <= top) {
+ call.write(feature);
+ }
+ });
+ call.end();
+}
+
+/**
+ * Calculate the distance between two points using the "haversine" formula.
+ * This code was taken from http://www.movable-type.co.uk/scripts/latlong.html.
+ * @param start The starting point
+ * @param end The end point
+ * @return The distance between the points in meters
+ */
+function getDistance(start, end) {
+ function toRadians(num) {
+ return num * Math.PI / 180;
+ }
+ var lat1 = start.getLatitude() / COORD_FACTOR;
+ var lat2 = end.getLatitude() / COORD_FACTOR;
+ var lon1 = start.getLongitude() / COORD_FACTOR;
+ var lon2 = end.getLongitude() / COORD_FACTOR;
+ var R = 6371000; // metres
+ var φ1 = toRadians(lat1);
+ var φ2 = toRadians(lat2);
+ var Δφ = toRadians(lat2-lat1);
+ var Δλ = toRadians(lon2-lon1);
+
+ var a = Math.sin(Δφ/2) * Math.sin(Δφ/2) +
+ Math.cos(φ1) * Math.cos(φ2) *
+ Math.sin(Δλ/2) * Math.sin(Δλ/2);
+ var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
+
+ return R * c;
+}
+
+/**
+ * recordRoute handler. Gets a stream of points, and responds with statistics
+ * about the "trip": number of points, number of known features visited, total
+ * distance traveled, and total time spent.
+ * @param {Readable} call The request point stream.
+ * @param {function(Error, routeSummary)} callback The callback to pass the
+ * response to
+ */
+function recordRoute(call, callback) {
+ var point_count = 0;
+ var feature_count = 0;
+ var distance = 0;
+ var previous = null;
+ // Start a timer
+ var start_time = process.hrtime();
+ call.on('data', function(point) {
+ point_count += 1;
+ if (checkFeature(point).name !== '') {
+ feature_count += 1;
+ }
+ /* For each point after the first, add the incremental distance from the
+ * previous point to the total distance value */
+ if (previous != null) {
+ distance += getDistance(previous, point);
+ }
+ previous = point;
+ });
+ call.on('end', function() {
+ var summary = new messages.RouteSummary();
+ summary.setPointCount(point_count);
+ summary.setFeatureCount(feature_count);
+ // Cast the distance to an integer
+ summary.setDistance(distance|0);
+ // End the timer
+ summary.setElapsedTime(process.hrtime(start_time)[0]);
+ callback(null, summary);
+ });
+}
+
+var route_notes = {};
+
+/**
+ * Turn the point into a dictionary key.
+ * @param {point} point The point to use
+ * @return {string} The key for an object
+ */
+function pointKey(point) {
+ return point.getLatitude() + ' ' + point.getLongitude();
+}
+
+/**
+ * routeChat handler. Receives a stream of message/location pairs, and responds
+ * with a stream of all previous messages at each of those locations.
+ * @param {Duplex} call The stream for incoming and outgoing messages
+ */
+function routeChat(call) {
+ call.on('data', function(note) {
+ var key = pointKey(note.getLocation());
+ /* For each note sent, respond with all previous notes that correspond to
+ * the same point */
+ if (route_notes.hasOwnProperty(key)) {
+ _.each(route_notes[key], function(note) {
+ call.write(note);
+ });
+ } else {
+ route_notes[key] = [];
+ }
+ // Then add the new note to the list
+ route_notes[key].push(note);
+ });
+ call.on('end', function() {
+ call.end();
+ });
+}
+
+/**
+ * Get a new server with the handler functions in this file bound to the methods
+ * it serves.
+ * @return {Server} The new server object
+ */
+function getServer() {
+ var server = new grpc.Server();
+ server.addService(services.RouteGuideService, {
+ getFeature: getFeature,
+ listFeatures: listFeatures,
+ recordRoute: recordRoute,
+ routeChat: routeChat
+ });
+ return server;
+}
+
+if (require.main === module) {
+ // If this is run as a script, start a server on an unused port
+ var routeServer = getServer();
+ routeServer.bind('0.0.0.0:50051', grpc.ServerCredentials.createInsecure());
+ var argv = parseArgs(process.argv, {
+ string: 'db_path'
+ });
+ fs.readFile(path.resolve(argv.db_path), function(err, data) {
+ if (err) throw err;
+ // Transform the loaded features to Feature objects
+ feature_list = _.map(JSON.parse(data), function(value) {
+ var feature = new messages.Feature();
+ feature.setName(value.name);
+ var location = new messages.Point();
+ location.setLatitude(value.location.latitude);
+ location.setLongitude(value.location.longitude);
+ feature.setLocation(location);
+ return feature;
+ });
+ routeServer.start();
+ });
+}
+
+exports.getServer = getServer;
diff --git a/gRPC.podspec b/gRPC.podspec
index c07830515f..436cec4ba2 100644
--- a/gRPC.podspec
+++ b/gRPC.podspec
@@ -182,6 +182,7 @@ Pod::Spec.new do |s|
'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_poll_posix.h',
'src/core/lib/iomgr/ev_posix.h',
'src/core/lib/iomgr/exec_ctx.h',
'src/core/lib/iomgr/executor.h',
@@ -297,6 +298,7 @@ Pod::Spec.new do |s|
'src/core/ext/client_config/subchannel_call_holder.h',
'src/core/ext/client_config/subchannel_index.h',
'src/core/ext/client_config/uri_parser.h',
+ 'third_party/objective_c/Cronet/cronet_c_for_grpc.h',
'src/core/ext/lb_policy/grpclb/load_balancer_api.h',
'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h',
'third_party/nanopb/pb.h',
@@ -335,6 +337,7 @@ Pod::Spec.new do |s|
'include/grpc/impl/codegen/sync_posix.h',
'include/grpc/impl/codegen/sync_win32.h',
'include/grpc/impl/codegen/time.h',
+ 'include/grpc/grpc_cronet.h',
'include/grpc/grpc_security.h',
'include/grpc/grpc_security_constants.h',
'include/grpc/census.h',
@@ -357,6 +360,7 @@ Pod::Spec.new do |s|
'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_posix.c',
'src/core/lib/iomgr/ev_posix.c',
'src/core/lib/iomgr/exec_ctx.c',
'src/core/lib/iomgr/executor.c',
@@ -492,6 +496,9 @@ Pod::Spec.new do |s|
'src/core/ext/client_config/uri_parser.c',
'src/core/ext/transport/chttp2/server/insecure/server_chttp2.c',
'src/core/ext/transport/chttp2/client/insecure/channel_create.c',
+ 'src/core/ext/transport/cronet/client/secure/cronet_channel_create.c',
+ 'src/core/ext/transport/cronet/transport/cronet_api_dummy.c',
+ 'src/core/ext/transport/cronet/transport/cronet_transport.c',
'src/core/ext/lb_policy/grpclb/load_balancer_api.c',
'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c',
'third_party/nanopb/pb_common.c',
@@ -542,6 +549,7 @@ Pod::Spec.new do |s|
'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_poll_posix.h',
'src/core/lib/iomgr/ev_posix.h',
'src/core/lib/iomgr/exec_ctx.h',
'src/core/lib/iomgr/executor.h',
@@ -657,6 +665,7 @@ Pod::Spec.new do |s|
'src/core/ext/client_config/subchannel_call_holder.h',
'src/core/ext/client_config/subchannel_index.h',
'src/core/ext/client_config/uri_parser.h',
+ 'third_party/objective_c/Cronet/cronet_c_for_grpc.h',
'src/core/ext/lb_policy/grpclb/load_balancer_api.h',
'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h',
'third_party/nanopb/pb.h',
diff --git a/grpc.def b/grpc.def
index 61948ed1b8..09a94a6cd0 100644
--- a/grpc.def
+++ b/grpc.def
@@ -87,6 +87,7 @@ EXPORTS
grpc_header_nonbin_value_is_legal
grpc_is_binary_header
grpc_call_error_to_string
+ grpc_cronet_secure_channel_create
grpc_auth_property_iterator_next
grpc_auth_context_property_iterator
grpc_auth_context_peer_identity
diff --git a/grpc.gemspec b/grpc.gemspec
index 9eb8937671..55ec9a98c3 100755
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -169,6 +169,7 @@ Gem::Specification.new do |s|
s.files += %w( include/grpc/impl/codegen/sync_posix.h )
s.files += %w( include/grpc/impl/codegen/sync_win32.h )
s.files += %w( include/grpc/impl/codegen/time.h )
+ s.files += %w( include/grpc/grpc_cronet.h )
s.files += %w( include/grpc/grpc_security.h )
s.files += %w( include/grpc/grpc_security_constants.h )
s.files += %w( include/grpc/census.h )
@@ -190,6 +191,7 @@ Gem::Specification.new do |s|
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_poll_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 )
@@ -305,6 +307,7 @@ Gem::Specification.new do |s|
s.files += %w( src/core/ext/client_config/subchannel_call_holder.h )
s.files += %w( src/core/ext/client_config/subchannel_index.h )
s.files += %w( src/core/ext/client_config/uri_parser.h )
+ s.files += %w( third_party/objective_c/Cronet/cronet_c_for_grpc.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/v1/load_balancer.pb.h )
s.files += %w( third_party/nanopb/pb.h )
@@ -336,6 +339,7 @@ Gem::Specification.new do |s|
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_poll_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 )
@@ -471,6 +475,9 @@ Gem::Specification.new do |s|
s.files += %w( src/core/ext/client_config/uri_parser.c )
s.files += %w( src/core/ext/transport/chttp2/server/insecure/server_chttp2.c )
s.files += %w( src/core/ext/transport/chttp2/client/insecure/channel_create.c )
+ s.files += %w( src/core/ext/transport/cronet/client/secure/cronet_channel_create.c )
+ s.files += %w( src/core/ext/transport/cronet/transport/cronet_api_dummy.c )
+ s.files += %w( src/core/ext/transport/cronet/transport/cronet_transport.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/v1/load_balancer.pb.c )
s.files += %w( third_party/nanopb/pb_common.c )
diff --git a/include/grpc++/impl/codegen/call.h b/include/grpc++/impl/codegen/call.h
index d081b7d9c5..d457f03fa6 100644
--- a/include/grpc++/impl/codegen/call.h
+++ b/include/grpc++/impl/codegen/call.h
@@ -329,8 +329,11 @@ class CallOpGenericRecvMessage {
template <class R>
void RecvMessage(R* message) {
- deserialize_.reset(
- new CallOpGenericRecvMessageHelper::DeserializeFuncType<R>(message));
+ // Use an explicit base class pointer to avoid resolution error in the
+ // following unique_ptr::reset for some old implementations.
+ CallOpGenericRecvMessageHelper::DeserializeFunc* func =
+ new CallOpGenericRecvMessageHelper::DeserializeFuncType<R>(message);
+ deserialize_.reset(func);
}
bool got_message;
diff --git a/include/grpc++/impl/codegen/proto_utils.h b/include/grpc++/impl/codegen/proto_utils.h
index d044ddc642..3bad468a74 100644
--- a/include/grpc++/impl/codegen/proto_utils.h
+++ b/include/grpc++/impl/codegen/proto_utils.h
@@ -49,7 +49,7 @@ namespace grpc {
extern CoreCodegenInterface* g_core_codegen_interface;
-namespace {
+namespace internal {
const int kGrpcBufferWriterMaxBufferLength = 8192;
@@ -166,7 +166,7 @@ class GrpcBufferReader GRPC_FINAL
grpc_byte_buffer_reader reader_;
gpr_slice slice_;
};
-} // namespace
+} // namespace internal
template <class T>
class SerializationTraits<T, typename std::enable_if<std::is_base_of<
@@ -176,7 +176,7 @@ class SerializationTraits<T, typename std::enable_if<std::is_base_of<
grpc_byte_buffer** bp, bool* own_buffer) {
*own_buffer = true;
int byte_size = msg.ByteSize();
- if (byte_size <= kGrpcBufferWriterMaxBufferLength) {
+ if (byte_size <= internal::kGrpcBufferWriterMaxBufferLength) {
gpr_slice slice = g_core_codegen_interface->gpr_slice_malloc(byte_size);
GPR_CODEGEN_ASSERT(
GPR_SLICE_END_PTR(slice) ==
@@ -185,7 +185,8 @@ class SerializationTraits<T, typename std::enable_if<std::is_base_of<
g_core_codegen_interface->gpr_slice_unref(slice);
return g_core_codegen_interface->ok();
} else {
- GrpcBufferWriter writer(bp, kGrpcBufferWriterMaxBufferLength);
+ internal::GrpcBufferWriter writer(
+ bp, internal::kGrpcBufferWriterMaxBufferLength);
return msg.SerializeToZeroCopyStream(&writer)
? g_core_codegen_interface->ok()
: Status(StatusCode::INTERNAL, "Failed to serialize message");
@@ -200,7 +201,7 @@ class SerializationTraits<T, typename std::enable_if<std::is_base_of<
}
Status result = g_core_codegen_interface->ok();
{
- GrpcBufferReader reader(buffer);
+ internal::GrpcBufferReader reader(buffer);
::grpc::protobuf::io::CodedInputStream decoder(&reader);
if (max_message_size > 0) {
decoder.SetTotalBytesLimit(max_message_size, max_message_size);
diff --git a/include/grpc++/impl/server_builder_option.h b/include/grpc++/impl/server_builder_option.h
index bcb19824fd..2b7e89f5e5 100644
--- a/include/grpc++/impl/server_builder_option.h
+++ b/include/grpc++/impl/server_builder_option.h
@@ -34,6 +34,10 @@
#ifndef GRPCXX_IMPL_SERVER_BUILDER_OPTION_H
#define GRPCXX_IMPL_SERVER_BUILDER_OPTION_H
+#include <map>
+#include <memory>
+
+#include <grpc++/impl/server_builder_plugin.h>
#include <grpc++/support/channel_arguments.h>
namespace grpc {
@@ -44,6 +48,10 @@ class ServerBuilderOption {
virtual ~ServerBuilderOption() {}
/// Alter the \a ChannelArguments used to create the gRPC server.
virtual void UpdateArguments(ChannelArguments* args) = 0;
+ /// Alter the ServerBuilderPlugin map that will be added into ServerBuilder.
+ virtual void UpdatePlugins(
+ std::map<grpc::string, std::unique_ptr<ServerBuilderPlugin> >*
+ plugins) = 0;
};
} // namespace grpc
diff --git a/include/grpc++/impl/server_builder_plugin.h b/include/grpc++/impl/server_builder_plugin.h
new file mode 100644
index 0000000000..1e157efa11
--- /dev/null
+++ b/include/grpc++/impl/server_builder_plugin.h
@@ -0,0 +1,67 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+#ifndef GRPCXX_IMPL_SERVER_BUILDER_PLUGIN_H
+#define GRPCXX_IMPL_SERVER_BUILDER_PLUGIN_H
+
+#include <memory>
+
+#include <grpc++/support/config.h>
+
+namespace grpc {
+
+class ServerInitializer;
+
+class ServerBuilderPlugin {
+ public:
+ virtual ~ServerBuilderPlugin() {}
+ virtual grpc::string name() = 0;
+
+ // InitServer will be called in ServerBuilder::BuildAndStart(), after the
+ // Server instance is created.
+ virtual void InitServer(ServerInitializer* si) = 0;
+
+ // Finish will be called at the end of ServerBuilder::BuildAndStart().
+ virtual void Finish(ServerInitializer* si) = 0;
+
+ // ChangeArguments is an interface that can be used in
+ // ServerBuilderOption::UpdatePlugins
+ virtual void ChangeArguments(const grpc::string& name, void* value) = 0;
+
+ virtual bool has_sync_methods() const { return false; }
+ virtual bool has_async_methods() const { return false; }
+};
+
+} // namespace grpc
+
+#endif // GRPCXX_IMPL_SERVER_BUILDER_PLUGIN_H
diff --git a/src/ruby/ext/grpc/rb_signal.c b/include/grpc++/impl/server_initializer.h
index a9e512374b..dbcecc7026 100644
--- a/src/ruby/ext/grpc/rb_signal.c
+++ b/include/grpc++/impl/server_initializer.h
@@ -31,40 +31,40 @@
*
*/
-#include <ruby/ruby.h>
-#include <signal.h>
-#include <stdbool.h>
+#ifndef GRPCXX_IMPL_SERVER_INITIALIZER_H
+#define GRPCXX_IMPL_SERVER_INITIALIZER_H
-#include <grpc/support/log.h>
+#include <memory>
+#include <vector>
-#include "rb_grpc.h"
+#include <grpc++/server.h>
-static void (*old_sigint_handler)(int);
-static void (*old_sigterm_handler)(int);
+namespace grpc {
-static volatile bool signal_received = false;
+class Server;
+class Service;
-/* This has to be handled at the C level instead of Ruby, because Ruby signal
- * handlers are constrained to run in the main interpreter thread. If that main
- * thread is blocked on grpc_completion_queue_pluck, the signal handlers will
- * never run */
-static void handle_signal(int signum) {
- signal_received = true;
- if (signum == SIGINT) {
- old_sigint_handler(signum);
- } else if (signum == SIGTERM) {
- old_sigterm_handler(signum);
+class ServerInitializer {
+ public:
+ ServerInitializer(Server* server) : server_(server) {}
+
+ bool RegisterService(std::shared_ptr<Service> service) {
+ if (!server_->RegisterService(nullptr, service.get())) {
+ return false;
+ }
+ default_services_.push_back(service);
+ return true;
+ }
+
+ const std::vector<grpc::string>* GetServiceList() {
+ return &server_->services_;
}
-}
-static VALUE grpc_rb_signal_received(VALUE self) {
- (void)self;
- return signal_received ? Qtrue : Qfalse;
-}
+ private:
+ Server* server_;
+ std::vector<std::shared_ptr<Service> > default_services_;
+};
+
+} // namespace grpc
-void Init_grpc_signals() {
- old_sigint_handler = signal(SIGINT, handle_signal);
- old_sigterm_handler = signal(SIGTERM, handle_signal);
- rb_define_singleton_method(grpc_rb_mGrpcCore, "signal_received?",
- grpc_rb_signal_received, 0);
-}
+#endif // GRPCXX_IMPL_SERVER_INITIALIZER_H
diff --git a/include/grpc++/server.h b/include/grpc++/server.h
index 729a5143bf..a0ee0e98e4 100644
--- a/include/grpc++/server.h
+++ b/include/grpc++/server.h
@@ -36,6 +36,7 @@
#include <list>
#include <memory>
+#include <vector>
#include <grpc++/completion_queue.h>
#include <grpc++/impl/call.h>
@@ -57,6 +58,7 @@ class GenericServerContext;
class AsyncGenericService;
class ServerAsyncStreamingInterface;
class ServerContext;
+class ServerInitializer;
class ThreadPoolInterface;
/// Models a gRPC server.
@@ -94,6 +96,7 @@ class Server GRPC_FINAL : public ServerInterface, private GrpcLibraryCodegen {
private:
friend class AsyncGenericService;
friend class ServerBuilder;
+ friend class ServerInitializer;
class SyncRequest;
class AsyncRequest;
@@ -159,6 +162,8 @@ class Server GRPC_FINAL : public ServerInterface, private GrpcLibraryCodegen {
grpc_server* server() GRPC_OVERRIDE { return server_; };
+ ServerInitializer* initializer();
+
const int max_message_size_;
// Completion queue.
@@ -175,6 +180,7 @@ class Server GRPC_FINAL : public ServerInterface, private GrpcLibraryCodegen {
std::shared_ptr<GlobalCallbacks> global_callbacks_;
std::list<SyncRequest>* sync_methods_;
+ std::vector<grpc::string> services_;
std::unique_ptr<RpcServiceMethod> unknown_method_;
bool has_generic_service_;
@@ -184,6 +190,8 @@ class Server GRPC_FINAL : public ServerInterface, private GrpcLibraryCodegen {
ThreadPoolInterface* thread_pool_;
// Whether the thread pool is created and owned by the server.
bool thread_pool_owned_;
+
+ std::unique_ptr<ServerInitializer> server_initializer_;
};
} // namespace grpc
diff --git a/include/grpc++/server_builder.h b/include/grpc++/server_builder.h
index 86c7fecef5..ad629521cb 100644
--- a/include/grpc++/server_builder.h
+++ b/include/grpc++/server_builder.h
@@ -34,10 +34,12 @@
#ifndef GRPCXX_SERVER_BUILDER_H
#define GRPCXX_SERVER_BUILDER_H
+#include <map>
#include <memory>
#include <vector>
#include <grpc++/impl/server_builder_option.h>
+#include <grpc++/impl/server_builder_plugin.h>
#include <grpc++/support/config.h>
#include <grpc/compression.h>
@@ -51,6 +53,10 @@ class ServerCompletionQueue;
class ServerCredentials;
class Service;
+namespace testing {
+class ServerBuilderPluginTest;
+} // namespace testing
+
/// A builder class for the creation and startup of \a grpc::Server instances.
class ServerBuilder {
public:
@@ -107,7 +113,13 @@ class ServerBuilder {
/// Return a running server which is ready for processing calls.
std::unique_ptr<Server> BuildAndStart();
+ /// For internal use only: Register a ServerBuilderPlugin factory function.
+ static void InternalAddPluginFactory(
+ std::unique_ptr<ServerBuilderPlugin> (*CreatePlugin)());
+
private:
+ friend class ::grpc::testing::ServerBuilderPluginTest;
+
struct Port {
grpc::string addr;
std::shared_ptr<ServerCredentials> creds;
@@ -130,6 +142,7 @@ class ServerBuilder {
std::vector<Port> ports_;
std::vector<ServerCompletionQueue*> cqs_;
std::shared_ptr<ServerCredentials> creds_;
+ std::map<grpc::string, std::unique_ptr<ServerBuilderPlugin>> plugins_;
AsyncGenericService* generic_service_;
};
diff --git a/include/grpc/grpc_cronet.h b/include/grpc/grpc_cronet.h
new file mode 100644
index 0000000000..295e0f55e8
--- /dev/null
+++ b/include/grpc/grpc_cronet.h
@@ -0,0 +1,51 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+#ifndef GRPC_GRPC_CRONET_H
+#define GRPC_GRPC_CRONET_H
+
+#include <grpc/grpc.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+GRPCAPI grpc_channel *grpc_cronet_secure_channel_create(
+ void *engine, const char *target, const grpc_channel_args *args,
+ void *reserved);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* GRPC_GRPC_CRONET_H */
diff --git a/include/grpc/impl/codegen/compression_types.h b/include/grpc/impl/codegen/compression_types.h
index 0daccd92f2..8d2ec3b9d7 100644
--- a/include/grpc/impl/codegen/compression_types.h
+++ b/include/grpc/impl/codegen/compression_types.h
@@ -41,10 +41,13 @@ extern "C" {
#endif
/** To be used in channel arguments */
-#define GRPC_COMPRESSION_ALGORITHM_ARG "grpc.compression_algorithm"
-#define GRPC_COMPRESSION_ALGORITHM_STATE_ARG "grpc.compression_algorithm_state"
+#define GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM \
+ "grpc.default_compression_algorithm"
+#define GRPC_COMPRESSION_CHANNEL_DEFAULT_LEVEL "grpc.default_compression_level"
+#define GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET \
+ "grpc.compression_enabled_algorithms_bitset"
-/* The various compression algorithms supported by GRPC */
+/* The various compression algorithms supported by gRPC */
typedef enum {
GRPC_COMPRESS_NONE = 0,
GRPC_COMPRESS_DEFLATE,
@@ -53,6 +56,10 @@ typedef enum {
GRPC_COMPRESS_ALGORITHMS_COUNT
} grpc_compression_algorithm;
+/** Compression levels allow a party with knowledge of its peer's accepted
+ * encodings to request compression in an abstract way. The level-algorithm
+ * mapping is performed internally and depends on the peer's supported
+ * compression algorithms. */
typedef enum {
GRPC_COMPRESS_LEVEL_NONE = 0,
GRPC_COMPRESS_LEVEL_LOW,
@@ -62,8 +69,20 @@ typedef enum {
} grpc_compression_level;
typedef struct grpc_compression_options {
- uint32_t enabled_algorithms_bitset; /**< All algs are enabled by default */
- grpc_compression_algorithm default_compression_algorithm; /**< for channel */
+ /** All algs are enabled by default. This option corresponds to the channel
+ * argument key behind \a GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET
+ */
+ uint32_t enabled_algorithms_bitset;
+
+ /** The default channel compression algorithm. It'll be used in the absence of
+ * call specific settings. This option corresponds to the channel argument key
+ * behind \a GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM */
+ grpc_compression_algorithm default_compression_algorithm;
+
+ /** The default channel compression level. It'll be used in the absence of
+ * call specific settings. This option corresponds to the channel argument key
+ * behind \a GRPC_COMPRESSION_CHANNEL_DEFAULT_LEVEL */
+ grpc_compression_algorithm default_compression_level;
} grpc_compression_options;
#ifdef __cplusplus
diff --git a/package.json b/package.json
index 54a44ca551..5bdaa761e2 100644
--- a/package.json
+++ b/package.json
@@ -67,6 +67,8 @@
"src/node/ext",
"include/grpc",
"src/core",
+ "src/boringssl",
+ "src/zlib",
"third_party/nanopb",
"third_party/zlib",
"third_party/boringssl",
diff --git a/package.xml b/package.xml
index b79b10e408..c7fbaf5eb2 100644
--- a/package.xml
+++ b/package.xml
@@ -10,7 +10,7 @@
<email>grpc-packages@google.com</email>
<active>yes</active>
</lead>
- <date>2016-04-19</date>
+ <date>2016-05-19</date>
<time>16:06:07</time>
<version>
<release>0.15.0</release>
@@ -22,7 +22,7 @@
</stability>
<license>BSD</license>
<notes>
-- destroy grpc_byte_buffer after startBatch #6096
+- TBD
</notes>
<contents>
<dir baseinstalldir="/" name="/">
@@ -176,6 +176,7 @@
<file baseinstalldir="/" name="include/grpc/impl/codegen/sync_posix.h" role="src" />
<file baseinstalldir="/" name="include/grpc/impl/codegen/sync_win32.h" role="src" />
<file baseinstalldir="/" name="include/grpc/impl/codegen/time.h" role="src" />
+ <file baseinstalldir="/" name="include/grpc/grpc_cronet.h" role="src" />
<file baseinstalldir="/" name="include/grpc/grpc_security.h" role="src" />
<file baseinstalldir="/" name="include/grpc/grpc_security_constants.h" role="src" />
<file baseinstalldir="/" name="include/grpc/census.h" role="src" />
@@ -197,6 +198,7 @@
<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_poll_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" />
@@ -312,6 +314,7 @@
<file baseinstalldir="/" name="src/core/ext/client_config/subchannel_call_holder.h" role="src" />
<file baseinstalldir="/" name="src/core/ext/client_config/subchannel_index.h" role="src" />
<file baseinstalldir="/" name="src/core/ext/client_config/uri_parser.h" role="src" />
+ <file baseinstalldir="/" name="third_party/objective_c/Cronet/cronet_c_for_grpc.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/v1/load_balancer.pb.h" role="src" />
<file baseinstalldir="/" name="third_party/nanopb/pb.h" role="src" />
@@ -343,6 +346,7 @@
<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_poll_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" />
@@ -478,6 +482,9 @@
<file baseinstalldir="/" name="src/core/ext/client_config/uri_parser.c" role="src" />
<file baseinstalldir="/" name="src/core/ext/transport/chttp2/server/insecure/server_chttp2.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/cronet/client/secure/cronet_channel_create.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/cronet/transport/cronet_api_dummy.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/cronet/transport/cronet_transport.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/v1/load_balancer.pb.c" role="src" />
<file baseinstalldir="/" name="third_party/nanopb/pb_common.c" role="src" />
@@ -1031,8 +1038,8 @@ Update to wrap gRPC C Core version 0.10.0
</release>
<release>
<version>
- <release>0.15.0</release>
- <api>0.15.0</api>
+ <release>0.14.0</release>
+ <api>0.14.0</api>
</version>
<stability>
<release>beta</release>
@@ -1044,5 +1051,35 @@ Update to wrap gRPC C Core version 0.10.0
- destroy grpc_byte_buffer after startBatch #6096
</notes>
</release>
+ <release>
+ <version>
+ <release>0.14.2</release>
+ <api>0.14.2</api>
+ </version>
+ <stability>
+ <release>beta</release>
+ <api>beta</api>
+ </stability>
+ <date>2016-05-18</date>
+ <license>BSD</license>
+ <notes>
+- Updated functions with TSRM macros for ZTS support #6607
+ </notes>
+ </release>
+ <release>
+ <version>
+ <release>0.15.0</release>
+ <api>0.15.0</api>
+ </version>
+ <stability>
+ <release>beta</release>
+ <api>beta</api>
+ </stability>
+ <date>2016-05-19</date>
+ <license>BSD</license>
+ <notes>
+- TBD
+ </notes>
+ </release>
</changelog>
</package>
diff --git a/src/compiler/python_generator.cc b/src/compiler/python_generator.cc
index 8e76e6dce6..cd5ddd8832 100644
--- a/src/compiler/python_generator.cc
+++ b/src/compiler/python_generator.cc
@@ -147,7 +147,8 @@ class IndentScope {
// END FORMATTING BOILERPLATE //
////////////////////////////////
-// TODO(protobuf team): Export `ModuleName` from protobuf's
+// TODO(https://github.com/google/protobuf/issues/888):
+// Export `ModuleName` from protobuf's
// `src/google/protobuf/compiler/python/python_generator.cc` file.
grpc::string ModuleName(const grpc::string& filename) {
grpc::string basename = StripProto(filename);
@@ -156,8 +157,23 @@ grpc::string ModuleName(const grpc::string& filename) {
return basename + "_pb2";
}
+// TODO(https://github.com/google/protobuf/issues/888):
+// Export `ModuleAlias` from protobuf's
+// `src/google/protobuf/compiler/python/python_generator.cc` file.
+grpc::string ModuleAlias(const grpc::string& filename) {
+ grpc::string module_name = ModuleName(filename);
+ // We can't have dots in the module name, so we replace each with _dot_.
+ // But that could lead to a collision between a.b and a_dot_b, so we also
+ // duplicate each underscore.
+ module_name = StringReplace(module_name, "_", "__");
+ module_name = StringReplace(module_name, ".", "_dot_");
+ return module_name;
+}
+
+
bool GetModuleAndMessagePath(const Descriptor* type,
- pair<grpc::string, grpc::string>* out) {
+ const ServiceDescriptor* service,
+ grpc::string* out) {
const Descriptor* path_elem_type = type;
vector<const Descriptor*> message_path;
do {
@@ -170,7 +186,9 @@ bool GetModuleAndMessagePath(const Descriptor* type,
file_name.find_last_of(".proto") == file_name.size() - 1)) {
return false;
}
- grpc::string module = ModuleName(file_name);
+ grpc::string service_file_name = service->file()->name();
+ grpc::string module = service_file_name == file_name ?
+ "" : ModuleAlias(file_name) + ".";
grpc::string message_type;
for (auto path_iter = message_path.rbegin();
path_iter != message_path.rend(); ++path_iter) {
@@ -178,7 +196,7 @@ bool GetModuleAndMessagePath(const Descriptor* type,
}
// no pop_back prior to C++11
message_type.resize(message_type.size() - 1);
- *out = make_pair(module, message_type);
+ *out = module + message_type;
return true;
}
@@ -210,7 +228,7 @@ static void PrintAllComments(const DescriptorType* desc, Printer* printer) {
bool PrintBetaServicer(const ServiceDescriptor* service,
Printer* out) {
- out->Print("\n");
+ out->Print("\n\n");
out->Print("class Beta$Service$Servicer(object):\n", "Service",
service->name());
{
@@ -234,7 +252,7 @@ bool PrintBetaServicer(const ServiceDescriptor* service,
bool PrintBetaStub(const ServiceDescriptor* service,
Printer* out) {
- out->Print("\n");
+ out->Print("\n\n");
out->Print("class Beta$Service$Stub(object):\n", "Service", service->name());
{
IndentScope raii_class_indent(out);
@@ -244,7 +262,7 @@ bool PrintBetaStub(const ServiceDescriptor* service,
grpc::string arg_name = meth->client_streaming() ?
"request_iterator" : "request";
auto methdict = ListToDict({"Method", meth->name(), "ArgName", arg_name});
- out->Print(methdict, "def $Method$(self, $ArgName$, timeout):\n");
+ out->Print(methdict, "def $Method$(self, $ArgName$, timeout, metadata=None, with_call=False, protocol_options=None):\n");
{
IndentScope raii_method_indent(out);
PrintAllComments(meth, out);
@@ -260,38 +278,31 @@ bool PrintBetaStub(const ServiceDescriptor* service,
bool PrintBetaServerFactory(const grpc::string& package_qualified_service_name,
const ServiceDescriptor* service, Printer* out) {
- out->Print("\n");
+ out->Print("\n\n");
out->Print("def beta_create_$Service$_server(servicer, pool=None, "
"pool_size=None, default_timeout=None, maximum_timeout=None):\n",
"Service", service->name());
{
IndentScope raii_create_server_indent(out);
map<grpc::string, grpc::string> method_implementation_constructors;
- map<grpc::string, pair<grpc::string, grpc::string>>
- input_message_modules_and_classes;
- map<grpc::string, pair<grpc::string, grpc::string>>
- output_message_modules_and_classes;
+ map<grpc::string, grpc::string> input_message_modules_and_classes;
+ map<grpc::string, grpc::string> output_message_modules_and_classes;
for (int i = 0; i < service->method_count(); ++i) {
const MethodDescriptor* method = service->method(i);
const grpc::string method_implementation_constructor =
grpc::string(method->client_streaming() ? "stream_" : "unary_") +
grpc::string(method->server_streaming() ? "stream_" : "unary_") +
"inline";
- pair<grpc::string, grpc::string> input_message_module_and_class;
- if (!GetModuleAndMessagePath(method->input_type(),
+ grpc::string input_message_module_and_class;
+ if (!GetModuleAndMessagePath(method->input_type(), service,
&input_message_module_and_class)) {
return false;
}
- pair<grpc::string, grpc::string> output_message_module_and_class;
- if (!GetModuleAndMessagePath(method->output_type(),
+ grpc::string output_message_module_and_class;
+ if (!GetModuleAndMessagePath(method->output_type(), service,
&output_message_module_and_class)) {
return false;
}
- // Import the modules that define the messages used in RPCs.
- out->Print("import $Module$\n", "Module",
- input_message_module_and_class.first);
- out->Print("import $Module$\n", "Module",
- output_message_module_and_class.first);
method_implementation_constructors.insert(
make_pair(method->name(), method_implementation_constructor));
input_message_modules_and_classes.insert(
@@ -307,13 +318,11 @@ bool PrintBetaServerFactory(const grpc::string& package_qualified_service_name,
name_and_input_module_class_pair++) {
IndentScope raii_indent(out);
out->Print("(\'$PackageQualifiedServiceName$\', \'$MethodName$\'): "
- "$InputTypeModule$.$InputTypeClass$.FromString,\n",
+ "$InputTypeModuleAndClass$.FromString,\n",
"PackageQualifiedServiceName", package_qualified_service_name,
"MethodName", name_and_input_module_class_pair->first,
- "InputTypeModule",
- name_and_input_module_class_pair->second.first,
- "InputTypeClass",
- name_and_input_module_class_pair->second.second);
+ "InputTypeModuleAndClass",
+ name_and_input_module_class_pair->second);
}
out->Print("}\n");
out->Print("response_serializers = {\n");
@@ -324,13 +333,11 @@ bool PrintBetaServerFactory(const grpc::string& package_qualified_service_name,
name_and_output_module_class_pair++) {
IndentScope raii_indent(out);
out->Print("(\'$PackageQualifiedServiceName$\', \'$MethodName$\'): "
- "$OutputTypeModule$.$OutputTypeClass$.SerializeToString,\n",
+ "$OutputTypeModuleAndClass$.SerializeToString,\n",
"PackageQualifiedServiceName", package_qualified_service_name,
"MethodName", name_and_output_module_class_pair->first,
- "OutputTypeModule",
- name_and_output_module_class_pair->second.first,
- "OutputTypeClass",
- name_and_output_module_class_pair->second.second);
+ "OutputTypeModuleAndClass",
+ name_and_output_module_class_pair->second);
}
out->Print("}\n");
out->Print("method_implementations = {\n");
@@ -366,37 +373,30 @@ bool PrintBetaStubFactory(const grpc::string& package_qualified_service_name,
map<grpc::string, grpc::string> dict = ListToDict({
"Service", service->name(),
});
- out->Print("\n");
+ out->Print("\n\n");
out->Print(dict, "def beta_create_$Service$_stub(channel, host=None,"
" metadata_transformer=None, pool=None, pool_size=None):\n");
{
IndentScope raii_create_server_indent(out);
map<grpc::string, grpc::string> method_cardinalities;
- map<grpc::string, pair<grpc::string, grpc::string>>
- input_message_modules_and_classes;
- map<grpc::string, pair<grpc::string, grpc::string>>
- output_message_modules_and_classes;
+ map<grpc::string, grpc::string> input_message_modules_and_classes;
+ map<grpc::string, grpc::string> output_message_modules_and_classes;
for (int i = 0; i < service->method_count(); ++i) {
const MethodDescriptor* method = service->method(i);
const grpc::string method_cardinality =
grpc::string(method->client_streaming() ? "STREAM" : "UNARY") +
"_" +
- grpc::string(method->server_streaming() ? "STREAM" : "UNARY");
- pair<grpc::string, grpc::string> input_message_module_and_class;
- if (!GetModuleAndMessagePath(method->input_type(),
+ grpc::string(method->server_streaming() ? "STREAM" : "UNARY");
+ grpc::string input_message_module_and_class;
+ if (!GetModuleAndMessagePath(method->input_type(), service,
&input_message_module_and_class)) {
return false;
}
- pair<grpc::string, grpc::string> output_message_module_and_class;
- if (!GetModuleAndMessagePath(method->output_type(),
+ grpc::string output_message_module_and_class;
+ if (!GetModuleAndMessagePath(method->output_type(), service,
&output_message_module_and_class)) {
return false;
}
- // Import the modules that define the messages used in RPCs.
- out->Print("import $Module$\n", "Module",
- input_message_module_and_class.first);
- out->Print("import $Module$\n", "Module",
- output_message_module_and_class.first);
method_cardinalities.insert(
make_pair(method->name(), method_cardinality));
input_message_modules_and_classes.insert(
@@ -412,13 +412,11 @@ bool PrintBetaStubFactory(const grpc::string& package_qualified_service_name,
name_and_input_module_class_pair++) {
IndentScope raii_indent(out);
out->Print("(\'$PackageQualifiedServiceName$\', \'$MethodName$\'): "
- "$InputTypeModule$.$InputTypeClass$.SerializeToString,\n",
+ "$InputTypeModuleAndClass$.SerializeToString,\n",
"PackageQualifiedServiceName", package_qualified_service_name,
"MethodName", name_and_input_module_class_pair->first,
- "InputTypeModule",
- name_and_input_module_class_pair->second.first,
- "InputTypeClass",
- name_and_input_module_class_pair->second.second);
+ "InputTypeModuleAndClass",
+ name_and_input_module_class_pair->second);
}
out->Print("}\n");
out->Print("response_deserializers = {\n");
@@ -429,13 +427,11 @@ bool PrintBetaStubFactory(const grpc::string& package_qualified_service_name,
name_and_output_module_class_pair++) {
IndentScope raii_indent(out);
out->Print("(\'$PackageQualifiedServiceName$\', \'$MethodName$\'): "
- "$OutputTypeModule$.$OutputTypeClass$.FromString,\n",
+ "$OutputTypeModuleAndClass$.FromString,\n",
"PackageQualifiedServiceName", package_qualified_service_name,
"MethodName", name_and_output_module_class_pair->first,
- "OutputTypeModule",
- name_and_output_module_class_pair->second.first,
- "OutputTypeClass",
- name_and_output_module_class_pair->second.second);
+ "OutputTypeModuleAndClass",
+ name_and_output_module_class_pair->second);
}
out->Print("}\n");
out->Print("cardinalities = {\n");
@@ -463,8 +459,6 @@ bool PrintBetaStubFactory(const grpc::string& package_qualified_service_name,
bool PrintPreamble(const FileDescriptor* file,
const GeneratorConfiguration& config, Printer* out) {
- out->Print("import abc\n");
- out->Print("import six\n");
out->Print("from $Package$ import implementations as beta_implementations\n",
"Package", config.beta_package_root);
out->Print("from $Package$ import interfaces as beta_interfaces\n",
diff --git a/src/core/ext/client_config/subchannel_call_holder.c b/src/core/ext/client_config/subchannel_call_holder.c
index 9918fbdcb4..91fa917661 100644
--- a/src/core/ext/client_config/subchannel_call_holder.c
+++ b/src/core/ext/client_config/subchannel_call_holder.c
@@ -174,6 +174,7 @@ static void subchannel_ready(grpc_exec_ctx *exec_ctx, void *arg, bool success) {
GRPC_SUBCHANNEL_CALL_HOLDER_PICKING_SUBCHANNEL);
holder->creation_phase = GRPC_SUBCHANNEL_CALL_HOLDER_NOT_CREATING;
if (holder->connected_subchannel == NULL) {
+ gpr_atm_no_barrier_store(&holder->subchannel_call, 1);
fail_locked(exec_ctx, holder);
} else if (1 == gpr_atm_acq_load(&holder->subchannel_call)) {
/* already cancelled before subchannel became ready */
diff --git a/src/core/ext/transport/cronet/client/secure/cronet_channel_create.c b/src/core/ext/transport/cronet/client/secure/cronet_channel_create.c
new file mode 100644
index 0000000000..df1acddcc0
--- /dev/null
+++ b/src/core/ext/transport/cronet/client/secure/cronet_channel_create.c
@@ -0,0 +1,69 @@
+/*
+ *
+ * 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/impl/codegen/port_platform.h>
+
+#include <stdio.h>
+#include <string.h>
+
+#include <grpc/support/alloc.h>
+#include <grpc/support/log.h>
+
+#include "src/core/lib/surface/channel.h"
+#include "src/core/lib/transport/transport_impl.h"
+
+// Cronet transport object
+typedef struct cronet_transport {
+ grpc_transport base; // must be first element in this structure
+ void *engine;
+ char *host;
+} cronet_transport;
+
+extern grpc_transport_vtable grpc_cronet_vtable;
+
+GRPCAPI grpc_channel *grpc_cronet_secure_channel_create(
+ void *engine, const char *target, const grpc_channel_args *args,
+ void *reserved) {
+ cronet_transport *ct = gpr_malloc(sizeof(cronet_transport));
+ ct->base.vtable = &grpc_cronet_vtable;
+ ct->engine = engine;
+ ct->host = gpr_malloc(strlen(target) + 1);
+ strcpy(ct->host, target);
+ gpr_log(GPR_DEBUG,
+ "grpc_create_cronet_transport: cronet_engine = %p, target=%s", engine,
+ ct->host);
+
+ grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
+ return grpc_channel_create(&exec_ctx, target, args,
+ GRPC_CLIENT_DIRECT_CHANNEL, (grpc_transport *)ct);
+}
diff --git a/src/core/ext/transport/cronet/transport/cronet_api_dummy.c b/src/core/ext/transport/cronet/transport/cronet_api_dummy.c
new file mode 100644
index 0000000000..687026c9fd
--- /dev/null
+++ b/src/core/ext/transport/cronet/transport/cronet_api_dummy.c
@@ -0,0 +1,85 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+/* This file has empty implementation of all the functions exposed by the cronet
+library, so we can build it in all environments */
+
+#include <stdbool.h>
+
+#include <grpc/support/log.h>
+
+#include "third_party/objective_c/Cronet/cronet_c_for_grpc.h"
+
+#ifdef GRPC_COMPILE_WITH_CRONET
+/* link with the real CRONET library in the build system */
+#else
+/* Dummy implementation of cronet API just to test for build-ability */
+cronet_bidirectional_stream* cronet_bidirectional_stream_create(
+ cronet_engine* engine, void* annotation,
+ cronet_bidirectional_stream_callback* callback) {
+ GPR_ASSERT(0);
+ return NULL;
+}
+
+int cronet_bidirectional_stream_destroy(cronet_bidirectional_stream* stream) {
+ GPR_ASSERT(0);
+ return 0;
+}
+
+int cronet_bidirectional_stream_start(
+ cronet_bidirectional_stream* stream, const char* url, int priority,
+ const char* method, const cronet_bidirectional_stream_header_array* headers,
+ bool end_of_stream) {
+ GPR_ASSERT(0);
+ return 0;
+}
+
+int cronet_bidirectional_stream_read(cronet_bidirectional_stream* stream,
+ char* buffer, int capacity) {
+ GPR_ASSERT(0);
+ return 0;
+}
+
+int cronet_bidirectional_stream_write(cronet_bidirectional_stream* stream,
+ const char* buffer, int count,
+ bool end_of_stream) {
+ GPR_ASSERT(0);
+ return 0;
+}
+
+int cronet_bidirectional_stream_cancel(cronet_bidirectional_stream* stream) {
+ GPR_ASSERT(0);
+ return 0;
+}
+
+#endif /* GRPC_COMPILE_WITH_CRONET */
diff --git a/src/core/ext/transport/cronet/transport/cronet_transport.c b/src/core/ext/transport/cronet/transport/cronet_transport.c
new file mode 100644
index 0000000000..5bb085195c
--- /dev/null
+++ b/src/core/ext/transport/cronet/transport/cronet_transport.c
@@ -0,0 +1,640 @@
+/*
+ *
+ * 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 <string.h>
+
+#include <grpc/impl/codegen/port_platform.h>
+#include <grpc/support/alloc.h>
+#include <grpc/support/host_port.h>
+#include <grpc/support/log.h>
+#include <grpc/support/slice_buffer.h>
+#include <grpc/support/string_util.h>
+#include <grpc/support/useful.h>
+
+#include "src/core/ext/transport/chttp2/transport/incoming_metadata.h"
+#include "src/core/lib/iomgr/exec_ctx.h"
+#include "src/core/lib/support/string.h"
+#include "src/core/lib/surface/channel.h"
+#include "src/core/lib/transport/metadata_batch.h"
+#include "src/core/lib/transport/transport_impl.h"
+#include "third_party/objective_c/Cronet/cronet_c_for_grpc.h"
+
+#define GRPC_HEADER_SIZE_IN_BYTES 5
+
+// Global flag that gets set with GRPC_TRACE env variable
+int grpc_cronet_trace = 1;
+
+// Cronet transport object
+struct grpc_cronet_transport {
+ grpc_transport base; /* must be first element in this structure */
+ cronet_engine *engine;
+ char *host;
+};
+
+typedef struct grpc_cronet_transport grpc_cronet_transport;
+
+enum send_state {
+ CRONET_SEND_IDLE = 0,
+ CRONET_REQ_STARTED,
+ CRONET_SEND_HEADER,
+ CRONET_WRITE,
+ CRONET_WRITE_COMPLETED,
+};
+
+enum recv_state {
+ CRONET_RECV_IDLE = 0,
+ CRONET_RECV_READ_LENGTH,
+ CRONET_RECV_READ_DATA,
+ CRONET_RECV_CLOSED,
+};
+
+static const char *recv_state_name[] = {
+ "CRONET_RECV_IDLE", "CRONET_RECV_READ_LENGTH", "CRONET_RECV_READ_DATA,",
+ "CRONET_RECV_CLOSED"};
+
+// Enum that identifies calling function.
+enum e_caller {
+ PERFORM_STREAM_OP,
+ ON_READ_COMPLETE,
+ ON_RESPONSE_HEADERS_RECEIVED,
+ ON_RESPONSE_TRAILERS_RECEIVED
+};
+
+enum callback_id {
+ CB_SEND_INITIAL_METADATA = 0,
+ CB_SEND_MESSAGE,
+ CB_SEND_TRAILING_METADATA,
+ CB_RECV_MESSAGE,
+ CB_RECV_INITIAL_METADATA,
+ CB_RECV_TRAILING_METADATA,
+ CB_NUM_CALLBACKS
+};
+
+struct stream_obj {
+ // we store received bytes here as they trickle in.
+ gpr_slice_buffer write_slice_buffer;
+ cronet_bidirectional_stream *cbs;
+ gpr_slice slice;
+ gpr_slice_buffer read_slice_buffer;
+ struct grpc_slice_buffer_stream sbs;
+ char *read_buffer;
+ int remaining_read_bytes;
+ int total_read_bytes;
+
+ char *write_buffer;
+ size_t write_buffer_size;
+
+ // Hold the URL
+ char *url;
+
+ bool response_headers_received;
+ bool read_requested;
+ bool response_trailers_received;
+ bool read_closed;
+
+ // Recv message stuff
+ grpc_byte_buffer **recv_message;
+ // Initial metadata stuff
+ grpc_metadata_batch *recv_initial_metadata;
+ // Trailing metadata stuff
+ grpc_metadata_batch *recv_trailing_metadata;
+ grpc_chttp2_incoming_metadata_buffer imb;
+
+ // This mutex protects receive state machine execution
+ gpr_mu recv_mu;
+ // we can queue up up to 2 callbacks for each OP
+ grpc_closure *callback_list[CB_NUM_CALLBACKS][2];
+
+ // storage for header
+ cronet_bidirectional_stream_header *headers;
+ uint32_t num_headers;
+ cronet_bidirectional_stream_header_array header_array;
+ // state tracking
+ enum recv_state cronet_recv_state;
+ enum send_state cronet_send_state;
+};
+
+typedef struct stream_obj stream_obj;
+
+static void next_send_step(stream_obj *s);
+static void next_recv_step(stream_obj *s, enum e_caller caller);
+
+static void set_pollset_do_nothing(grpc_exec_ctx *exec_ctx, grpc_transport *gt,
+ grpc_stream *gs, grpc_pollset *pollset) {}
+
+static void enqueue_callbacks(grpc_closure *callback_list[]) {
+ grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
+ if (callback_list[0]) {
+ grpc_exec_ctx_enqueue(&exec_ctx, callback_list[0], true, NULL);
+ callback_list[0] = NULL;
+ }
+ if (callback_list[1]) {
+ grpc_exec_ctx_enqueue(&exec_ctx, callback_list[1], true, NULL);
+ callback_list[1] = NULL;
+ }
+ grpc_exec_ctx_finish(&exec_ctx);
+}
+
+static void on_canceled(cronet_bidirectional_stream *stream) {
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "on_canceled %p", stream);
+ }
+}
+
+static void on_failed(cronet_bidirectional_stream *stream, int net_error) {
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "on_failed %p, error = %d", stream, net_error);
+ }
+}
+
+static void on_succeeded(cronet_bidirectional_stream *stream) {
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "on_succeeded %p", stream);
+ }
+}
+
+static void on_response_trailers_received(
+ cronet_bidirectional_stream *stream,
+ const cronet_bidirectional_stream_header_array *trailers) {
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "R: on_response_trailers_received");
+ }
+ stream_obj *s = (stream_obj *)stream->annotation;
+
+ memset(&s->imb, 0, sizeof(s->imb));
+ grpc_chttp2_incoming_metadata_buffer_init(&s->imb);
+ unsigned int i = 0;
+ for (i = 0; i < trailers->count; i++) {
+ grpc_chttp2_incoming_metadata_buffer_add(
+ &s->imb, grpc_mdelem_from_metadata_strings(
+ grpc_mdstr_from_string(trailers->headers[i].key),
+ grpc_mdstr_from_string(trailers->headers[i].value)));
+ }
+ s->response_trailers_received = true;
+ next_recv_step(s, ON_RESPONSE_TRAILERS_RECEIVED);
+}
+
+static void on_write_completed(cronet_bidirectional_stream *stream,
+ const char *data) {
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "W: on_write_completed");
+ }
+ stream_obj *s = (stream_obj *)stream->annotation;
+ enqueue_callbacks(s->callback_list[CB_SEND_MESSAGE]);
+ s->cronet_send_state = CRONET_WRITE_COMPLETED;
+ next_send_step(s);
+}
+
+static void process_recv_message(stream_obj *s, const uint8_t *recv_data) {
+ gpr_slice read_data_slice = gpr_slice_malloc((uint32_t)s->total_read_bytes);
+ uint8_t *dst_p = GPR_SLICE_START_PTR(read_data_slice);
+ memcpy(dst_p, recv_data, (size_t)s->total_read_bytes);
+ gpr_slice_buffer_add(&s->read_slice_buffer, read_data_slice);
+ grpc_slice_buffer_stream_init(&s->sbs, &s->read_slice_buffer, 0);
+ *s->recv_message = (grpc_byte_buffer *)&s->sbs;
+}
+
+static int parse_grpc_header(const uint8_t *data) {
+ const uint8_t *p = data + 1;
+ int length = 0;
+ length |= ((uint8_t)*p++) << 24;
+ length |= ((uint8_t)*p++) << 16;
+ length |= ((uint8_t)*p++) << 8;
+ length |= ((uint8_t)*p++);
+ return length;
+}
+
+static void on_read_completed(cronet_bidirectional_stream *stream, char *data,
+ int count) {
+ stream_obj *s = (stream_obj *)stream->annotation;
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "R: on_read_completed count=%d, total=%d, remaining=%d",
+ count, s->total_read_bytes, s->remaining_read_bytes);
+ }
+ if (count > 0) {
+ GPR_ASSERT(s->recv_message);
+ s->remaining_read_bytes -= count;
+ next_recv_step(s, ON_READ_COMPLETE);
+ } else {
+ s->read_closed = true;
+ next_recv_step(s, ON_READ_COMPLETE);
+ }
+}
+
+static void on_response_headers_received(
+ cronet_bidirectional_stream *stream,
+ const cronet_bidirectional_stream_header_array *headers,
+ const char *negotiated_protocol) {
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "R: on_response_headers_received");
+ }
+ stream_obj *s = (stream_obj *)stream->annotation;
+ enqueue_callbacks(s->callback_list[CB_RECV_INITIAL_METADATA]);
+ s->response_headers_received = true;
+ next_recv_step(s, ON_RESPONSE_HEADERS_RECEIVED);
+}
+
+static void on_request_headers_sent(cronet_bidirectional_stream *stream) {
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "W: on_request_headers_sent");
+ }
+ stream_obj *s = (stream_obj *)stream->annotation;
+ enqueue_callbacks(s->callback_list[CB_SEND_INITIAL_METADATA]);
+ s->cronet_send_state = CRONET_SEND_HEADER;
+ next_send_step(s);
+}
+
+// Callback function pointers (invoked by cronet in response to events)
+static cronet_bidirectional_stream_callback callbacks = {
+ on_request_headers_sent,
+ on_response_headers_received,
+ on_read_completed,
+ on_write_completed,
+ on_response_trailers_received,
+ on_succeeded,
+ on_failed,
+ on_canceled};
+
+static void invoke_closing_callback(stream_obj *s) {
+ grpc_chttp2_incoming_metadata_buffer_publish(&s->imb,
+ s->recv_trailing_metadata);
+ if (s->callback_list[CB_RECV_TRAILING_METADATA]) {
+ enqueue_callbacks(s->callback_list[CB_RECV_TRAILING_METADATA]);
+ }
+}
+
+static void set_recv_state(stream_obj *s, enum recv_state state) {
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "next_state = %s", recv_state_name[state]);
+ }
+ s->cronet_recv_state = state;
+}
+
+// This is invoked from perform_stream_op, and all on_xxxx callbacks.
+static void next_recv_step(stream_obj *s, enum e_caller caller) {
+ gpr_mu_lock(&s->recv_mu);
+ switch (s->cronet_recv_state) {
+ case CRONET_RECV_IDLE:
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "cronet_recv_state = CRONET_RECV_IDLE");
+ }
+ if (caller == PERFORM_STREAM_OP ||
+ caller == ON_RESPONSE_HEADERS_RECEIVED) {
+ if (s->read_closed && s->response_trailers_received) {
+ invoke_closing_callback(s);
+ set_recv_state(s, CRONET_RECV_CLOSED);
+ } else if (s->response_headers_received == true &&
+ s->read_requested == true) {
+ set_recv_state(s, CRONET_RECV_READ_LENGTH);
+ s->total_read_bytes = s->remaining_read_bytes =
+ GRPC_HEADER_SIZE_IN_BYTES;
+ GPR_ASSERT(s->read_buffer);
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "R: cronet_bidirectional_stream_read()");
+ }
+ cronet_bidirectional_stream_read(s->cbs, s->read_buffer,
+ s->remaining_read_bytes);
+ }
+ }
+ break;
+ case CRONET_RECV_READ_LENGTH:
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "cronet_recv_state = CRONET_RECV_READ_LENGTH");
+ }
+ if (caller == ON_READ_COMPLETE) {
+ if (s->read_closed) {
+ invoke_closing_callback(s);
+ enqueue_callbacks(s->callback_list[CB_RECV_MESSAGE]);
+ set_recv_state(s, CRONET_RECV_CLOSED);
+ } else {
+ GPR_ASSERT(s->remaining_read_bytes == 0);
+ set_recv_state(s, CRONET_RECV_READ_DATA);
+ s->total_read_bytes = s->remaining_read_bytes =
+ parse_grpc_header((const uint8_t *)s->read_buffer);
+ s->read_buffer =
+ gpr_realloc(s->read_buffer, (uint32_t)s->remaining_read_bytes);
+ GPR_ASSERT(s->read_buffer);
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "R: cronet_bidirectional_stream_read()");
+ }
+ cronet_bidirectional_stream_read(s->cbs, (char *)s->read_buffer,
+ s->remaining_read_bytes);
+ }
+ }
+ break;
+ case CRONET_RECV_READ_DATA:
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "cronet_recv_state = CRONET_RECV_READ_DATA");
+ }
+ if (caller == ON_READ_COMPLETE) {
+ if (s->remaining_read_bytes > 0) {
+ int offset = s->total_read_bytes - s->remaining_read_bytes;
+ GPR_ASSERT(s->read_buffer);
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "R: cronet_bidirectional_stream_read()");
+ }
+ cronet_bidirectional_stream_read(
+ s->cbs, (char *)s->read_buffer + offset, s->remaining_read_bytes);
+ } else {
+ gpr_slice_buffer_init(&s->read_slice_buffer);
+ uint8_t *p = (uint8_t *)s->read_buffer;
+ process_recv_message(s, p);
+ set_recv_state(s, CRONET_RECV_IDLE);
+ enqueue_callbacks(s->callback_list[CB_RECV_MESSAGE]);
+ }
+ }
+ break;
+ case CRONET_RECV_CLOSED:
+ break;
+ default:
+ GPR_ASSERT(0); // Should not reach here
+ break;
+ }
+ gpr_mu_unlock(&s->recv_mu);
+}
+
+// This function takes the data from s->write_slice_buffer and assembles into
+// a contiguous byte stream with 5 byte gRPC header prepended.
+static void create_grpc_frame(stream_obj *s) {
+ gpr_slice slice = gpr_slice_buffer_take_first(&s->write_slice_buffer);
+ uint8_t *raw_data = GPR_SLICE_START_PTR(slice);
+ size_t length = GPR_SLICE_LENGTH(slice);
+ s->write_buffer_size = length + GRPC_HEADER_SIZE_IN_BYTES;
+ s->write_buffer = gpr_realloc(s->write_buffer, s->write_buffer_size);
+ uint8_t *p = (uint8_t *)s->write_buffer;
+ // Append 5 byte header
+ *p++ = 0;
+ *p++ = (uint8_t)(length >> 24);
+ *p++ = (uint8_t)(length >> 16);
+ *p++ = (uint8_t)(length >> 8);
+ *p++ = (uint8_t)(length);
+ // append actual data
+ memcpy(p, raw_data, length);
+}
+
+static void do_write(stream_obj *s) {
+ gpr_slice_buffer *sb = &s->write_slice_buffer;
+ GPR_ASSERT(sb->count <= 1);
+ if (sb->count > 0) {
+ create_grpc_frame(s);
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "W: cronet_bidirectional_stream_write");
+ }
+ cronet_bidirectional_stream_write(s->cbs, s->write_buffer,
+ (int)s->write_buffer_size, false);
+ }
+}
+
+//
+static void next_send_step(stream_obj *s) {
+ switch (s->cronet_send_state) {
+ case CRONET_SEND_IDLE:
+ GPR_ASSERT(
+ s->cbs); // cronet_bidirectional_stream is not initialized yet.
+ s->cronet_send_state = CRONET_REQ_STARTED;
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "cronet_bidirectional_stream_start to %s", s->url);
+ }
+ cronet_bidirectional_stream_start(s->cbs, s->url, 0, "POST",
+ &s->header_array, false);
+ // we no longer need the memory that was allocated earlier.
+ gpr_free(s->header_array.headers);
+ break;
+ case CRONET_SEND_HEADER:
+ do_write(s);
+ s->cronet_send_state = CRONET_WRITE;
+ break;
+ case CRONET_WRITE_COMPLETED:
+ do_write(s);
+ break;
+ default:
+ GPR_ASSERT(0);
+ break;
+ }
+}
+
+static void convert_metadata_to_cronet_headers(grpc_linked_mdelem *head,
+ const char *host,
+ stream_obj *s) {
+ grpc_linked_mdelem *curr = head;
+ // Walk the linked list and get number of header fields
+ uint32_t num_headers_available = 0;
+ while (curr != NULL) {
+ curr = curr->next;
+ num_headers_available++;
+ }
+ // Allocate enough memory
+ s->headers = (cronet_bidirectional_stream_header *)gpr_malloc(
+ sizeof(cronet_bidirectional_stream_header) * num_headers_available);
+
+ // Walk the linked list again, this time copying the header fields.
+ // s->num_headers
+ // can be less than num_headers_available, as some headers are not used for
+ // cronet
+ curr = head;
+ s->num_headers = 0;
+ while (s->num_headers < num_headers_available) {
+ grpc_mdelem *mdelem = curr->md;
+ curr = curr->next;
+ const char *key = grpc_mdstr_as_c_string(mdelem->key);
+ const char *value = grpc_mdstr_as_c_string(mdelem->value);
+ if (strcmp(key, ":scheme") == 0 || strcmp(key, ":method") == 0 ||
+ strcmp(key, ":authority") == 0) {
+ // Cronet populates these fields on its own.
+ continue;
+ }
+ if (strcmp(key, ":path") == 0) {
+ // Create URL by appending :path value to the hostname
+ gpr_asprintf(&s->url, "https://%s%s", host, value);
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "extracted URL = %s", s->url);
+ }
+ continue;
+ }
+ s->headers[s->num_headers].key = key;
+ s->headers[s->num_headers].value = value;
+ s->num_headers++;
+ if (curr == NULL) {
+ break;
+ }
+ }
+}
+
+static void perform_stream_op(grpc_exec_ctx *exec_ctx, grpc_transport *gt,
+ grpc_stream *gs, grpc_transport_stream_op *op) {
+ grpc_cronet_transport *ct = (grpc_cronet_transport *)gt;
+ GPR_ASSERT(ct->engine);
+ stream_obj *s = (stream_obj *)gs;
+ if (op->recv_trailing_metadata) {
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG,
+ "perform_stream_op - recv_trailing_metadata: on_complete=%p",
+ op->on_complete);
+ }
+ s->recv_trailing_metadata = op->recv_trailing_metadata;
+ GPR_ASSERT(!s->callback_list[CB_RECV_TRAILING_METADATA][0]);
+ s->callback_list[CB_RECV_TRAILING_METADATA][0] = op->on_complete;
+ }
+ if (op->recv_message) {
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "perform_stream_op - recv_message: on_complete=%p",
+ op->on_complete);
+ }
+ s->recv_message = (grpc_byte_buffer **)op->recv_message;
+ GPR_ASSERT(!s->callback_list[CB_RECV_MESSAGE][0]);
+ GPR_ASSERT(!s->callback_list[CB_RECV_MESSAGE][1]);
+ s->callback_list[CB_RECV_MESSAGE][0] = op->recv_message_ready;
+ s->callback_list[CB_RECV_MESSAGE][1] = op->on_complete;
+ s->read_requested = true;
+ next_recv_step(s, PERFORM_STREAM_OP);
+ }
+ if (op->recv_initial_metadata) {
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "perform_stream_op - recv_initial_metadata:=%p",
+ op->on_complete);
+ }
+ s->recv_initial_metadata = op->recv_initial_metadata;
+ GPR_ASSERT(!s->callback_list[CB_RECV_INITIAL_METADATA][0]);
+ GPR_ASSERT(!s->callback_list[CB_RECV_INITIAL_METADATA][1]);
+ s->callback_list[CB_RECV_INITIAL_METADATA][0] =
+ op->recv_initial_metadata_ready;
+ s->callback_list[CB_RECV_INITIAL_METADATA][1] = op->on_complete;
+ }
+ if (op->send_initial_metadata) {
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG,
+ "perform_stream_op - send_initial_metadata: on_complete=%p",
+ op->on_complete);
+ }
+ s->num_headers = 0;
+ convert_metadata_to_cronet_headers(op->send_initial_metadata->list.head,
+ ct->host, s);
+ s->header_array.count = s->num_headers;
+ s->header_array.capacity = s->num_headers;
+ s->header_array.headers = s->headers;
+ GPR_ASSERT(!s->callback_list[CB_SEND_INITIAL_METADATA][0]);
+ s->callback_list[CB_SEND_INITIAL_METADATA][0] = op->on_complete;
+ }
+ if (op->send_message) {
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "perform_stream_op - send_message: on_complete=%p",
+ op->on_complete);
+ }
+ grpc_byte_stream_next(exec_ctx, op->send_message, &s->slice,
+ op->send_message->length, NULL);
+ // Check that compression flag is not ON. We don't support compression yet.
+ // TODO (makdharma): add compression support
+ GPR_ASSERT(op->send_message->flags == 0);
+ gpr_slice_buffer_add(&s->write_slice_buffer, s->slice);
+ if (s->cbs == NULL) {
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "cronet_bidirectional_stream_create");
+ }
+ s->cbs = cronet_bidirectional_stream_create(ct->engine, s, &callbacks);
+ GPR_ASSERT(s->cbs);
+ s->read_closed = false;
+ s->response_trailers_received = false;
+ s->response_headers_received = false;
+ s->cronet_send_state = CRONET_SEND_IDLE;
+ s->cronet_recv_state = CRONET_RECV_IDLE;
+ }
+ GPR_ASSERT(!s->callback_list[CB_SEND_MESSAGE][0]);
+ s->callback_list[CB_SEND_MESSAGE][0] = op->on_complete;
+ next_send_step(s);
+ }
+ if (op->send_trailing_metadata) {
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG,
+ "perform_stream_op - send_trailing_metadata: on_complete=%p",
+ op->on_complete);
+ }
+ GPR_ASSERT(!s->callback_list[CB_SEND_TRAILING_METADATA][0]);
+ s->callback_list[CB_SEND_TRAILING_METADATA][0] = op->on_complete;
+ if (s->cbs) {
+ // Send an "empty" write to the far end to signal that we're done.
+ // This will induce the server to send down trailers.
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "W: cronet_bidirectional_stream_write");
+ }
+ cronet_bidirectional_stream_write(s->cbs, "abc", 0, true);
+ } else {
+ // We never created a stream. This was probably an empty request.
+ invoke_closing_callback(s);
+ }
+ }
+}
+
+static int init_stream(grpc_exec_ctx *exec_ctx, grpc_transport *gt,
+ grpc_stream *gs, grpc_stream_refcount *refcount,
+ const void *server_data) {
+ stream_obj *s = (stream_obj *)gs;
+ memset(s->callback_list, 0, sizeof(s->callback_list));
+ s->cbs = NULL;
+ gpr_mu_init(&s->recv_mu);
+ s->read_buffer = gpr_malloc(GRPC_HEADER_SIZE_IN_BYTES);
+ s->write_buffer = gpr_malloc(GRPC_HEADER_SIZE_IN_BYTES);
+ gpr_slice_buffer_init(&s->write_slice_buffer);
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "cronet_transport - init_stream");
+ }
+ return 0;
+}
+
+static void destroy_stream(grpc_exec_ctx *exec_ctx, grpc_transport *gt,
+ grpc_stream *gs, void *and_free_memory) {
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "Destroy stream");
+ }
+ stream_obj *s = (stream_obj *)gs;
+ s->cbs = NULL;
+ gpr_free(s->read_buffer);
+ gpr_free(s->write_buffer);
+ gpr_free(s->url);
+ gpr_mu_destroy(&s->recv_mu);
+ if (and_free_memory) {
+ gpr_free(and_free_memory);
+ }
+}
+
+static void destroy_transport(grpc_exec_ctx *exec_ctx, grpc_transport *gt) {
+ grpc_cronet_transport *ct = (grpc_cronet_transport *)gt;
+ gpr_free(ct->host);
+ if (grpc_cronet_trace) {
+ gpr_log(GPR_DEBUG, "Destroy transport");
+ }
+}
+
+const grpc_transport_vtable grpc_cronet_vtable = {
+ sizeof(stream_obj), "cronet_http", init_stream,
+ set_pollset_do_nothing, perform_stream_op, NULL,
+ destroy_stream, destroy_transport, NULL};
diff --git a/src/core/lib/channel/channel_args.c b/src/core/lib/channel/channel_args.c
index 28d2d78d00..893cf0700e 100644
--- a/src/core/lib/channel/channel_args.c
+++ b/src/core/lib/channel/channel_args.c
@@ -170,7 +170,7 @@ grpc_compression_algorithm grpc_channel_args_get_compression_algorithm(
if (a == NULL) return 0;
for (i = 0; i < a->num_args; ++i) {
if (a->args[i].type == GRPC_ARG_INTEGER &&
- !strcmp(GRPC_COMPRESSION_ALGORITHM_ARG, a->args[i].key)) {
+ !strcmp(GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM, a->args[i].key)) {
return (grpc_compression_algorithm)a->args[i].value.integer;
break;
}
@@ -182,7 +182,7 @@ grpc_channel_args *grpc_channel_args_set_compression_algorithm(
grpc_channel_args *a, grpc_compression_algorithm algorithm) {
grpc_arg tmp;
tmp.type = GRPC_ARG_INTEGER;
- tmp.key = GRPC_COMPRESSION_ALGORITHM_ARG;
+ tmp.key = GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM;
tmp.value.integer = algorithm;
return grpc_channel_args_copy_and_add(a, &tmp, 1);
}
@@ -196,7 +196,8 @@ static int find_compression_algorithm_states_bitset(const grpc_channel_args *a,
size_t i;
for (i = 0; i < a->num_args; ++i) {
if (a->args[i].type == GRPC_ARG_INTEGER &&
- !strcmp(GRPC_COMPRESSION_ALGORITHM_STATE_ARG, a->args[i].key)) {
+ !strcmp(GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
+ a->args[i].key)) {
*states_arg = &a->args[i].value.integer;
return 1; /* GPR_TRUE */
}
@@ -222,7 +223,7 @@ grpc_channel_args *grpc_channel_args_compression_algorithm_set_state(
/* create a new arg */
grpc_arg tmp;
tmp.type = GRPC_ARG_INTEGER;
- tmp.key = GRPC_COMPRESSION_ALGORITHM_STATE_ARG;
+ tmp.key = GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET;
/* all enabled by default */
tmp.value.integer = (1u << GRPC_COMPRESS_ALGORITHMS_COUNT) - 1;
if (state != 0) {
diff --git a/src/core/lib/channel/compress_filter.c b/src/core/lib/channel/compress_filter.c
index 5510c79b18..0e548c61b8 100644
--- a/src/core/lib/channel/compress_filter.c
+++ b/src/core/lib/channel/compress_filter.c
@@ -47,7 +47,7 @@
#include "src/core/lib/support/string.h"
#include "src/core/lib/transport/static_metadata.h"
-int grpc_compress_filter_trace = 0;
+int grpc_compression_trace = 0;
typedef struct call_data {
gpr_slice_buffer slices; /**< Buffers up input slices to be compressed */
@@ -171,7 +171,7 @@ static void finish_send_message(grpc_exec_ctx *exec_ctx,
did_compress =
grpc_msg_compress(calld->compression_algorithm, &calld->slices, &tmp);
if (did_compress) {
- if (grpc_compress_filter_trace) {
+ if (grpc_compression_trace) {
char *algo_name;
const size_t before_size = calld->slices.length;
const size_t after_size = tmp.length;
@@ -185,12 +185,14 @@ static void finish_send_message(grpc_exec_ctx *exec_ctx,
gpr_slice_buffer_swap(&calld->slices, &tmp);
calld->send_flags |= GRPC_WRITE_INTERNAL_COMPRESS;
} else {
- if (grpc_compress_filter_trace) {
+ if (grpc_compression_trace) {
char *algo_name;
GPR_ASSERT(grpc_compression_algorithm_name(calld->compression_algorithm,
&algo_name));
- gpr_log(GPR_DEBUG, "Algorithm '%s' enabled but decided not to compress.",
- algo_name);
+ gpr_log(
+ GPR_DEBUG,
+ "Algorithm '%s' enabled but decided not to compress. Input size: %d",
+ algo_name, calld->slices.length);
}
}
diff --git a/src/core/lib/channel/compress_filter.h b/src/core/lib/channel/compress_filter.h
index cf5879d82e..0ce5d08837 100644
--- a/src/core/lib/channel/compress_filter.h
+++ b/src/core/lib/channel/compress_filter.h
@@ -38,7 +38,7 @@
#define GRPC_COMPRESS_REQUEST_ALGORITHM_KEY "grpc-internal-encoding-request"
-extern int grpc_compress_filter_trace;
+extern int grpc_compression_trace;
/** Compression filter for outgoing data.
*
diff --git a/src/core/lib/http/parser.c b/src/core/lib/http/parser.c
index a7efb5e73e..09b2ed40d1 100644
--- a/src/core/lib/http/parser.c
+++ b/src/core/lib/http/parser.c
@@ -161,8 +161,9 @@ static int add_header(grpc_http_parser *parser) {
cur++;
}
if (cur == end) {
- if (grpc_http1_trace)
+ if (grpc_http1_trace) {
gpr_log(GPR_ERROR, "Didn't find ':' in header string");
+ }
goto error;
}
GPR_ASSERT(cur >= beg);
diff --git a/src/core/lib/iomgr/ev_poll_and_epoll_posix.c b/src/core/lib/iomgr/ev_poll_and_epoll_posix.c
index 3c8127e1a8..aeb6e28665 100644
--- a/src/core/lib/iomgr/ev_poll_and_epoll_posix.c
+++ b/src/core/lib/iomgr/ev_poll_and_epoll_posix.c
@@ -790,7 +790,6 @@ static void pollset_kick(grpc_pollset *p,
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);
}
@@ -798,7 +797,6 @@ 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); }
diff --git a/src/core/lib/iomgr/ev_poll_posix.c b/src/core/lib/iomgr/ev_poll_posix.c
new file mode 100644
index 0000000000..e91ae40212
--- /dev/null
+++ b/src/core/lib/iomgr/ev_poll_posix.c
@@ -0,0 +1,1212 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+#include <grpc/support/port_platform.h>
+
+#ifdef GPR_POSIX_SOCKET
+
+#include "src/core/lib/iomgr/ev_poll_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;
+
+ 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
+
+#define CLOSURE_NOT_READY ((grpc_closure *)0)
+#define CLOSURE_READY ((grpc_closure *)1)
+
+/*******************************************************************************
+ * pollset declarations
+ */
+
+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 {
+ 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;
+ /* 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;
+ /* Local cache of eventfds for workers */
+ grpc_cached_wakeup_fd *local_wakeup_cache;
+};
+
+/* 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);
+
+/* Return 1 if the pollset has active threads in pollset_work (pollset must
+ * be locked) */
+static int pollset_has_workers(grpc_pollset *pollset);
+
+/*******************************************************************************
+ * 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
+ */
+
+#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) {
+ gpr_mu_destroy(&fd->mu);
+ grpc_iomgr_unregister_object(&fd->iomgr_object);
+ gpr_free(fd);
+ } else {
+ GPR_ASSERT(old > n);
+ }
+}
+
+static grpc_fd *fd_create(int fd, const char *name) {
+ grpc_fd *r = gpr_malloc(sizeof(*r));
+ gpr_mu_init(&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->read_watcher = r->write_watcher = NULL;
+ r->on_done_closure = NULL;
+ r->closed = 0;
+ r->released = 0;
+
+ 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);
+ }
+ 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);
+
+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_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);
+}
+
+static void kick_poller(void) { grpc_wakeup_fd_wakeup(&grpc_global_wakeup_fd); }
+
+/* main interface */
+
+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;
+ pollset->fd_count = 0;
+ pollset->fd_capacity = 0;
+ pollset->del_count = 0;
+ pollset->del_capacity = 0;
+ pollset->fds = NULL;
+ pollset->dels = 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);
+ 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_free(pollset->fds);
+ gpr_free(pollset->dels);
+ 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);
+ GPR_ASSERT(pollset->fd_count == 0);
+ GPR_ASSERT(pollset->del_count == 0);
+ pollset->shutting_down = 0;
+ pollset->called_shutdown = 0;
+ pollset->kicked_without_pollers = 0;
+}
+
+static void pollset_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_fd *fd) {
+ gpr_mu_lock(&pollset->mu);
+ size_t i;
+ /* TODO(ctiller): this is O(num_fds^2); maybe switch to a hash set here */
+ for (i = 0; i < pollset->fd_count; i++) {
+ if (pollset->fds[i] == fd) goto exit;
+ }
+ if (pollset->fd_count == pollset->fd_capacity) {
+ pollset->fd_capacity =
+ GPR_MAX(pollset->fd_capacity + 8, pollset->fd_count * 3 / 2);
+ pollset->fds =
+ gpr_realloc(pollset->fds, sizeof(grpc_fd *) * pollset->fd_capacity);
+ }
+ pollset->fds[pollset->fd_count++] = fd;
+ GRPC_FD_REF(fd, "multipoller");
+ pollset_kick(pollset, NULL);
+exit:
+ gpr_mu_unlock(&pollset->mu);
+}
+
+static void finish_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset) {
+ GPR_ASSERT(grpc_closure_list_empty(pollset->idle_jobs));
+ size_t i;
+ for (i = 0; i < pollset->fd_count; i++) {
+ GRPC_FD_UNREF(pollset->fds[i], "multipoller");
+ }
+ for (i = 0; i < pollset->del_count; i++) {
+ GRPC_FD_UNREF(pollset->dels[i], "multipoller_del");
+ }
+ pollset->fd_count = 0;
+ pollset->del_count = 0;
+ 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;
+ gpr_tls_set(&g_current_thread_poller, (intptr_t)pollset);
+ 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_TIMER_BEGIN("maybe_work_and_unlock", 0);
+#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;
+ /* TODO(ctiller): inline some elements to avoid an allocation */
+ grpc_fd_watcher *watchers;
+ struct pollfd *pfds;
+
+ 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) * (pollset->fd_count + 2));
+ watchers = gpr_malloc(sizeof(*watchers) * (pollset->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 < pollset->fd_count; i++) {
+ int remove = fd_is_orphaned(pollset->fds[i]);
+ for (j = 0; !remove && j < pollset->del_count; j++) {
+ if (pollset->fds[i] == pollset->dels[j]) remove = 1;
+ }
+ if (remove) {
+ GRPC_FD_UNREF(pollset->fds[i], "multipoller");
+ } else {
+ pollset->fds[fd_count++] = pollset->fds[i];
+ watchers[pfd_count].fd = pollset->fds[i];
+ GRPC_FD_REF(watchers[pfd_count].fd, "multipoller_start");
+ pfds[pfd_count].fd = pollset->fds[i]->fd;
+ pfds[pfd_count].revents = 0;
+ pfd_count++;
+ }
+ }
+ for (j = 0; j < pollset->del_count; j++) {
+ GRPC_FD_UNREF(pollset->dels[j], "multipoller_del");
+ }
+ pollset->del_count = 0;
+ pollset->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);
+ } else {
+ fd_end_poll(exec_ctx, &watchers[i], pfds[i].revents & POLLIN_CHECK,
+ pfds[i].revents & POLLOUT_CHECK);
+ }
+ }
+ }
+
+ gpr_free(pfds);
+ gpr_free(watchers);
+ GPR_TIMER_END("maybe_work_and_unlock", 0);
+ locked = 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 (keep_polling) {
+ now = gpr_now(now.clock_type);
+ }
+ }
+ gpr_tls_set(&g_current_thread_poller, 0);
+ 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)));
+}
+
+/*******************************************************************************
+ * 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) { 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_posix(void) {
+ pollset_global_init();
+ return &vtable;
+}
+
+#endif
diff --git a/src/core/lib/iomgr/ev_poll_posix.h b/src/core/lib/iomgr/ev_poll_posix.h
new file mode 100644
index 0000000000..291736a2db
--- /dev/null
+++ b/src/core/lib/iomgr/ev_poll_posix.h
@@ -0,0 +1,41 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+#ifndef GRPC_CORE_LIB_IOMGR_EV_POLL_POSIX_H
+#define GRPC_CORE_LIB_IOMGR_EV_POLL_POSIX_H
+
+#include "src/core/lib/iomgr/ev_posix.h"
+
+const grpc_event_engine_vtable *grpc_init_poll_posix(void);
+
+#endif /* GRPC_CORE_LIB_IOMGR_EV_POLL_POSIX_H */
diff --git a/src/core/lib/iomgr/ev_posix.c b/src/core/lib/iomgr/ev_posix.c
index 7df1751352..a7dfc9552d 100644
--- a/src/core/lib/iomgr/ev_posix.c
+++ b/src/core/lib/iomgr/ev_posix.c
@@ -37,23 +37,104 @@
#include "src/core/lib/iomgr/ev_posix.h"
+#include <string.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/ev_poll_and_epoll_posix.h"
+#include "src/core/lib/iomgr/ev_poll_posix.h"
+#include "src/core/lib/support/env.h"
+
+/** Default poll() function - a pointer so that it can be overridden by some
+ * tests */
+grpc_poll_function_type grpc_poll_function = poll;
static const grpc_event_engine_vtable *g_event_engine;
-grpc_poll_function_type grpc_poll_function = poll;
+typedef const grpc_event_engine_vtable *(*event_engine_factory_fn)(void);
+
+typedef struct {
+ const char *name;
+ event_engine_factory_fn factory;
+} event_engine_factory;
+
+static const event_engine_factory g_factories[] = {
+ {"poll", grpc_init_poll_posix}, {"legacy", grpc_init_poll_and_epoll_posix},
+};
+
+static void add(const char *beg, const char *end, char ***ss, size_t *ns) {
+ size_t n = *ns;
+ size_t np = n + 1;
+ char *s;
+ size_t len;
+ GPR_ASSERT(end >= beg);
+ len = (size_t)(end - beg);
+ s = gpr_malloc(len + 1);
+ memcpy(s, beg, len);
+ s[len] = 0;
+ *ss = gpr_realloc(*ss, sizeof(char **) * np);
+ (*ss)[n] = s;
+ *ns = np;
+}
+
+static void split(const char *s, char ***ss, size_t *ns) {
+ const char *c = strchr(s, ',');
+ if (c == NULL) {
+ add(s, s + strlen(s), ss, ns);
+ } else {
+ add(s, c, ss, ns);
+ split(c + 1, ss, ns);
+ }
+}
+
+static bool is(const char *want, const char *have) {
+ return 0 == strcmp(want, "all") || 0 == strcmp(want, have);
+}
+
+static void try_engine(const char *engine) {
+ for (size_t i = 0; i < GPR_ARRAY_SIZE(g_factories); i++) {
+ if (is(engine, g_factories[i].name)) {
+ if ((g_event_engine = g_factories[i].factory())) {
+ gpr_log(GPR_DEBUG, "Using polling engine: %s", g_factories[i].name);
+ return;
+ }
+ }
+ }
+}
void grpc_event_engine_init(void) {
- if ((g_event_engine = grpc_init_poll_and_epoll_posix())) {
- return;
+ char *s = gpr_getenv("GRPC_POLL_STRATEGY");
+ if (s == NULL) {
+ s = gpr_strdup("all");
+ }
+
+ char **strings = NULL;
+ size_t nstrings = 0;
+ split(s, &strings, &nstrings);
+
+ for (size_t i = 0; g_event_engine == NULL && i < nstrings; i++) {
+ try_engine(strings[i]);
+ }
+
+ for (size_t i = 0; i < nstrings; i++) {
+ gpr_free(strings[i]);
+ }
+ gpr_free(strings);
+ gpr_free(s);
+
+ if (g_event_engine == NULL) {
+ gpr_log(GPR_ERROR, "No event engine could be initialized");
+ abort();
}
- gpr_log(GPR_ERROR, "No event engine could be initialized");
- abort();
}
-void grpc_event_engine_shutdown(void) { g_event_engine->shutdown_engine(); }
+void grpc_event_engine_shutdown(void) {
+ g_event_engine->shutdown_engine();
+ g_event_engine = NULL;
+}
grpc_fd *grpc_fd_create(int fd, const char *name) {
return g_event_engine->fd_create(fd, name);
diff --git a/src/core/lib/iomgr/exec_ctx.c b/src/core/lib/iomgr/exec_ctx.c
index 2146c7dd1f..e451479073 100644
--- a/src/core/lib/iomgr/exec_ctx.c
+++ b/src/core/lib/iomgr/exec_ctx.c
@@ -39,6 +39,22 @@
#include "src/core/lib/profiling/timers.h"
+bool grpc_exec_ctx_ready_to_finish(grpc_exec_ctx *exec_ctx) {
+ if (!exec_ctx->cached_ready_to_finish) {
+ exec_ctx->cached_ready_to_finish = exec_ctx->check_ready_to_finish(
+ exec_ctx, exec_ctx->check_ready_to_finish_arg);
+ }
+ return exec_ctx->cached_ready_to_finish;
+}
+
+bool grpc_never_ready_to_finish(grpc_exec_ctx *exec_ctx, void *arg_ignored) {
+ return false;
+}
+
+bool grpc_always_ready_to_finish(grpc_exec_ctx *exec_ctx, void *arg_ignored) {
+ return true;
+}
+
#ifndef GRPC_EXECUTION_CONTEXT_SANITIZER
bool grpc_exec_ctx_flush(grpc_exec_ctx *exec_ctx) {
bool did_something = 0;
@@ -61,6 +77,7 @@ bool grpc_exec_ctx_flush(grpc_exec_ctx *exec_ctx) {
}
void grpc_exec_ctx_finish(grpc_exec_ctx *exec_ctx) {
+ exec_ctx->cached_ready_to_finish = true;
grpc_exec_ctx_flush(exec_ctx);
}
diff --git a/src/core/lib/iomgr/exec_ctx.h b/src/core/lib/iomgr/exec_ctx.h
index 976cc40347..9d47a262f8 100644
--- a/src/core/lib/iomgr/exec_ctx.h
+++ b/src/core/lib/iomgr/exec_ctx.h
@@ -53,6 +53,9 @@ typedef struct grpc_workqueue grpc_workqueue;
* - track a list of work that needs to be delayed until the top of the
* call stack (this provides a convenient mechanism to run callbacks
* without worrying about locking issues)
+ * - provide a decision maker (via grpc_exec_ctx_ready_to_finish) that provides
+ * signal as to whether a borrowed thread should continue to do work or
+ * should actively try to finish up and get this thread back to its owner
*
* CONVENTIONS:
* Instance of this must ALWAYS be constructed on the stack, never
@@ -63,18 +66,26 @@ typedef struct grpc_workqueue grpc_workqueue;
*/
struct grpc_exec_ctx {
grpc_closure_list closure_list;
+ bool cached_ready_to_finish;
+ void *check_ready_to_finish_arg;
+ bool (*check_ready_to_finish)(grpc_exec_ctx *exec_ctx, void *arg);
};
-#define GRPC_EXEC_CTX_INIT \
- { GRPC_CLOSURE_LIST_INIT }
+#define GRPC_EXEC_CTX_INIT_WITH_FINISH_CHECK(finish_check, finish_check_arg) \
+ { GRPC_CLOSURE_LIST_INIT, false, finish_check_arg, finish_check }
#else
struct grpc_exec_ctx {
- int unused;
+ bool cached_ready_to_finish;
+ void *check_ready_to_finish_arg;
+ bool (*check_ready_to_finish)(grpc_exec_ctx *exec_ctx, void *arg);
};
-#define GRPC_EXEC_CTX_INIT \
- { 0 }
+#define GRPC_EXEC_CTX_INIT_WITH_FINISH_CHECK(finish_check, finish_check_arg) \
+ { false, finish_check_arg, finish_check }
#endif
+#define GRPC_EXEC_CTX_INIT \
+ GRPC_EXEC_CTX_INIT_WITH_FINISH_CHECK(grpc_never_ready_to_finish, NULL)
+
/** Flush any work that has been enqueued onto this grpc_exec_ctx.
* Caller must guarantee that no interfering locks are held.
* Returns true if work was performed, false otherwise. */
@@ -86,6 +97,14 @@ void grpc_exec_ctx_finish(grpc_exec_ctx *exec_ctx);
void grpc_exec_ctx_enqueue(grpc_exec_ctx *exec_ctx, grpc_closure *closure,
bool success,
grpc_workqueue *offload_target_or_null);
+/** Returns true if we'd like to leave this execution context as soon as
+ possible: useful for deciding whether to do something more or not depending
+ on outside context */
+bool grpc_exec_ctx_ready_to_finish(grpc_exec_ctx *exec_ctx);
+/** A finish check that is never ready to finish */
+bool grpc_never_ready_to_finish(grpc_exec_ctx *exec_ctx, void *arg_ignored);
+/** A finish check that is always ready to finish */
+bool grpc_always_ready_to_finish(grpc_exec_ctx *exec_ctx, void *arg_ignored);
/** Add a list of closures to be executed at the next flush/finish point.
* Leaves \a list empty. */
void grpc_exec_ctx_enqueue_list(grpc_exec_ctx *exec_ctx,
diff --git a/src/core/lib/iomgr/iomgr_posix.c b/src/core/lib/iomgr/iomgr_posix.c
index 016c501f75..cede97f4c6 100644
--- a/src/core/lib/iomgr/iomgr_posix.c
+++ b/src/core/lib/iomgr/iomgr_posix.c
@@ -41,12 +41,16 @@
#include "src/core/lib/iomgr/tcp_posix.h"
void grpc_iomgr_platform_init(void) {
+ grpc_wakeup_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_event_engine_shutdown(); }
+void grpc_iomgr_platform_shutdown(void) {
+ grpc_event_engine_shutdown();
+ grpc_wakeup_fd_global_destroy();
+}
#endif /* GRPC_POSIX_SOCKET */
diff --git a/src/core/lib/iomgr/udp_server.c b/src/core/lib/iomgr/udp_server.c
index df6cf956d9..98ffccd59b 100644
--- a/src/core/lib/iomgr/udp_server.c
+++ b/src/core/lib/iomgr/udp_server.c
@@ -81,6 +81,7 @@ typedef struct {
grpc_closure read_closure;
grpc_closure destroyed_closure;
grpc_udp_server_read_cb read_cb;
+ grpc_udp_server_orphan_cb orphan_cb;
} server_port;
/* the overall server */
@@ -168,6 +169,10 @@ static void deactivated_all_ports(grpc_exec_ctx *exec_ctx, grpc_udp_server *s) {
server_port *sp = &s->ports[i];
sp->destroyed_closure.cb = destroyed_port;
sp->destroyed_closure.cb_arg = s;
+
+ GPR_ASSERT(sp->orphan_cb);
+ sp->orphan_cb(sp->emfd);
+
grpc_fd_orphan(exec_ctx, sp->emfd, &sp->destroyed_closure, NULL,
"udp_listener_shutdown");
}
@@ -268,7 +273,8 @@ static void on_read(grpc_exec_ctx *exec_ctx, void *arg, bool success) {
static int add_socket_to_server(grpc_udp_server *s, int fd,
const struct sockaddr *addr, size_t addr_len,
- grpc_udp_server_read_cb read_cb) {
+ grpc_udp_server_read_cb read_cb,
+ grpc_udp_server_orphan_cb orphan_cb) {
server_port *sp;
int port;
char *addr_str;
@@ -292,6 +298,7 @@ static int add_socket_to_server(grpc_udp_server *s, int fd,
memcpy(sp->addr.untyped, addr, addr_len);
sp->addr_len = addr_len;
sp->read_cb = read_cb;
+ sp->orphan_cb = orphan_cb;
GPR_ASSERT(sp->emfd);
gpr_mu_unlock(&s->mu);
gpr_free(name);
@@ -301,7 +308,8 @@ static int add_socket_to_server(grpc_udp_server *s, int fd,
}
int grpc_udp_server_add_port(grpc_udp_server *s, const void *addr,
- size_t addr_len, grpc_udp_server_read_cb read_cb) {
+ size_t addr_len, grpc_udp_server_read_cb read_cb,
+ grpc_udp_server_orphan_cb orphan_cb) {
int allocated_port1 = -1;
int allocated_port2 = -1;
unsigned i;
@@ -348,7 +356,8 @@ int grpc_udp_server_add_port(grpc_udp_server *s, const void *addr,
addr = (struct sockaddr *)&wild6;
addr_len = sizeof(wild6);
fd = grpc_create_dualstack_socket(addr, SOCK_DGRAM, IPPROTO_UDP, &dsmode);
- allocated_port1 = add_socket_to_server(s, fd, addr, addr_len, read_cb);
+ allocated_port1 =
+ add_socket_to_server(s, fd, addr, addr_len, read_cb, orphan_cb);
if (fd >= 0 && dsmode == GRPC_DSMODE_DUALSTACK) {
goto done;
}
@@ -370,7 +379,8 @@ int grpc_udp_server_add_port(grpc_udp_server *s, const void *addr,
addr = (struct sockaddr *)&addr4_copy;
addr_len = sizeof(addr4_copy);
}
- allocated_port2 = add_socket_to_server(s, fd, addr, addr_len, read_cb);
+ allocated_port2 =
+ add_socket_to_server(s, fd, addr, addr_len, read_cb, orphan_cb);
done:
gpr_free(allocated_addr);
diff --git a/src/core/lib/iomgr/udp_server.h b/src/core/lib/iomgr/udp_server.h
index d8cf957a22..33c5ce11cd 100644
--- a/src/core/lib/iomgr/udp_server.h
+++ b/src/core/lib/iomgr/udp_server.h
@@ -48,6 +48,9 @@ typedef struct grpc_udp_server grpc_udp_server;
typedef void (*grpc_udp_server_read_cb)(grpc_exec_ctx *exec_ctx, grpc_fd *emfd,
struct grpc_server *server);
+/* Called when the grpc_fd is about to be orphaned (and the FD closed). */
+typedef void (*grpc_udp_server_orphan_cb)(grpc_fd *emfd);
+
/* Create a server, initially not bound to any ports */
grpc_udp_server *grpc_udp_server_create(void);
@@ -69,7 +72,8 @@ int grpc_udp_server_get_fd(grpc_udp_server *s, unsigned index);
/* TODO(ctiller): deprecate this, and make grpc_udp_server_add_ports to handle
all of the multiple socket port matching logic in one place */
int grpc_udp_server_add_port(grpc_udp_server *s, const void *addr,
- size_t addr_len, grpc_udp_server_read_cb read_cb);
+ size_t addr_len, grpc_udp_server_read_cb read_cb,
+ grpc_udp_server_orphan_cb orphan_cb);
void grpc_udp_server_destroy(grpc_exec_ctx *exec_ctx, grpc_udp_server *server,
grpc_closure *on_done);
diff --git a/src/core/lib/support/string_util_win32.c b/src/core/lib/support/string_util_win32.c
index f3cb0c050f..0d7bcdb5aa 100644
--- a/src/core/lib/support/string_util_win32.c
+++ b/src/core/lib/support/string_util_win32.c
@@ -83,7 +83,7 @@ char *gpr_format_message(int messageid) {
DWORD status = FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
- NULL, (DWORD)messageid, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+ NULL, (DWORD)messageid, MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT),
(LPTSTR)(&tmessage), 0, NULL);
if (status == 0) return gpr_strdup("Unable to retrieve error string");
message = gpr_tchar_to_char(tmessage);
diff --git a/src/core/lib/surface/byte_buffer_reader.c b/src/core/lib/surface/byte_buffer_reader.c
index 809fd5f1fa..c97079f638 100644
--- a/src/core/lib/surface/byte_buffer_reader.c
+++ b/src/core/lib/surface/byte_buffer_reader.c
@@ -62,12 +62,19 @@ void grpc_byte_buffer_reader_init(grpc_byte_buffer_reader *reader,
case GRPC_BB_RAW:
gpr_slice_buffer_init(&decompressed_slices_buffer);
if (is_compressed(reader->buffer_in)) {
- grpc_msg_decompress(reader->buffer_in->data.raw.compression,
- &reader->buffer_in->data.raw.slice_buffer,
- &decompressed_slices_buffer);
- reader->buffer_out =
- grpc_raw_byte_buffer_create(decompressed_slices_buffer.slices,
- decompressed_slices_buffer.count);
+ if (grpc_msg_decompress(reader->buffer_in->data.raw.compression,
+ &reader->buffer_in->data.raw.slice_buffer,
+ &decompressed_slices_buffer) == 0) {
+ gpr_log(GPR_ERROR,
+ "Unexpected error decompressing data for algorithm with enum "
+ "value '%d'. Reading data as if it were uncompressed.",
+ reader->buffer_in->data.raw.compression);
+ reader->buffer_out = reader->buffer_in;
+ } else { /* all fine */
+ reader->buffer_out =
+ grpc_raw_byte_buffer_create(decompressed_slices_buffer.slices,
+ decompressed_slices_buffer.count);
+ }
gpr_slice_buffer_destroy(&decompressed_slices_buffer);
} else { /* not compressed, use the input buffer as output */
reader->buffer_out = reader->buffer_in;
diff --git a/src/core/lib/surface/call.c b/src/core/lib/surface/call.c
index 9b2b94eedf..c8728fa278 100644
--- a/src/core/lib/surface/call.c
+++ b/src/core/lib/surface/call.c
@@ -261,6 +261,8 @@ grpc_call *grpc_call_create(grpc_channel *channel, grpc_call *parent_call,
call->channel = channel;
call->cq = cq;
call->parent = parent_call;
+ /* Always support no compression */
+ GPR_BITSET(&call->encodings_accepted_by_peer, GRPC_COMPRESS_NONE);
call->is_client = server_transport_data == NULL;
if (call->is_client) {
GPR_ASSERT(add_initial_metadata_count < MAX_SEND_EXTRA_METADATA_COUNT);
@@ -408,6 +410,7 @@ static void set_status_code(grpc_call *call, status_source source,
static void set_compression_algorithm(grpc_call *call,
grpc_compression_algorithm algo) {
+ GPR_ASSERT(algo < GRPC_COMPRESS_ALGORITHMS_COUNT);
call->compression_algorithm = algo;
}
@@ -828,12 +831,16 @@ static uint32_t decode_status(grpc_mdelem *md) {
return status;
}
-static uint32_t decode_compression(grpc_mdelem *md) {
+static grpc_compression_algorithm decode_compression(grpc_mdelem *md) {
grpc_compression_algorithm algorithm =
grpc_compression_algorithm_from_mdstr(md->value);
if (algorithm == GRPC_COMPRESS_ALGORITHMS_COUNT) {
const char *md_c_str = grpc_mdstr_as_c_string(md->value);
- gpr_log(GPR_ERROR, "Invalid compression algorithm: '%s'", md_c_str);
+ gpr_log(GPR_ERROR,
+ "Invalid incoming compression algorithm: '%s'. Interpreting "
+ "incoming data as uncompressed.",
+ md_c_str);
+ return GRPC_COMPRESS_NONE;
}
return algorithm;
}
@@ -1087,6 +1094,24 @@ static void receiving_initial_metadata_ready(grpc_exec_ctx *exec_ctx,
&call->metadata_batch[1 /* is_receiving */][0 /* is_trailing */];
grpc_metadata_batch_filter(md, recv_initial_filter, call);
+ /* make sure the received grpc-encoding is amongst the ones listed in
+ * grpc-accept-encoding */
+
+ GPR_ASSERT(call->encodings_accepted_by_peer != 0);
+ if (!GPR_BITGET(call->encodings_accepted_by_peer,
+ call->compression_algorithm)) {
+ extern int grpc_compression_trace;
+ if (grpc_compression_trace) {
+ char *algo_name;
+ grpc_compression_algorithm_name(call->compression_algorithm,
+ &algo_name);
+ gpr_log(GPR_ERROR,
+ "Compression algorithm (grpc-encoding = '%s') not present in "
+ "the bitset of accepted encodings (grpc-accept-encodings: "
+ "'0x%x')",
+ algo_name, call->encodings_accepted_by_peer);
+ }
+ }
if (gpr_time_cmp(md->deadline, gpr_inf_future(md->deadline.clock_type)) !=
0 &&
!call->is_client) {
@@ -1474,7 +1499,8 @@ grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops,
grpc_call_error err;
GRPC_API_TRACE(
- "grpc_call_start_batch(call=%p, ops=%p, nops=%lu, tag=%p, reserved=%p)",
+ "grpc_call_start_batch(call=%p, ops=%p, nops=%lu, tag=%p, "
+ "reserved=%p)",
5, (call, ops, (unsigned long)nops, tag, reserved));
if (reserved != NULL) {
diff --git a/src/core/lib/surface/init.c b/src/core/lib/surface/init.c
index 57c6897626..1c8b709015 100644
--- a/src/core/lib/surface/init.c
+++ b/src/core/lib/surface/init.c
@@ -164,7 +164,7 @@ void grpc_init(void) {
grpc_register_tracer("channel_stack_builder",
&grpc_trace_channel_stack_builder);
grpc_register_tracer("http1", &grpc_http1_trace);
- grpc_register_tracer("compression", &grpc_compress_filter_trace);
+ grpc_register_tracer("compression", &grpc_compression_trace);
grpc_security_pre_init();
grpc_iomgr_init();
grpc_executor_init();
diff --git a/src/cpp/common/channel_arguments.cc b/src/cpp/common/channel_arguments.cc
index db3558f192..f297ae8587 100644
--- a/src/cpp/common/channel_arguments.cc
+++ b/src/cpp/common/channel_arguments.cc
@@ -85,7 +85,7 @@ void ChannelArguments::Swap(ChannelArguments& other) {
void ChannelArguments::SetCompressionAlgorithm(
grpc_compression_algorithm algorithm) {
- SetInt(GRPC_COMPRESSION_ALGORITHM_ARG, algorithm);
+ SetInt(GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM, algorithm);
}
// Note: a second call to this will add in front the result of the first call.
diff --git a/src/cpp/server/server.cc b/src/cpp/server/server.cc
index fafe31e84c..f955a31494 100644
--- a/src/cpp/server/server.cc
+++ b/src/cpp/server/server.cc
@@ -33,6 +33,7 @@
#include <grpc++/server.h>
+#include <sstream>
#include <utility>
#include <grpc++/completion_queue.h>
@@ -41,6 +42,7 @@
#include <grpc++/impl/grpc_library.h>
#include <grpc++/impl/method_handler_impl.h>
#include <grpc++/impl/rpc_service_method.h>
+#include <grpc++/impl/server_initializer.h>
#include <grpc++/impl/service_type.h>
#include <grpc++/security/server_credentials.h>
#include <grpc++/server_context.h>
@@ -284,7 +286,8 @@ Server::Server(ThreadPoolInterface* thread_pool, bool thread_pool_owned,
has_generic_service_(false),
server_(nullptr),
thread_pool_(thread_pool),
- thread_pool_owned_(thread_pool_owned) {
+ thread_pool_owned_(thread_pool_owned),
+ server_initializer_(new ServerInitializer(this)) {
g_gli_initializer.summon();
gpr_once_init(&g_once_init_callbacks, InitGlobalCallbacks);
global_callbacks_ = g_callbacks;
@@ -341,6 +344,7 @@ bool Server::RegisterService(const grpc::string* host, Service* service) {
"Can only register an asynchronous service against one server.");
service->server_ = this;
}
+ const char* method_name = nullptr;
for (auto it = service->methods_.begin(); it != service->methods_.end();
++it) {
if (it->get() == nullptr) { // Handled by generic service if any.
@@ -360,6 +364,17 @@ bool Server::RegisterService(const grpc::string* host, Service* service) {
} else {
sync_methods_->emplace_back(method, tag);
}
+ method_name = method->name();
+ }
+
+ // Parse service name.
+ if (method_name != nullptr) {
+ std::stringstream ss(method_name);
+ grpc::string service_name;
+ if (std::getline(ss, service_name, '/') &&
+ std::getline(ss, service_name, '/')) {
+ services_.push_back(service_name);
+ }
}
return true;
}
@@ -598,4 +613,6 @@ void Server::RunRpc() {
}
}
+ServerInitializer* Server::initializer() { return server_initializer_.get(); }
+
} // namespace grpc
diff --git a/src/cpp/server/server_builder.cc b/src/cpp/server/server_builder.cc
index 68cc38258c..61f0f6ae2a 100644
--- a/src/cpp/server/server_builder.cc
+++ b/src/cpp/server/server_builder.cc
@@ -41,9 +41,23 @@
namespace grpc {
+static std::vector<std::unique_ptr<ServerBuilderPlugin> (*)()>*
+ g_plugin_factory_list;
+static gpr_once once_init_plugin_list = GPR_ONCE_INIT;
+
+static void do_plugin_list_init(void) {
+ g_plugin_factory_list =
+ new std::vector<std::unique_ptr<ServerBuilderPlugin> (*)()>();
+}
+
ServerBuilder::ServerBuilder()
: max_message_size_(-1), generic_service_(nullptr) {
grpc_compression_options_init(&compression_options_);
+ gpr_once_init(&once_init_plugin_list, do_plugin_list_init);
+ for (auto factory : (*g_plugin_factory_list)) {
+ std::unique_ptr<ServerBuilderPlugin> plugin = factory();
+ plugins_[plugin->name()] = std::move(plugin);
+ }
}
std::unique_ptr<ServerCompletionQueue> ServerBuilder::AddCompletionQueue() {
@@ -96,14 +110,24 @@ std::unique_ptr<Server> ServerBuilder::BuildAndStart() {
ChannelArguments args;
for (auto option = options_.begin(); option != options_.end(); ++option) {
(*option)->UpdateArguments(&args);
+ (*option)->UpdatePlugins(&plugins_);
+ }
+ if (thread_pool == nullptr) {
+ for (auto plugin = plugins_.begin(); plugin != plugins_.end(); plugin++) {
+ if ((*plugin).second->has_sync_methods()) {
+ thread_pool.reset(CreateDefaultThreadPool());
+ break;
+ }
+ }
}
if (max_message_size_ > 0) {
args.SetInt(GRPC_ARG_MAX_MESSAGE_LENGTH, max_message_size_);
}
- args.SetInt(GRPC_COMPRESSION_ALGORITHM_STATE_ARG,
+ args.SetInt(GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
compression_options_.enabled_algorithms_bitset);
std::unique_ptr<Server> server(
new Server(thread_pool.release(), true, max_message_size_, &args));
+ ServerInitializer* initializer = server->initializer();
for (auto cq = cqs_.begin(); cq != cqs_.end(); ++cq) {
grpc_server_register_completion_queue(server->server_, (*cq)->cq(),
nullptr);
@@ -114,6 +138,9 @@ std::unique_ptr<Server> ServerBuilder::BuildAndStart() {
return nullptr;
}
}
+ for (auto plugin = plugins_.begin(); plugin != plugins_.end(); plugin++) {
+ (*plugin).second->InitServer(initializer);
+ }
if (generic_service_) {
server->RegisterAsyncGenericService(generic_service_);
} else {
@@ -137,7 +164,16 @@ std::unique_ptr<Server> ServerBuilder::BuildAndStart() {
if (!server->Start(cqs_data, cqs_.size())) {
return nullptr;
}
+ for (auto plugin = plugins_.begin(); plugin != plugins_.end(); plugin++) {
+ (*plugin).second->Finish(initializer);
+ }
return server;
}
+void ServerBuilder::InternalAddPluginFactory(
+ std::unique_ptr<ServerBuilderPlugin> (*CreatePlugin)()) {
+ gpr_once_init(&once_init_plugin_list, do_plugin_list_init);
+ (*g_plugin_factory_list).push_back(CreatePlugin);
+}
+
} // namespace grpc
diff --git a/src/csharp/Grpc.Core.Tests/ChannelTest.cs b/src/csharp/Grpc.Core.Tests/ChannelTest.cs
index 6330f50fae..850d70ce92 100644
--- a/src/csharp/Grpc.Core.Tests/ChannelTest.cs
+++ b/src/csharp/Grpc.Core.Tests/ChannelTest.cs
@@ -32,6 +32,7 @@
#endregion
using System;
+using System.Threading.Tasks;
using Grpc.Core;
using Grpc.Core.Internal;
using Grpc.Core.Utils;
@@ -89,5 +90,43 @@ namespace Grpc.Core.Tests
channel.ShutdownAsync().Wait();
Assert.ThrowsAsync(typeof(InvalidOperationException), async () => await channel.ShutdownAsync());
}
+
+ [Test]
+ public async Task ShutdownTokenCancelledAfterShutdown()
+ {
+ var channel = new Channel("localhost", ChannelCredentials.Insecure);
+ Assert.IsFalse(channel.ShutdownToken.IsCancellationRequested);
+ var shutdownTask = channel.ShutdownAsync();
+ Assert.IsTrue(channel.ShutdownToken.IsCancellationRequested);
+ await shutdownTask;
+ }
+
+ [Test]
+ public async Task StateIsFatalFailureAfterShutdown()
+ {
+ var channel = new Channel("localhost", ChannelCredentials.Insecure);
+ await channel.ShutdownAsync();
+ Assert.AreEqual(ChannelState.FatalFailure, channel.State);
+ }
+
+ [Test]
+ public async Task ShutdownFinishesWaitForStateChangedAsync()
+ {
+ var channel = new Channel("localhost", ChannelCredentials.Insecure);
+ var stateChangedTask = channel.WaitForStateChangedAsync(ChannelState.Idle);
+ var shutdownTask = channel.ShutdownAsync();
+ await stateChangedTask;
+ await shutdownTask;
+ }
+
+ [Test]
+ public async Task OperationsThrowAfterShutdown()
+ {
+ var channel = new Channel("localhost", ChannelCredentials.Insecure);
+ await channel.ShutdownAsync();
+ Assert.ThrowsAsync(typeof(ObjectDisposedException), async () => await channel.WaitForStateChangedAsync(ChannelState.Idle));
+ Assert.Throws(typeof(ObjectDisposedException), () => { var x = channel.ResolvedTarget; });
+ Assert.ThrowsAsync(typeof(TaskCanceledException), async () => await channel.ConnectAsync());
+ }
}
}
diff --git a/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs
index abe9d4a2e6..777a1c8c50 100644
--- a/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs
+++ b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs
@@ -181,13 +181,14 @@ namespace Grpc.Core.Internal.Tests
}
[Test]
- public void ClientStreaming_WriteFailure()
+ public void ClientStreaming_WriteCompletionFailure()
{
var resultTask = asyncCall.ClientStreamingCallAsync();
var requestStream = new ClientRequestStream<string, string>(asyncCall);
var writeTask = requestStream.WriteAsync("request1");
fakeCall.SendCompletionHandler(false);
+ // TODO: maybe IOException or waiting for RPCException is more appropriate here.
Assert.ThrowsAsync(typeof(InvalidOperationException), async () => await writeTask);
fakeCall.UnaryResponseClientHandler(true,
@@ -199,7 +200,7 @@ namespace Grpc.Core.Internal.Tests
}
[Test]
- public void ClientStreaming_WriteAfterReceivingStatusFails()
+ public void ClientStreaming_WriteAfterReceivingStatusThrowsRpcException()
{
var resultTask = asyncCall.ClientStreamingCallAsync();
var requestStream = new ClientRequestStream<string, string>(asyncCall);
@@ -210,7 +211,44 @@ namespace Grpc.Core.Internal.Tests
new Metadata());
AssertUnaryResponseSuccess(asyncCall, fakeCall, resultTask);
+ var ex = Assert.Throws<RpcException>(() => requestStream.WriteAsync("request1"));
+ Assert.AreEqual(Status.DefaultSuccess, ex.Status);
+ }
+
+ [Test]
+ public void ClientStreaming_WriteAfterReceivingStatusThrowsRpcException2()
+ {
+ var resultTask = asyncCall.ClientStreamingCallAsync();
+ var requestStream = new ClientRequestStream<string, string>(asyncCall);
+
+ fakeCall.UnaryResponseClientHandler(true,
+ new ClientSideStatus(new Status(StatusCode.OutOfRange, ""), new Metadata()),
+ CreateResponsePayload(),
+ new Metadata());
+
+ AssertUnaryResponseError(asyncCall, fakeCall, resultTask, StatusCode.OutOfRange);
+ var ex = Assert.Throws<RpcException>(() => requestStream.WriteAsync("request1"));
+ Assert.AreEqual(StatusCode.OutOfRange, ex.Status.StatusCode);
+ }
+
+ [Test]
+ public void ClientStreaming_WriteAfterCompleteThrowsInvalidOperationException()
+ {
+ var resultTask = asyncCall.ClientStreamingCallAsync();
+ var requestStream = new ClientRequestStream<string, string>(asyncCall);
+
+ requestStream.CompleteAsync();
+
Assert.Throws(typeof(InvalidOperationException), () => requestStream.WriteAsync("request1"));
+
+ fakeCall.SendCompletionHandler(true);
+
+ fakeCall.UnaryResponseClientHandler(true,
+ new ClientSideStatus(Status.DefaultSuccess, new Metadata()),
+ CreateResponsePayload(),
+ new Metadata());
+
+ AssertUnaryResponseSuccess(asyncCall, fakeCall, resultTask);
}
[Test]
@@ -229,7 +267,7 @@ namespace Grpc.Core.Internal.Tests
}
[Test]
- public void ClientStreaming_WriteAfterCancellationRequestFails()
+ public void ClientStreaming_WriteAfterCancellationRequestThrowsOperationCancelledException()
{
var resultTask = asyncCall.ClientStreamingCallAsync();
var requestStream = new ClientRequestStream<string, string>(asyncCall);
@@ -340,7 +378,7 @@ namespace Grpc.Core.Internal.Tests
}
[Test]
- public void DuplexStreaming_WriteAfterReceivingStatusFails()
+ public void DuplexStreaming_WriteAfterReceivingStatusThrowsRpcException()
{
asyncCall.StartDuplexStreamingCall();
var requestStream = new ClientRequestStream<string, string>(asyncCall);
@@ -352,7 +390,8 @@ namespace Grpc.Core.Internal.Tests
AssertStreamingResponseSuccess(asyncCall, fakeCall, readTask);
- Assert.ThrowsAsync(typeof(InvalidOperationException), async () => await requestStream.WriteAsync("request1"));
+ var ex = Assert.ThrowsAsync<RpcException>(async () => await requestStream.WriteAsync("request1"));
+ Assert.AreEqual(Status.DefaultSuccess, ex.Status);
}
[Test]
@@ -372,7 +411,7 @@ namespace Grpc.Core.Internal.Tests
}
[Test]
- public void DuplexStreaming_WriteAfterCancellationRequestFails()
+ public void DuplexStreaming_WriteAfterCancellationRequestThrowsOperationCancelledException()
{
asyncCall.StartDuplexStreamingCall();
var requestStream = new ClientRequestStream<string, string>(asyncCall);
diff --git a/src/csharp/Grpc.Core/Channel.cs b/src/csharp/Grpc.Core/Channel.cs
index 89981b1849..93a6e6a3d9 100644
--- a/src/csharp/Grpc.Core/Channel.cs
+++ b/src/csharp/Grpc.Core/Channel.cs
@@ -32,6 +32,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Threading;
using System.Threading.Tasks;
using Grpc.Core.Internal;
@@ -51,6 +52,7 @@ namespace Grpc.Core
readonly object myLock = new object();
readonly AtomicCounter activeCallCounter = new AtomicCounter();
+ readonly CancellationTokenSource shutdownTokenSource = new CancellationTokenSource();
readonly string target;
readonly GrpcEnvironment environment;
@@ -101,12 +103,13 @@ namespace Grpc.Core
/// <summary>
/// Gets current connectivity state of this channel.
+ /// After channel is has been shutdown, <c>ChannelState.FatalFailure</c> will be returned.
/// </summary>
public ChannelState State
{
get
{
- return handle.CheckConnectivityState(false);
+ return GetConnectivityState(false);
}
}
@@ -155,6 +158,17 @@ namespace Grpc.Core
}
/// <summary>
+ /// Returns a token that gets cancelled once <c>ShutdownAsync</c> is invoked.
+ /// </summary>
+ public CancellationToken ShutdownToken
+ {
+ get
+ {
+ return this.shutdownTokenSource.Token;
+ }
+ }
+
+ /// <summary>
/// Allows explicitly requesting channel to connect without starting an RPC.
/// Returned task completes once state Ready was seen. If the deadline is reached,
/// or channel enters the FatalFailure state, the task is cancelled.
@@ -164,7 +178,7 @@ namespace Grpc.Core
/// <param name="deadline">The deadline. <c>null</c> indicates no deadline.</param>
public async Task ConnectAsync(DateTime? deadline = null)
{
- var currentState = handle.CheckConnectivityState(true);
+ var currentState = GetConnectivityState(true);
while (currentState != ChannelState.Ready)
{
if (currentState == ChannelState.FatalFailure)
@@ -172,7 +186,7 @@ namespace Grpc.Core
throw new OperationCanceledException("Channel has reached FatalFailure state.");
}
await WaitForStateChangedAsync(currentState, deadline).ConfigureAwait(false);
- currentState = handle.CheckConnectivityState(false);
+ currentState = GetConnectivityState(false);
}
}
@@ -188,6 +202,8 @@ namespace Grpc.Core
shutdownRequested = true;
}
+ shutdownTokenSource.Cancel();
+
var activeCallCount = activeCallCounter.Count;
if (activeCallCount > 0)
{
@@ -231,6 +247,18 @@ namespace Grpc.Core
activeCallCounter.Decrement();
}
+ private ChannelState GetConnectivityState(bool tryToConnect)
+ {
+ try
+ {
+ return handle.CheckConnectivityState(tryToConnect);
+ }
+ catch (ObjectDisposedException)
+ {
+ return ChannelState.FatalFailure;
+ }
+ }
+
private static void EnsureUserAgentChannelOption(Dictionary<string, ChannelOption> options)
{
var key = ChannelOptions.PrimaryUserAgentString;
diff --git a/src/csharp/Grpc.Core/Internal/AsyncCall.cs b/src/csharp/Grpc.Core/Internal/AsyncCall.cs
index f522174bd0..55351869b5 100644
--- a/src/csharp/Grpc.Core/Internal/AsyncCall.cs
+++ b/src/csharp/Grpc.Core/Internal/AsyncCall.cs
@@ -57,7 +57,7 @@ namespace Grpc.Core.Internal
// Completion of a pending unary response if not null.
TaskCompletionSource<TResponse> unaryResponseTcs;
- // Indicates that steaming call has finished.
+ // Indicates that response streaming call has finished.
TaskCompletionSource<object> streamingCallFinishedTcs = new TaskCompletionSource<object>();
// Response headers set here once received.
@@ -443,6 +443,19 @@ namespace Grpc.Core.Internal
}
}
+ protected override void CheckSendingAllowed(bool allowFinished)
+ {
+ base.CheckSendingAllowed(true);
+
+ // throwing RpcException if we already received status on client
+ // side makes the most sense.
+ // Note that this throws even for StatusCode.OK.
+ if (!allowFinished && finishedStatus.HasValue)
+ {
+ throw new RpcException(finishedStatus.Value.Status);
+ }
+ }
+
/// <summary>
/// Handles receive status completion for calls with streaming response.
/// </summary>
diff --git a/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs b/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs
index 42234dcac2..4de23706b2 100644
--- a/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs
+++ b/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs
@@ -213,7 +213,7 @@ namespace Grpc.Core.Internal
{
}
- protected void CheckSendingAllowed(bool allowFinished)
+ protected virtual void CheckSendingAllowed(bool allowFinished)
{
GrpcPreconditions.CheckState(started);
CheckNotCancelled();
diff --git a/src/csharp/Grpc.Examples.Tests/MathClientServerTests.cs b/src/csharp/Grpc.Examples.Tests/MathClientServerTests.cs
index 875202b950..ee11105efe 100644
--- a/src/csharp/Grpc.Examples.Tests/MathClientServerTests.cs
+++ b/src/csharp/Grpc.Examples.Tests/MathClientServerTests.cs
@@ -92,7 +92,7 @@ namespace Math.Tests
public void DivByZero()
{
var ex = Assert.Throws<RpcException>(() => client.Div(new DivArgs { Dividend = 0, Divisor = 0 }));
- Assert.AreEqual(StatusCode.Unknown, ex.Status.StatusCode);
+ Assert.AreEqual(StatusCode.InvalidArgument, ex.Status.StatusCode);
}
[Test]
diff --git a/src/csharp/Grpc.Examples/MathExamples.cs b/src/csharp/Grpc.Examples/MathExamples.cs
index 6075420974..d260830b94 100644
--- a/src/csharp/Grpc.Examples/MathExamples.cs
+++ b/src/csharp/Grpc.Examples/MathExamples.cs
@@ -32,6 +32,7 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
+using Grpc.Core;
using Grpc.Core.Utils;
namespace Math
@@ -109,5 +110,42 @@ namespace Math
DivReply result = await client.DivAsync(new DivArgs { Dividend = sum.Num_, Divisor = numbers.Count });
Console.WriteLine("Avg Result: " + result);
}
+
+ /// <summary>
+ /// Shows how to handle a call ending with non-OK status.
+ /// </summary>
+ public static async Task HandleErrorExample(Math.MathClient client)
+ {
+ try
+ {
+ DivReply result = await client.DivAsync(new DivArgs { Dividend = 5, Divisor = 0 });
+ }
+ catch (RpcException ex)
+ {
+ Console.WriteLine(string.Format("RPC ended with status {0}", ex.Status));
+ }
+ }
+
+ /// <summary>
+ /// Shows how to send request headers and how to access response headers
+ /// and response trailers.
+ /// </summary>
+ public static async Task MetadataExample(Math.MathClient client)
+ {
+ var requestHeaders = new Metadata
+ {
+ { "custom-header", "custom-value" }
+ };
+
+ var call = client.DivAsync(new DivArgs { Dividend = 5, Divisor = 0 }, requestHeaders);
+
+ // Get response headers
+ Metadata responseHeaders = await call.ResponseHeadersAsync;
+
+ var result = await call;
+
+ // Get response trailers after the call has finished.
+ Metadata responseTrailers = call.GetTrailers();
+ }
}
}
diff --git a/src/csharp/Grpc.Examples/MathServiceImpl.cs b/src/csharp/Grpc.Examples/MathServiceImpl.cs
index 79c56e57a8..a28020f62f 100644
--- a/src/csharp/Grpc.Examples/MathServiceImpl.cs
+++ b/src/csharp/Grpc.Examples/MathServiceImpl.cs
@@ -52,23 +52,15 @@ namespace Math
public override async Task Fib(FibArgs request, IServerStreamWriter<Num> responseStream, ServerCallContext context)
{
- if (request.Limit <= 0)
- {
- // keep streaming the sequence until cancelled.
- IEnumerator<Num> fibEnumerator = FibInternal(long.MaxValue).GetEnumerator();
- while (!context.CancellationToken.IsCancellationRequested && fibEnumerator.MoveNext())
- {
- await responseStream.WriteAsync(fibEnumerator.Current);
- await Task.Delay(100);
- }
- }
+ var limit = request.Limit > 0 ? request.Limit : long.MaxValue;
+ var fibEnumerator = FibInternal(limit).GetEnumerator();
- if (request.Limit > 0)
+ // Keep streaming the sequence until the call is cancelled.
+ // Use CancellationToken from ServerCallContext to detect the cancellation.
+ while (!context.CancellationToken.IsCancellationRequested && fibEnumerator.MoveNext())
{
- foreach (var num in FibInternal(request.Limit))
- {
- await responseStream.WriteAsync(num);
- }
+ await responseStream.WriteAsync(fibEnumerator.Current);
+ await Task.Delay(100);
}
}
@@ -89,6 +81,13 @@ namespace Math
static DivReply DivInternal(DivArgs args)
{
+ if (args.Divisor == 0)
+ {
+ // One can finish the RPC with non-ok status by throwing RpcException instance.
+ // Alternatively, resulting status can be set using ServerCallContext.Status
+ throw new RpcException(new Status(StatusCode.InvalidArgument, "Division by zero"));
+ }
+
long quotient = args.Dividend / args.Divisor;
long remainder = args.Dividend % args.Divisor;
return new DivReply { Quotient = quotient, Remainder = remainder };
diff --git a/src/csharp/Grpc.IntegrationTesting/InteropClient.cs b/src/csharp/Grpc.IntegrationTesting/InteropClient.cs
index b3b1abf1bc..cff8508631 100644
--- a/src/csharp/Grpc.IntegrationTesting/InteropClient.cs
+++ b/src/csharp/Grpc.IntegrationTesting/InteropClient.cs
@@ -492,6 +492,10 @@ namespace Grpc.IntegrationTesting
{
// Deadline was reached before write has started. Eat the exception and continue.
}
+ catch (RpcException)
+ {
+ // Deadline was reached before write has started. Eat the exception and continue.
+ }
var ex = Assert.ThrowsAsync<RpcException>(async () => await call.ResponseStream.MoveNext());
// We can't guarantee the status code always DeadlineExceeded. See issue #2685.
diff --git a/src/csharp/Grpc.IntegrationTesting/StressTestClient.cs b/src/csharp/Grpc.IntegrationTesting/StressTestClient.cs
index 8db691cb04..4d6ca7ece5 100644
--- a/src/csharp/Grpc.IntegrationTesting/StressTestClient.cs
+++ b/src/csharp/Grpc.IntegrationTesting/StressTestClient.cs
@@ -311,7 +311,7 @@ namespace Grpc.IntegrationTesting
var snapshot = histogram.GetSnapshot(true);
var elapsedSnapshot = wallClockStopwatch.GetElapsedSnapshot(true);
- return (long) (snapshot.Count / elapsedSnapshot.Seconds);
+ return (long) (snapshot.Count / elapsedSnapshot.TotalSeconds);
}
}
}
diff --git a/src/csharp/build_packages.bat b/src/csharp/build_packages.bat
index 7520b0f81a..28e4262121 100644
--- a/src/csharp/build_packages.bat
+++ b/src/csharp/build_packages.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@rem (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+@rem OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
@rem Builds gRPC NuGet packages
@rem Current package versions
diff --git a/src/csharp/buildall.bat b/src/csharp/buildall.bat
index f800756dfe..0beb30c198 100644
--- a/src/csharp/buildall.bat
+++ b/src/csharp/buildall.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@rem (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+@rem OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
@rem Convenience script to build gRPC C# from command line
setlocal
diff --git a/src/node/tools/bin/protoc.js b/src/node/tools/bin/protoc.js
index 4d50c94b0f..53fc5dc428 100755
--- a/src/node/tools/bin/protoc.js
+++ b/src/node/tools/bin/protoc.js
@@ -47,10 +47,11 @@ var exe_ext = process.platform === 'win32' ? '.exe' : '';
var protoc = path.resolve(__dirname, 'protoc' + exe_ext);
-execFile(protoc, process.argv.slice(2), function(error, stdout, stderr) {
+var child_process = execFile(protoc, process.argv.slice(2), function(error, stdout, stderr) {
if (error) {
throw error;
}
- console.log(stdout);
- console.log(stderr);
});
+
+child_process.stdout.pipe(process.stdout);
+child_process.stderr.pipe(process.stderr);
diff --git a/src/node/tools/bin/protoc_plugin.js b/src/node/tools/bin/protoc_plugin.js
index 281ec0d85e..857882e1c3 100755
--- a/src/node/tools/bin/protoc_plugin.js
+++ b/src/node/tools/bin/protoc_plugin.js
@@ -47,10 +47,12 @@ var exe_ext = process.platform === 'win32' ? '.exe' : '';
var plugin = path.resolve(__dirname, 'grpc_node_plugin' + exe_ext);
-execFile(plugin, process.argv.slice(2), function(error, stdout, stderr) {
+var child_process = execFile(plugin, process.argv.slice(2), {encoding: 'buffer'}, function(error, stdout, stderr) {
if (error) {
throw error;
}
- console.log(stdout);
- console.log(stderr);
});
+
+process.stdin.pipe(child_process.stdin);
+child_process.stdout.pipe(process.stdout);
+child_process.stderr.pipe(process.stderr);
diff --git a/src/php/ext/grpc/call.c b/src/php/ext/grpc/call.c
index a0f3d160c6..884130e7d4 100644
--- a/src/php/ext/grpc/call.c
+++ b/src/php/ext/grpc/call.c
@@ -89,19 +89,20 @@ zend_object_value create_wrapped_grpc_call(zend_class_entry *class_type
/* Wraps a grpc_call struct in a PHP object. Owned indicates whether the struct
should be destroyed at the end of the object's lifecycle */
-zval *grpc_php_wrap_call(grpc_call *wrapped, bool owned) {
+zval *grpc_php_wrap_call(grpc_call *wrapped, bool owned TSRMLS_DC) {
zval *call_object;
MAKE_STD_ZVAL(call_object);
object_init_ex(call_object, grpc_ce_call);
wrapped_grpc_call *call =
(wrapped_grpc_call *)zend_object_store_get_object(call_object TSRMLS_CC);
call->wrapped = wrapped;
+ call->owned = owned;
return call_object;
}
/* Creates and returns a PHP array object with the data in a
* grpc_metadata_array. Returns NULL on failure */
-zval *grpc_parse_metadata_array(grpc_metadata_array *metadata_array) {
+zval *grpc_parse_metadata_array(grpc_metadata_array *metadata_array TSRMLS_DC) {
int count = metadata_array->count;
grpc_metadata *elements = metadata_array->metadata;
int i;
@@ -126,7 +127,7 @@ zval *grpc_parse_metadata_array(grpc_metadata_array *metadata_array) {
if (zend_hash_find(array_hash, str_key, key_len, (void **)data) ==
SUCCESS) {
if (Z_TYPE_P(*data) != IS_ARRAY) {
- zend_throw_exception(zend_exception_get_default(),
+ zend_throw_exception(zend_exception_get_default(TSRMLS_C),
"Metadata hash somehow contains wrong types.",
1 TSRMLS_CC);
efree(str_key);
@@ -453,7 +454,7 @@ PHP_METHOD(Call, startBatch) {
add_property_bool(result, "send_status", true);
break;
case GRPC_OP_RECV_INITIAL_METADATA:
- array = grpc_parse_metadata_array(&recv_metadata);
+ array = grpc_parse_metadata_array(&recv_metadata TSRMLS_CC);
add_property_zval(result, "metadata", array);
Z_DELREF_P(array);
break;
@@ -469,7 +470,7 @@ PHP_METHOD(Call, startBatch) {
case GRPC_OP_RECV_STATUS_ON_CLIENT:
MAKE_STD_ZVAL(recv_status);
object_init(recv_status);
- array = grpc_parse_metadata_array(&recv_trailing_metadata);
+ array = grpc_parse_metadata_array(&recv_trailing_metadata TSRMLS_CC);
add_property_zval(recv_status, "metadata", array);
Z_DELREF_P(array);
add_property_long(recv_status, "code", status);
diff --git a/src/php/ext/grpc/call.h b/src/php/ext/grpc/call.h
index 73efadae35..36c5f2d272 100644
--- a/src/php/ext/grpc/call.h
+++ b/src/php/ext/grpc/call.h
@@ -60,11 +60,11 @@ typedef struct wrapped_grpc_call {
void grpc_init_call(TSRMLS_D);
/* Creates a Call object that wraps the given grpc_call struct */
-zval *grpc_php_wrap_call(grpc_call *wrapped, bool owned);
+zval *grpc_php_wrap_call(grpc_call *wrapped, bool owned TSRMLS_DC);
/* Creates and returns a PHP associative array of metadata from a C array of
* call metadata */
-zval *grpc_parse_metadata_array(grpc_metadata_array *metadata_array);
+zval *grpc_parse_metadata_array(grpc_metadata_array *metadata_array TSRMLS_DC);
/* Populates a grpc_metadata_array with the data in a PHP array object.
Returns true on success and false on failure */
diff --git a/src/php/ext/grpc/call_credentials.c b/src/php/ext/grpc/call_credentials.c
index 285c4e7c85..ec0e6b9181 100644
--- a/src/php/ext/grpc/call_credentials.c
+++ b/src/php/ext/grpc/call_credentials.c
@@ -83,7 +83,7 @@ zend_object_value create_wrapped_grpc_call_credentials(
return retval;
}
-zval *grpc_php_wrap_call_credentials(grpc_call_credentials *wrapped) {
+zval *grpc_php_wrap_call_credentials(grpc_call_credentials *wrapped TSRMLS_DC) {
zval *credentials_object;
MAKE_STD_ZVAL(credentials_object);
object_init_ex(credentials_object, grpc_ce_call_credentials);
@@ -122,7 +122,7 @@ PHP_METHOD(CallCredentials, createComposite) {
grpc_call_credentials *creds =
grpc_composite_call_credentials_create(cred1->wrapped, cred2->wrapped,
NULL);
- zval *creds_object = grpc_php_wrap_call_credentials(creds);
+ zval *creds_object = grpc_php_wrap_call_credentials(creds TSRMLS_CC);
RETURN_DESTROY_ZVAL(creds_object);
}
@@ -141,7 +141,7 @@ PHP_METHOD(CallCredentials, createFromPlugin) {
memset(fci_cache, 0, sizeof(zend_fcall_info_cache));
/* "f" == 1 function */
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "f", fci,
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "f", fci,
fci_cache,
fci->params,
fci->param_count) == FAILURE) {
@@ -167,7 +167,7 @@ PHP_METHOD(CallCredentials, createFromPlugin) {
grpc_call_credentials *creds = grpc_metadata_credentials_create_from_plugin(
plugin, NULL);
- zval *creds_object = grpc_php_wrap_call_credentials(creds);
+ zval *creds_object = grpc_php_wrap_call_credentials(creds TSRMLS_CC);
RETURN_DESTROY_ZVAL(creds_object);
}
@@ -175,6 +175,8 @@ PHP_METHOD(CallCredentials, createFromPlugin) {
void plugin_get_metadata(void *ptr, grpc_auth_metadata_context context,
grpc_credentials_plugin_metadata_cb cb,
void *user_data) {
+ TSRMLS_FETCH();
+
plugin_state *state = (plugin_state *)ptr;
/* prepare to call the user callback function with info from the
@@ -192,7 +194,7 @@ void plugin_get_metadata(void *ptr, grpc_auth_metadata_context context,
state->fci->retval_ptr_ptr = &retval;
/* call the user callback function */
- zend_call_function(state->fci, state->fci_cache);
+ zend_call_function(state->fci, state->fci_cache TSRMLS_CC);
if (Z_TYPE_P(retval) != IS_ARRAY) {
zend_throw_exception(spl_ce_InvalidArgumentException,
diff --git a/src/php/ext/grpc/channel.c b/src/php/ext/grpc/channel.c
index eba2c81424..9f0431908f 100644
--- a/src/php/ext/grpc/channel.c
+++ b/src/php/ext/grpc/channel.c
@@ -84,7 +84,7 @@ zend_object_value create_wrapped_grpc_channel(zend_class_entry *class_type
return retval;
}
-void php_grpc_read_args_array(zval *args_array, grpc_channel_args *args) {
+void php_grpc_read_args_array(zval *args_array, grpc_channel_args *args TSRMLS_DC) {
HashTable *array_hash;
HashPosition array_pointer;
int args_index;
@@ -168,7 +168,7 @@ PHP_METHOD(Channel, __construct) {
zend_hash_del(array_hash, "credentials", 12);
}
}
- php_grpc_read_args_array(args_array, &args);
+ php_grpc_read_args_array(args_array, &args TSRMLS_CC);
if (creds == NULL) {
channel->wrapped = grpc_insecure_channel_create(target, &args, NULL);
} else {
diff --git a/src/php/ext/grpc/channel.h b/src/php/ext/grpc/channel.h
index 78a16ed0c9..cc5823ee7f 100755
--- a/src/php/ext/grpc/channel.h
+++ b/src/php/ext/grpc/channel.h
@@ -59,6 +59,6 @@ typedef struct wrapped_grpc_channel {
void grpc_init_channel(TSRMLS_D);
/* Iterates through a PHP array and populates args with the contents */
-void php_grpc_read_args_array(zval *args_array, grpc_channel_args *args);
+void php_grpc_read_args_array(zval *args_array, grpc_channel_args *args TSRMLS_DC);
#endif /* NET_GRPC_PHP_GRPC_CHANNEL_H_ */
diff --git a/src/php/ext/grpc/channel_credentials.c b/src/php/ext/grpc/channel_credentials.c
index ae9a9897fc..5c537378a6 100644
--- a/src/php/ext/grpc/channel_credentials.c
+++ b/src/php/ext/grpc/channel_credentials.c
@@ -82,7 +82,7 @@ zend_object_value create_wrapped_grpc_channel_credentials(
return retval;
}
-zval *grpc_php_wrap_channel_credentials(grpc_channel_credentials *wrapped) {
+zval *grpc_php_wrap_channel_credentials(grpc_channel_credentials *wrapped TSRMLS_DC) {
zval *credentials_object;
MAKE_STD_ZVAL(credentials_object);
object_init_ex(credentials_object, grpc_ce_channel_credentials);
@@ -99,7 +99,7 @@ zval *grpc_php_wrap_channel_credentials(grpc_channel_credentials *wrapped) {
*/
PHP_METHOD(ChannelCredentials, createDefault) {
grpc_channel_credentials *creds = grpc_google_default_credentials_create();
- zval *creds_object = grpc_php_wrap_channel_credentials(creds);
+ zval *creds_object = grpc_php_wrap_channel_credentials(creds TSRMLS_CC);
RETURN_DESTROY_ZVAL(creds_object);
}
@@ -134,7 +134,7 @@ PHP_METHOD(ChannelCredentials, createSsl) {
grpc_channel_credentials *creds = grpc_ssl_credentials_create(
pem_root_certs,
pem_key_cert_pair.private_key == NULL ? NULL : &pem_key_cert_pair, NULL);
- zval *creds_object = grpc_php_wrap_channel_credentials(creds);
+ zval *creds_object = grpc_php_wrap_channel_credentials(creds TSRMLS_CC);
RETURN_DESTROY_ZVAL(creds_object);
}
@@ -165,7 +165,7 @@ PHP_METHOD(ChannelCredentials, createComposite) {
grpc_channel_credentials *creds =
grpc_composite_channel_credentials_create(cred1->wrapped, cred2->wrapped,
NULL);
- zval *creds_object = grpc_php_wrap_channel_credentials(creds);
+ zval *creds_object = grpc_php_wrap_channel_credentials(creds TSRMLS_CC);
RETURN_DESTROY_ZVAL(creds_object);
}
diff --git a/src/php/ext/grpc/server.c b/src/php/ext/grpc/server.c
index ca129e76ca..6df2e4f978 100644
--- a/src/php/ext/grpc/server.c
+++ b/src/php/ext/grpc/server.c
@@ -111,7 +111,7 @@ PHP_METHOD(Server, __construct) {
if (args_array == NULL) {
server->wrapped = grpc_server_create(NULL, NULL);
} else {
- php_grpc_read_args_array(args_array, &args);
+ php_grpc_read_args_array(args_array, &args TSRMLS_CC);
server->wrapped = grpc_server_create(&args, NULL);
efree(args.args);
}
@@ -154,12 +154,12 @@ PHP_METHOD(Server, requestCall) {
1 TSRMLS_CC);
goto cleanup;
}
- add_property_zval(result, "call", grpc_php_wrap_call(call, true));
+ add_property_zval(result, "call", grpc_php_wrap_call(call, true TSRMLS_CC));
add_property_string(result, "method", details.method, true);
add_property_string(result, "host", details.host, true);
add_property_zval(result, "absolute_deadline",
- grpc_php_wrap_timeval(details.deadline));
- add_property_zval(result, "metadata", grpc_parse_metadata_array(&metadata));
+ grpc_php_wrap_timeval(details.deadline TSRMLS_CC));
+ add_property_zval(result, "metadata", grpc_parse_metadata_array(&metadata TSRMLS_CC));
cleanup:
grpc_call_details_destroy(&details);
grpc_metadata_array_destroy(&metadata);
diff --git a/src/php/ext/grpc/server_credentials.c b/src/php/ext/grpc/server_credentials.c
index f3951b31fe..505da10a28 100644
--- a/src/php/ext/grpc/server_credentials.c
+++ b/src/php/ext/grpc/server_credentials.c
@@ -81,7 +81,7 @@ zend_object_value create_wrapped_grpc_server_credentials(
return retval;
}
-zval *grpc_php_wrap_server_credentials(grpc_server_credentials *wrapped) {
+zval *grpc_php_wrap_server_credentials(grpc_server_credentials *wrapped TSRMLS_DC) {
zval *server_credentials_object;
MAKE_STD_ZVAL(server_credentials_object);
object_init_ex(server_credentials_object, grpc_ce_server_credentials);
@@ -120,7 +120,7 @@ PHP_METHOD(ServerCredentials, createSsl) {
grpc_server_credentials *creds = grpc_ssl_server_credentials_create_ex(
pem_root_certs, &pem_key_cert_pair, 1,
GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE, NULL);
- zval *creds_object = grpc_php_wrap_server_credentials(creds);
+ zval *creds_object = grpc_php_wrap_server_credentials(creds TSRMLS_CC);
RETURN_DESTROY_ZVAL(creds_object);
}
diff --git a/src/php/ext/grpc/timeval.c b/src/php/ext/grpc/timeval.c
index 4fd069e19a..5e242162a8 100644
--- a/src/php/ext/grpc/timeval.c
+++ b/src/php/ext/grpc/timeval.c
@@ -72,7 +72,7 @@ zend_object_value create_wrapped_grpc_timeval(zend_class_entry *class_type
return retval;
}
-zval *grpc_php_wrap_timeval(gpr_timespec wrapped) {
+zval *grpc_php_wrap_timeval(gpr_timespec wrapped TSRMLS_DC) {
zval *timeval_object;
MAKE_STD_ZVAL(timeval_object);
object_init_ex(timeval_object, grpc_ce_timeval);
@@ -122,7 +122,7 @@ PHP_METHOD(Timeval, add) {
wrapped_grpc_timeval *other =
(wrapped_grpc_timeval *)zend_object_store_get_object(other_obj TSRMLS_CC);
zval *sum =
- grpc_php_wrap_timeval(gpr_time_add(self->wrapped, other->wrapped));
+ grpc_php_wrap_timeval(gpr_time_add(self->wrapped, other->wrapped) TSRMLS_CC);
RETURN_DESTROY_ZVAL(sum);
}
@@ -146,7 +146,7 @@ PHP_METHOD(Timeval, subtract) {
wrapped_grpc_timeval *other =
(wrapped_grpc_timeval *)zend_object_store_get_object(other_obj TSRMLS_CC);
zval *diff =
- grpc_php_wrap_timeval(gpr_time_sub(self->wrapped, other->wrapped));
+ grpc_php_wrap_timeval(gpr_time_sub(self->wrapped, other->wrapped) TSRMLS_CC);
RETURN_DESTROY_ZVAL(diff);
}
@@ -208,7 +208,7 @@ PHP_METHOD(Timeval, similar) {
* @return Timeval The current time
*/
PHP_METHOD(Timeval, now) {
- zval *now = grpc_php_wrap_timeval(gpr_now(GPR_CLOCK_REALTIME));
+ zval *now = grpc_php_wrap_timeval(gpr_now(GPR_CLOCK_REALTIME) TSRMLS_CC);
RETURN_DESTROY_ZVAL(now);
}
@@ -218,7 +218,7 @@ PHP_METHOD(Timeval, now) {
*/
PHP_METHOD(Timeval, zero) {
zval *grpc_php_timeval_zero =
- grpc_php_wrap_timeval(gpr_time_0(GPR_CLOCK_REALTIME));
+ grpc_php_wrap_timeval(gpr_time_0(GPR_CLOCK_REALTIME) TSRMLS_CC);
RETURN_ZVAL(grpc_php_timeval_zero,
false, /* Copy original before returning? */
true /* Destroy original before returning */);
@@ -230,7 +230,7 @@ PHP_METHOD(Timeval, zero) {
*/
PHP_METHOD(Timeval, infFuture) {
zval *grpc_php_timeval_inf_future =
- grpc_php_wrap_timeval(gpr_inf_future(GPR_CLOCK_REALTIME));
+ grpc_php_wrap_timeval(gpr_inf_future(GPR_CLOCK_REALTIME) TSRMLS_CC);
RETURN_DESTROY_ZVAL(grpc_php_timeval_inf_future);
}
@@ -240,7 +240,7 @@ PHP_METHOD(Timeval, infFuture) {
*/
PHP_METHOD(Timeval, infPast) {
zval *grpc_php_timeval_inf_past =
- grpc_php_wrap_timeval(gpr_inf_past(GPR_CLOCK_REALTIME));
+ grpc_php_wrap_timeval(gpr_inf_past(GPR_CLOCK_REALTIME) TSRMLS_CC);
RETURN_DESTROY_ZVAL(grpc_php_timeval_inf_past);
}
diff --git a/src/php/ext/grpc/timeval.h b/src/php/ext/grpc/timeval.h
index 07cef037cb..7456eb6d58 100755
--- a/src/php/ext/grpc/timeval.h
+++ b/src/php/ext/grpc/timeval.h
@@ -63,6 +63,6 @@ void grpc_init_timeval(TSRMLS_D);
void grpc_shutdown_timeval(TSRMLS_D);
/* Creates a Timeval object that wraps the given timeval struct */
-zval *grpc_php_wrap_timeval(gpr_timespec wrapped);
+zval *grpc_php_wrap_timeval(gpr_timespec wrapped TSRMLS_DC);
#endif /* NET_GRPC_PHP_GRPC_TIMEVAL_H_ */
diff --git a/src/proto/grpc/reflection/v1alpha/reflection.proto b/src/proto/grpc/reflection/v1alpha/reflection.proto
new file mode 100644
index 0000000000..276ff0e255
--- /dev/null
+++ b/src/proto/grpc/reflection/v1alpha/reflection.proto
@@ -0,0 +1,151 @@
+// 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.
+
+// Service exported by server reflection
+
+syntax = "proto3";
+
+package grpc.reflection.v1alpha;
+
+service ServerReflection {
+ // The reflection service is structured as a bidirectional stream, ensuring
+ // all related requests go to a single server.
+ rpc ServerReflectionInfo(stream ServerReflectionRequest)
+ returns (stream ServerReflectionResponse);
+}
+
+// The message sent by the client when calling ServerReflectionInfo method.
+message ServerReflectionRequest {
+ string host = 1;
+ // To use reflection service, the client should set one of the following
+ // fields in message_request. The server distinguishes requests by their
+ // defined field and then handles them using corresponding methods.
+ oneof message_request {
+ // Find a proto file by the file name.
+ string file_by_filename = 3;
+
+ // Find the proto file that declares the given fully-qualified symbol name.
+ // This field should be a fully-qualified symbol name
+ // (e.g. <package>.<service>[.<method>] or <package>.<type>).
+ string file_containing_symbol = 4;
+
+ // Find the proto file which defines an extension extending the given
+ // message type with the given field number.
+ ExtensionRequest file_containing_extension = 5;
+
+ // Finds the tag numbers used by all known extensions of extendee_type, and
+ // appends them to ExtensionNumberResponse in an undefined order.
+ // Its corresponding method is best-effort: it's not guaranteed that the
+ // reflection service will implement this method, and it's not guaranteed
+ // that this method will provide all extensions. Returns
+ // StatusCode::UNIMPLEMENTED if it's not implemented.
+ // This field should be a fully-qualified type name. The format is
+ // <package>.<type>
+ string all_extension_numbers_of_type = 6;
+
+ // List the full names of registered services. The content will not be
+ // checked.
+ string list_services = 7;
+ }
+}
+
+// The type name and extension number sent by the client when requesting
+// file_containing_extension.
+message ExtensionRequest {
+ // Fully-qualified type name. The format should be <package>.<type>
+ string containing_type = 1;
+ int32 extension_number = 2;
+}
+
+// The message sent by the server to answer ServerReflectionInfo method.
+message ServerReflectionResponse {
+ string valid_host = 1;
+ ServerReflectionRequest original_request = 2;
+ // The server set one of the following fields accroding to the message_request
+ // in the request.
+ oneof message_response {
+ // This message is used to answer file_by_filename, file_containing_symbol,
+ // file_containing_extension requests with transitive dependencies. As
+ // the repeated label is not allowed in oneof fields, we use a
+ // FileDescriptorResponse message to encapsulate the repeated fields.
+ // The reflection service is allowed to avoid sending FileDescriptorProtos
+ // that were previously sent in response to earlier requests in the stream.
+ FileDescriptorResponse file_descriptor_response = 4;
+
+ // This message is used to answer all_extension_numbers_of_type requst.
+ ExtensionNumberResponse all_extension_numbers_response = 5;
+
+ // This message is used to answer list_services request.
+ ListServiceResponse list_services_response = 6;
+
+ // This message is used when an error occurs.
+ ErrorResponse error_response = 7;
+ }
+}
+
+// Serialized FileDescriptorProto messages sent by the server answering
+// a file_by_filename, file_containing_symbol, or file_containing_extension
+// request.
+message FileDescriptorResponse {
+ // Serialized FileDescriptorProto messages. We avoid taking a dependency on
+ // descriptor.proto, which uses proto2 only features, by making them opaque
+ // bytes instead.
+ repeated bytes file_descriptor_proto = 1;
+}
+
+// A list of extension numbers sent by the server answering
+// all_extension_numbers_of_type request.
+message ExtensionNumberResponse {
+ // Full name of the base type, including the package name. The format
+ // is <package>.<type>
+ string base_type_name = 1;
+ repeated int32 extension_number = 2;
+}
+
+// A list of ServiceResponse sent by the server answering list_services request.
+message ListServiceResponse {
+ // The information of each service may be expanded in the future, so we use
+ // ServiceResponse message to encapsulate it.
+ repeated ServiceResponse service = 1;
+}
+
+// The information of a single service used by ListServiceResponse to answer
+// list_services request.
+message ServiceResponse {
+ // Full name of a registered service, including its package name. The format
+ // is <package>.<service>
+ string name = 1;
+}
+
+// The error code and error message sent by the server when an error occurs.
+message ErrorResponse {
+ // This field uses the error codes defined in grpc::StatusCode.
+ int32 error_code = 1;
+ string error_message = 2;
+}
diff --git a/src/proto/grpc/testing/echo_messages.proto b/src/proto/grpc/testing/echo_messages.proto
index 1be1966f10..b405acf043 100644
--- a/src/proto/grpc/testing/echo_messages.proto
+++ b/src/proto/grpc/testing/echo_messages.proto
@@ -32,6 +32,12 @@ syntax = "proto3";
package grpc.testing;
+// Message to be echoed back serialized in trailer.
+message DebugInfo {
+ repeated string stack_entries = 1;
+ string detail = 2;
+}
+
message RequestParams {
bool echo_deadline = 1;
int32 client_cancel_after_us = 2;
@@ -43,6 +49,7 @@ message RequestParams {
string expected_client_identity = 8; // will force check_auth_context.
bool skip_cancelled_check = 9;
string expected_transport_security_type = 10;
+ DebugInfo debug_info = 11;
}
message EchoRequest {
diff --git a/src/python/grpcio/grpc/_adapter/_low.py b/src/python/grpcio/grpc/_adapter/_low.py
index b13d8dd9dd..00788bd4cf 100644
--- a/src/python/grpcio/grpc/_adapter/_low.py
+++ b/src/python/grpcio/grpc/_adapter/_low.py
@@ -195,26 +195,30 @@ class Call(_types.Call):
translated_op = cygrpc.operation_send_initial_metadata(
cygrpc.Metadata(
cygrpc.Metadatum(key, value)
- for key, value in op.initial_metadata))
+ for key, value in op.initial_metadata),
+ op.flags)
elif op.type == _types.OpType.SEND_MESSAGE:
- translated_op = cygrpc.operation_send_message(op.message)
+ translated_op = cygrpc.operation_send_message(op.message, op.flags)
elif op.type == _types.OpType.SEND_CLOSE_FROM_CLIENT:
- translated_op = cygrpc.operation_send_close_from_client()
+ translated_op = cygrpc.operation_send_close_from_client(op.flags)
elif op.type == _types.OpType.SEND_STATUS_FROM_SERVER:
translated_op = cygrpc.operation_send_status_from_server(
cygrpc.Metadata(
cygrpc.Metadatum(key, value)
for key, value in op.trailing_metadata),
op.status.code,
- op.status.details)
+ op.status.details,
+ op.flags)
elif op.type == _types.OpType.RECV_INITIAL_METADATA:
- translated_op = cygrpc.operation_receive_initial_metadata()
+ translated_op = cygrpc.operation_receive_initial_metadata(
+ op.flags)
elif op.type == _types.OpType.RECV_MESSAGE:
- translated_op = cygrpc.operation_receive_message()
+ translated_op = cygrpc.operation_receive_message(op.flags)
elif op.type == _types.OpType.RECV_STATUS_ON_CLIENT:
- translated_op = cygrpc.operation_receive_status_on_client()
+ translated_op = cygrpc.operation_receive_status_on_client(
+ op.flags)
elif op.type == _types.OpType.RECV_CLOSE_ON_SERVER:
- translated_op = cygrpc.operation_receive_close_on_server()
+ translated_op = cygrpc.operation_receive_close_on_server(op.flags)
else:
raise ValueError('unexpected operation type {}'.format(op.type))
translated_ops.append(translated_op)
diff --git a/src/python/grpcio/grpc/_adapter/_types.py b/src/python/grpcio/grpc/_adapter/_types.py
index 8ca7ff4b60..f8405949d4 100644
--- a/src/python/grpcio/grpc/_adapter/_types.py
+++ b/src/python/grpcio/grpc/_adapter/_types.py
@@ -152,7 +152,7 @@ class OpArgs(collections.namedtuple(
'trailing_metadata',
'message',
'status',
- 'write_flags',
+ 'flags',
])):
"""Arguments passed into a GRPC operation.
@@ -165,7 +165,7 @@ class OpArgs(collections.namedtuple(
message (bytes): Only valid if type == OpType.SEND_MESSAGE, else is None.
status (Status): Only valid if type == OpType.SEND_STATUS_FROM_SERVER, else
is None.
- write_flags (int): a bit OR'ing of 0 or more OpWriteFlags values.
+ flags (int): a bitwise OR'ing of 0 or more OpWriteFlags values.
"""
@staticmethod
diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi
index 3d158a7707..66e6e6b549 100644
--- a/src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi
+++ b/src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi
@@ -140,6 +140,9 @@ cdef extern from "grpc/_cython/loader.h":
const char *GRPC_ARG_PRIMARY_USER_AGENT_STRING
const char *GRPC_ARG_SECONDARY_USER_AGENT_STRING
const char *GRPC_SSL_TARGET_NAME_OVERRIDE_ARG
+ const char *GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM
+ const char *GRPC_COMPRESSION_CHANNEL_DEFAULT_LEVEL
+ const char *GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET
const int GRPC_WRITE_BUFFER_HINT
const int GRPC_WRITE_NO_COMPRESS
@@ -425,3 +428,38 @@ cdef extern from "grpc/_cython/loader.h":
grpc_call_credentials *grpc_metadata_credentials_create_from_plugin(
grpc_metadata_credentials_plugin plugin, void *reserved) nogil
+
+ ctypedef enum grpc_compression_algorithm:
+ GRPC_COMPRESS_NONE
+ GRPC_COMPRESS_DEFLATE
+ GRPC_COMPRESS_GZIP
+ GRPC_COMPRESS_ALGORITHMS_COUNT
+
+ ctypedef enum grpc_compression_level:
+ GRPC_COMPRESS_LEVEL_NONE
+ GRPC_COMPRESS_LEVEL_LOW
+ GRPC_COMPRESS_LEVEL_MED
+ GRPC_COMPRESS_LEVEL_HIGH
+ GRPC_COMPRESS_LEVEL_COUNT
+
+ ctypedef struct grpc_compression_options:
+ uint32_t enabled_algorithms_bitset
+ grpc_compression_algorithm default_compression_algorithm
+
+ int grpc_compression_algorithm_parse(
+ const char *name, size_t name_length,
+ grpc_compression_algorithm *algorithm) nogil
+ int grpc_compression_algorithm_name(grpc_compression_algorithm algorithm,
+ char **name) nogil
+ grpc_compression_algorithm grpc_compression_algorithm_for_level(
+ grpc_compression_level level, uint32_t accepted_encodings) nogil
+ void grpc_compression_options_init(grpc_compression_options *opts) nogil
+ void grpc_compression_options_enable_algorithm(
+ grpc_compression_options *opts,
+ grpc_compression_algorithm algorithm) nogil
+ void grpc_compression_options_disable_algorithm(
+ grpc_compression_options *opts,
+ grpc_compression_algorithm algorithm) nogil
+ int grpc_compression_options_is_algorithm_enabled(
+ const grpc_compression_options *opts,
+ grpc_compression_algorithm algorithm) nogil
diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/records.pxd.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/records.pxd.pxi
index 30397818a1..0474697af8 100644
--- a/src/python/grpcio/grpc/_cython/_cygrpc/records.pxd.pxi
+++ b/src/python/grpcio/grpc/_cython/_cygrpc/records.pxd.pxi
@@ -124,3 +124,7 @@ cdef class Operations:
cdef size_t c_nops
cdef list operations
+
+cdef class CompressionOptions:
+
+ cdef grpc_compression_options c_options
diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi
index c2202bdab2..c7539f0d49 100644
--- a/src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi
+++ b/src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi
@@ -103,6 +103,19 @@ class OperationType:
receive_close_on_server = GRPC_OP_RECV_CLOSE_ON_SERVER
+class CompressionAlgorithm:
+ none = GRPC_COMPRESS_NONE
+ deflate = GRPC_COMPRESS_DEFLATE
+ gzip = GRPC_COMPRESS_GZIP
+
+
+class CompressionLevel:
+ none = GRPC_COMPRESS_LEVEL_NONE
+ low = GRPC_COMPRESS_LEVEL_LOW
+ medium = GRPC_COMPRESS_LEVEL_MED
+ high = GRPC_COMPRESS_LEVEL_HIGH
+
+
cdef class Timespec:
def __cinit__(self, time):
@@ -473,6 +486,10 @@ cdef class Operation:
return self.c_op.type
@property
+ def flags(self):
+ return self.c_op.flags
+
+ @property
def has_status(self):
return self.c_op.type == GRPC_OP_RECV_STATUS_ON_CLIENT
@@ -553,9 +570,10 @@ cdef class Operation:
with nogil:
gpr_free(self._received_status_details)
-def operation_send_initial_metadata(Metadata metadata):
+def operation_send_initial_metadata(Metadata metadata, int flags):
cdef Operation op = Operation()
op.c_op.type = GRPC_OP_SEND_INITIAL_METADATA
+ op.c_op.flags = flags
op.c_op.data.send_initial_metadata.count = metadata.c_metadata_array.count
op.c_op.data.send_initial_metadata.metadata = (
metadata.c_metadata_array.metadata)
@@ -563,23 +581,25 @@ def operation_send_initial_metadata(Metadata metadata):
op.is_valid = True
return op
-def operation_send_message(data):
+def operation_send_message(data, int flags):
cdef Operation op = Operation()
op.c_op.type = GRPC_OP_SEND_MESSAGE
+ op.c_op.flags = flags
byte_buffer = ByteBuffer(data)
op.c_op.data.send_message = byte_buffer.c_byte_buffer
op.references.append(byte_buffer)
op.is_valid = True
return op
-def operation_send_close_from_client():
+def operation_send_close_from_client(int flags):
cdef Operation op = Operation()
op.c_op.type = GRPC_OP_SEND_CLOSE_FROM_CLIENT
+ op.c_op.flags = flags
op.is_valid = True
return op
def operation_send_status_from_server(
- Metadata metadata, grpc_status_code code, details):
+ Metadata metadata, grpc_status_code code, details, int flags):
if isinstance(details, bytes):
pass
elif isinstance(details, basestring):
@@ -588,6 +608,7 @@ def operation_send_status_from_server(
raise TypeError("expected a str or bytes object for details")
cdef Operation op = Operation()
op.c_op.type = GRPC_OP_SEND_STATUS_FROM_SERVER
+ op.c_op.flags = flags
op.c_op.data.send_status_from_server.trailing_metadata_count = (
metadata.c_metadata_array.count)
op.c_op.data.send_status_from_server.trailing_metadata = (
@@ -599,18 +620,20 @@ def operation_send_status_from_server(
op.is_valid = True
return op
-def operation_receive_initial_metadata():
+def operation_receive_initial_metadata(int flags):
cdef Operation op = Operation()
op.c_op.type = GRPC_OP_RECV_INITIAL_METADATA
+ op.c_op.flags = flags
op._received_metadata = Metadata([])
op.c_op.data.receive_initial_metadata = (
&op._received_metadata.c_metadata_array)
op.is_valid = True
return op
-def operation_receive_message():
+def operation_receive_message(int flags):
cdef Operation op = Operation()
op.c_op.type = GRPC_OP_RECV_MESSAGE
+ op.c_op.flags = flags
op._received_message = ByteBuffer(None)
# n.b. the c_op.data.receive_message field needs to be deleted by us,
# anyway, so we just let that be handled by the ByteBuffer() we allocated
@@ -619,9 +642,10 @@ def operation_receive_message():
op.is_valid = True
return op
-def operation_receive_status_on_client():
+def operation_receive_status_on_client(int flags):
cdef Operation op = Operation()
op.c_op.type = GRPC_OP_RECV_STATUS_ON_CLIENT
+ op.c_op.flags = flags
op._received_metadata = Metadata([])
op.c_op.data.receive_status_on_client.trailing_metadata = (
&op._received_metadata.c_metadata_array)
@@ -634,9 +658,10 @@ def operation_receive_status_on_client():
op.is_valid = True
return op
-def operation_receive_close_on_server():
+def operation_receive_close_on_server(int flags):
cdef Operation op = Operation()
op.c_op.type = GRPC_OP_RECV_CLOSE_ON_SERVER
+ op.c_op.flags = flags
op.c_op.data.receive_close_on_server.cancelled = &op._received_cancelled
op.is_valid = True
return op
@@ -692,3 +717,36 @@ cdef class Operations:
def __iter__(self):
return _OperationsIterator(self)
+
+cdef class CompressionOptions:
+
+ def __cinit__(self):
+ with nogil:
+ grpc_compression_options_init(&self.c_options)
+
+ def enable_algorithm(self, grpc_compression_algorithm algorithm):
+ with nogil:
+ grpc_compression_options_enable_algorithm(&self.c_options, algorithm)
+
+ def disable_algorithm(self, grpc_compression_algorithm algorithm):
+ with nogil:
+ grpc_compression_options_disable_algorithm(&self.c_options, algorithm)
+
+ def is_algorithm_enabled(self, grpc_compression_algorithm algorithm):
+ cdef int result
+ with nogil:
+ result = grpc_compression_options_is_algorithm_enabled(
+ &self.c_options, algorithm)
+ return result
+
+ def to_channel_arg(self):
+ return ChannelArg(GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
+ self.c_options.enabled_algorithms_bitset)
+
+
+def compression_algorithm_name(grpc_compression_algorithm algorithm):
+ cdef char* name
+ with nogil:
+ grpc_compression_algorithm_name(algorithm, &name)
+ # Let Cython do the right thing with string casting
+ return name
diff --git a/src/python/grpcio/grpc/_cython/imports.generated.c b/src/python/grpcio/grpc/_cython/imports.generated.c
index f0a40dbb35..09551472b5 100644
--- a/src/python/grpcio/grpc/_cython/imports.generated.c
+++ b/src/python/grpcio/grpc/_cython/imports.generated.c
@@ -125,6 +125,7 @@ grpc_header_key_is_legal_type grpc_header_key_is_legal_import;
grpc_header_nonbin_value_is_legal_type grpc_header_nonbin_value_is_legal_import;
grpc_is_binary_header_type grpc_is_binary_header_import;
grpc_call_error_to_string_type grpc_call_error_to_string_import;
+grpc_cronet_secure_channel_create_type grpc_cronet_secure_channel_create_import;
grpc_auth_property_iterator_next_type grpc_auth_property_iterator_next_import;
grpc_auth_context_property_iterator_type grpc_auth_context_property_iterator_import;
grpc_auth_context_peer_identity_type grpc_auth_context_peer_identity_import;
@@ -395,6 +396,7 @@ void pygrpc_load_imports(HMODULE library) {
grpc_header_nonbin_value_is_legal_import = (grpc_header_nonbin_value_is_legal_type) GetProcAddress(library, "grpc_header_nonbin_value_is_legal");
grpc_is_binary_header_import = (grpc_is_binary_header_type) GetProcAddress(library, "grpc_is_binary_header");
grpc_call_error_to_string_import = (grpc_call_error_to_string_type) GetProcAddress(library, "grpc_call_error_to_string");
+ grpc_cronet_secure_channel_create_import = (grpc_cronet_secure_channel_create_type) GetProcAddress(library, "grpc_cronet_secure_channel_create");
grpc_auth_property_iterator_next_import = (grpc_auth_property_iterator_next_type) GetProcAddress(library, "grpc_auth_property_iterator_next");
grpc_auth_context_property_iterator_import = (grpc_auth_context_property_iterator_type) GetProcAddress(library, "grpc_auth_context_property_iterator");
grpc_auth_context_peer_identity_import = (grpc_auth_context_peer_identity_type) GetProcAddress(library, "grpc_auth_context_peer_identity");
diff --git a/src/python/grpcio/grpc/_cython/imports.generated.h b/src/python/grpcio/grpc/_cython/imports.generated.h
index d5e810b7cf..6de295414a 100644
--- a/src/python/grpcio/grpc/_cython/imports.generated.h
+++ b/src/python/grpcio/grpc/_cython/imports.generated.h
@@ -43,6 +43,7 @@
#include <grpc/census.h>
#include <grpc/compression.h>
#include <grpc/grpc.h>
+#include <grpc/grpc_cronet.h>
#include <grpc/grpc_security.h>
#include <grpc/impl/codegen/alloc.h>
#include <grpc/impl/codegen/byte_buffer.h>
@@ -325,6 +326,9 @@ extern grpc_is_binary_header_type grpc_is_binary_header_import;
typedef const char *(*grpc_call_error_to_string_type)(grpc_call_error error);
extern grpc_call_error_to_string_type grpc_call_error_to_string_import;
#define grpc_call_error_to_string grpc_call_error_to_string_import
+typedef grpc_channel *(*grpc_cronet_secure_channel_create_type)(void *engine, const char *target, const grpc_channel_args *args, void *reserved);
+extern grpc_cronet_secure_channel_create_type grpc_cronet_secure_channel_create_import;
+#define grpc_cronet_secure_channel_create grpc_cronet_secure_channel_create_import
typedef const grpc_auth_property *(*grpc_auth_property_iterator_next_type)(grpc_auth_property_iterator *it);
extern grpc_auth_property_iterator_next_type grpc_auth_property_iterator_next_import;
#define grpc_auth_property_iterator_next grpc_auth_property_iterator_next_import
@@ -866,14 +870,15 @@ void pygrpc_load_imports(HMODULE library);
#else /* !GPR_WIN32 */
-#include <grpc/support/alloc.h>
-#include <grpc/support/slice.h>
-#include <grpc/support/time.h>
-#include <grpc/status.h>
#include <grpc/byte_buffer.h>
#include <grpc/byte_buffer_reader.h>
+#include <grpc/compression.h>
#include <grpc/grpc.h>
#include <grpc/grpc_security.h>
+#include <grpc/support/alloc.h>
+#include <grpc/support/slice.h>
+#include <grpc/support/time.h>
+#include <grpc/status.h>
#endif /* !GPR_WIN32 */
diff --git a/src/python/grpcio/grpc/beta/interfaces.py b/src/python/grpcio/grpc/beta/interfaces.py
index 33ca45ac5b..24de9ad1a8 100644
--- a/src/python/grpcio/grpc/beta/interfaces.py
+++ b/src/python/grpcio/grpc/beta/interfaces.py
@@ -235,7 +235,7 @@ class Server(six.with_metaclass(abc.ABCMeta)):
This method may be called at any time and is idempotent. Passing a smaller
grace value than has been passed in a previous call will have the effect of
stopping the Server sooner. Passing a larger grace value than has been
- passed in a previous call will not have the effect of stopping the sooner
+ passed in a previous call will not have the effect of stopping the server
later.
Args:
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
index a411f45bbd..9c067add0a 100644
--- a/src/python/grpcio/grpc_core_dependencies.py
+++ b/src/python/grpcio/grpc_core_dependencies.py
@@ -95,6 +95,7 @@ CORE_SOURCE_FILES = [
'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_posix.c',
'src/core/lib/iomgr/ev_posix.c',
'src/core/lib/iomgr/exec_ctx.c',
'src/core/lib/iomgr/executor.c',
@@ -230,6 +231,9 @@ CORE_SOURCE_FILES = [
'src/core/ext/client_config/uri_parser.c',
'src/core/ext/transport/chttp2/server/insecure/server_chttp2.c',
'src/core/ext/transport/chttp2/client/insecure/channel_create.c',
+ 'src/core/ext/transport/cronet/client/secure/cronet_channel_create.c',
+ 'src/core/ext/transport/cronet/transport/cronet_api_dummy.c',
+ 'src/core/ext/transport/cronet/transport/cronet_transport.c',
'src/core/ext/lb_policy/grpclb/load_balancer_api.c',
'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c',
'third_party/nanopb/pb_common.c',
diff --git a/src/python/grpcio/tests/health_check/__init__.py b/src/python/grpcio/tests/health_check/__init__.py
new file mode 100644
index 0000000000..100a624dc9
--- /dev/null
+++ b/src/python/grpcio/tests/health_check/__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/src/python/grpcio/tests/health_check/_health_servicer_test.py b/src/python/grpcio/tests/health_check/_health_servicer_test.py
new file mode 100644
index 0000000000..1b63388663
--- /dev/null
+++ b/src/python/grpcio/tests/health_check/_health_servicer_test.py
@@ -0,0 +1,75 @@
+# 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.
+
+"""Tests of grpc_health.health.v1.health."""
+
+import unittest
+
+from grpc_health.health.v1 import health
+from grpc_health.health.v1 import health_pb2
+
+
+class HealthServicerTest(unittest.TestCase):
+
+ def setUp(self):
+ self.servicer = health.HealthServicer()
+ self.servicer.set('', health_pb2.HealthCheckResponse.SERVING)
+ self.servicer.set('grpc.test.TestServiceServing',
+ health_pb2.HealthCheckResponse.SERVING)
+ self.servicer.set('grpc.test.TestServiceUnknown',
+ health_pb2.HealthCheckResponse.UNKNOWN)
+ self.servicer.set('grpc.test.TestServiceNotServing',
+ health_pb2.HealthCheckResponse.NOT_SERVING)
+
+ def test_empty_service(self):
+ request = health_pb2.HealthCheckRequest()
+ resp = self.servicer.Check(request, None)
+ self.assertEqual(resp.status, health_pb2.HealthCheckResponse.SERVING)
+
+ def test_serving_service(self):
+ request = health_pb2.HealthCheckRequest(
+ service='grpc.test.TestServiceServing')
+ resp = self.servicer.Check(request, None)
+ self.assertEqual(resp.status, health_pb2.HealthCheckResponse.SERVING)
+
+ def test_unknown_serivce(self):
+ request = health_pb2.HealthCheckRequest(
+ service='grpc.test.TestServiceUnknown')
+ resp = self.servicer.Check(request, None)
+ self.assertEqual(resp.status, health_pb2.HealthCheckResponse.UNKNOWN)
+
+ def test_not_serving_service(self):
+ request = health_pb2.HealthCheckRequest(
+ service='grpc.test.TestServiceNotServing')
+ resp = self.servicer.Check(request, None)
+ self.assertEqual(resp.status, health_pb2.HealthCheckResponse.NOT_SERVING)
+
+
+if __name__ == '__main__':
+ unittest.main(verbosity=2)
diff --git a/src/python/grpcio/tests/protoc_plugin/beta_python_plugin_test.py b/src/python/grpcio/tests/protoc_plugin/beta_python_plugin_test.py
index 3dc3042e38..7466f88059 100644
--- a/src/python/grpcio/tests/protoc_plugin/beta_python_plugin_test.py
+++ b/src/python/grpcio/tests/protoc_plugin/beta_python_plugin_test.py
@@ -59,11 +59,12 @@ STUB_FACTORY_IDENTIFIER = 'beta_create_TestService_stub'
class _ServicerMethods(object):
- def __init__(self, test_pb2):
+ def __init__(self, response_pb2, payload_pb2):
self._condition = threading.Condition()
self._paused = False
self._fail = False
- self._test_pb2 = test_pb2
+ self._response_pb2 = response_pb2
+ self._payload_pb2 = payload_pb2
@contextlib.contextmanager
def pause(self): # pylint: disable=invalid-name
@@ -90,22 +91,22 @@ class _ServicerMethods(object):
self._condition.wait()
def UnaryCall(self, request, unused_rpc_context):
- response = self._test_pb2.SimpleResponse()
- response.payload.payload_type = self._test_pb2.COMPRESSABLE
+ response = self._response_pb2.SimpleResponse()
+ response.payload.payload_type = self._payload_pb2.COMPRESSABLE
response.payload.payload_compressable = 'a' * request.response_size
self._control()
return response
def StreamingOutputCall(self, request, unused_rpc_context):
for parameter in request.response_parameters:
- response = self._test_pb2.StreamingOutputCallResponse()
- response.payload.payload_type = self._test_pb2.COMPRESSABLE
+ response = self._response_pb2.StreamingOutputCallResponse()
+ response.payload.payload_type = self._payload_pb2.COMPRESSABLE
response.payload.payload_compressable = 'a' * parameter.size
self._control()
yield response
def StreamingInputCall(self, request_iter, unused_rpc_context):
- response = self._test_pb2.StreamingInputCallResponse()
+ response = self._response_pb2.StreamingInputCallResponse()
aggregated_payload_size = 0
for request in request_iter:
aggregated_payload_size += len(request.payload.payload_compressable)
@@ -116,8 +117,8 @@ class _ServicerMethods(object):
def FullDuplexCall(self, request_iter, unused_rpc_context):
for request in request_iter:
for parameter in request.response_parameters:
- response = self._test_pb2.StreamingOutputCallResponse()
- response.payload.payload_type = self._test_pb2.COMPRESSABLE
+ response = self._response_pb2.StreamingOutputCallResponse()
+ response.payload.payload_type = self._payload_pb2.COMPRESSABLE
response.payload.payload_compressable = 'a' * parameter.size
self._control()
yield response
@@ -126,8 +127,8 @@ class _ServicerMethods(object):
responses = []
for request in request_iter:
for parameter in request.response_parameters:
- response = self._test_pb2.StreamingOutputCallResponse()
- response.payload.payload_type = self._test_pb2.COMPRESSABLE
+ response = self._response_pb2.StreamingOutputCallResponse()
+ response.payload.payload_type = self._payload_pb2.COMPRESSABLE
response.payload.payload_compressable = 'a' * parameter.size
self._control()
responses.append(response)
@@ -136,23 +137,25 @@ class _ServicerMethods(object):
@contextlib.contextmanager
-def _CreateService(test_pb2):
+def _CreateService(service_pb2, response_pb2, payload_pb2):
"""Provides a servicer backend and a stub.
The servicer is just the implementation of the actual servicer passed to the
face player of the python RPC implementation; the two are detached.
Args:
- test_pb2: The test_pb2 module generated by this test.
+ service_pb2: The service_pb2 module generated by this test.
+ response_pb2: The response_pb2 module generated by this test
+ payload_pb2: The payload_pb2 module generated by this test
Yields:
A (servicer_methods, stub) pair where servicer_methods is the back-end of
the service bound to the stub and and stub is the stub on which to invoke
RPCs.
"""
- servicer_methods = _ServicerMethods(test_pb2)
+ servicer_methods = _ServicerMethods(response_pb2, payload_pb2)
- class Servicer(getattr(test_pb2, SERVICER_IDENTIFIER)):
+ class Servicer(getattr(service_pb2, SERVICER_IDENTIFIER)):
def UnaryCall(self, request, context):
return servicer_methods.UnaryCall(request, context)
@@ -170,55 +173,52 @@ def _CreateService(test_pb2):
return servicer_methods.HalfDuplexCall(request_iter, context)
servicer = Servicer()
- server = getattr(test_pb2, SERVER_FACTORY_IDENTIFIER)(servicer)
+ server = getattr(service_pb2, SERVER_FACTORY_IDENTIFIER)(servicer)
port = server.add_insecure_port('[::]:0')
server.start()
channel = implementations.insecure_channel('localhost', port)
- stub = getattr(test_pb2, STUB_FACTORY_IDENTIFIER)(channel)
- yield servicer_methods, stub
+ stub = getattr(service_pb2, STUB_FACTORY_IDENTIFIER)(channel)
+ yield (servicer_methods, stub)
server.stop(0)
@contextlib.contextmanager
-def _CreateIncompleteService(test_pb2):
+def _CreateIncompleteService(service_pb2):
"""Provides a servicer backend that fails to implement methods and its stub.
The servicer is just the implementation of the actual servicer passed to the
face player of the python RPC implementation; the two are detached.
-
Args:
- test_pb2: The test_pb2 module generated by this test.
-
+ service_pb2: The service_pb2 module generated by this test.
Yields:
A (servicer_methods, stub) pair where servicer_methods is the back-end of
the service bound to the stub and and stub is the stub on which to invoke
RPCs.
"""
- servicer_methods = _ServicerMethods(test_pb2)
- class Servicer(getattr(test_pb2, SERVICER_IDENTIFIER)):
+ class Servicer(getattr(service_pb2, SERVICER_IDENTIFIER)):
pass
servicer = Servicer()
- server = getattr(test_pb2, SERVER_FACTORY_IDENTIFIER)(servicer)
+ server = getattr(service_pb2, SERVER_FACTORY_IDENTIFIER)(servicer)
port = server.add_insecure_port('[::]:0')
server.start()
channel = implementations.insecure_channel('localhost', port)
- stub = getattr(test_pb2, STUB_FACTORY_IDENTIFIER)(channel)
- yield servicer_methods, stub
+ stub = getattr(service_pb2, STUB_FACTORY_IDENTIFIER)(channel)
+ yield None, stub
server.stop(0)
-def _streaming_input_request_iterator(test_pb2):
+def _streaming_input_request_iterator(request_pb2, payload_pb2):
for _ in range(3):
- request = test_pb2.StreamingInputCallRequest()
- request.payload.payload_type = test_pb2.COMPRESSABLE
+ request = request_pb2.StreamingInputCallRequest()
+ request.payload.payload_type = payload_pb2.COMPRESSABLE
request.payload.payload_compressable = 'a'
yield request
-def _streaming_output_request(test_pb2):
- request = test_pb2.StreamingOutputCallRequest()
+def _streaming_output_request(request_pb2):
+ request = request_pb2.StreamingOutputCallRequest()
sizes = [1, 2, 3]
request.response_parameters.add(size=sizes[0], interval_us=0)
request.response_parameters.add(size=sizes[1], interval_us=0)
@@ -226,11 +226,11 @@ def _streaming_output_request(test_pb2):
return request
-def _full_duplex_request_iterator(test_pb2):
- request = test_pb2.StreamingOutputCallRequest()
+def _full_duplex_request_iterator(request_pb2):
+ request = request_pb2.StreamingOutputCallRequest()
request.response_parameters.add(size=1, interval_us=0)
yield request
- request = test_pb2.StreamingOutputCallRequest()
+ request = request_pb2.StreamingOutputCallRequest()
request.response_parameters.add(size=2, interval_us=0)
request.response_parameters.add(size=3, interval_us=0)
yield request
@@ -250,8 +250,6 @@ class PythonPluginTest(unittest.TestCase):
protoc_command = 'protoc'
protoc_plugin_filename = distutils.spawn.find_executable(
'grpc_python_plugin')
- test_proto_filename = pkg_resources.resource_filename(
- 'tests.protoc_plugin', 'protoc_plugin_test.proto')
if not os.path.isfile(protoc_command):
# Assume that if we haven't built protoc that it's on the system.
protoc_command = 'protoc'
@@ -259,19 +257,44 @@ class PythonPluginTest(unittest.TestCase):
# Ensure that the output directory exists.
self.outdir = tempfile.mkdtemp()
+ # Find all proto files
+ paths = []
+ root_dir = os.path.dirname(os.path.realpath(__file__))
+ proto_dir = os.path.join(root_dir, 'protos')
+ for walk_root, _, filenames in os.walk(proto_dir):
+ for filename in filenames:
+ if filename.endswith('.proto'):
+ path = os.path.join(walk_root, filename)
+ paths.append(path)
+
# Invoke protoc with the plugin.
cmd = [
protoc_command,
'--plugin=protoc-gen-python-grpc=%s' % protoc_plugin_filename,
- '-I .',
+ '-I %s' % root_dir,
'--python_out=%s' % self.outdir,
- '--python-grpc_out=%s' % self.outdir,
- os.path.basename(test_proto_filename),
- ]
+ '--python-grpc_out=%s' % self.outdir
+ ] + paths
subprocess.check_call(' '.join(cmd), shell=True, env=os.environ,
- cwd=os.path.dirname(test_proto_filename))
+ cwd=os.path.dirname(os.path.realpath(__file__)))
+
+ # Generated proto directories dont include __init__.py, but
+ # these are needed for python package resolution
+ for walk_root, _, _ in os.walk(os.path.join(self.outdir, 'protos')):
+ path = os.path.join(walk_root, '__init__.py')
+ open(path, 'a').close()
+
sys.path.insert(0, self.outdir)
+ import protos.payload.test_payload_pb2 as payload_pb2 # pylint: disable=g-import-not-at-top
+ import protos.requests.r.test_requests_pb2 as request_pb2 # pylint: disable=g-import-not-at-top
+ import protos.responses.test_responses_pb2 as response_pb2 # pylint: disable=g-import-not-at-top
+ import protos.service.test_service_pb2 as service_pb2 # pylint: disable=g-import-not-at-top
+ self._payload_pb2 = payload_pb2
+ self._request_pb2 = request_pb2
+ self._response_pb2 = response_pb2
+ self._service_pb2 = service_pb2
+
def tearDown(self):
try:
shutil.rmtree(self.outdir)
@@ -282,43 +305,40 @@ class PythonPluginTest(unittest.TestCase):
def testImportAttributes(self):
# check that we can access the generated module and its members.
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
- self.assertIsNotNone(getattr(test_pb2, SERVICER_IDENTIFIER, None))
- self.assertIsNotNone(getattr(test_pb2, STUB_IDENTIFIER, None))
- self.assertIsNotNone(getattr(test_pb2, SERVER_FACTORY_IDENTIFIER, None))
- self.assertIsNotNone(getattr(test_pb2, STUB_FACTORY_IDENTIFIER, None))
+ self.assertIsNotNone(
+ getattr(self._service_pb2, SERVICER_IDENTIFIER, None))
+ self.assertIsNotNone(
+ getattr(self._service_pb2, STUB_IDENTIFIER, None))
+ self.assertIsNotNone(
+ getattr(self._service_pb2, SERVER_FACTORY_IDENTIFIER, None))
+ self.assertIsNotNone(
+ getattr(self._service_pb2, STUB_FACTORY_IDENTIFIER, None))
def testUpDown(self):
- import protoc_plugin_test_pb2 as test_pb2
- moves.reload_module(test_pb2)
- with _CreateService(test_pb2) as (servicer, stub):
- request = test_pb2.SimpleRequest(response_size=13)
+ with _CreateService(
+ self._service_pb2, self._response_pb2, self._payload_pb2):
+ self._request_pb2.SimpleRequest(response_size=13)
def testIncompleteServicer(self):
- import protoc_plugin_test_pb2 as test_pb2
- moves.reload_module(test_pb2)
- with _CreateIncompleteService(test_pb2) as (servicer, stub):
- request = test_pb2.SimpleRequest(response_size=13)
+ with _CreateIncompleteService(self._service_pb2) as (_, stub):
+ request = self._request_pb2.SimpleRequest(response_size=13)
try:
- response = stub.UnaryCall(request, test_constants.LONG_TIMEOUT)
+ stub.UnaryCall(request, test_constants.LONG_TIMEOUT)
except face.AbortionError as error:
self.assertEqual(interfaces.StatusCode.UNIMPLEMENTED, error.code)
def testUnaryCall(self):
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
- with _CreateService(test_pb2) as (methods, stub):
- request = test_pb2.SimpleRequest(response_size=13)
+ with _CreateService(self._service_pb2, self._response_pb2,
+ self._payload_pb2) as (methods, stub):
+ request = self._request_pb2.SimpleRequest(response_size=13)
response = stub.UnaryCall(request, test_constants.LONG_TIMEOUT)
expected_response = methods.UnaryCall(request, 'not a real context!')
self.assertEqual(expected_response, response)
def testUnaryCallFuture(self):
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
- request = test_pb2.SimpleRequest(response_size=13)
- with _CreateService(test_pb2) as (methods, stub):
+ with _CreateService(self._service_pb2, self._response_pb2,
+ self._payload_pb2) as (methods, stub):
+ request = self._request_pb2.SimpleRequest(response_size=13)
# Check that the call does not block waiting for the server to respond.
with methods.pause():
response_future = stub.UnaryCall.future(
@@ -328,10 +348,9 @@ class PythonPluginTest(unittest.TestCase):
self.assertEqual(expected_response, response)
def testUnaryCallFutureExpired(self):
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
- with _CreateService(test_pb2) as (methods, stub):
- request = test_pb2.SimpleRequest(response_size=13)
+ with _CreateService(self._service_pb2, self._response_pb2,
+ self._payload_pb2) as (methods, stub):
+ request = self._request_pb2.SimpleRequest(response_size=13)
with methods.pause():
response_future = stub.UnaryCall.future(
request, test_constants.SHORT_TIMEOUT)
@@ -339,30 +358,27 @@ class PythonPluginTest(unittest.TestCase):
response_future.result()
def testUnaryCallFutureCancelled(self):
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
- request = test_pb2.SimpleRequest(response_size=13)
- with _CreateService(test_pb2) as (methods, stub):
+ with _CreateService(self._service_pb2, self._response_pb2,
+ self._payload_pb2) as (methods, stub):
+ request = self._request_pb2.SimpleRequest(response_size=13)
with methods.pause():
response_future = stub.UnaryCall.future(request, 1)
response_future.cancel()
self.assertTrue(response_future.cancelled())
def testUnaryCallFutureFailed(self):
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
- request = test_pb2.SimpleRequest(response_size=13)
- with _CreateService(test_pb2) as (methods, stub):
+ with _CreateService(self._service_pb2, self._response_pb2,
+ self._payload_pb2) as (methods, stub):
+ request = self._request_pb2.SimpleRequest(response_size=13)
with methods.fail():
response_future = stub.UnaryCall.future(
request, test_constants.LONG_TIMEOUT)
self.assertIsNotNone(response_future.exception())
def testStreamingOutputCall(self):
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
- request = _streaming_output_request(test_pb2)
- with _CreateService(test_pb2) as (methods, stub):
+ with _CreateService(self._service_pb2, self._response_pb2,
+ self._payload_pb2) as (methods, stub):
+ request = _streaming_output_request(self._request_pb2)
responses = stub.StreamingOutputCall(
request, test_constants.LONG_TIMEOUT)
expected_responses = methods.StreamingOutputCall(
@@ -372,10 +388,9 @@ class PythonPluginTest(unittest.TestCase):
self.assertEqual(expected_response, response)
def testStreamingOutputCallExpired(self):
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
- request = _streaming_output_request(test_pb2)
- with _CreateService(test_pb2) as (methods, stub):
+ with _CreateService(self._service_pb2, self._response_pb2,
+ self._payload_pb2) as (methods, stub):
+ request = _streaming_output_request(self._request_pb2)
with methods.pause():
responses = stub.StreamingOutputCall(
request, test_constants.SHORT_TIMEOUT)
@@ -383,10 +398,9 @@ class PythonPluginTest(unittest.TestCase):
list(responses)
def testStreamingOutputCallCancelled(self):
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
- request = _streaming_output_request(test_pb2)
- with _CreateService(test_pb2) as (unused_methods, stub):
+ with _CreateService(self._service_pb2, self._response_pb2,
+ self._payload_pb2) as (methods, stub):
+ request = _streaming_output_request(self._request_pb2)
responses = stub.StreamingOutputCall(
request, test_constants.LONG_TIMEOUT)
next(responses)
@@ -395,10 +409,9 @@ class PythonPluginTest(unittest.TestCase):
next(responses)
def testStreamingOutputCallFailed(self):
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
- request = _streaming_output_request(test_pb2)
- with _CreateService(test_pb2) as (methods, stub):
+ with _CreateService(self._service_pb2, self._response_pb2,
+ self._payload_pb2) as (methods, stub):
+ request = _streaming_output_request(self._request_pb2)
with methods.fail():
responses = stub.StreamingOutputCall(request, 1)
self.assertIsNotNone(responses)
@@ -406,36 +419,38 @@ class PythonPluginTest(unittest.TestCase):
next(responses)
def testStreamingInputCall(self):
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
- with _CreateService(test_pb2) as (methods, stub):
+ with _CreateService(self._service_pb2, self._response_pb2,
+ self._payload_pb2) as (methods, stub):
response = stub.StreamingInputCall(
- _streaming_input_request_iterator(test_pb2),
+ _streaming_input_request_iterator(
+ self._request_pb2, self._payload_pb2),
test_constants.LONG_TIMEOUT)
expected_response = methods.StreamingInputCall(
- _streaming_input_request_iterator(test_pb2), 'not a real RpcContext!')
+ _streaming_input_request_iterator(self._request_pb2, self._payload_pb2),
+ 'not a real RpcContext!')
self.assertEqual(expected_response, response)
def testStreamingInputCallFuture(self):
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
- with _CreateService(test_pb2) as (methods, stub):
+ with _CreateService(self._service_pb2, self._response_pb2,
+ self._payload_pb2) as (methods, stub):
with methods.pause():
response_future = stub.StreamingInputCall.future(
- _streaming_input_request_iterator(test_pb2),
+ _streaming_input_request_iterator(
+ self._request_pb2, self._payload_pb2),
test_constants.LONG_TIMEOUT)
response = response_future.result()
expected_response = methods.StreamingInputCall(
- _streaming_input_request_iterator(test_pb2), 'not a real RpcContext!')
+ _streaming_input_request_iterator(self._request_pb2, self._payload_pb2),
+ 'not a real RpcContext!')
self.assertEqual(expected_response, response)
def testStreamingInputCallFutureExpired(self):
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
- with _CreateService(test_pb2) as (methods, stub):
+ with _CreateService(self._service_pb2, self._response_pb2,
+ self._payload_pb2) as (methods, stub):
with methods.pause():
response_future = stub.StreamingInputCall.future(
- _streaming_input_request_iterator(test_pb2),
+ _streaming_input_request_iterator(
+ self._request_pb2, self._payload_pb2),
test_constants.SHORT_TIMEOUT)
with self.assertRaises(face.ExpirationError):
response_future.result()
@@ -443,12 +458,12 @@ class PythonPluginTest(unittest.TestCase):
response_future.exception(), face.ExpirationError)
def testStreamingInputCallFutureCancelled(self):
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
- with _CreateService(test_pb2) as (methods, stub):
+ with _CreateService(self._service_pb2, self._response_pb2,
+ self._payload_pb2) as (methods, stub):
with methods.pause():
response_future = stub.StreamingInputCall.future(
- _streaming_input_request_iterator(test_pb2),
+ _streaming_input_request_iterator(
+ self._request_pb2, self._payload_pb2),
test_constants.LONG_TIMEOUT)
response_future.cancel()
self.assertTrue(response_future.cancelled())
@@ -456,32 +471,32 @@ class PythonPluginTest(unittest.TestCase):
response_future.result()
def testStreamingInputCallFutureFailed(self):
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
- with _CreateService(test_pb2) as (methods, stub):
+ with _CreateService(self._service_pb2, self._response_pb2,
+ self._payload_pb2) as (methods, stub):
with methods.fail():
response_future = stub.StreamingInputCall.future(
- _streaming_input_request_iterator(test_pb2),
+ _streaming_input_request_iterator(
+ self._request_pb2, self._payload_pb2),
test_constants.LONG_TIMEOUT)
self.assertIsNotNone(response_future.exception())
def testFullDuplexCall(self):
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
- with _CreateService(test_pb2) as (methods, stub):
+ with _CreateService(self._service_pb2, self._response_pb2,
+ self._payload_pb2) as (methods, stub):
responses = stub.FullDuplexCall(
- _full_duplex_request_iterator(test_pb2), test_constants.LONG_TIMEOUT)
+ _full_duplex_request_iterator(self._request_pb2),
+ test_constants.LONG_TIMEOUT)
expected_responses = methods.FullDuplexCall(
- _full_duplex_request_iterator(test_pb2), 'not a real RpcContext!')
+ _full_duplex_request_iterator(self._request_pb2),
+ 'not a real RpcContext!')
for expected_response, response in moves.zip_longest(
expected_responses, responses):
self.assertEqual(expected_response, response)
def testFullDuplexCallExpired(self):
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
- request_iterator = _full_duplex_request_iterator(test_pb2)
- with _CreateService(test_pb2) as (methods, stub):
+ request_iterator = _full_duplex_request_iterator(self._request_pb2)
+ with _CreateService(self._service_pb2, self._response_pb2,
+ self._payload_pb2) as (methods, stub):
with methods.pause():
responses = stub.FullDuplexCall(
request_iterator, test_constants.SHORT_TIMEOUT)
@@ -489,10 +504,9 @@ class PythonPluginTest(unittest.TestCase):
list(responses)
def testFullDuplexCallCancelled(self):
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
- with _CreateService(test_pb2) as (methods, stub):
- request_iterator = _full_duplex_request_iterator(test_pb2)
+ with _CreateService(self._service_pb2, self._response_pb2,
+ self._payload_pb2) as (methods, stub):
+ request_iterator = _full_duplex_request_iterator(self._request_pb2)
responses = stub.FullDuplexCall(
request_iterator, test_constants.LONG_TIMEOUT)
next(responses)
@@ -501,10 +515,9 @@ class PythonPluginTest(unittest.TestCase):
next(responses)
def testFullDuplexCallFailed(self):
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
- request_iterator = _full_duplex_request_iterator(test_pb2)
- with _CreateService(test_pb2) as (methods, stub):
+ request_iterator = _full_duplex_request_iterator(self._request_pb2)
+ with _CreateService(self._service_pb2, self._response_pb2,
+ self._payload_pb2) as (methods, stub):
with methods.fail():
responses = stub.FullDuplexCall(
request_iterator, test_constants.LONG_TIMEOUT)
@@ -513,14 +526,13 @@ class PythonPluginTest(unittest.TestCase):
next(responses)
def testHalfDuplexCall(self):
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
- with _CreateService(test_pb2) as (methods, stub):
+ with _CreateService(self._service_pb2, self._response_pb2,
+ self._payload_pb2) as (methods, stub):
def half_duplex_request_iterator():
- request = test_pb2.StreamingOutputCallRequest()
+ request = self._request_pb2.StreamingOutputCallRequest()
request.response_parameters.add(size=1, interval_us=0)
yield request
- request = test_pb2.StreamingOutputCallRequest()
+ request = self._request_pb2.StreamingOutputCallRequest()
request.response_parameters.add(size=2, interval_us=0)
request.response_parameters.add(size=3, interval_us=0)
yield request
@@ -533,8 +545,6 @@ class PythonPluginTest(unittest.TestCase):
self.assertEqual(expected_response, response)
def testHalfDuplexCallWedged(self):
- import protoc_plugin_test_pb2 as test_pb2 # pylint: disable=g-import-not-at-top
- moves.reload_module(test_pb2)
condition = threading.Condition()
wait_cell = [False]
@contextlib.contextmanager
@@ -547,13 +557,14 @@ class PythonPluginTest(unittest.TestCase):
wait_cell[0] = False
condition.notify_all()
def half_duplex_request_iterator():
- request = test_pb2.StreamingOutputCallRequest()
+ request = self._request_pb2.StreamingOutputCallRequest()
request.response_parameters.add(size=1, interval_us=0)
yield request
with condition:
while wait_cell[0]:
condition.wait()
- with _CreateService(test_pb2) as (methods, stub):
+ with _CreateService(self._service_pb2, self._response_pb2,
+ self._payload_pb2) as (methods, stub):
with wait():
responses = stub.HalfDuplexCall(
half_duplex_request_iterator(), test_constants.SHORT_TIMEOUT)
@@ -563,5 +574,5 @@ class PythonPluginTest(unittest.TestCase):
if __name__ == '__main__':
- os.chdir(os.path.dirname(sys.argv[0]))
+ #os.chdir(os.path.dirname(sys.argv[0]))
unittest.main(verbosity=2)
diff --git a/src/python/grpcio/tests/protoc_plugin/protos/payload/test_payload.proto b/src/python/grpcio/tests/protoc_plugin/protos/payload/test_payload.proto
new file mode 100644
index 0000000000..457543aa79
--- /dev/null
+++ b/src/python/grpcio/tests/protoc_plugin/protos/payload/test_payload.proto
@@ -0,0 +1,51 @@
+// 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.
+
+syntax = "proto3";
+
+package grpc_protoc_plugin;
+
+enum PayloadType {
+ // Compressable text format.
+ COMPRESSABLE= 0;
+
+ // Uncompressable binary format.
+ UNCOMPRESSABLE = 1;
+
+ // Randomly chosen from all other formats defined in this enum.
+ RANDOM = 2;
+}
+
+message Payload {
+ PayloadType payload_type = 1;
+ oneof payload_body {
+ string payload_compressable = 2;
+ bytes payload_uncompressable = 3;
+ }
+}
diff --git a/src/python/grpcio/tests/protoc_plugin/protos/requests/r/test_requests.proto b/src/python/grpcio/tests/protoc_plugin/protos/requests/r/test_requests.proto
new file mode 100644
index 0000000000..54105df6a5
--- /dev/null
+++ b/src/python/grpcio/tests/protoc_plugin/protos/requests/r/test_requests.proto
@@ -0,0 +1,77 @@
+// 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.
+
+syntax = "proto3";
+
+import "protos/payload/test_payload.proto";
+
+package grpc_protoc_plugin;
+
+message SimpleRequest {
+ // Desired payload type in the response from the server.
+ // If response_type is RANDOM, server randomly chooses one from other formats.
+ PayloadType response_type = 1;
+
+ // Desired payload size in the response from the server.
+ // If response_type is COMPRESSABLE, this denotes the size before compression.
+ int32 response_size = 2;
+
+ // input payload sent along with the request.
+ Payload payload = 3;
+}
+
+message StreamingInputCallRequest {
+ // input payload sent along with the request.
+ Payload payload = 1;
+
+ // Not expecting any payload from the response.
+}
+
+message ResponseParameters {
+ // Desired payload sizes in responses from the server.
+ // If response_type is COMPRESSABLE, this denotes the size before compression.
+ int32 size = 1;
+
+ // Desired interval between consecutive responses in the response stream in
+ // microseconds.
+ int32 interval_us = 2;
+}
+
+message StreamingOutputCallRequest {
+ // Desired payload type in the response from the server.
+ // If response_type is RANDOM, the payload from each response in the stream
+ // might be of different types. This is to simulate a mixed type of payload
+ // stream.
+ PayloadType response_type = 1;
+
+ repeated ResponseParameters response_parameters = 2;
+
+ // input payload sent along with the request.
+ Payload payload = 3;
+}
diff --git a/src/python/grpcio_health_checking/grpc/health/v1/health.proto b/src/python/grpcio/tests/protoc_plugin/protos/responses/test_responses.proto
index b0bac54be9..734fbda86e 100644
--- a/src/python/grpcio_health_checking/grpc/health/v1/health.proto
+++ b/src/python/grpcio/tests/protoc_plugin/protos/responses/test_responses.proto
@@ -29,21 +29,19 @@
syntax = "proto3";
-package grpc.health.v1;
+import "protos/payload/test_payload.proto";
-message HealthCheckRequest {
- string service = 1;
+package grpc_protoc_plugin;
+
+message SimpleResponse {
+ Payload payload = 1;
}
-message HealthCheckResponse {
- enum ServingStatus {
- UNKNOWN = 0;
- SERVING = 1;
- NOT_SERVING = 2;
- }
- ServingStatus status = 1;
+message StreamingInputCallResponse {
+ // Aggregated size of payloads received from the client.
+ int32 aggregated_payload_size = 1;
}
-service Health {
- rpc Check(HealthCheckRequest) returns (HealthCheckResponse);
+message StreamingOutputCallResponse {
+ Payload payload = 1;
}
diff --git a/src/python/grpcio/tests/protoc_plugin/protoc_plugin_test.proto b/src/python/grpcio/tests/protoc_plugin/protos/service/test_service.proto
index 6762a8e7f3..fe715ee7f9 100644
--- a/src/python/grpcio/tests/protoc_plugin/protoc_plugin_test.proto
+++ b/src/python/grpcio/tests/protoc_plugin/protos/service/test_service.proto
@@ -1,4 +1,4 @@
-// Copyright 2015, Google Inc.
+// Copyright 2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -27,87 +27,12 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-// An integration test service that covers all the method signature permutations
-// of unary/streaming requests/responses.
-// This file is duplicated around the code base. See GitHub issue #526.
-syntax = "proto2";
+syntax = "proto3";
-package grpc_protoc_plugin;
-
-enum PayloadType {
- // Compressable text format.
- COMPRESSABLE= 1;
-
- // Uncompressable binary format.
- UNCOMPRESSABLE = 2;
-
- // Randomly chosen from all other formats defined in this enum.
- RANDOM = 3;
-}
-
-message Payload {
- required PayloadType payload_type = 1;
- oneof payload_body {
- string payload_compressable = 2;
- bytes payload_uncompressable = 3;
- }
-}
-
-message SimpleRequest {
- // Desired payload type in the response from the server.
- // If response_type is RANDOM, server randomly chooses one from other formats.
- optional PayloadType response_type = 1 [default=COMPRESSABLE];
-
- // Desired payload size in the response from the server.
- // If response_type is COMPRESSABLE, this denotes the size before compression.
- optional int32 response_size = 2;
-
- // Optional input payload sent along with the request.
- optional Payload payload = 3;
-}
-
-message SimpleResponse {
- optional Payload payload = 1;
-}
-
-message StreamingInputCallRequest {
- // Optional input payload sent along with the request.
- optional Payload payload = 1;
+import "protos/requests/r/test_requests.proto";
+import "protos/responses/test_responses.proto";
- // Not expecting any payload from the response.
-}
-
-message StreamingInputCallResponse {
- // Aggregated size of payloads received from the client.
- optional int32 aggregated_payload_size = 1;
-}
-
-message ResponseParameters {
- // Desired payload sizes in responses from the server.
- // If response_type is COMPRESSABLE, this denotes the size before compression.
- required int32 size = 1;
-
- // Desired interval between consecutive responses in the response stream in
- // microseconds.
- required int32 interval_us = 2;
-}
-
-message StreamingOutputCallRequest {
- // Desired payload type in the response from the server.
- // If response_type is RANDOM, the payload from each response in the stream
- // might be of different types. This is to simulate a mixed type of payload
- // stream.
- optional PayloadType response_type = 1 [default=COMPRESSABLE];
-
- repeated ResponseParameters response_parameters = 2;
-
- // Optional input payload sent along with the request.
- optional Payload payload = 3;
-}
-
-message StreamingOutputCallResponse {
- optional Payload payload = 1;
-}
+package grpc_protoc_plugin;
service TestService {
// One request followed by one response.
diff --git a/src/python/grpcio/tests/qps/benchmark_client.py b/src/python/grpcio/tests/qps/benchmark_client.py
index eed0b0c6da..b372ea01ad 100644
--- a/src/python/grpcio/tests/qps/benchmark_client.py
+++ b/src/python/grpcio/tests/qps/benchmark_client.py
@@ -39,6 +39,7 @@ except ImportError:
from concurrent import futures
from grpc.beta import implementations
+from grpc.framework.interfaces.face import face
from src.proto.grpc.testing import messages_pb2
from src.proto.grpc.testing import services_pb2
from tests.unit import resources
@@ -141,10 +142,10 @@ class UnaryAsyncBenchmarkClient(BenchmarkClient):
self._stub = None
-class StreamingAsyncBenchmarkClient(BenchmarkClient):
+class StreamingSyncBenchmarkClient(BenchmarkClient):
def __init__(self, server, config, hist):
- super(StreamingAsyncBenchmarkClient, self).__init__(server, config, hist)
+ super(StreamingSyncBenchmarkClient, self).__init__(server, config, hist)
self._is_streaming = False
self._pool = futures.ThreadPoolExecutor(max_workers=1)
# Use a thread-safe queue to put requests on the stream
@@ -167,12 +168,12 @@ class StreamingAsyncBenchmarkClient(BenchmarkClient):
def _request_stream(self):
self._is_streaming = True
if self._generic:
- response_stream = self._stub.inline_stream_stream(
- 'grpc.testing.BenchmarkService', 'StreamingCall',
- self._request_generator(), _TIMEOUT)
+ stream_callable = self._stub.stream_stream(
+ 'grpc.testing.BenchmarkService', 'StreamingCall')
else:
- response_stream = self._stub.StreamingCall(self._request_generator(),
- _TIMEOUT)
+ stream_callable = self._stub.StreamingCall
+
+ response_stream = stream_callable(self._request_generator(), _TIMEOUT)
for _ in response_stream:
end_time = time.time()
self._handle_response(end_time - self._send_time_queue.get_nowait())
@@ -184,3 +185,48 @@ class StreamingAsyncBenchmarkClient(BenchmarkClient):
yield request
except queue.Empty:
pass
+
+
+class AsyncReceiver(face.ResponseReceiver):
+ """Receiver for async stream responses."""
+
+ def __init__(self, send_time_queue, response_handler):
+ self._send_time_queue = send_time_queue
+ self._response_handler = response_handler
+
+ def initial_metadata(self, initial_mdetadata):
+ pass
+
+ def response(self, response):
+ end_time = time.time()
+ self._response_handler(end_time - self._send_time_queue.get_nowait())
+
+ def complete(self, terminal_metadata, code, details):
+ pass
+
+
+class StreamingAsyncBenchmarkClient(BenchmarkClient):
+
+ def __init__(self, server, config, hist):
+ super(StreamingAsyncBenchmarkClient, self).__init__(server, config, hist)
+ self._send_time_queue = queue.Queue()
+ self._receiver = AsyncReceiver(self._send_time_queue, self._handle_response)
+ self._rendezvous = None
+
+ def send_request(self):
+ if self._rendezvous is not None:
+ self._send_time_queue.put(time.time())
+ self._rendezvous.consume(self._request)
+
+ def start(self):
+ if self._generic:
+ stream_callable = self._stub.stream_stream(
+ 'grpc.testing.BenchmarkService', 'StreamingCall')
+ else:
+ stream_callable = self._stub.StreamingCall
+ self._rendezvous = stream_callable.event(
+ self._receiver, lambda *args: None, _TIMEOUT)
+
+ def stop(self):
+ self._rendezvous.terminate()
+ self._rendezvous = None
diff --git a/src/python/grpcio/tests/qps/client_runner.py b/src/python/grpcio/tests/qps/client_runner.py
index a36c30ccc0..1ede7d2af1 100644
--- a/src/python/grpcio/tests/qps/client_runner.py
+++ b/src/python/grpcio/tests/qps/client_runner.py
@@ -89,9 +89,9 @@ class ClosedLoopClientRunner(ClientRunner):
def start(self):
self._is_running = True
+ self._client.start()
for _ in xrange(self._request_count):
self._client.send_request()
- self._client.start()
def stop(self):
self._is_running = False
diff --git a/src/python/grpcio/tests/qps/worker_server.py b/src/python/grpcio/tests/qps/worker_server.py
index 0b3acc14e7..1f9af5482c 100644
--- a/src/python/grpcio/tests/qps/worker_server.py
+++ b/src/python/grpcio/tests/qps/worker_server.py
@@ -146,8 +146,9 @@ class WorkerServer(services_pb2.BetaWorkerServiceServicer):
if config.rpc_type == control_pb2.UNARY:
client = benchmark_client.UnarySyncBenchmarkClient(
server, config, qps_data)
- else:
- raise Exception('STREAMING SYNC client not supported')
+ elif config.rpc_type == control_pb2.STREAMING:
+ client = benchmark_client.StreamingSyncBenchmarkClient(
+ server, config, qps_data)
elif config.client_type == control_pb2.ASYNC_CLIENT:
if config.rpc_type == control_pb2.UNARY:
client = benchmark_client.UnaryAsyncBenchmarkClient(
diff --git a/src/python/grpcio/tests/tests.json b/src/python/grpcio/tests/tests.json
index 84870aaa5c..691062f25a 100644
--- a/src/python/grpcio/tests/tests.json
+++ b/src/python/grpcio/tests/tests.json
@@ -28,7 +28,8 @@
"_face_interface_test.GenericInvokerBlockingInvocationInlineServiceTest",
"_face_interface_test.GenericInvokerFutureInvocationAsynchronousEventServiceTest",
"_face_interface_test.MultiCallableInvokerBlockingInvocationInlineServiceTest",
- "_face_interface_test.MultiCallableInvokerFutureInvocationAsynchronousEventServiceTest",
+ "_face_interface_test.MultiCallableInvokerFutureInvocationAsynchronousEventServiceTest",
+ "_health_servicer_test.HealthServicerTest",
"_implementations_test.ChannelCredentialsTest",
"_insecure_interop_test.InsecureInteropTest",
"_intermediary_low_test.CancellationTest",
@@ -50,4 +51,4 @@
"cygrpc_test.InsecureServerInsecureClient",
"cygrpc_test.SecureServerSecureClient",
"cygrpc_test.TypeSmokeTest"
-] \ No newline at end of file
+]
diff --git a/src/python/grpcio/tests/unit/_cython/_channel_test.py b/src/python/grpcio/tests/unit/_cython/_channel_test.py
index 931cd9083e..3dc7a246ae 100644
--- a/src/python/grpcio/tests/unit/_cython/_channel_test.py
+++ b/src/python/grpcio/tests/unit/_cython/_channel_test.py
@@ -60,7 +60,7 @@ def _create_loop_destroy():
def _in_parallel(behavior, arguments):
threads = tuple(
threading.Thread(target=behavior, args=arguments)
- for _ in range(test_constants.PARALLELISM))
+ for _ in range(test_constants.THREAD_CONCURRENCY))
for thread in threads:
thread.start()
for thread in threads:
diff --git a/src/python/grpcio/tests/unit/_cython/cygrpc_test.py b/src/python/grpcio/tests/unit/_cython/cygrpc_test.py
index 876da88de9..0a511101f0 100644
--- a/src/python/grpcio/tests/unit/_cython/cygrpc_test.py
+++ b/src/python/grpcio/tests/unit/_cython/cygrpc_test.py
@@ -40,6 +40,7 @@ from tests.unit import resources
_SSL_HOST_OVERRIDE = 'foo.test.google.fr'
_CALL_CREDENTIALS_METADATA_KEY = 'call-creds-key'
_CALL_CREDENTIALS_METADATA_VALUE = 'call-creds-value'
+_EMPTY_FLAGS = 0
def _metadata_plugin_callback(context, callback):
callback(cygrpc.Metadata(
@@ -76,7 +77,7 @@ class TypeSmokeTest(unittest.TestCase):
def testOperationsIteration(self):
operations = cygrpc.Operations([
- cygrpc.operation_send_message('asdf')])
+ cygrpc.operation_send_message('asdf', _EMPTY_FLAGS)])
iterator = iter(operations)
operation = next(iterator)
self.assertIsInstance(operation, cygrpc.Operation)
@@ -85,6 +86,11 @@ class TypeSmokeTest(unittest.TestCase):
with self.assertRaises(StopIteration):
next(iterator)
+ def testOperationFlags(self):
+ operation = cygrpc.operation_send_message('asdf',
+ cygrpc.WriteFlag.no_compress)
+ self.assertEqual(cygrpc.WriteFlag.no_compress, operation.flags)
+
def testTimespec(self):
now = time.time()
timespec = cygrpc.Timespec(now)
@@ -188,12 +194,13 @@ class InsecureServerInsecureClient(unittest.TestCase):
CLIENT_METADATA_ASCII_VALUE),
cygrpc.Metadatum(CLIENT_METADATA_BIN_KEY, CLIENT_METADATA_BIN_VALUE)])
client_start_batch_result = client_call.start_batch(cygrpc.Operations([
- cygrpc.operation_send_initial_metadata(client_initial_metadata),
- cygrpc.operation_send_message(REQUEST),
- cygrpc.operation_send_close_from_client(),
- cygrpc.operation_receive_initial_metadata(),
- cygrpc.operation_receive_message(),
- cygrpc.operation_receive_status_on_client()
+ cygrpc.operation_send_initial_metadata(client_initial_metadata,
+ _EMPTY_FLAGS),
+ cygrpc.operation_send_message(REQUEST, _EMPTY_FLAGS),
+ cygrpc.operation_send_close_from_client(_EMPTY_FLAGS),
+ cygrpc.operation_receive_initial_metadata(_EMPTY_FLAGS),
+ cygrpc.operation_receive_message(_EMPTY_FLAGS),
+ cygrpc.operation_receive_status_on_client(_EMPTY_FLAGS)
]), client_call_tag)
self.assertEqual(cygrpc.CallError.ok, client_start_batch_result)
client_event_future = test_utilities.CompletionQueuePollFuture(
@@ -223,12 +230,14 @@ class InsecureServerInsecureClient(unittest.TestCase):
cygrpc.Metadatum(SERVER_TRAILING_METADATA_KEY,
SERVER_TRAILING_METADATA_VALUE)])
server_start_batch_result = server_call.start_batch([
- cygrpc.operation_send_initial_metadata(server_initial_metadata),
- cygrpc.operation_receive_message(),
- cygrpc.operation_send_message(RESPONSE),
- cygrpc.operation_receive_close_on_server(),
+ cygrpc.operation_send_initial_metadata(server_initial_metadata,
+ _EMPTY_FLAGS),
+ cygrpc.operation_receive_message(_EMPTY_FLAGS),
+ cygrpc.operation_send_message(RESPONSE, _EMPTY_FLAGS),
+ cygrpc.operation_receive_close_on_server(_EMPTY_FLAGS),
cygrpc.operation_send_status_from_server(
- server_trailing_metadata, SERVER_STATUS_CODE, SERVER_STATUS_DETAILS)
+ server_trailing_metadata, SERVER_STATUS_CODE,
+ SERVER_STATUS_DETAILS, _EMPTY_FLAGS)
], server_call_tag)
self.assertEqual(cygrpc.CallError.ok, server_start_batch_result)
@@ -349,12 +358,13 @@ class SecureServerSecureClient(unittest.TestCase):
CLIENT_METADATA_ASCII_VALUE),
cygrpc.Metadatum(CLIENT_METADATA_BIN_KEY, CLIENT_METADATA_BIN_VALUE)])
client_start_batch_result = client_call.start_batch(cygrpc.Operations([
- cygrpc.operation_send_initial_metadata(client_initial_metadata),
- cygrpc.operation_send_message(REQUEST),
- cygrpc.operation_send_close_from_client(),
- cygrpc.operation_receive_initial_metadata(),
- cygrpc.operation_receive_message(),
- cygrpc.operation_receive_status_on_client()
+ cygrpc.operation_send_initial_metadata(client_initial_metadata,
+ _EMPTY_FLAGS),
+ cygrpc.operation_send_message(REQUEST, _EMPTY_FLAGS),
+ cygrpc.operation_send_close_from_client(_EMPTY_FLAGS),
+ cygrpc.operation_receive_initial_metadata(_EMPTY_FLAGS),
+ cygrpc.operation_receive_message(_EMPTY_FLAGS),
+ cygrpc.operation_receive_status_on_client(_EMPTY_FLAGS)
]), client_call_tag)
self.assertEqual(cygrpc.CallError.ok, client_start_batch_result)
client_event_future = test_utilities.CompletionQueuePollFuture(
@@ -387,12 +397,14 @@ class SecureServerSecureClient(unittest.TestCase):
cygrpc.Metadatum(SERVER_TRAILING_METADATA_KEY,
SERVER_TRAILING_METADATA_VALUE)])
server_start_batch_result = server_call.start_batch([
- cygrpc.operation_send_initial_metadata(server_initial_metadata),
- cygrpc.operation_receive_message(),
- cygrpc.operation_send_message(RESPONSE),
- cygrpc.operation_receive_close_on_server(),
+ cygrpc.operation_send_initial_metadata(server_initial_metadata,
+ _EMPTY_FLAGS),
+ cygrpc.operation_receive_message(_EMPTY_FLAGS),
+ cygrpc.operation_send_message(RESPONSE, _EMPTY_FLAGS),
+ cygrpc.operation_receive_close_on_server(_EMPTY_FLAGS),
cygrpc.operation_send_status_from_server(
- server_trailing_metadata, SERVER_STATUS_CODE, SERVER_STATUS_DETAILS)
+ server_trailing_metadata, SERVER_STATUS_CODE,
+ SERVER_STATUS_DETAILS, _EMPTY_FLAGS)
], server_call_tag)
self.assertEqual(cygrpc.CallError.ok, server_start_batch_result)
diff --git a/src/python/grpcio/tests/unit/framework/common/test_constants.py b/src/python/grpcio/tests/unit/framework/common/test_constants.py
index 8d89101e09..b6682d396c 100644
--- a/src/python/grpcio/tests/unit/framework/common/test_constants.py
+++ b/src/python/grpcio/tests/unit/framework/common/test_constants.py
@@ -49,8 +49,13 @@ STREAM_LENGTH = 200
# The size of payloads to transmit in tests.
PAYLOAD_SIZE = 256 * 1024 + 17
-# The parallelism to use in tests of parallel RPCs.
-PARALLELISM = 200
+# The concurrency to use in tests of concurrent RPCs that will not create as
+# many threads as RPCs.
+RPC_CONCURRENCY = 200
+
+# The concurrency to use in tests of concurrent RPCs that will create as many
+# threads as RPCs.
+THREAD_CONCURRENCY = 25
# The size of thread pools to use in tests.
POOL_SIZE = 10
diff --git a/src/python/grpcio/tests/unit/framework/interfaces/face/_blocking_invocation_inline_service.py b/src/python/grpcio/tests/unit/framework/interfaces/face/_blocking_invocation_inline_service.py
index 649892463a..e338aaa396 100644
--- a/src/python/grpcio/tests/unit/framework/interfaces/face/_blocking_invocation_inline_service.py
+++ b/src/python/grpcio/tests/unit/framework/interfaces/face/_blocking_invocation_inline_service.py
@@ -146,13 +146,13 @@ class TestCase(six.with_metaclass(abc.ABCMeta, test_coverage.Coverage, unittest.
test_messages.verify(second_request, second_response, self)
def testParallelInvocations(self):
- pool = logging_pool.pool(test_constants.PARALLELISM)
+ pool = logging_pool.pool(test_constants.THREAD_CONCURRENCY)
for (group, method), test_messages_sequence in (
six.iteritems(self._digest.unary_unary_messages_sequences)):
for test_messages in test_messages_sequence:
requests = []
response_futures = []
- for _ in range(test_constants.PARALLELISM):
+ for _ in range(test_constants.THREAD_CONCURRENCY):
request = test_messages.request()
response_future = pool.submit(
self._invoker.blocking(group, method), request,
@@ -168,13 +168,13 @@ class TestCase(six.with_metaclass(abc.ABCMeta, test_coverage.Coverage, unittest.
pool.shutdown(wait=True)
def testWaitingForSomeButNotAllParallelInvocations(self):
- pool = logging_pool.pool(test_constants.PARALLELISM)
+ pool = logging_pool.pool(test_constants.THREAD_CONCURRENCY)
for (group, method), test_messages_sequence in (
six.iteritems(self._digest.unary_unary_messages_sequences)):
for test_messages in test_messages_sequence:
requests = []
response_futures_to_indices = {}
- for index in range(test_constants.PARALLELISM):
+ for index in range(test_constants.THREAD_CONCURRENCY):
request = test_messages.request()
response_future = pool.submit(
self._invoker.blocking(group, method), request,
@@ -184,7 +184,7 @@ class TestCase(six.with_metaclass(abc.ABCMeta, test_coverage.Coverage, unittest.
some_completed_response_futures_iterator = itertools.islice(
futures.as_completed(response_futures_to_indices),
- test_constants.PARALLELISM // 2)
+ test_constants.THREAD_CONCURRENCY // 2)
for response_future in some_completed_response_futures_iterator:
index = response_futures_to_indices[response_future]
test_messages.verify(requests[index], response_future.result(), self)
diff --git a/src/python/grpcio/tests/unit/framework/interfaces/face/_future_invocation_asynchronous_event_service.py b/src/python/grpcio/tests/unit/framework/interfaces/face/_future_invocation_asynchronous_event_service.py
index c3813d5f3a..791620307b 100644
--- a/src/python/grpcio/tests/unit/framework/interfaces/face/_future_invocation_asynchronous_event_service.py
+++ b/src/python/grpcio/tests/unit/framework/interfaces/face/_future_invocation_asynchronous_event_service.py
@@ -249,7 +249,7 @@ class TestCase(six.with_metaclass(abc.ABCMeta, test_coverage.Coverage, unittest.
for test_messages in test_messages_sequence:
requests = []
response_futures = []
- for _ in range(test_constants.PARALLELISM):
+ for _ in range(test_constants.THREAD_CONCURRENCY):
request = test_messages.request()
response_future = self._invoker.future(group, method)(
request, test_constants.LONG_TIMEOUT)
@@ -263,13 +263,13 @@ class TestCase(six.with_metaclass(abc.ABCMeta, test_coverage.Coverage, unittest.
test_messages.verify(request, response, self)
def testWaitingForSomeButNotAllParallelInvocations(self):
- pool = logging_pool.pool(test_constants.PARALLELISM)
+ pool = logging_pool.pool(test_constants.THREAD_CONCURRENCY)
for (group, method), test_messages_sequence in (
six.iteritems(self._digest.unary_unary_messages_sequences)):
for test_messages in test_messages_sequence:
requests = []
response_futures_to_indices = {}
- for index in range(test_constants.PARALLELISM):
+ for index in range(test_constants.THREAD_CONCURRENCY):
request = test_messages.request()
inner_response_future = self._invoker.future(group, method)(
request, test_constants.LONG_TIMEOUT)
@@ -279,7 +279,7 @@ class TestCase(six.with_metaclass(abc.ABCMeta, test_coverage.Coverage, unittest.
some_completed_response_futures_iterator = itertools.islice(
futures.as_completed(response_futures_to_indices),
- test_constants.PARALLELISM // 2)
+ test_constants.THREAD_CONCURRENCY // 2)
for response_future in some_completed_response_futures_iterator:
index = response_futures_to_indices[response_future]
test_messages.verify(requests[index], response_future.result(), self)
diff --git a/src/python/grpcio_health_checking/.gitignore b/src/python/grpcio_health_checking/.gitignore
new file mode 100644
index 0000000000..85af466886
--- /dev/null
+++ b/src/python/grpcio_health_checking/.gitignore
@@ -0,0 +1,5 @@
+*.proto
+*_pb2.py
+build/
+grpcio_health_checking.egg-info/
+dist/
diff --git a/src/python/grpcio_health_checking/MANIFEST.in b/src/python/grpcio_health_checking/MANIFEST.in
index 498b55f20a..7d26647697 100644
--- a/src/python/grpcio_health_checking/MANIFEST.in
+++ b/src/python/grpcio_health_checking/MANIFEST.in
@@ -1,2 +1,3 @@
-graft grpc
-include commands.py
+include health_commands.py
+graft grpc_health
+global-exclude *.pyc
diff --git a/src/python/grpcio_health_checking/grpc/health/v1/health.py b/src/python/grpcio_health_checking/grpc/health/v1/health.py
deleted file mode 100644
index 4b5af15aa6..0000000000
--- a/src/python/grpcio_health_checking/grpc/health/v1/health.py
+++ /dev/null
@@ -1,129 +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.
-
-"""Reference implementation for health checking in gRPC Python."""
-
-import abc
-import enum
-import threading
-
-from grpc.health.v1 import health_pb2
-
-
-@enum.unique
-class HealthStatus(enum.Enum):
- """Statuses for a service mirroring the reference health.proto's values."""
- UNKNOWN = health_pb2.HealthCheckResponse.UNKNOWN
- SERVING = health_pb2.HealthCheckResponse.SERVING
- NOT_SERVING = health_pb2.HealthCheckResponse.NOT_SERVING
-
-
-class _HealthServicer(health_pb2.EarlyAdopterHealthServicer):
- """Servicer handling RPCs for service statuses."""
-
- def __init__(self):
- self._server_status_lock = threading.Lock()
- self._server_status = {}
-
- def Check(self, request, context):
- with self._server_status_lock:
- if request.service not in self._server_status:
- # TODO(atash): once the Python API has a way of setting the server
- # status, bring us into conformance with the health check spec by
- # returning the NOT_FOUND status here.
- raise NotImplementedError()
- else:
- return health_pb2.HealthCheckResponse(
- status=self._server_status[request.service].value)
-
- def set(service, status):
- if not isinstance(status, HealthStatus):
- raise TypeError('expected grpc.health.v1.health.HealthStatus '
- 'for argument `status` but got {}'.format(status))
- with self._server_status_lock:
- self._server_status[service] = status
-
-
-class HealthServer(health_pb2.EarlyAdopterHealthServer):
- """Interface for the reference gRPC Python health server."""
- __metaclass__ = abc.ABCMeta
-
- @abc.abstractmethod
- def start(self):
- raise NotImplementedError()
-
- @abc.abstractmethod
- def stop(self):
- raise NotImplementedError()
-
- @abc.abstractmethod
- def set(self, service, status):
- """Set the status of the given service.
-
- Args:
- service (str): service name of the service to set the reported status of
- status (HealthStatus): status to set for the specified service
- """
- raise NotImplementedError()
-
-
-class _HealthServerImplementation(HealthServer):
- """Implementation for the reference gRPC Python health server."""
-
- def __init__(self, server, servicer):
- self._server = server
- self._servicer = servicer
-
- def start(self):
- self._server.start()
-
- def stop(self):
- self._server.stop()
-
- def set(self, service, status):
- self._servicer.set(service, status)
-
-
-def create_Health_server(port, private_key=None, certificate_chain=None):
- """Get a HealthServer instance.
-
- Args:
- port (int): port number passed through to health_pb2 server creation
- routine.
- private_key (str): to-be-created server's desired private key
- certificate_chain (str): to-be-created server's desired certificate chain
-
- Returns:
- An instance of HealthServer (conforming thus to
- EarlyAdopterHealthServer and providing a method to set server status)."""
- servicer = _HealthServicer()
- server = health_pb2.early_adopter_create_Health_server(
- servicer, port=port, private_key=private_key,
- certificate_chain=certificate_chain)
- return _HealthServerImplementation(server, servicer)
diff --git a/src/python/grpcio_health_checking/grpc/__init__.py b/src/python/grpcio_health_checking/grpc_health/__init__.py
index 7086519106..7086519106 100644
--- a/src/python/grpcio_health_checking/grpc/__init__.py
+++ b/src/python/grpcio_health_checking/grpc_health/__init__.py
diff --git a/src/python/grpcio_health_checking/grpc/health/__init__.py b/src/python/grpcio_health_checking/grpc_health/health/__init__.py
index 7086519106..7086519106 100644
--- a/src/python/grpcio_health_checking/grpc/health/__init__.py
+++ b/src/python/grpcio_health_checking/grpc_health/health/__init__.py
diff --git a/src/python/grpcio_health_checking/grpc/health/v1/__init__.py b/src/python/grpcio_health_checking/grpc_health/health/v1/__init__.py
index 7086519106..7086519106 100644
--- a/src/python/grpcio_health_checking/grpc/health/v1/__init__.py
+++ b/src/python/grpcio_health_checking/grpc_health/health/v1/__init__.py
diff --git a/src/python/grpcio_health_checking/grpc_health/health/v1/health.py b/src/python/grpcio_health_checking/grpc_health/health/v1/health.py
new file mode 100644
index 0000000000..8da60c70cb
--- /dev/null
+++ b/src/python/grpcio_health_checking/grpc_health/health/v1/health.py
@@ -0,0 +1,66 @@
+# 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.
+
+"""Reference implementation for health checking in gRPC Python."""
+
+import threading
+
+from grpc_health.health.v1 import health_pb2
+
+
+class HealthServicer(health_pb2.BetaHealthServicer):
+ """Servicer handling RPCs for service statuses."""
+
+ def __init__(self):
+ self._server_status_lock = threading.Lock()
+ self._server_status = {}
+
+ def Check(self, request, context):
+ with self._server_status_lock:
+ if request.service not in self._server_status:
+ # TODO(atash): once the Python API has a way of setting the server
+ # status, bring us into conformance with the health check spec by
+ # returning the NOT_FOUND status here.
+ raise NotImplementedError()
+ else:
+ return health_pb2.HealthCheckResponse(
+ status=self._server_status[request.service])
+
+ def set(self, service, status):
+ """Sets the status of a service.
+
+ Args:
+ service: string, the name of the service.
+ NOTE, '' must be set.
+ status: HealthCheckResponse.status enum value indicating
+ the status of the service
+ """
+ with self._server_status_lock:
+ self._server_status[service] = status
+
diff --git a/src/python/grpcio_health_checking/commands.py b/src/python/grpcio_health_checking/health_commands.py
index 3f4ea6e22f..631066f331 100644
--- a/src/python/grpcio_health_checking/commands.py
+++ b/src/python/grpcio_health_checking/health_commands.py
@@ -33,11 +33,16 @@ import distutils
import glob
import os
import os.path
+import shutil
import subprocess
import sys
import setuptools
from setuptools.command import build_py
+from setuptools.command import sdist
+
+ROOT_DIR = os.path.abspath(os.path.dirname(os.path.abspath(__file__)))
+HEALTH_PROTO = os.path.join(ROOT_DIR, '../../proto/grpc/health/v1/health.proto')
class BuildProtoModules(setuptools.Command):
@@ -76,9 +81,34 @@ class BuildProtoModules(setuptools.Command):
raise Exception('{}\nOutput:\n{}'.format(e.message, e.output))
+class CopyProtoModules(setuptools.Command):
+ """Command to copy proto modules from grpc/src/proto."""
+
+ def initialize_options(self):
+ pass
+
+ def finalize_options(self):
+ pass
+
+ def run(self):
+ if os.path.isfile(HEALTH_PROTO):
+ shutil.copyfile(
+ HEALTH_PROTO,
+ os.path.join(ROOT_DIR, 'grpc_health/health/v1/health.proto'))
+
+
class BuildPy(build_py.build_py):
"""Custom project build command."""
def run(self):
+ self.run_command('copy_proto_modules')
self.run_command('build_proto_modules')
build_py.build_py.run(self)
+
+
+class SDist(sdist.sdist):
+ """Custom project build command."""
+
+ def run(self):
+ self.run_command('copy_proto_modules')
+ sdist.sdist.run(self)
diff --git a/src/python/grpcio_health_checking/setup.py b/src/python/grpcio_health_checking/setup.py
index 35253ba312..d68a7ced8e 100644
--- a/src/python/grpcio_health_checking/setup.py
+++ b/src/python/grpcio_health_checking/setup.py
@@ -40,7 +40,7 @@ import setuptools
os.chdir(os.path.dirname(os.path.abspath(__file__)))
# Break import-style to ensure we can actually find our commands module.
-import commands
+import health_commands
_PACKAGES = (
setuptools.find_packages('.')
@@ -51,22 +51,21 @@ _PACKAGE_DIRECTORIES = {
}
_INSTALL_REQUIRES = (
- 'grpcio>=0.11.0b0',
+ 'grpcio>=0.13.1',
)
-_SETUP_REQUIRES = _INSTALL_REQUIRES
-
_COMMAND_CLASS = {
- 'build_proto_modules': commands.BuildProtoModules,
- 'build_py': commands.BuildPy,
+ 'copy_proto_modules': health_commands.CopyProtoModules,
+ 'build_proto_modules': health_commands.BuildProtoModules,
+ 'build_py': health_commands.BuildPy,
+ 'sdist': health_commands.SDist,
}
setuptools.setup(
name='grpcio_health_checking',
- version='0.11.0b0',
+ version='0.14.0b0',
packages=list(_PACKAGES),
package_dir=_PACKAGE_DIRECTORIES,
install_requires=_INSTALL_REQUIRES,
- setup_requires=_SETUP_REQUIRES,
cmdclass=_COMMAND_CLASS
)
diff --git a/src/ruby/ext/grpc/rb_completion_queue.c b/src/ruby/ext/grpc/rb_completion_queue.c
index 4bb615f8be..b6ddbe88dc 100644
--- a/src/ruby/ext/grpc/rb_completion_queue.c
+++ b/src/ruby/ext/grpc/rb_completion_queue.c
@@ -52,21 +52,41 @@ typedef struct next_call_stack {
grpc_event event;
gpr_timespec timeout;
void *tag;
+ volatile int interrupted;
} next_call_stack;
/* Calls grpc_completion_queue_next without holding the ruby GIL */
static void *grpc_rb_completion_queue_next_no_gil(void *param) {
next_call_stack *const next_call = (next_call_stack*)param;
- next_call->event =
- grpc_completion_queue_next(next_call->cq, next_call->timeout, NULL);
+ gpr_timespec increment = gpr_time_from_millis(20, GPR_TIMESPAN);
+ gpr_timespec deadline;
+ do {
+ deadline = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), increment);
+ next_call->event = grpc_completion_queue_next(next_call->cq,
+ deadline, NULL);
+ if (next_call->event.type != GRPC_QUEUE_TIMEOUT ||
+ gpr_time_cmp(deadline, next_call->timeout) > 0) {
+ break;
+ }
+ } while (!next_call->interrupted);
return NULL;
}
/* Calls grpc_completion_queue_pluck without holding the ruby GIL */
static void *grpc_rb_completion_queue_pluck_no_gil(void *param) {
next_call_stack *const next_call = (next_call_stack*)param;
- next_call->event = grpc_completion_queue_pluck(next_call->cq, next_call->tag,
- next_call->timeout, NULL);
+ gpr_timespec increment = gpr_time_from_millis(20, GPR_TIMESPAN);
+ gpr_timespec deadline;
+ do {
+ deadline = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), increment);
+ next_call->event = grpc_completion_queue_pluck(next_call->cq,
+ next_call->tag,
+ deadline, NULL);
+ if (next_call->event.type != GRPC_QUEUE_TIMEOUT ||
+ gpr_time_cmp(deadline, next_call->timeout) > 0) {
+ break;
+ }
+ } while (!next_call->interrupted);
return NULL;
}
@@ -139,6 +159,11 @@ static VALUE grpc_rb_completion_queue_alloc(VALUE cls) {
return TypedData_Wrap_Struct(cls, &grpc_rb_completion_queue_data_type, cq);
}
+static void unblock_func(void *param) {
+ next_call_stack *const next_call = (next_call_stack*)param;
+ next_call->interrupted = 1;
+}
+
/* Blocks until the next event for given tag is available, and returns the
* event. */
grpc_event grpc_rb_completion_queue_pluck_event(VALUE self, VALUE tag,
@@ -158,8 +183,23 @@ grpc_event grpc_rb_completion_queue_pluck_event(VALUE self, VALUE tag,
next_call.tag = ROBJECT(tag);
}
next_call.event.type = GRPC_QUEUE_TIMEOUT;
- rb_thread_call_without_gvl(grpc_rb_completion_queue_pluck_no_gil,
- (void *)&next_call, NULL, NULL);
+ /* Loop until we finish a pluck without an interruption. The internal
+ pluck function runs either until it is interrupted or it gets an
+ event, or time runs out.
+
+ The basic reason we need this relatively complicated construction is that
+ we need to re-acquire the GVL when an interrupt comes in, so that the ruby
+ interpreter can do what it needs to do with the interrupt. But we also need
+ to get back to plucking when the interrupt has been handled. */
+ do {
+ next_call.interrupted = 0;
+ rb_thread_call_without_gvl(grpc_rb_completion_queue_pluck_no_gil,
+ (void *)&next_call, unblock_func,
+ (void *)&next_call);
+ /* If an interrupt prevented pluck from returning useful information, then
+ any plucks that did complete must have timed out */
+ } while (next_call.interrupted &&
+ next_call.event.type == GRPC_QUEUE_TIMEOUT);
return next_call.event;
}
diff --git a/src/ruby/ext/grpc/rb_completion_queue.h b/src/ruby/ext/grpc/rb_completion_queue.h
index 6cc4e96589..42de43c3fb 100644
--- a/src/ruby/ext/grpc/rb_completion_queue.h
+++ b/src/ruby/ext/grpc/rb_completion_queue.h
@@ -46,7 +46,7 @@ grpc_completion_queue *grpc_rb_get_wrapped_completion_queue(VALUE v);
*
* This avoids having code that holds the GIL repeated at multiple sites.
*/
-grpc_event grpc_rb_completion_queue_pluck_event(VALUE cqueue, VALUE tag,
+grpc_event grpc_rb_completion_queue_pluck_event(VALUE self, VALUE tag,
VALUE timeout);
/* Initializes the CompletionQueue class. */
diff --git a/src/ruby/ext/grpc/rb_grpc.c b/src/ruby/ext/grpc/rb_grpc.c
index 5277148fc9..06a07ac646 100644
--- a/src/ruby/ext/grpc/rb_grpc.c
+++ b/src/ruby/ext/grpc/rb_grpc.c
@@ -50,7 +50,6 @@
#include "rb_loader.h"
#include "rb_server.h"
#include "rb_server_credentials.h"
-#include "rb_signal.h"
static VALUE grpc_rb_cTimeVal = Qnil;
@@ -333,7 +332,6 @@ void Init_grpc_c() {
Init_grpc_channel_credentials();
Init_grpc_server();
Init_grpc_server_credentials();
- Init_grpc_signals();
Init_grpc_status_codes();
Init_grpc_time_consts();
}
diff --git a/src/ruby/ext/grpc/rb_grpc_imports.generated.c b/src/ruby/ext/grpc/rb_grpc_imports.generated.c
index bc43f9d36b..cebbe8c40f 100644
--- a/src/ruby/ext/grpc/rb_grpc_imports.generated.c
+++ b/src/ruby/ext/grpc/rb_grpc_imports.generated.c
@@ -125,6 +125,7 @@ grpc_header_key_is_legal_type grpc_header_key_is_legal_import;
grpc_header_nonbin_value_is_legal_type grpc_header_nonbin_value_is_legal_import;
grpc_is_binary_header_type grpc_is_binary_header_import;
grpc_call_error_to_string_type grpc_call_error_to_string_import;
+grpc_cronet_secure_channel_create_type grpc_cronet_secure_channel_create_import;
grpc_auth_property_iterator_next_type grpc_auth_property_iterator_next_import;
grpc_auth_context_property_iterator_type grpc_auth_context_property_iterator_import;
grpc_auth_context_peer_identity_type grpc_auth_context_peer_identity_import;
@@ -391,6 +392,7 @@ void grpc_rb_load_imports(HMODULE library) {
grpc_header_nonbin_value_is_legal_import = (grpc_header_nonbin_value_is_legal_type) GetProcAddress(library, "grpc_header_nonbin_value_is_legal");
grpc_is_binary_header_import = (grpc_is_binary_header_type) GetProcAddress(library, "grpc_is_binary_header");
grpc_call_error_to_string_import = (grpc_call_error_to_string_type) GetProcAddress(library, "grpc_call_error_to_string");
+ grpc_cronet_secure_channel_create_import = (grpc_cronet_secure_channel_create_type) GetProcAddress(library, "grpc_cronet_secure_channel_create");
grpc_auth_property_iterator_next_import = (grpc_auth_property_iterator_next_type) GetProcAddress(library, "grpc_auth_property_iterator_next");
grpc_auth_context_property_iterator_import = (grpc_auth_context_property_iterator_type) GetProcAddress(library, "grpc_auth_context_property_iterator");
grpc_auth_context_peer_identity_import = (grpc_auth_context_peer_identity_type) GetProcAddress(library, "grpc_auth_context_peer_identity");
diff --git a/src/ruby/ext/grpc/rb_grpc_imports.generated.h b/src/ruby/ext/grpc/rb_grpc_imports.generated.h
index b67361ca25..d7ea6c574c 100644
--- a/src/ruby/ext/grpc/rb_grpc_imports.generated.h
+++ b/src/ruby/ext/grpc/rb_grpc_imports.generated.h
@@ -43,6 +43,7 @@
#include <grpc/census.h>
#include <grpc/compression.h>
#include <grpc/grpc.h>
+#include <grpc/grpc_cronet.h>
#include <grpc/grpc_security.h>
#include <grpc/impl/codegen/alloc.h>
#include <grpc/impl/codegen/byte_buffer.h>
@@ -325,6 +326,9 @@ extern grpc_is_binary_header_type grpc_is_binary_header_import;
typedef const char *(*grpc_call_error_to_string_type)(grpc_call_error error);
extern grpc_call_error_to_string_type grpc_call_error_to_string_import;
#define grpc_call_error_to_string grpc_call_error_to_string_import
+typedef grpc_channel *(*grpc_cronet_secure_channel_create_type)(void *engine, const char *target, const grpc_channel_args *args, void *reserved);
+extern grpc_cronet_secure_channel_create_type grpc_cronet_secure_channel_create_import;
+#define grpc_cronet_secure_channel_create grpc_cronet_secure_channel_create_import
typedef const grpc_auth_property *(*grpc_auth_property_iterator_next_type)(grpc_auth_property_iterator *it);
extern grpc_auth_property_iterator_next_type grpc_auth_property_iterator_next_import;
#define grpc_auth_property_iterator_next grpc_auth_property_iterator_next_import
diff --git a/src/ruby/ext/grpc/rb_server.c b/src/ruby/ext/grpc/rb_server.c
index 2b3acaaf59..0899feb685 100644
--- a/src/ruby/ext/grpc/rb_server.c
+++ b/src/ruby/ext/grpc/rb_server.c
@@ -60,6 +60,7 @@ typedef struct grpc_rb_server {
VALUE mark;
/* The actual server */
grpc_server *wrapped;
+ grpc_completion_queue *queue;
} grpc_rb_server;
/* Destroys server instances. */
@@ -145,6 +146,7 @@ static VALUE grpc_rb_server_init(VALUE self, VALUE cqueue, VALUE channel_args) {
}
grpc_server_register_completion_queue(srv, cq, NULL);
wrapper->wrapped = srv;
+ wrapper->queue = cq;
/* Add the cq as the server's mark object. This ensures the ruby cq can't be
GCed before the server */
diff --git a/src/ruby/lib/grpc.rb b/src/ruby/lib/grpc.rb
index 7c9aae30e9..79fa705b1c 100644
--- a/src/ruby/lib/grpc.rb
+++ b/src/ruby/lib/grpc.rb
@@ -33,7 +33,6 @@ require_relative 'grpc/errors'
require_relative 'grpc/grpc'
require_relative 'grpc/logconfig'
require_relative 'grpc/notifier'
-require_relative 'grpc/signals'
require_relative 'grpc/version'
require_relative 'grpc/core/time_consts'
require_relative 'grpc/generic/active_call'
@@ -48,5 +47,3 @@ begin
ensure
file.close
end
-
-GRPC::Signals.wait_for_signals
diff --git a/src/ruby/lib/grpc/generic/active_call.rb b/src/ruby/lib/grpc/generic/active_call.rb
index fd20a86144..7fe588bd4c 100644
--- a/src/ruby/lib/grpc/generic/active_call.rb
+++ b/src/ruby/lib/grpc/generic/active_call.rb
@@ -30,7 +30,6 @@
require 'forwardable'
require 'weakref'
require_relative 'bidi_call'
-require_relative '../signals'
class Struct
# BatchResult is the struct returned by calls to call#start_batch.
@@ -123,10 +122,6 @@ module GRPC
@unmarshal = unmarshal
@metadata_tag = metadata_tag
@op_notifier = nil
- weak_self = WeakRef.new(self)
- remove_handler = GRPC::Signals.register_handler(&weak_self
- .method(:cancel))
- ObjectSpace.define_finalizer(self, remove_handler)
end
# output_metadata are provides access to hash that can be used to
diff --git a/src/ruby/lib/grpc/generic/client_stub.rb b/src/ruby/lib/grpc/generic/client_stub.rb
index 68e167a69f..12946fe819 100644
--- a/src/ruby/lib/grpc/generic/client_stub.rb
+++ b/src/ruby/lib/grpc/generic/client_stub.rb
@@ -49,7 +49,12 @@ module GRPC
fail(TypeError, '!Channel') unless alt_chan.is_a?(Core::Channel)
return alt_chan
end
- kw['grpc.primary_user_agent'] = "grpc-ruby/#{VERSION}"
+ if kw['grpc.primary_user_agent'].nil?
+ kw['grpc.primary_user_agent'] = ''
+ else
+ kw['grpc.primary_user_agent'] += ' '
+ end
+ kw['grpc.primary_user_agent'] += "grpc-ruby/#{VERSION}"
unless creds.is_a?(Core::ChannelCredentials) || creds.is_a?(Symbol)
fail(TypeError, '!ChannelCredentials or Symbol')
end
diff --git a/src/ruby/lib/grpc/generic/rpc_server.rb b/src/ruby/lib/grpc/generic/rpc_server.rb
index 238aaa9656..e1496d491a 100644
--- a/src/ruby/lib/grpc/generic/rpc_server.rb
+++ b/src/ruby/lib/grpc/generic/rpc_server.rb
@@ -28,7 +28,6 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
require_relative '../grpc'
-require_relative '../signals'
require_relative 'active_call'
require_relative 'service'
require 'thread'
@@ -353,10 +352,7 @@ module GRPC
transition_running_state(:running)
@run_cond.broadcast
end
- remove_signal_handler = GRPC::Signals.register_handler { stop }
loop_handle_server_calls
- # Remove signal handler when server stops
- remove_signal_handler.call
end
alias_method :run_till_terminated, :run
diff --git a/src/ruby/tools/grpc-tools.gemspec b/src/ruby/tools/grpc-tools.gemspec
index af904de4a9..9fa4b66392 100644
--- a/src/ruby/tools/grpc-tools.gemspec
+++ b/src/ruby/tools/grpc-tools.gemspec
@@ -18,5 +18,5 @@ Gem::Specification.new do |s|
s.platform = Gem::Platform::RUBY
- s.executables = %w( protoc.rb protoc_grpc_ruby_plugin.rb )
+ s.executables = %w( grpc_tools_ruby_protoc.rb grpc_tools_ruby_protoc_plugin.rb )
end
diff --git a/templates/package.json.template b/templates/package.json.template
index 11718b1ccb..9d19ca0629 100644
--- a/templates/package.json.template
+++ b/templates/package.json.template
@@ -69,6 +69,8 @@
"src/node/ext",
"include/grpc",
"src/core",
+ "src/boringssl",
+ "src/zlib",
"third_party/nanopb",
"third_party/zlib",
"third_party/boringssl",
diff --git a/templates/package.xml.template b/templates/package.xml.template
index 63132dac94..85f9a7d19e 100644
--- a/templates/package.xml.template
+++ b/templates/package.xml.template
@@ -12,7 +12,7 @@
<email>grpc-packages@google.com</email>
<active>yes</active>
</lead>
- <date>2016-04-19</date>
+ <date>2016-05-19</date>
<time>16:06:07</time>
<version>
<release>${settings.php_version.php()}</release>
@@ -24,7 +24,7 @@
</stability>
<license>BSD</license>
<notes>
- - destroy grpc_byte_buffer after startBatch #6096
+ - TBD
</notes>
<contents>
<dir baseinstalldir="/" name="/">
@@ -172,8 +172,8 @@
</release>
<release>
<version>
- <release>${settings.php_version.php()}</release>
- <api>${settings.php_version.php()}</api>
+ <release>0.14.0</release>
+ <api>0.14.0</api>
</version>
<stability>
<release>beta</release>
@@ -185,5 +185,35 @@
- destroy grpc_byte_buffer after startBatch #6096
</notes>
</release>
+ <release>
+ <version>
+ <release>0.14.2</release>
+ <api>0.14.2</api>
+ </version>
+ <stability>
+ <release>beta</release>
+ <api>beta</api>
+ </stability>
+ <date>2016-05-18</date>
+ <license>BSD</license>
+ <notes>
+ - Updated functions with TSRM macros for ZTS support #6607
+ </notes>
+ </release>
+ <release>
+ <version>
+ <release>${settings.php_version.php()}</release>
+ <api>${settings.php_version.php()}</api>
+ </version>
+ <stability>
+ <release>beta</release>
+ <api>beta</api>
+ </stability>
+ <date>2016-05-19</date>
+ <license>BSD</license>
+ <notes>
+ - TBD
+ </notes>
+ </release>
</changelog>
</package>
diff --git a/templates/src/csharp/build_packages.bat.template b/templates/src/csharp/build_packages.bat.template
index 3b445a8ac9..93a3531abc 100644
--- a/templates/src/csharp/build_packages.bat.template
+++ b/templates/src/csharp/build_packages.bat.template
@@ -1,5 +1,34 @@
%YAML 1.2
--- |
+ @rem Copyright 2016, Google Inc.
+ @rem All rights reserved.
+ @rem
+ @rem Redistribution and use in source and binary forms, with or without
+ @rem modification, are permitted provided that the following conditions are
+ @rem met:
+ @rem
+ @rem * Redistributions of source code must retain the above copyright
+ @rem notice, this list of conditions and the following disclaimer.
+ @rem * Redistributions in binary form must reproduce the above
+ @rem copyright notice, this list of conditions and the following disclaimer
+ @rem in the documentation and/or other materials provided with the
+ @rem distribution.
+ @rem * Neither the name of Google Inc. nor the names of its
+ @rem contributors may be used to endorse or promote products derived from
+ @rem this software without specific prior written permission.
+ @rem
+ @rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ @rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ @rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ @rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ @rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ @rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ @rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ @rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ @rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ @rem (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ @rem OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
@rem Builds gRPC NuGet packages
@rem Current package versions
diff --git a/templates/src/python/grpcio/grpc/_cython/imports.generated.h.template b/templates/src/python/grpcio/grpc/_cython/imports.generated.h.template
index 8e7c183180..26e717e58d 100644
--- a/templates/src/python/grpcio/grpc/_cython/imports.generated.h.template
+++ b/templates/src/python/grpcio/grpc/_cython/imports.generated.h.template
@@ -64,14 +64,15 @@
#else /* !GPR_WIN32 */
- #include <grpc/support/alloc.h>
- #include <grpc/support/slice.h>
- #include <grpc/support/time.h>
- #include <grpc/status.h>
#include <grpc/byte_buffer.h>
#include <grpc/byte_buffer_reader.h>
+ #include <grpc/compression.h>
#include <grpc/grpc.h>
#include <grpc/grpc_security.h>
+ #include <grpc/support/alloc.h>
+ #include <grpc/support/slice.h>
+ #include <grpc/support/time.h>
+ #include <grpc/status.h>
#endif /* !GPR_WIN32 */
diff --git a/test/core/bad_client/tests/large_metadata.c b/test/core/bad_client/tests/large_metadata.c
index 1a8d2a2987..b7d329cb74 100644
--- a/test/core/bad_client/tests/large_metadata.c
+++ b/test/core/bad_client/tests/large_metadata.c
@@ -36,10 +36,16 @@
#include <string.h>
#include <grpc/support/alloc.h>
+#include <grpc/support/string_util.h>
+#include "src/core/lib/support/string.h"
#include "src/core/lib/surface/server.h"
#include "test/core/end2end/cq_verifier.h"
-#define PFX_TOO_MUCH_METADATA_FROM_CLIENT_STR \
+// The large-metadata headers that we're adding for this test are not
+// actually appended to this in a single string, since the string would
+// be longer than the C99 string literal limit. Instead, we dynamically
+// construct it by adding the large headers one at a time.
+#define PFX_TOO_MUCH_METADATA_FROM_CLIENT_PREFIX_STR \
"PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" /* settings frame */ \
"\x00\x00\x00\x04\x00\x00\x00\x00\x00" /* headers: generated from \
large_metadata.headers in this \
@@ -55,292 +61,26 @@
"application/grpc" \
"\x10\x14grpc-accept-encoding\x15identity,deflate,gzip" \
"\x10\x02te\x08trailers" \
- "\x10\x0auser-agent\"bad-client grpc-c/0.12.0.0 (linux)" \
- "\x10\x0duser-header00~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header01~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header02~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header03~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header04~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header05~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header06~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header07~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header08~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header09~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header10~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header11~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header12~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header13~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header14~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header15~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header16~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header17~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header18~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header19~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header20~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header21~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header22~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header23~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header24~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header25~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header26~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header27~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header28~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header29~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header30~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header31~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header32~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header33~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header34~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header35~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header36~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header37~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header38~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header39~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header40~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header41~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header42~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header43~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header44~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header45~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header46~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header47~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header48~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header49~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header50~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header51~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header52~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header53~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header54~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header55~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header56~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header57~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header58~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header59~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header60~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header61~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header62~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header63~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header64~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header65~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header66~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header67~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header68~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header69~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header70~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header71~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header72~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header73~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header74~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header75~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header76~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header77~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header78~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header79~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header80~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header81~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header82~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header83~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header84~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header85~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header86~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header87~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header88~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header89~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header90~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header91~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header92~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header93~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa" \
- "\x10\x0duser-header94~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
- "aaaaaaaa"
+ "\x10\x0auser-agent\"bad-client grpc-c/0.12.0.0 (linux)"
+
+// Each large-metadata header is constructed from these start and end
+// strings, with a two-digit number in between.
+#define PFX_TOO_MUCH_METADATA_FROM_CLIENT_HEADER_START_STR "\x10\x0duser-header"
+#define PFX_TOO_MUCH_METADATA_FROM_CLIENT_HEADER_END_STR \
+ "~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+
+// The size of each large-metadata header string.
+#define PFX_TOO_MUCH_METADATA_FROM_CLIENT_HEADER_SIZE \
+ ((sizeof(PFX_TOO_MUCH_METADATA_FROM_CLIENT_HEADER_START_STR) - 1) + 2 + \
+ (sizeof(PFX_TOO_MUCH_METADATA_FROM_CLIENT_HEADER_END_STR) - 1))
+
+// The number of headers we're adding and the total size of the client
+// payload.
+#define NUM_HEADERS 95
+#define PFX_TOO_MUCH_METADATA_FROM_CLIENT_PAYLOAD_SIZE \
+ ((sizeof(PFX_TOO_MUCH_METADATA_FROM_CLIENT_PREFIX_STR) - 1) + \
+ (NUM_HEADERS * PFX_TOO_MUCH_METADATA_FROM_CLIENT_HEADER_SIZE) + 1)
#define PFX_TOO_MUCH_METADATA_FROM_SERVER_STR \
"PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" /* settings frame: sets \
@@ -477,8 +217,26 @@ int main(int argc, char **argv) {
grpc_test_init(argc, argv);
// Test sending more metadata than the server will accept.
- GRPC_RUN_BAD_CLIENT_TEST(server_verifier, client_validator,
- PFX_TOO_MUCH_METADATA_FROM_CLIENT_STR, 0);
+ gpr_strvec headers;
+ gpr_strvec_init(&headers);
+ for (int i = 0; i < NUM_HEADERS; ++i) {
+ char *str;
+ gpr_asprintf(&str, "%s%02d%s",
+ PFX_TOO_MUCH_METADATA_FROM_CLIENT_HEADER_START_STR, i,
+ PFX_TOO_MUCH_METADATA_FROM_CLIENT_HEADER_END_STR);
+ gpr_strvec_add(&headers, str);
+ }
+ size_t headers_len;
+ const char *client_headers = gpr_strvec_flatten(&headers, &headers_len);
+ gpr_strvec_destroy(&headers);
+ char client_payload[PFX_TOO_MUCH_METADATA_FROM_CLIENT_PAYLOAD_SIZE] =
+ PFX_TOO_MUCH_METADATA_FROM_CLIENT_PREFIX_STR;
+ memcpy(
+ client_payload + sizeof(PFX_TOO_MUCH_METADATA_FROM_CLIENT_PREFIX_STR) - 1,
+ client_headers, headers_len);
+ GRPC_RUN_BAD_CLIENT_TEST(server_verifier, client_validator, client_payload,
+ 0);
+ gpr_free((void *)client_headers);
// Test sending more metadata than the client will accept.
GRPC_RUN_BAD_CLIENT_TEST(server_verifier_sends_too_much_metadata,
diff --git a/test/core/channel/channel_args_test.c b/test/core/channel/channel_args_test.c
index c7fc25960c..c2fc05095a 100644
--- a/test/core/channel/channel_args_test.c
+++ b/test/core/channel/channel_args_test.c
@@ -77,7 +77,8 @@ static void test_set_compression_algorithm(void) {
ch_args =
grpc_channel_args_set_compression_algorithm(NULL, GRPC_COMPRESS_GZIP);
GPR_ASSERT(ch_args->num_args == 1);
- GPR_ASSERT(strcmp(ch_args->args[0].key, GRPC_COMPRESSION_ALGORITHM_ARG) == 0);
+ GPR_ASSERT(strcmp(ch_args->args[0].key,
+ GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM) == 0);
GPR_ASSERT(ch_args->args[0].type == GRPC_ARG_INTEGER);
grpc_channel_args_destroy(ch_args);
diff --git a/test/core/client_config/lb_policies_test.c b/test/core/client_config/lb_policies_test.c
index e766672cf5..2ec46124a8 100644
--- a/test/core/client_config/lb_policies_test.c
+++ b/test/core/client_config/lb_policies_test.c
@@ -438,9 +438,9 @@ static grpc_call **perform_multirequest(servers_fixture *f,
return calls;
}
-static void assert_channel_connectivity(
- grpc_channel *ch, size_t num_accepted_conn_states,
- grpc_connectivity_state accepted_conn_state, ...) {
+static void assert_channel_connectivity(grpc_channel *ch,
+ size_t num_accepted_conn_states,
+ int accepted_conn_state, ...) {
size_t i;
grpc_channel_stack *client_stack;
grpc_channel_element *client_channel_filter;
@@ -456,7 +456,7 @@ static void assert_channel_connectivity(
grpc_exec_ctx_finish(&exec_ctx);
va_start(ap, accepted_conn_state);
for (i = 0; i < num_accepted_conn_states; i++) {
- if (actual_conn_state == accepted_conn_state) {
+ if ((int)actual_conn_state == accepted_conn_state) {
break;
}
accepted_conn_state = va_arg(ap, grpc_connectivity_state);
diff --git a/test/core/client_config/set_initial_connect_string_test.c b/test/core/client_config/set_initial_connect_string_test.c
index 3ad8ce964a..c5ca51d1b5 100644
--- a/test/core/client_config/set_initial_connect_string_test.c
+++ b/test/core/client_config/set_initial_connect_string_test.c
@@ -37,6 +37,7 @@
#include <grpc/support/host_port.h>
#include <grpc/support/log.h>
#include <grpc/support/slice.h>
+#include <grpc/support/thd.h>
#include "src/core/ext/client_config/initial_connect_string.h"
#include "src/core/lib/iomgr/sockaddr.h"
@@ -56,7 +57,7 @@ struct rpc_state {
gpr_slice_buffer incoming_buffer;
gpr_slice_buffer temp_incoming_buffer;
grpc_endpoint *tcp;
- int done;
+ gpr_atm done_atm;
};
static const char *magic_connect_string = "magic initial string";
@@ -69,7 +70,7 @@ static void handle_read(grpc_exec_ctx *exec_ctx, void *arg, bool success) {
gpr_slice_buffer_move_into(&state.temp_incoming_buffer,
&state.incoming_buffer);
if (state.incoming_buffer.length > strlen(magic_connect_string)) {
- state.done = 1;
+ gpr_atm_rel_store(&state.done_atm, 1);
grpc_endpoint_shutdown(exec_ctx, state.tcp);
grpc_endpoint_destroy(exec_ctx, state.tcp);
} else {
@@ -116,7 +117,7 @@ static gpr_timespec n_sec_deadline(int seconds) {
}
static void start_rpc(int use_creds, int target_port) {
- state.done = 0;
+ gpr_atm_rel_store(&state.done_atm, 0);
state.cq = grpc_completion_queue_create(NULL);
if (use_creds) {
state.creds = grpc_fake_transport_security_credentials_create();
@@ -139,7 +140,7 @@ static void start_rpc(int use_creds, int target_port) {
state.op.reserved = NULL;
GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(state.call, &state.op,
(size_t)(1), NULL, NULL));
- grpc_completion_queue_next(state.cq, n_sec_deadline(1), NULL);
+ grpc_completion_queue_next(state.cq, n_sec_deadline(5), NULL);
}
static void cleanup_rpc(void) {
@@ -157,12 +158,29 @@ static void cleanup_rpc(void) {
gpr_free(state.target);
}
-static void poll_server_until_read_done(test_tcp_server *server) {
- gpr_timespec deadline = n_sec_deadline(5);
- while (state.done == 0 &&
+typedef struct {
+ test_tcp_server *server;
+ gpr_event *signal_when_done;
+} poll_args;
+
+static void actually_poll_server(void *arg) {
+ poll_args *pa = arg;
+ gpr_timespec deadline = n_sec_deadline(10);
+ while (gpr_atm_acq_load(&state.done_atm) == 0 &&
gpr_time_cmp(gpr_now(GPR_CLOCK_REALTIME), deadline) < 0) {
- test_tcp_server_poll(server, 1);
+ test_tcp_server_poll(pa->server, 1);
}
+ gpr_event_set(pa->signal_when_done, (void *)1);
+ gpr_free(pa);
+}
+
+static void poll_server_until_read_done(test_tcp_server *server,
+ gpr_event *signal_when_done) {
+ gpr_thd_id id;
+ poll_args *pa = gpr_malloc(sizeof(*pa));
+ pa->server = server;
+ pa->signal_when_done = signal_when_done;
+ gpr_thd_new(&id, actually_poll_server, pa, NULL);
}
static void match_initial_magic_string(gpr_slice_buffer *buffer) {
@@ -180,20 +198,26 @@ static void match_initial_magic_string(gpr_slice_buffer *buffer) {
}
static void test_initial_string(test_tcp_server *server, int secure) {
+ gpr_event ev;
+ gpr_event_init(&ev);
grpc_test_set_initial_connect_string_function(set_magic_initial_string);
+ poll_server_until_read_done(server, &ev);
start_rpc(secure, server_port);
- poll_server_until_read_done(server);
+ gpr_event_wait(&ev, gpr_inf_future(GPR_CLOCK_REALTIME));
match_initial_magic_string(&state.incoming_buffer);
cleanup_rpc();
}
static void test_initial_string_with_redirect(test_tcp_server *server,
int secure) {
+ gpr_event ev;
+ gpr_event_init(&ev);
int another_port = grpc_pick_unused_port_or_die();
grpc_test_set_initial_connect_string_function(
reset_addr_and_set_magic_string);
+ poll_server_until_read_done(server, &ev);
start_rpc(secure, another_port);
- poll_server_until_read_done(server);
+ gpr_event_wait(&ev, gpr_inf_future(GPR_CLOCK_REALTIME));
match_initial_magic_string(&state.incoming_buffer);
cleanup_rpc();
}
diff --git a/test/core/end2end/dualstack_socket_test.c b/test/core/end2end/dualstack_socket_test.c
index 81f76ea79c..202fb3b6a8 100644
--- a/test/core/end2end/dualstack_socket_test.c
+++ b/test/core/end2end/dualstack_socket_test.c
@@ -88,9 +88,11 @@ void test_connect(const char *server_host, const char *client_host, int port,
int was_cancelled = 2;
grpc_call_details call_details;
char *peer;
+ int picked_port = 0;
if (port == 0) {
port = grpc_pick_unused_port_or_die();
+ picked_port = 1;
}
gpr_join_host_port(&server_hostport, server_host, port);
@@ -263,6 +265,9 @@ void test_connect(const char *server_host, const char *client_host, int port,
grpc_call_details_destroy(&call_details);
gpr_free(details);
+ if (picked_port) {
+ grpc_recycle_unused_port(port);
+ }
}
int external_dns_works(const char *host) {
diff --git a/test/core/end2end/fuzzers/api_fuzzer.c b/test/core/end2end/fuzzers/api_fuzzer.c
index b133a948ee..cdfa960623 100644
--- a/test/core/end2end/fuzzers/api_fuzzer.c
+++ b/test/core/end2end/fuzzers/api_fuzzer.c
@@ -340,6 +340,8 @@ static void free_non_null(void *p) {
typedef enum { ROOT, CLIENT, SERVER, PENDING_SERVER } call_state_type;
+#define DONE_FLAG_CALL_CLOSED ((uint64_t)(1 << 0))
+
typedef struct call_state {
call_state_type type;
grpc_call *call;
@@ -352,6 +354,10 @@ typedef struct call_state {
int cancelled;
int pending_ops;
grpc_call_details call_details;
+ grpc_byte_buffer *send_message;
+ // starts at 0, individual flags from DONE_FLAG_xxx are set
+ // as different operations are completed
+ uint64_t done_flags;
// array of pointers to free later
size_t num_to_free;
@@ -449,10 +455,41 @@ static void finished_request_call(void *csp, bool success) {
}
}
-static void finished_batch(void *csp, bool success) {
- call_state *cs = csp;
- --cs->pending_ops;
- maybe_delete_call_state(cs);
+typedef struct {
+ call_state *cs;
+ uint8_t has_ops;
+} batch_info;
+
+static void finished_batch(void *p, bool success) {
+ batch_info *bi = p;
+ --bi->cs->pending_ops;
+ if ((bi->has_ops & (1u << GRPC_OP_RECV_MESSAGE)) &&
+ (bi->cs->done_flags & DONE_FLAG_CALL_CLOSED)) {
+ GPR_ASSERT(bi->cs->recv_message == NULL);
+ }
+ if ((bi->has_ops & (1u << GRPC_OP_RECV_MESSAGE) &&
+ bi->cs->recv_message != NULL)) {
+ grpc_byte_buffer_destroy(bi->cs->recv_message);
+ bi->cs->recv_message = NULL;
+ }
+ if ((bi->has_ops & (1u << GRPC_OP_SEND_MESSAGE))) {
+ grpc_byte_buffer_destroy(bi->cs->send_message);
+ bi->cs->send_message = NULL;
+ }
+ if ((bi->has_ops & (1u << GRPC_OP_RECV_STATUS_ON_CLIENT)) ||
+ (bi->has_ops & (1u << GRPC_OP_RECV_CLOSE_ON_SERVER))) {
+ bi->cs->done_flags |= DONE_FLAG_CALL_CLOSED;
+ }
+ maybe_delete_call_state(bi->cs);
+ gpr_free(bi);
+}
+
+static validator *make_finished_batch_validator(call_state *cs,
+ uint8_t has_ops) {
+ batch_info *bi = gpr_malloc(sizeof(*bi));
+ bi->cs = cs;
+ bi->has_ops = has_ops;
+ return create_validator(finished_batch, bi);
}
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
@@ -579,6 +616,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
} else {
end(&inp);
}
+ break;
}
// begin server shutdown
case 5: {
@@ -700,6 +738,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
bool ok = true;
size_t i;
grpc_op *op;
+ uint8_t has_ops = 0;
for (i = 0; i < num_ops; i++) {
op = &ops[i];
switch (next_byte(&inp)) {
@@ -710,19 +749,28 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
break;
case GRPC_OP_SEND_INITIAL_METADATA:
op->op = GRPC_OP_SEND_INITIAL_METADATA;
+ has_ops |= 1 << GRPC_OP_SEND_INITIAL_METADATA;
read_metadata(&inp, &op->data.send_initial_metadata.count,
&op->data.send_initial_metadata.metadata,
g_active_call);
break;
case GRPC_OP_SEND_MESSAGE:
op->op = GRPC_OP_SEND_MESSAGE;
- op->data.send_message = read_message(&inp);
+ if (g_active_call->send_message != NULL) {
+ ok = false;
+ } else {
+ has_ops |= 1 << GRPC_OP_SEND_MESSAGE;
+ g_active_call->send_message = op->data.send_message =
+ read_message(&inp);
+ }
break;
case GRPC_OP_SEND_CLOSE_FROM_CLIENT:
op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT;
+ has_ops |= 1 << GRPC_OP_SEND_CLOSE_FROM_CLIENT;
break;
case GRPC_OP_SEND_STATUS_FROM_SERVER:
op->op = GRPC_OP_SEND_STATUS_FROM_SERVER;
+ has_ops |= 1 << GRPC_OP_SEND_STATUS_FROM_SERVER;
read_metadata(
&inp,
&op->data.send_status_from_server.trailing_metadata_count,
@@ -734,11 +782,13 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
break;
case GRPC_OP_RECV_INITIAL_METADATA:
op->op = GRPC_OP_RECV_INITIAL_METADATA;
+ has_ops |= 1 << GRPC_OP_RECV_INITIAL_METADATA;
op->data.recv_initial_metadata =
&g_active_call->recv_initial_metadata;
break;
case GRPC_OP_RECV_MESSAGE:
op->op = GRPC_OP_RECV_MESSAGE;
+ has_ops |= 1 << GRPC_OP_RECV_MESSAGE;
op->data.recv_message = &g_active_call->recv_message;
break;
case GRPC_OP_RECV_STATUS_ON_CLIENT:
@@ -753,6 +803,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
break;
case GRPC_OP_RECV_CLOSE_ON_SERVER:
op->op = GRPC_OP_RECV_CLOSE_ON_SERVER;
+ has_ops |= 1 << GRPC_OP_RECV_CLOSE_ON_SERVER;
op->data.recv_close_on_server.cancelled =
&g_active_call->cancelled;
break;
@@ -761,7 +812,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
op->flags = read_uint32(&inp);
}
if (ok) {
- validator *v = create_validator(finished_batch, g_active_call);
+ validator *v = make_finished_batch_validator(g_active_call, has_ops);
g_active_call->pending_ops++;
grpc_call_error error =
grpc_call_start_batch(g_active_call->call, ops, num_ops, v, NULL);
@@ -772,17 +823,18 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
} else {
end(&inp);
}
+ if (!ok && (has_ops & (1 << GRPC_OP_SEND_MESSAGE))) {
+ grpc_byte_buffer_destroy(g_active_call->send_message);
+ g_active_call->send_message = NULL;
+ }
for (i = 0; i < num_ops; i++) {
op = &ops[i];
switch (op->op) {
- case GRPC_OP_SEND_INITIAL_METADATA:
- break;
- case GRPC_OP_SEND_MESSAGE:
- grpc_byte_buffer_destroy(op->data.send_message);
- break;
case GRPC_OP_SEND_STATUS_FROM_SERVER:
gpr_free((void *)op->data.send_status_from_server.status_details);
break;
+ case GRPC_OP_SEND_MESSAGE:
+ case GRPC_OP_SEND_INITIAL_METADATA:
case GRPC_OP_SEND_CLOSE_FROM_CLIENT:
case GRPC_OP_RECV_INITIAL_METADATA:
case GRPC_OP_RECV_MESSAGE:
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/001ea98069c10f808c281da9bbdd84cc05c3bad1 b/test/core/end2end/fuzzers/api_fuzzer_corpus/001ea98069c10f808c281da9bbdd84cc05c3bad1
new file mode 100644
index 0000000000..11d72eb9f3
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/001ea98069c10f808c281da9bbdd84cc05c3bad1
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/01f52e31dfffdab89d83acd39925c3dd81baa76f b/test/core/end2end/fuzzers/api_fuzzer_corpus/01f52e31dfffdab89d83acd39925c3dd81baa76f
new file mode 100644
index 0000000000..1d2f30d2e9
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/01f52e31dfffdab89d83acd39925c3dd81baa76f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/02c3cf8d52fbc43f89b5f516a17cea23b68fc8d5 b/test/core/end2end/fuzzers/api_fuzzer_corpus/02c3cf8d52fbc43f89b5f516a17cea23b68fc8d5
new file mode 100644
index 0000000000..3e1eee3511
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/02c3cf8d52fbc43f89b5f516a17cea23b68fc8d5
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/032744b59cafd3320cc932ad39926a9bc92f589e b/test/core/end2end/fuzzers/api_fuzzer_corpus/032744b59cafd3320cc932ad39926a9bc92f589e
new file mode 100644
index 0000000000..18bf828696
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/032744b59cafd3320cc932ad39926a9bc92f589e
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/0385c7b41263419e25a4342fbfc44fbd65eb2ed5 b/test/core/end2end/fuzzers/api_fuzzer_corpus/0385c7b41263419e25a4342fbfc44fbd65eb2ed5
new file mode 100644
index 0000000000..aac4f3c296
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/0385c7b41263419e25a4342fbfc44fbd65eb2ed5
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/04d93c9df413717f71abd091592b5238afb799e8 b/test/core/end2end/fuzzers/api_fuzzer_corpus/04d93c9df413717f71abd091592b5238afb799e8
new file mode 100644
index 0000000000..10f3d31aeb
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/04d93c9df413717f71abd091592b5238afb799e8
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/064d50aee4416ccf32f4e4fe7b770b7802265ffe b/test/core/end2end/fuzzers/api_fuzzer_corpus/064d50aee4416ccf32f4e4fe7b770b7802265ffe
new file mode 100644
index 0000000000..ce911ad130
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/064d50aee4416ccf32f4e4fe7b770b7802265ffe
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/066e7fcb68e83b432c414f63f6de73e5f5099e49 b/test/core/end2end/fuzzers/api_fuzzer_corpus/066e7fcb68e83b432c414f63f6de73e5f5099e49
new file mode 100644
index 0000000000..1ea89115e4
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/066e7fcb68e83b432c414f63f6de73e5f5099e49
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/06c714e289673cf982ce2ac0670707a15f2ac5ea b/test/core/end2end/fuzzers/api_fuzzer_corpus/06c714e289673cf982ce2ac0670707a15f2ac5ea
new file mode 100644
index 0000000000..f43c3fb015
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/06c714e289673cf982ce2ac0670707a15f2ac5ea
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/071247b8fddda8aa520d9142c89039fbf8bf6cee b/test/core/end2end/fuzzers/api_fuzzer_corpus/071247b8fddda8aa520d9142c89039fbf8bf6cee
new file mode 100644
index 0000000000..06505f52fc
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/071247b8fddda8aa520d9142c89039fbf8bf6cee
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/07cb3b9baca1bbcce2e199e551073ba2fdd4e05c b/test/core/end2end/fuzzers/api_fuzzer_corpus/07cb3b9baca1bbcce2e199e551073ba2fdd4e05c
new file mode 100644
index 0000000000..f6320aaf1b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/07cb3b9baca1bbcce2e199e551073ba2fdd4e05c
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/07fa2b6ed650d436f423adcccfcbe63ce6253de0 b/test/core/end2end/fuzzers/api_fuzzer_corpus/07fa2b6ed650d436f423adcccfcbe63ce6253de0
new file mode 100644
index 0000000000..a359ef35ff
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/07fa2b6ed650d436f423adcccfcbe63ce6253de0
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/081e3248dfca2b32837c4738daee3a4698caaf15 b/test/core/end2end/fuzzers/api_fuzzer_corpus/081e3248dfca2b32837c4738daee3a4698caaf15
new file mode 100644
index 0000000000..e29f8846c3
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/081e3248dfca2b32837c4738daee3a4698caaf15
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/088bf259e854abd9508d91b23983737f8e9e242c b/test/core/end2end/fuzzers/api_fuzzer_corpus/088bf259e854abd9508d91b23983737f8e9e242c
new file mode 100644
index 0000000000..b60cdde80f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/088bf259e854abd9508d91b23983737f8e9e242c
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/0976de1461fb037c6987d77d088416440b524dde b/test/core/end2end/fuzzers/api_fuzzer_corpus/0976de1461fb037c6987d77d088416440b524dde
new file mode 100644
index 0000000000..57b8f4c7da
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/0976de1461fb037c6987d77d088416440b524dde
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/0adaf5f559e1fb9cd8cd5b29911e13bca315c606 b/test/core/end2end/fuzzers/api_fuzzer_corpus/0adaf5f559e1fb9cd8cd5b29911e13bca315c606
new file mode 100644
index 0000000000..c6be6e0779
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/0adaf5f559e1fb9cd8cd5b29911e13bca315c606
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/0af5adf68560b3a7036ad23af62e4f9749eca690 b/test/core/end2end/fuzzers/api_fuzzer_corpus/0af5adf68560b3a7036ad23af62e4f9749eca690
new file mode 100644
index 0000000000..9acf28719e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/0af5adf68560b3a7036ad23af62e4f9749eca690
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/0becc6ede499ddc452fd4e6c3c0413a1107a8373 b/test/core/end2end/fuzzers/api_fuzzer_corpus/0becc6ede499ddc452fd4e6c3c0413a1107a8373
new file mode 100644
index 0000000000..a942070681
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/0becc6ede499ddc452fd4e6c3c0413a1107a8373
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/0c531e03e56a5cf48bdd531a8c11a19e4a3b0aeb b/test/core/end2end/fuzzers/api_fuzzer_corpus/0c531e03e56a5cf48bdd531a8c11a19e4a3b0aeb
new file mode 100644
index 0000000000..3dcd1e5323
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/0c531e03e56a5cf48bdd531a8c11a19e4a3b0aeb
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/0c65733bc09e8527347e20f5c876c5b64570d423 b/test/core/end2end/fuzzers/api_fuzzer_corpus/0c65733bc09e8527347e20f5c876c5b64570d423
new file mode 100644
index 0000000000..1170a8efda
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/0c65733bc09e8527347e20f5c876c5b64570d423
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/0c7b763d22885462527123656fa17af7520fc55d b/test/core/end2end/fuzzers/api_fuzzer_corpus/0c7b763d22885462527123656fa17af7520fc55d
new file mode 100644
index 0000000000..0f07f6b95e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/0c7b763d22885462527123656fa17af7520fc55d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/0d604693a9d3e76f54d28a26142abd729b0a9acd b/test/core/end2end/fuzzers/api_fuzzer_corpus/0d604693a9d3e76f54d28a26142abd729b0a9acd
new file mode 100644
index 0000000000..d0d56daf49
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/0d604693a9d3e76f54d28a26142abd729b0a9acd
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/0d993b34021ec088f1aa3e5acdd98089b4104b07 b/test/core/end2end/fuzzers/api_fuzzer_corpus/0d993b34021ec088f1aa3e5acdd98089b4104b07
new file mode 100644
index 0000000000..ca3a14bc42
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/0d993b34021ec088f1aa3e5acdd98089b4104b07
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/0def53b5575cc6ab2fbbd17e2bc6a24de9656f84 b/test/core/end2end/fuzzers/api_fuzzer_corpus/0def53b5575cc6ab2fbbd17e2bc6a24de9656f84
new file mode 100644
index 0000000000..30addfc112
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/0def53b5575cc6ab2fbbd17e2bc6a24de9656f84
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/0e2ddbe92c08eb9ad3cbee1d0db2264baaca12df b/test/core/end2end/fuzzers/api_fuzzer_corpus/0e2ddbe92c08eb9ad3cbee1d0db2264baaca12df
new file mode 100644
index 0000000000..3fc360ddd8
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/0e2ddbe92c08eb9ad3cbee1d0db2264baaca12df
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/0ea509d249ae28faba8980aacb972c7ea28d3fd5 b/test/core/end2end/fuzzers/api_fuzzer_corpus/0ea509d249ae28faba8980aacb972c7ea28d3fd5
new file mode 100644
index 0000000000..4c213b1fba
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/0ea509d249ae28faba8980aacb972c7ea28d3fd5
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/0f16eeeecdebcb59022bda5a0972d1b3429648fd b/test/core/end2end/fuzzers/api_fuzzer_corpus/0f16eeeecdebcb59022bda5a0972d1b3429648fd
new file mode 100644
index 0000000000..0116d006ca
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/0f16eeeecdebcb59022bda5a0972d1b3429648fd
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/0f81830560dbb9c6d3889b5d581b918c6cade65f b/test/core/end2end/fuzzers/api_fuzzer_corpus/0f81830560dbb9c6d3889b5d581b918c6cade65f
new file mode 100644
index 0000000000..789a99463e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/0f81830560dbb9c6d3889b5d581b918c6cade65f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/105d9784648fe2d6c22fbefa69c9a26fff1c6481 b/test/core/end2end/fuzzers/api_fuzzer_corpus/105d9784648fe2d6c22fbefa69c9a26fff1c6481
new file mode 100644
index 0000000000..a6aa6cbed0
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/105d9784648fe2d6c22fbefa69c9a26fff1c6481
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/11153bfeee3cdede86a52151dbb939c3ffee48ed b/test/core/end2end/fuzzers/api_fuzzer_corpus/11153bfeee3cdede86a52151dbb939c3ffee48ed
new file mode 100644
index 0000000000..5885a28948
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/11153bfeee3cdede86a52151dbb939c3ffee48ed
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/113c1d1bac15d550124f1ffb9012c32755adf27f b/test/core/end2end/fuzzers/api_fuzzer_corpus/113c1d1bac15d550124f1ffb9012c32755adf27f
new file mode 100644
index 0000000000..d7eba10ba7
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/113c1d1bac15d550124f1ffb9012c32755adf27f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/11759723c597e6806f8873e5062d31516cdb97ea b/test/core/end2end/fuzzers/api_fuzzer_corpus/11759723c597e6806f8873e5062d31516cdb97ea
new file mode 100644
index 0000000000..34812d5b02
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/11759723c597e6806f8873e5062d31516cdb97ea
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/12abf5dcf2aba770f7b94ce5d96d7a8565a9aa19 b/test/core/end2end/fuzzers/api_fuzzer_corpus/12abf5dcf2aba770f7b94ce5d96d7a8565a9aa19
new file mode 100644
index 0000000000..494f031d55
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/12abf5dcf2aba770f7b94ce5d96d7a8565a9aa19
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/12b904b97ed234fa45073b4e346ebe3211558528 b/test/core/end2end/fuzzers/api_fuzzer_corpus/12b904b97ed234fa45073b4e346ebe3211558528
new file mode 100644
index 0000000000..482fd747da
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/12b904b97ed234fa45073b4e346ebe3211558528
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/12c00ed8945bdae03f03142cb964a47ea0c5786e b/test/core/end2end/fuzzers/api_fuzzer_corpus/12c00ed8945bdae03f03142cb964a47ea0c5786e
new file mode 100644
index 0000000000..abc3d1348b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/12c00ed8945bdae03f03142cb964a47ea0c5786e
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/12f977ee18a7499d18a503a47e71b4f241052640 b/test/core/end2end/fuzzers/api_fuzzer_corpus/12f977ee18a7499d18a503a47e71b4f241052640
new file mode 100644
index 0000000000..ad424b846e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/12f977ee18a7499d18a503a47e71b4f241052640
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/145acf7c03a0bc6c4a40d710ba5813b9f28efe2a b/test/core/end2end/fuzzers/api_fuzzer_corpus/145acf7c03a0bc6c4a40d710ba5813b9f28efe2a
new file mode 100644
index 0000000000..2e55e9f3ac
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/145acf7c03a0bc6c4a40d710ba5813b9f28efe2a
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/14ccbe1d9d7302d642e51ede3d4d846e85310fc2 b/test/core/end2end/fuzzers/api_fuzzer_corpus/14ccbe1d9d7302d642e51ede3d4d846e85310fc2
new file mode 100644
index 0000000000..4940dc4a76
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/14ccbe1d9d7302d642e51ede3d4d846e85310fc2
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/1586adc8c21b5796ba52203379faeb5f251f5c1d b/test/core/end2end/fuzzers/api_fuzzer_corpus/1586adc8c21b5796ba52203379faeb5f251f5c1d
new file mode 100644
index 0000000000..13577d48bc
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/1586adc8c21b5796ba52203379faeb5f251f5c1d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/1608a688768bdecdb205a455401ce5d9a1424a22 b/test/core/end2end/fuzzers/api_fuzzer_corpus/1608a688768bdecdb205a455401ce5d9a1424a22
new file mode 100644
index 0000000000..a7f9e46039
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/1608a688768bdecdb205a455401ce5d9a1424a22
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/162b4ec7cf39df091898e01057b2fa39605b34bb b/test/core/end2end/fuzzers/api_fuzzer_corpus/162b4ec7cf39df091898e01057b2fa39605b34bb
new file mode 100644
index 0000000000..9eb2a6e422
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/162b4ec7cf39df091898e01057b2fa39605b34bb
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/16858f1f9db0e248a15ce09d9848612de1f4bba6 b/test/core/end2end/fuzzers/api_fuzzer_corpus/16858f1f9db0e248a15ce09d9848612de1f4bba6
new file mode 100644
index 0000000000..de7a5823b5
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/16858f1f9db0e248a15ce09d9848612de1f4bba6
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/16e681f1867a1ac5612e1a88fddaed0bcb4521e7 b/test/core/end2end/fuzzers/api_fuzzer_corpus/16e681f1867a1ac5612e1a88fddaed0bcb4521e7
new file mode 100644
index 0000000000..ca737650d5
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/16e681f1867a1ac5612e1a88fddaed0bcb4521e7
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/16ebac3f7cea2b46f660ec6a5ef3401c3e17a2e9 b/test/core/end2end/fuzzers/api_fuzzer_corpus/16ebac3f7cea2b46f660ec6a5ef3401c3e17a2e9
new file mode 100644
index 0000000000..417e588e64
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/16ebac3f7cea2b46f660ec6a5ef3401c3e17a2e9
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/17ec0503991dc248d2b188edfa3d28573a1c2154 b/test/core/end2end/fuzzers/api_fuzzer_corpus/17ec0503991dc248d2b188edfa3d28573a1c2154
new file mode 100644
index 0000000000..6728e2ac4c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/17ec0503991dc248d2b188edfa3d28573a1c2154
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/17fb35db0b73c331a66120dbc491300b2d1665e0 b/test/core/end2end/fuzzers/api_fuzzer_corpus/17fb35db0b73c331a66120dbc491300b2d1665e0
new file mode 100644
index 0000000000..af0fe1ddc9
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/17fb35db0b73c331a66120dbc491300b2d1665e0
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/190c4ca0cf29c99bc987d2792c7f62e1007c0245 b/test/core/end2end/fuzzers/api_fuzzer_corpus/190c4ca0cf29c99bc987d2792c7f62e1007c0245
new file mode 100644
index 0000000000..fbc532d25d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/190c4ca0cf29c99bc987d2792c7f62e1007c0245
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/1949f4a75f7d501d5279a01f58a444640379bd78 b/test/core/end2end/fuzzers/api_fuzzer_corpus/1949f4a75f7d501d5279a01f58a444640379bd78
new file mode 100644
index 0000000000..8a39c9d8ee
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/1949f4a75f7d501d5279a01f58a444640379bd78
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/1972f535ae202777efdd15a09138efc37e07ac01 b/test/core/end2end/fuzzers/api_fuzzer_corpus/1972f535ae202777efdd15a09138efc37e07ac01
new file mode 100644
index 0000000000..5c66b0ac5a
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/1972f535ae202777efdd15a09138efc37e07ac01
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/198e691a9dabd23ed5c156f3a6e2c06a4379c15b b/test/core/end2end/fuzzers/api_fuzzer_corpus/198e691a9dabd23ed5c156f3a6e2c06a4379c15b
new file mode 100644
index 0000000000..29be724e32
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/198e691a9dabd23ed5c156f3a6e2c06a4379c15b
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/1a16a4b32cb0cb3a759ec20edf332cdfc5d1717e b/test/core/end2end/fuzzers/api_fuzzer_corpus/1a16a4b32cb0cb3a759ec20edf332cdfc5d1717e
new file mode 100644
index 0000000000..ec2f8fec5e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/1a16a4b32cb0cb3a759ec20edf332cdfc5d1717e
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/1af0744fe0ccad11d6df023803ab699e1464c8da b/test/core/end2end/fuzzers/api_fuzzer_corpus/1af0744fe0ccad11d6df023803ab699e1464c8da
new file mode 100644
index 0000000000..b84ca71138
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/1af0744fe0ccad11d6df023803ab699e1464c8da
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/1b6d8326532cea974655dc86657d8e3b9ba021de b/test/core/end2end/fuzzers/api_fuzzer_corpus/1b6d8326532cea974655dc86657d8e3b9ba021de
new file mode 100644
index 0000000000..461677d9d2
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/1b6d8326532cea974655dc86657d8e3b9ba021de
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/1b78d906803b539ea9f135e41b58257365948855 b/test/core/end2end/fuzzers/api_fuzzer_corpus/1b78d906803b539ea9f135e41b58257365948855
new file mode 100644
index 0000000000..ac120a85a6
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/1b78d906803b539ea9f135e41b58257365948855
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/1ba0190ef2cde93332f850753a05b89ae5f39f1f b/test/core/end2end/fuzzers/api_fuzzer_corpus/1ba0190ef2cde93332f850753a05b89ae5f39f1f
new file mode 100644
index 0000000000..373e44f6cd
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/1ba0190ef2cde93332f850753a05b89ae5f39f1f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/1c24396c21f2c6aa2ad9b9a14877b7edf0ce61d2 b/test/core/end2end/fuzzers/api_fuzzer_corpus/1c24396c21f2c6aa2ad9b9a14877b7edf0ce61d2
new file mode 100644
index 0000000000..1610b54300
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/1c24396c21f2c6aa2ad9b9a14877b7edf0ce61d2
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/1c86c4f2d173059e5cfe67b446fdfa285743f61f b/test/core/end2end/fuzzers/api_fuzzer_corpus/1c86c4f2d173059e5cfe67b446fdfa285743f61f
new file mode 100644
index 0000000000..3fc1394f1d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/1c86c4f2d173059e5cfe67b446fdfa285743f61f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/1cbbae18babaa20229b42b4633ef812bd3b40ad4 b/test/core/end2end/fuzzers/api_fuzzer_corpus/1cbbae18babaa20229b42b4633ef812bd3b40ad4
new file mode 100644
index 0000000000..21cc2e1a43
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/1cbbae18babaa20229b42b4633ef812bd3b40ad4
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/1d259d9c908db8a0a7012c054bfde7f86474dab7 b/test/core/end2end/fuzzers/api_fuzzer_corpus/1d259d9c908db8a0a7012c054bfde7f86474dab7
new file mode 100644
index 0000000000..35ee3b7240
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/1d259d9c908db8a0a7012c054bfde7f86474dab7
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/1d55650c5bc30ea68168a9287820e25d2d53ab4c b/test/core/end2end/fuzzers/api_fuzzer_corpus/1d55650c5bc30ea68168a9287820e25d2d53ab4c
new file mode 100644
index 0000000000..042200467c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/1d55650c5bc30ea68168a9287820e25d2d53ab4c
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/1d795268725d3a08883b05b021a437654aaed908 b/test/core/end2end/fuzzers/api_fuzzer_corpus/1d795268725d3a08883b05b021a437654aaed908
new file mode 100644
index 0000000000..a852bac00f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/1d795268725d3a08883b05b021a437654aaed908
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/1d7bd5961f6963c65054fb9a24d913601f37bf3d b/test/core/end2end/fuzzers/api_fuzzer_corpus/1d7bd5961f6963c65054fb9a24d913601f37bf3d
new file mode 100644
index 0000000000..932ef7418a
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/1d7bd5961f6963c65054fb9a24d913601f37bf3d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/1eefda69c1787cc55a8bd43774ca13563e0972bc b/test/core/end2end/fuzzers/api_fuzzer_corpus/1eefda69c1787cc55a8bd43774ca13563e0972bc
new file mode 100644
index 0000000000..92e91dc931
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/1eefda69c1787cc55a8bd43774ca13563e0972bc
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/1f4d0adab39a988792cca201626c28293e247226 b/test/core/end2end/fuzzers/api_fuzzer_corpus/1f4d0adab39a988792cca201626c28293e247226
new file mode 100644
index 0000000000..b50ddd0adf
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/1f4d0adab39a988792cca201626c28293e247226
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/1f7847ed44c5acbc52c5d16b0222b44067076478 b/test/core/end2end/fuzzers/api_fuzzer_corpus/1f7847ed44c5acbc52c5d16b0222b44067076478
new file mode 100644
index 0000000000..c78706008d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/1f7847ed44c5acbc52c5d16b0222b44067076478
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/200521ca3891bfed841ca8c22691196a1a03ccd3 b/test/core/end2end/fuzzers/api_fuzzer_corpus/200521ca3891bfed841ca8c22691196a1a03ccd3
new file mode 100644
index 0000000000..cf69ac852f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/200521ca3891bfed841ca8c22691196a1a03ccd3
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/205dd562c7202d4231b232a6804889e77eba5292 b/test/core/end2end/fuzzers/api_fuzzer_corpus/205dd562c7202d4231b232a6804889e77eba5292
new file mode 100644
index 0000000000..21b314de4d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/205dd562c7202d4231b232a6804889e77eba5292
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/2193a1e20caee37676d08c88154a462acf120fb0 b/test/core/end2end/fuzzers/api_fuzzer_corpus/2193a1e20caee37676d08c88154a462acf120fb0
new file mode 100644
index 0000000000..e3f46b434c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/2193a1e20caee37676d08c88154a462acf120fb0
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/21da45db854aeae9bef8576d6cb5859c0cf7a34c b/test/core/end2end/fuzzers/api_fuzzer_corpus/21da45db854aeae9bef8576d6cb5859c0cf7a34c
new file mode 100644
index 0000000000..1c7966c21b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/21da45db854aeae9bef8576d6cb5859c0cf7a34c
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/226b0315f87b08521c9a2d3e2b50c01ec421be14 b/test/core/end2end/fuzzers/api_fuzzer_corpus/226b0315f87b08521c9a2d3e2b50c01ec421be14
new file mode 100644
index 0000000000..14b54da694
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/226b0315f87b08521c9a2d3e2b50c01ec421be14
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/22c9ed2979d9963bce6500997f1e0433988e7e37 b/test/core/end2end/fuzzers/api_fuzzer_corpus/22c9ed2979d9963bce6500997f1e0433988e7e37
new file mode 100644
index 0000000000..76f10b71db
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/22c9ed2979d9963bce6500997f1e0433988e7e37
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/247d0d09deeeb76422cd1d06305a63378a498656 b/test/core/end2end/fuzzers/api_fuzzer_corpus/247d0d09deeeb76422cd1d06305a63378a498656
new file mode 100644
index 0000000000..4dac3e9fc4
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/247d0d09deeeb76422cd1d06305a63378a498656
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/24fbdfa73f26686633871ddad9698d7059db488f b/test/core/end2end/fuzzers/api_fuzzer_corpus/24fbdfa73f26686633871ddad9698d7059db488f
new file mode 100644
index 0000000000..64182618e5
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/24fbdfa73f26686633871ddad9698d7059db488f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/2535940afe69b3106b7696a486a2617d0d9a7150 b/test/core/end2end/fuzzers/api_fuzzer_corpus/2535940afe69b3106b7696a486a2617d0d9a7150
new file mode 100644
index 0000000000..59c07a03ff
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/2535940afe69b3106b7696a486a2617d0d9a7150
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/25aa74daea95f9fc46a78239bd2e78ccf0fb3ffc b/test/core/end2end/fuzzers/api_fuzzer_corpus/25aa74daea95f9fc46a78239bd2e78ccf0fb3ffc
new file mode 100644
index 0000000000..9f02718332
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/25aa74daea95f9fc46a78239bd2e78ccf0fb3ffc
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/26930c35fbe83e4d165b8b7f218ac8ea231c87dd b/test/core/end2end/fuzzers/api_fuzzer_corpus/26930c35fbe83e4d165b8b7f218ac8ea231c87dd
new file mode 100644
index 0000000000..074833e785
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/26930c35fbe83e4d165b8b7f218ac8ea231c87dd
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/26dfa46c2bb2e6af6f52bac6f03a9e4406c6e700 b/test/core/end2end/fuzzers/api_fuzzer_corpus/26dfa46c2bb2e6af6f52bac6f03a9e4406c6e700
new file mode 100644
index 0000000000..39212d96c6
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/26dfa46c2bb2e6af6f52bac6f03a9e4406c6e700
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/27a8643ba6047e12de1b2a4f7d0994a2c095a6d5 b/test/core/end2end/fuzzers/api_fuzzer_corpus/27a8643ba6047e12de1b2a4f7d0994a2c095a6d5
new file mode 100644
index 0000000000..2c3a0b74d9
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/27a8643ba6047e12de1b2a4f7d0994a2c095a6d5
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/27f5e317e8a3a1098e786b96175c15d0855c4855 b/test/core/end2end/fuzzers/api_fuzzer_corpus/27f5e317e8a3a1098e786b96175c15d0855c4855
new file mode 100644
index 0000000000..736534e7ac
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/27f5e317e8a3a1098e786b96175c15d0855c4855
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/285b0b9b11fe506527c880d3a866ba94f8038cdf b/test/core/end2end/fuzzers/api_fuzzer_corpus/285b0b9b11fe506527c880d3a866ba94f8038cdf
new file mode 100644
index 0000000000..9f3f0a85de
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/285b0b9b11fe506527c880d3a866ba94f8038cdf
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/28851da472cd09123465241e0d59697f563f53a8 b/test/core/end2end/fuzzers/api_fuzzer_corpus/28851da472cd09123465241e0d59697f563f53a8
new file mode 100644
index 0000000000..8a42c044d4
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/28851da472cd09123465241e0d59697f563f53a8
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/28c56acb0f9b47ead49f34c0d92a661fa04952c2 b/test/core/end2end/fuzzers/api_fuzzer_corpus/28c56acb0f9b47ead49f34c0d92a661fa04952c2
new file mode 100644
index 0000000000..fa5c7468e5
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/28c56acb0f9b47ead49f34c0d92a661fa04952c2
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/2923d9c864597016358f37ce4014c61648b7290a b/test/core/end2end/fuzzers/api_fuzzer_corpus/2923d9c864597016358f37ce4014c61648b7290a
new file mode 100644
index 0000000000..0476a9337a
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/2923d9c864597016358f37ce4014c61648b7290a
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/29a6d7ab3e7ea8d331358df45e5b0926e768e227 b/test/core/end2end/fuzzers/api_fuzzer_corpus/29a6d7ab3e7ea8d331358df45e5b0926e768e227
new file mode 100644
index 0000000000..8792e3bffd
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/29a6d7ab3e7ea8d331358df45e5b0926e768e227
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/2a410e3d783bc93e63206e28f92b6a40e1db09cf b/test/core/end2end/fuzzers/api_fuzzer_corpus/2a410e3d783bc93e63206e28f92b6a40e1db09cf
new file mode 100644
index 0000000000..803b4bf563
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/2a410e3d783bc93e63206e28f92b6a40e1db09cf
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/2b80854b52267dd70b622670e401280387f15dd2 b/test/core/end2end/fuzzers/api_fuzzer_corpus/2b80854b52267dd70b622670e401280387f15dd2
new file mode 100644
index 0000000000..1a8b38bb8c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/2b80854b52267dd70b622670e401280387f15dd2
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/2d5613b7bc0f5060eb1fa0449face6a9c503b589 b/test/core/end2end/fuzzers/api_fuzzer_corpus/2d5613b7bc0f5060eb1fa0449face6a9c503b589
new file mode 100644
index 0000000000..5659e0c0b0
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/2d5613b7bc0f5060eb1fa0449face6a9c503b589
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/2d7f42d3df4a206d09a9fa3126333a61f5e678ec b/test/core/end2end/fuzzers/api_fuzzer_corpus/2d7f42d3df4a206d09a9fa3126333a61f5e678ec
new file mode 100644
index 0000000000..7058beb84c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/2d7f42d3df4a206d09a9fa3126333a61f5e678ec
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/2d82b2376d689485814ade91df8f65ee08395a02 b/test/core/end2end/fuzzers/api_fuzzer_corpus/2d82b2376d689485814ade91df8f65ee08395a02
new file mode 100644
index 0000000000..f7ee1cd45b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/2d82b2376d689485814ade91df8f65ee08395a02
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/2df65610f1c24ad1cf9a5b22614434c96ffc12fb b/test/core/end2end/fuzzers/api_fuzzer_corpus/2df65610f1c24ad1cf9a5b22614434c96ffc12fb
new file mode 100644
index 0000000000..31012976fa
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/2df65610f1c24ad1cf9a5b22614434c96ffc12fb
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/2e48a9c8d204975060e81f37c7a46ab501750067 b/test/core/end2end/fuzzers/api_fuzzer_corpus/2e48a9c8d204975060e81f37c7a46ab501750067
new file mode 100644
index 0000000000..7fddf563c1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/2e48a9c8d204975060e81f37c7a46ab501750067
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/2e7441eacf8fcc7043f24b3beba4fcbe3c0c5ea0 b/test/core/end2end/fuzzers/api_fuzzer_corpus/2e7441eacf8fcc7043f24b3beba4fcbe3c0c5ea0
new file mode 100644
index 0000000000..c6a5e1dc5b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/2e7441eacf8fcc7043f24b3beba4fcbe3c0c5ea0
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/2ef149e8fd68e06fcb7ba2fb43a17cc1dcfd989b b/test/core/end2end/fuzzers/api_fuzzer_corpus/2ef149e8fd68e06fcb7ba2fb43a17cc1dcfd989b
new file mode 100644
index 0000000000..185c9c9698
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/2ef149e8fd68e06fcb7ba2fb43a17cc1dcfd989b
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/2f35914500b09477fe245bc130f86bbd15112ce7 b/test/core/end2end/fuzzers/api_fuzzer_corpus/2f35914500b09477fe245bc130f86bbd15112ce7
new file mode 100644
index 0000000000..d1d5abecd7
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/2f35914500b09477fe245bc130f86bbd15112ce7
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/2fece42b158854855dd42eac3fc7b8f1eb61fb04 b/test/core/end2end/fuzzers/api_fuzzer_corpus/2fece42b158854855dd42eac3fc7b8f1eb61fb04
new file mode 100644
index 0000000000..d998323d93
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/2fece42b158854855dd42eac3fc7b8f1eb61fb04
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/3017e9f66dacf5a01f8c7d65b8a72d4f68aa6a28 b/test/core/end2end/fuzzers/api_fuzzer_corpus/3017e9f66dacf5a01f8c7d65b8a72d4f68aa6a28
new file mode 100644
index 0000000000..90a40e4756
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/3017e9f66dacf5a01f8c7d65b8a72d4f68aa6a28
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/30948ba77c2e56903a9ad5190cc74e59d42f67fe b/test/core/end2end/fuzzers/api_fuzzer_corpus/30948ba77c2e56903a9ad5190cc74e59d42f67fe
new file mode 100644
index 0000000000..eb9d316626
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/30948ba77c2e56903a9ad5190cc74e59d42f67fe
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/30d6ca02d96fe1d1b91b7fa5180789a6cc9d0d45 b/test/core/end2end/fuzzers/api_fuzzer_corpus/30d6ca02d96fe1d1b91b7fa5180789a6cc9d0d45
new file mode 100644
index 0000000000..9a482a0d77
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/30d6ca02d96fe1d1b91b7fa5180789a6cc9d0d45
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/30fc581d975cd8384b86be0ae59792a605ca68c6 b/test/core/end2end/fuzzers/api_fuzzer_corpus/30fc581d975cd8384b86be0ae59792a605ca68c6
new file mode 100644
index 0000000000..52d3fdb728
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/30fc581d975cd8384b86be0ae59792a605ca68c6
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/3152365a4d8540623c9fb3a93712d096bf6b34e6 b/test/core/end2end/fuzzers/api_fuzzer_corpus/3152365a4d8540623c9fb3a93712d096bf6b34e6
new file mode 100644
index 0000000000..97cf797ca6
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/3152365a4d8540623c9fb3a93712d096bf6b34e6
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/324b9341bfc56b24a60f0687a52981fcdeaa8733 b/test/core/end2end/fuzzers/api_fuzzer_corpus/324b9341bfc56b24a60f0687a52981fcdeaa8733
new file mode 100644
index 0000000000..06be6c9fd0
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/324b9341bfc56b24a60f0687a52981fcdeaa8733
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/32a6ea045d1288418617e5e0c52ae02c1f6598aa b/test/core/end2end/fuzzers/api_fuzzer_corpus/32a6ea045d1288418617e5e0c52ae02c1f6598aa
new file mode 100644
index 0000000000..1bcaa23bc3
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/32a6ea045d1288418617e5e0c52ae02c1f6598aa
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/3356fa1721a0dec9fedacba8d86e6100a49d5316 b/test/core/end2end/fuzzers/api_fuzzer_corpus/3356fa1721a0dec9fedacba8d86e6100a49d5316
new file mode 100644
index 0000000000..f742dc0d03
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/3356fa1721a0dec9fedacba8d86e6100a49d5316
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/33af00c8deb0f0fdfc113f21c3cb5769aa474587 b/test/core/end2end/fuzzers/api_fuzzer_corpus/33af00c8deb0f0fdfc113f21c3cb5769aa474587
new file mode 100644
index 0000000000..e7174156a5
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/33af00c8deb0f0fdfc113f21c3cb5769aa474587
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/33b7cb7d4dcd380b207f1137722fe394de2a0f8e b/test/core/end2end/fuzzers/api_fuzzer_corpus/33b7cb7d4dcd380b207f1137722fe394de2a0f8e
new file mode 100644
index 0000000000..b2a16c7344
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/33b7cb7d4dcd380b207f1137722fe394de2a0f8e
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/33ff864434b4f0c0e08c00ec2442cb521e9f79ed b/test/core/end2end/fuzzers/api_fuzzer_corpus/33ff864434b4f0c0e08c00ec2442cb521e9f79ed
new file mode 100644
index 0000000000..c60986409d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/33ff864434b4f0c0e08c00ec2442cb521e9f79ed
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/34aca5e37920615e8c141ed1fe4e419ae2e4df65 b/test/core/end2end/fuzzers/api_fuzzer_corpus/34aca5e37920615e8c141ed1fe4e419ae2e4df65
new file mode 100644
index 0000000000..e70d70e5a6
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/34aca5e37920615e8c141ed1fe4e419ae2e4df65
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/35ba1a4df4d362ea98e9386269bfbb95c5ed4874 b/test/core/end2end/fuzzers/api_fuzzer_corpus/35ba1a4df4d362ea98e9386269bfbb95c5ed4874
new file mode 100644
index 0000000000..82db6b0f85
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/35ba1a4df4d362ea98e9386269bfbb95c5ed4874
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/3662f5312562bbe4503018a820692962e7dd66c8 b/test/core/end2end/fuzzers/api_fuzzer_corpus/3662f5312562bbe4503018a820692962e7dd66c8
new file mode 100644
index 0000000000..81692d01e6
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/3662f5312562bbe4503018a820692962e7dd66c8
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/37309bbfb4f0d78e6138b13a4e5da5944c95b97d b/test/core/end2end/fuzzers/api_fuzzer_corpus/37309bbfb4f0d78e6138b13a4e5da5944c95b97d
new file mode 100644
index 0000000000..18d50ccab5
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/37309bbfb4f0d78e6138b13a4e5da5944c95b97d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/37bc0646132afe8c79cda5e76de150a473fc0680 b/test/core/end2end/fuzzers/api_fuzzer_corpus/37bc0646132afe8c79cda5e76de150a473fc0680
new file mode 100644
index 0000000000..d4a1f9539f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/37bc0646132afe8c79cda5e76de150a473fc0680
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/385626d51cd29e1b32befeaecde5df7248270754 b/test/core/end2end/fuzzers/api_fuzzer_corpus/385626d51cd29e1b32befeaecde5df7248270754
new file mode 100644
index 0000000000..c300faecf5
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/385626d51cd29e1b32befeaecde5df7248270754
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/39160bc99597105d50cf7a15698090399a2482ea b/test/core/end2end/fuzzers/api_fuzzer_corpus/39160bc99597105d50cf7a15698090399a2482ea
new file mode 100644
index 0000000000..5c7ff7b283
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/39160bc99597105d50cf7a15698090399a2482ea
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/391ef74273ae5e1cd8a2342c5370fde5df1a7140 b/test/core/end2end/fuzzers/api_fuzzer_corpus/391ef74273ae5e1cd8a2342c5370fde5df1a7140
new file mode 100644
index 0000000000..dbdef3f3cf
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/391ef74273ae5e1cd8a2342c5370fde5df1a7140
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/39525bbff413519199d1cf2c564d62b9c3c7736e b/test/core/end2end/fuzzers/api_fuzzer_corpus/39525bbff413519199d1cf2c564d62b9c3c7736e
new file mode 100644
index 0000000000..6e61ae8b08
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/39525bbff413519199d1cf2c564d62b9c3c7736e
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/39b6daa9ae088667c5080709ca829cf51e66212d b/test/core/end2end/fuzzers/api_fuzzer_corpus/39b6daa9ae088667c5080709ca829cf51e66212d
new file mode 100644
index 0000000000..e72f3419ca
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/39b6daa9ae088667c5080709ca829cf51e66212d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/3a90fbc998ad7219e447db6155e6174e0117dd49 b/test/core/end2end/fuzzers/api_fuzzer_corpus/3a90fbc998ad7219e447db6155e6174e0117dd49
new file mode 100644
index 0000000000..7c2bacc240
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/3a90fbc998ad7219e447db6155e6174e0117dd49
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/3af9522626ddfeb1ef461e3ba0f397ea4b2d99fb b/test/core/end2end/fuzzers/api_fuzzer_corpus/3af9522626ddfeb1ef461e3ba0f397ea4b2d99fb
new file mode 100644
index 0000000000..bbbacc88ca
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/3af9522626ddfeb1ef461e3ba0f397ea4b2d99fb
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/3b60e6663ac7ceaa40f91d3a68fcb9c35e3e99b8 b/test/core/end2end/fuzzers/api_fuzzer_corpus/3b60e6663ac7ceaa40f91d3a68fcb9c35e3e99b8
new file mode 100644
index 0000000000..99a6322e75
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/3b60e6663ac7ceaa40f91d3a68fcb9c35e3e99b8
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/3bdfaad171c20468a866329355621cd579eff21c b/test/core/end2end/fuzzers/api_fuzzer_corpus/3bdfaad171c20468a866329355621cd579eff21c
new file mode 100644
index 0000000000..a48c03445c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/3bdfaad171c20468a866329355621cd579eff21c
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/3c18f7c2d8fef6f119fe5bdbb5d191a92c627cb3 b/test/core/end2end/fuzzers/api_fuzzer_corpus/3c18f7c2d8fef6f119fe5bdbb5d191a92c627cb3
new file mode 100644
index 0000000000..d9450a95c6
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/3c18f7c2d8fef6f119fe5bdbb5d191a92c627cb3
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/3c933aea09501c81d7e065c671cdc3bd55f8caf9 b/test/core/end2end/fuzzers/api_fuzzer_corpus/3c933aea09501c81d7e065c671cdc3bd55f8caf9
new file mode 100644
index 0000000000..d09a0cbca3
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/3c933aea09501c81d7e065c671cdc3bd55f8caf9
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/3cac139b58decec7c0d1f1318e8f1f28f9650c19 b/test/core/end2end/fuzzers/api_fuzzer_corpus/3cac139b58decec7c0d1f1318e8f1f28f9650c19
new file mode 100644
index 0000000000..60b2a10c4b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/3cac139b58decec7c0d1f1318e8f1f28f9650c19
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/3cd19f8138a81f242cb92212df2b4812cde8385a b/test/core/end2end/fuzzers/api_fuzzer_corpus/3cd19f8138a81f242cb92212df2b4812cde8385a
new file mode 100644
index 0000000000..f9395ccf93
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/3cd19f8138a81f242cb92212df2b4812cde8385a
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/3d7d13b272c46ccceca36729e9893e5142961fd3 b/test/core/end2end/fuzzers/api_fuzzer_corpus/3d7d13b272c46ccceca36729e9893e5142961fd3
new file mode 100644
index 0000000000..a46741ee50
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/3d7d13b272c46ccceca36729e9893e5142961fd3
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/3d9534f373e79edd704cc9529600efd62451fb78 b/test/core/end2end/fuzzers/api_fuzzer_corpus/3d9534f373e79edd704cc9529600efd62451fb78
new file mode 100644
index 0000000000..7ce51c1d4a
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/3d9534f373e79edd704cc9529600efd62451fb78
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/3e4c1755d1ad78103f10c2af7c7d2f86326f02f6 b/test/core/end2end/fuzzers/api_fuzzer_corpus/3e4c1755d1ad78103f10c2af7c7d2f86326f02f6
new file mode 100644
index 0000000000..ba043af279
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/3e4c1755d1ad78103f10c2af7c7d2f86326f02f6
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/3e8bef87bb89525914b5e7964969a66eabc78eee b/test/core/end2end/fuzzers/api_fuzzer_corpus/3e8bef87bb89525914b5e7964969a66eabc78eee
new file mode 100644
index 0000000000..673ce21225
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/3e8bef87bb89525914b5e7964969a66eabc78eee
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/3fada97db682f675597cb58c5d43a72e283ab960 b/test/core/end2end/fuzzers/api_fuzzer_corpus/3fada97db682f675597cb58c5d43a72e283ab960
new file mode 100644
index 0000000000..2acdaaa912
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/3fada97db682f675597cb58c5d43a72e283ab960
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/40fb9f1d9086ace2de0ad59648d196ba0705ae00 b/test/core/end2end/fuzzers/api_fuzzer_corpus/40fb9f1d9086ace2de0ad59648d196ba0705ae00
new file mode 100644
index 0000000000..935f92be43
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/40fb9f1d9086ace2de0ad59648d196ba0705ae00
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/41921ba00dfc038778074b1af81104555ca74927 b/test/core/end2end/fuzzers/api_fuzzer_corpus/41921ba00dfc038778074b1af81104555ca74927
new file mode 100644
index 0000000000..c1ec996a9a
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/41921ba00dfc038778074b1af81104555ca74927
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/41de80653b78b98f5caa7f6d00a96d72bc245068 b/test/core/end2end/fuzzers/api_fuzzer_corpus/41de80653b78b98f5caa7f6d00a96d72bc245068
new file mode 100644
index 0000000000..101bb72458
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/41de80653b78b98f5caa7f6d00a96d72bc245068
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/4212d95c0bfdf34b9c7fbd05bc732fa1bbb226ce b/test/core/end2end/fuzzers/api_fuzzer_corpus/4212d95c0bfdf34b9c7fbd05bc732fa1bbb226ce
new file mode 100644
index 0000000000..7f9038760c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/4212d95c0bfdf34b9c7fbd05bc732fa1bbb226ce
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/4236180c7d6f2edba5355b79bbe1a5c16266dd95 b/test/core/end2end/fuzzers/api_fuzzer_corpus/4236180c7d6f2edba5355b79bbe1a5c16266dd95
new file mode 100644
index 0000000000..9bd671dee9
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/4236180c7d6f2edba5355b79bbe1a5c16266dd95
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/428b5b04a92ad6c28fc38451236c85338b9f8ce0 b/test/core/end2end/fuzzers/api_fuzzer_corpus/428b5b04a92ad6c28fc38451236c85338b9f8ce0
new file mode 100644
index 0000000000..9da7676d41
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/428b5b04a92ad6c28fc38451236c85338b9f8ce0
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/42a92ac224829067ee7dbadafb777bd38f076c6f b/test/core/end2end/fuzzers/api_fuzzer_corpus/42a92ac224829067ee7dbadafb777bd38f076c6f
new file mode 100644
index 0000000000..8b800cacc9
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/42a92ac224829067ee7dbadafb777bd38f076c6f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/42c2e90f2e228d6bec0d81e55f08647a2d651bbe b/test/core/end2end/fuzzers/api_fuzzer_corpus/42c2e90f2e228d6bec0d81e55f08647a2d651bbe
new file mode 100644
index 0000000000..6ea6ab3759
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/42c2e90f2e228d6bec0d81e55f08647a2d651bbe
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/42c50f9543819ff7f440a7ac660cea374355c455 b/test/core/end2end/fuzzers/api_fuzzer_corpus/42c50f9543819ff7f440a7ac660cea374355c455
new file mode 100644
index 0000000000..9e377e755d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/42c50f9543819ff7f440a7ac660cea374355c455
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/42c5f1965243b4bdf0212123d3430010bdacefaa b/test/core/end2end/fuzzers/api_fuzzer_corpus/42c5f1965243b4bdf0212123d3430010bdacefaa
new file mode 100644
index 0000000000..93385ceece
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/42c5f1965243b4bdf0212123d3430010bdacefaa
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/4305b19e8a214d2cf47436d964d52d10e430575f b/test/core/end2end/fuzzers/api_fuzzer_corpus/4305b19e8a214d2cf47436d964d52d10e430575f
new file mode 100644
index 0000000000..33f855c4ad
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/4305b19e8a214d2cf47436d964d52d10e430575f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/43646936116c18140ff0f01306d16280943eedac b/test/core/end2end/fuzzers/api_fuzzer_corpus/43646936116c18140ff0f01306d16280943eedac
new file mode 100644
index 0000000000..43d84183ee
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/43646936116c18140ff0f01306d16280943eedac
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/43874e2bb721b485a93d80b7f1c3e3630f746b02 b/test/core/end2end/fuzzers/api_fuzzer_corpus/43874e2bb721b485a93d80b7f1c3e3630f746b02
new file mode 100644
index 0000000000..272ee2cc01
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/43874e2bb721b485a93d80b7f1c3e3630f746b02
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/43ed8f46ad700ddd4c2a7a15f0cd209954f0a774 b/test/core/end2end/fuzzers/api_fuzzer_corpus/43ed8f46ad700ddd4c2a7a15f0cd209954f0a774
new file mode 100644
index 0000000000..722278a9fa
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/43ed8f46ad700ddd4c2a7a15f0cd209954f0a774
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/43f79e748c5da73a13555b00cf5050af68f07829 b/test/core/end2end/fuzzers/api_fuzzer_corpus/43f79e748c5da73a13555b00cf5050af68f07829
new file mode 100644
index 0000000000..e5389150cb
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/43f79e748c5da73a13555b00cf5050af68f07829
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/43ff758aba2eca1e355f0062ca8fa2dcc8edc69c b/test/core/end2end/fuzzers/api_fuzzer_corpus/43ff758aba2eca1e355f0062ca8fa2dcc8edc69c
new file mode 100644
index 0000000000..6a84f69fd1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/43ff758aba2eca1e355f0062ca8fa2dcc8edc69c
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/4427b547b6693c39f08ba67c5d2ad012d5088f83 b/test/core/end2end/fuzzers/api_fuzzer_corpus/4427b547b6693c39f08ba67c5d2ad012d5088f83
new file mode 100644
index 0000000000..0be2c14af6
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/4427b547b6693c39f08ba67c5d2ad012d5088f83
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/442bb0df4955b8dc95cc69af79a522a04c23dfe1 b/test/core/end2end/fuzzers/api_fuzzer_corpus/442bb0df4955b8dc95cc69af79a522a04c23dfe1
new file mode 100644
index 0000000000..1564b00429
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/442bb0df4955b8dc95cc69af79a522a04c23dfe1
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/44378830a865936e205bb757a69bdf8d788bf26e b/test/core/end2end/fuzzers/api_fuzzer_corpus/44378830a865936e205bb757a69bdf8d788bf26e
new file mode 100644
index 0000000000..c320596f3c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/44378830a865936e205bb757a69bdf8d788bf26e
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/4471ee009359844e7600175546a3b36a21329666 b/test/core/end2end/fuzzers/api_fuzzer_corpus/4471ee009359844e7600175546a3b36a21329666
new file mode 100644
index 0000000000..b41b650c78
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/4471ee009359844e7600175546a3b36a21329666
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/454fb5eab23aacdba559ed9a9a36941732eb3276 b/test/core/end2end/fuzzers/api_fuzzer_corpus/454fb5eab23aacdba559ed9a9a36941732eb3276
new file mode 100644
index 0000000000..55ab577147
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/454fb5eab23aacdba559ed9a9a36941732eb3276
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/461949a48f4f2234cce6bfc1476bc9fd96552c0e b/test/core/end2end/fuzzers/api_fuzzer_corpus/461949a48f4f2234cce6bfc1476bc9fd96552c0e
new file mode 100644
index 0000000000..9ec340d863
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/461949a48f4f2234cce6bfc1476bc9fd96552c0e
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/462ae7e1d7eb4a4d8b4d5daaa1422b7cf835e127 b/test/core/end2end/fuzzers/api_fuzzer_corpus/462ae7e1d7eb4a4d8b4d5daaa1422b7cf835e127
new file mode 100644
index 0000000000..66adcdf83f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/462ae7e1d7eb4a4d8b4d5daaa1422b7cf835e127
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/46325fcd7a3a718f2188f49e28ad9d0c9dcd06a9 b/test/core/end2end/fuzzers/api_fuzzer_corpus/46325fcd7a3a718f2188f49e28ad9d0c9dcd06a9
new file mode 100644
index 0000000000..99748fb1af
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/46325fcd7a3a718f2188f49e28ad9d0c9dcd06a9
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/4667156173c437c62fdea99a199f3aed0b504fe0 b/test/core/end2end/fuzzers/api_fuzzer_corpus/4667156173c437c62fdea99a199f3aed0b504fe0
new file mode 100644
index 0000000000..1b98c74204
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/4667156173c437c62fdea99a199f3aed0b504fe0
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/46f88af92fbd99c386bd24d8a045a9a9c2469d53 b/test/core/end2end/fuzzers/api_fuzzer_corpus/46f88af92fbd99c386bd24d8a045a9a9c2469d53
new file mode 100644
index 0000000000..6e6744a38f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/46f88af92fbd99c386bd24d8a045a9a9c2469d53
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/4799a2aacdba08bd3e418c5659060829a997d715 b/test/core/end2end/fuzzers/api_fuzzer_corpus/4799a2aacdba08bd3e418c5659060829a997d715
new file mode 100644
index 0000000000..e4d5db3bd7
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/4799a2aacdba08bd3e418c5659060829a997d715
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/47f2ead1b9cd99a8603dc5fd583afe3d4287deab b/test/core/end2end/fuzzers/api_fuzzer_corpus/47f2ead1b9cd99a8603dc5fd583afe3d4287deab
new file mode 100644
index 0000000000..f4d2647ee7
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/47f2ead1b9cd99a8603dc5fd583afe3d4287deab
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/485410954a625f5749bce6ae923a620371542ed8 b/test/core/end2end/fuzzers/api_fuzzer_corpus/485410954a625f5749bce6ae923a620371542ed8
new file mode 100644
index 0000000000..376c38eb8e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/485410954a625f5749bce6ae923a620371542ed8
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/48f56289592da153b3c50bcc26ad6d4d3a7e443b b/test/core/end2end/fuzzers/api_fuzzer_corpus/48f56289592da153b3c50bcc26ad6d4d3a7e443b
new file mode 100644
index 0000000000..b31f82db78
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/48f56289592da153b3c50bcc26ad6d4d3a7e443b
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/49d816ae44b329820f47979c5790eebc8eadafd7 b/test/core/end2end/fuzzers/api_fuzzer_corpus/49d816ae44b329820f47979c5790eebc8eadafd7
new file mode 100644
index 0000000000..d75351ca01
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/49d816ae44b329820f47979c5790eebc8eadafd7
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/4a2ee017facf4df1929e7db4b34b12018b64461c b/test/core/end2end/fuzzers/api_fuzzer_corpus/4a2ee017facf4df1929e7db4b34b12018b64461c
new file mode 100644
index 0000000000..7a7c0e5270
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/4a2ee017facf4df1929e7db4b34b12018b64461c
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/4a6c8938a8a30567a481599eddfc137fa5454b21 b/test/core/end2end/fuzzers/api_fuzzer_corpus/4a6c8938a8a30567a481599eddfc137fa5454b21
new file mode 100644
index 0000000000..ac5edb5ae0
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/4a6c8938a8a30567a481599eddfc137fa5454b21
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/4a97016bb83b0db1c51fbb4d4f9c909dd85bdb41 b/test/core/end2end/fuzzers/api_fuzzer_corpus/4a97016bb83b0db1c51fbb4d4f9c909dd85bdb41
new file mode 100644
index 0000000000..a3cea9c481
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/4a97016bb83b0db1c51fbb4d4f9c909dd85bdb41
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/4b011706723e645407b871241c2c11004103d628 b/test/core/end2end/fuzzers/api_fuzzer_corpus/4b011706723e645407b871241c2c11004103d628
new file mode 100644
index 0000000000..9d30e8feb1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/4b011706723e645407b871241c2c11004103d628
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/4bedfc6d01a2d6bc0911d48123d6b8b30a46732e b/test/core/end2end/fuzzers/api_fuzzer_corpus/4bedfc6d01a2d6bc0911d48123d6b8b30a46732e
new file mode 100644
index 0000000000..9e55ca62a7
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/4bedfc6d01a2d6bc0911d48123d6b8b30a46732e
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/4c03f9d60bfc5a2ab41c1703672a339838890ef3 b/test/core/end2end/fuzzers/api_fuzzer_corpus/4c03f9d60bfc5a2ab41c1703672a339838890ef3
new file mode 100644
index 0000000000..2d42a41640
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/4c03f9d60bfc5a2ab41c1703672a339838890ef3
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/4c34bbb26218f40a8ea1bafc8c50cd814a781cd2 b/test/core/end2end/fuzzers/api_fuzzer_corpus/4c34bbb26218f40a8ea1bafc8c50cd814a781cd2
new file mode 100644
index 0000000000..f632c98cb5
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/4c34bbb26218f40a8ea1bafc8c50cd814a781cd2
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/4c6258b5299bd03560e292fcf3008efc60bc6cd1 b/test/core/end2end/fuzzers/api_fuzzer_corpus/4c6258b5299bd03560e292fcf3008efc60bc6cd1
new file mode 100644
index 0000000000..e37ca84cc3
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/4c6258b5299bd03560e292fcf3008efc60bc6cd1
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/4d7b5b98536de248387605efd813ba23b8b613dd b/test/core/end2end/fuzzers/api_fuzzer_corpus/4d7b5b98536de248387605efd813ba23b8b613dd
new file mode 100644
index 0000000000..46684b950d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/4d7b5b98536de248387605efd813ba23b8b613dd
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/4d800cf62e39478c1bc1db8222a8d810fff6ad85 b/test/core/end2end/fuzzers/api_fuzzer_corpus/4d800cf62e39478c1bc1db8222a8d810fff6ad85
new file mode 100644
index 0000000000..b360407bcd
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/4d800cf62e39478c1bc1db8222a8d810fff6ad85
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/4d81efc0d5945caada326e2f6e55167120f0d3ce b/test/core/end2end/fuzzers/api_fuzzer_corpus/4d81efc0d5945caada326e2f6e55167120f0d3ce
new file mode 100644
index 0000000000..cb4341e695
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/4d81efc0d5945caada326e2f6e55167120f0d3ce
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/4ea18756816848daf5e799ce1d75ecf52353eb08 b/test/core/end2end/fuzzers/api_fuzzer_corpus/4ea18756816848daf5e799ce1d75ecf52353eb08
new file mode 100644
index 0000000000..c1f4a81601
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/4ea18756816848daf5e799ce1d75ecf52353eb08
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/4f320381bfd3927493db8037238bdce1766c68ee b/test/core/end2end/fuzzers/api_fuzzer_corpus/4f320381bfd3927493db8037238bdce1766c68ee
new file mode 100644
index 0000000000..a1d23bf313
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/4f320381bfd3927493db8037238bdce1766c68ee
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/50a96367b6a52c58a36364f4b1ec0583c7f315a5 b/test/core/end2end/fuzzers/api_fuzzer_corpus/50a96367b6a52c58a36364f4b1ec0583c7f315a5
new file mode 100644
index 0000000000..92710c0d8a
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/50a96367b6a52c58a36364f4b1ec0583c7f315a5
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5151ad7147bbb75b1b377ce03f4ef5ef0f4f1c82 b/test/core/end2end/fuzzers/api_fuzzer_corpus/5151ad7147bbb75b1b377ce03f4ef5ef0f4f1c82
new file mode 100644
index 0000000000..4b6ca5d085
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5151ad7147bbb75b1b377ce03f4ef5ef0f4f1c82
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5220909c423d2b321e8459355c965fb330288565 b/test/core/end2end/fuzzers/api_fuzzer_corpus/5220909c423d2b321e8459355c965fb330288565
new file mode 100644
index 0000000000..50fdc9478c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5220909c423d2b321e8459355c965fb330288565
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/52b5c86f262d46624b2211151a38cbd69c705734 b/test/core/end2end/fuzzers/api_fuzzer_corpus/52b5c86f262d46624b2211151a38cbd69c705734
new file mode 100644
index 0000000000..63a7c37601
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/52b5c86f262d46624b2211151a38cbd69c705734
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5394ae134e9023432ac137789815e2b24d1bab3b b/test/core/end2end/fuzzers/api_fuzzer_corpus/5394ae134e9023432ac137789815e2b24d1bab3b
new file mode 100644
index 0000000000..0ee6048c0c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5394ae134e9023432ac137789815e2b24d1bab3b
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/53e9f9a4b0347651b3833c3e153e743a1194e0fa b/test/core/end2end/fuzzers/api_fuzzer_corpus/53e9f9a4b0347651b3833c3e153e743a1194e0fa
new file mode 100644
index 0000000000..a52d56a533
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/53e9f9a4b0347651b3833c3e153e743a1194e0fa
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/543ea879faab347874ad5e297684a62a1555e1ab b/test/core/end2end/fuzzers/api_fuzzer_corpus/543ea879faab347874ad5e297684a62a1555e1ab
new file mode 100644
index 0000000000..a457d0e815
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/543ea879faab347874ad5e297684a62a1555e1ab
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/548190b9eb539e0841bcdd6e2c095cbef6ebd119 b/test/core/end2end/fuzzers/api_fuzzer_corpus/548190b9eb539e0841bcdd6e2c095cbef6ebd119
new file mode 100644
index 0000000000..65c646769f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/548190b9eb539e0841bcdd6e2c095cbef6ebd119
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/54d5ac6cc4bd944e60b7464e36c5d1b144c17da4 b/test/core/end2end/fuzzers/api_fuzzer_corpus/54d5ac6cc4bd944e60b7464e36c5d1b144c17da4
new file mode 100644
index 0000000000..aae4aef61b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/54d5ac6cc4bd944e60b7464e36c5d1b144c17da4
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5515fa05b890973031b0e2cc8c2925f3974e2821 b/test/core/end2end/fuzzers/api_fuzzer_corpus/5515fa05b890973031b0e2cc8c2925f3974e2821
new file mode 100644
index 0000000000..53c4227e82
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5515fa05b890973031b0e2cc8c2925f3974e2821
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/560fe3fe0bb266ccb8c59ce19302bce23835097d b/test/core/end2end/fuzzers/api_fuzzer_corpus/560fe3fe0bb266ccb8c59ce19302bce23835097d
new file mode 100644
index 0000000000..7959ac947f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/560fe3fe0bb266ccb8c59ce19302bce23835097d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/56ac47e07bf3f42310773a4c66ee9d3afc27a8a3 b/test/core/end2end/fuzzers/api_fuzzer_corpus/56ac47e07bf3f42310773a4c66ee9d3afc27a8a3
new file mode 100644
index 0000000000..c362e6a26a
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/56ac47e07bf3f42310773a4c66ee9d3afc27a8a3
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/570215c70de40add2ad62bed9ce47f8b6b231de6 b/test/core/end2end/fuzzers/api_fuzzer_corpus/570215c70de40add2ad62bed9ce47f8b6b231de6
new file mode 100644
index 0000000000..c08ff2b178
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/570215c70de40add2ad62bed9ce47f8b6b231de6
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/572ab3983e406a82325f02edfdd7981d040cfbdb b/test/core/end2end/fuzzers/api_fuzzer_corpus/572ab3983e406a82325f02edfdd7981d040cfbdb
new file mode 100644
index 0000000000..54b4bee3b1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/572ab3983e406a82325f02edfdd7981d040cfbdb
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/573665d817a96a324fb8ba40a06425f572327b78 b/test/core/end2end/fuzzers/api_fuzzer_corpus/573665d817a96a324fb8ba40a06425f572327b78
new file mode 100644
index 0000000000..0c3d482649
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/573665d817a96a324fb8ba40a06425f572327b78
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/57bc1a4501ceb31b4ead1c2428798be073eb9db3 b/test/core/end2end/fuzzers/api_fuzzer_corpus/57bc1a4501ceb31b4ead1c2428798be073eb9db3
new file mode 100644
index 0000000000..d9ef9bfffc
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/57bc1a4501ceb31b4ead1c2428798be073eb9db3
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/58c57e0ef4c2a630150f53ccdc2bfa798d5b9eae b/test/core/end2end/fuzzers/api_fuzzer_corpus/58c57e0ef4c2a630150f53ccdc2bfa798d5b9eae
new file mode 100644
index 0000000000..440808721a
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/58c57e0ef4c2a630150f53ccdc2bfa798d5b9eae
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/59de0a42d012ca3dd8b7fa2f1b1c6642cb86fad4 b/test/core/end2end/fuzzers/api_fuzzer_corpus/59de0a42d012ca3dd8b7fa2f1b1c6642cb86fad4
new file mode 100644
index 0000000000..854dd1d924
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/59de0a42d012ca3dd8b7fa2f1b1c6642cb86fad4
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5a1d370abacb9f46fa966c8e58992897606a7900 b/test/core/end2end/fuzzers/api_fuzzer_corpus/5a1d370abacb9f46fa966c8e58992897606a7900
new file mode 100644
index 0000000000..ae5f908ce3
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5a1d370abacb9f46fa966c8e58992897606a7900
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5a34e7fd2ff3f8e32ce85138931a387dc5f15db0 b/test/core/end2end/fuzzers/api_fuzzer_corpus/5a34e7fd2ff3f8e32ce85138931a387dc5f15db0
new file mode 100644
index 0000000000..3f75486f20
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5a34e7fd2ff3f8e32ce85138931a387dc5f15db0
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5a3d25f74f7629c675be11faaea35921229b8757 b/test/core/end2end/fuzzers/api_fuzzer_corpus/5a3d25f74f7629c675be11faaea35921229b8757
new file mode 100644
index 0000000000..c1aa94b5a1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5a3d25f74f7629c675be11faaea35921229b8757
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5ae4d5439ec6910a5fcd9c41f20ae843942853c6 b/test/core/end2end/fuzzers/api_fuzzer_corpus/5ae4d5439ec6910a5fcd9c41f20ae843942853c6
new file mode 100644
index 0000000000..b9b9fb928f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5ae4d5439ec6910a5fcd9c41f20ae843942853c6
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5b3f6f20f348cc4e5fb07cdb6e8614ca24f2cf13 b/test/core/end2end/fuzzers/api_fuzzer_corpus/5b3f6f20f348cc4e5fb07cdb6e8614ca24f2cf13
new file mode 100644
index 0000000000..1cfa196124
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5b3f6f20f348cc4e5fb07cdb6e8614ca24f2cf13
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5c117dbd5d3146fd94c667f15f4c006fea88d14d b/test/core/end2end/fuzzers/api_fuzzer_corpus/5c117dbd5d3146fd94c667f15f4c006fea88d14d
new file mode 100644
index 0000000000..03cd401ba1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5c117dbd5d3146fd94c667f15f4c006fea88d14d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5c388b60e622e14c9abfb5b46c65207a319e09e4 b/test/core/end2end/fuzzers/api_fuzzer_corpus/5c388b60e622e14c9abfb5b46c65207a319e09e4
new file mode 100644
index 0000000000..417ac893df
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5c388b60e622e14c9abfb5b46c65207a319e09e4
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5c43f3a5de9c581693432dbb2ad604550c3948f5 b/test/core/end2end/fuzzers/api_fuzzer_corpus/5c43f3a5de9c581693432dbb2ad604550c3948f5
new file mode 100644
index 0000000000..13b07bbabd
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5c43f3a5de9c581693432dbb2ad604550c3948f5
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5cce719931cf1f07536401134de4325b942be87d b/test/core/end2end/fuzzers/api_fuzzer_corpus/5cce719931cf1f07536401134de4325b942be87d
new file mode 100644
index 0000000000..19c6d543ba
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5cce719931cf1f07536401134de4325b942be87d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5cd55495dee689728feee959bcb09e2ab13d013d b/test/core/end2end/fuzzers/api_fuzzer_corpus/5cd55495dee689728feee959bcb09e2ab13d013d
new file mode 100644
index 0000000000..48291a7889
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5cd55495dee689728feee959bcb09e2ab13d013d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5cf8b4c70476c124711e731cd2e00f67906bd457 b/test/core/end2end/fuzzers/api_fuzzer_corpus/5cf8b4c70476c124711e731cd2e00f67906bd457
new file mode 100644
index 0000000000..8d9455f330
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5cf8b4c70476c124711e731cd2e00f67906bd457
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5d5ce71ab1258e014e06e6a2edb94a47a4ae1b35 b/test/core/end2end/fuzzers/api_fuzzer_corpus/5d5ce71ab1258e014e06e6a2edb94a47a4ae1b35
new file mode 100644
index 0000000000..5962d6447d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5d5ce71ab1258e014e06e6a2edb94a47a4ae1b35
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5d76fdb98fb38243a1f1c5f96d31ece34c5a91b7 b/test/core/end2end/fuzzers/api_fuzzer_corpus/5d76fdb98fb38243a1f1c5f96d31ece34c5a91b7
new file mode 100644
index 0000000000..730cac747e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5d76fdb98fb38243a1f1c5f96d31ece34c5a91b7
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5da437d4fd58607deeed34bcb21accece71a056b b/test/core/end2end/fuzzers/api_fuzzer_corpus/5da437d4fd58607deeed34bcb21accece71a056b
new file mode 100644
index 0000000000..e751aa0097
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5da437d4fd58607deeed34bcb21accece71a056b
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5ddcbde7afa43e7fe4e44ef1470fc0c282873cae b/test/core/end2end/fuzzers/api_fuzzer_corpus/5ddcbde7afa43e7fe4e44ef1470fc0c282873cae
new file mode 100644
index 0000000000..33e7ec9ec5
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5ddcbde7afa43e7fe4e44ef1470fc0c282873cae
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5e880db498f9baae544cdbc23476873d8766ac58 b/test/core/end2end/fuzzers/api_fuzzer_corpus/5e880db498f9baae544cdbc23476873d8766ac58
new file mode 100644
index 0000000000..b9e4608791
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5e880db498f9baae544cdbc23476873d8766ac58
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5eae70ef8ab19fead6a9275e3e40df6b201159b1 b/test/core/end2end/fuzzers/api_fuzzer_corpus/5eae70ef8ab19fead6a9275e3e40df6b201159b1
new file mode 100644
index 0000000000..8790cf48d7
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5eae70ef8ab19fead6a9275e3e40df6b201159b1
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5ed431181bedd9a496aa3bb2330957c621f1443d b/test/core/end2end/fuzzers/api_fuzzer_corpus/5ed431181bedd9a496aa3bb2330957c621f1443d
new file mode 100644
index 0000000000..a143c3b64c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5ed431181bedd9a496aa3bb2330957c621f1443d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5ed8998cfc22cce008e3988b3591b1c9ddbfaa75 b/test/core/end2end/fuzzers/api_fuzzer_corpus/5ed8998cfc22cce008e3988b3591b1c9ddbfaa75
new file mode 100644
index 0000000000..4d597e944b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5ed8998cfc22cce008e3988b3591b1c9ddbfaa75
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5f07e5246d765494ee26c689072ab3ced452f30e b/test/core/end2end/fuzzers/api_fuzzer_corpus/5f07e5246d765494ee26c689072ab3ced452f30e
new file mode 100644
index 0000000000..fe4b4c5aff
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5f07e5246d765494ee26c689072ab3ced452f30e
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5f52309deaa1b641fe199889d18f921d6909fc14 b/test/core/end2end/fuzzers/api_fuzzer_corpus/5f52309deaa1b641fe199889d18f921d6909fc14
new file mode 100644
index 0000000000..1b7cd7b8b9
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5f52309deaa1b641fe199889d18f921d6909fc14
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/5f7eee027cbd6ae8e989150d9bd8a4fd39654c01 b/test/core/end2end/fuzzers/api_fuzzer_corpus/5f7eee027cbd6ae8e989150d9bd8a4fd39654c01
new file mode 100644
index 0000000000..7fbd858a52
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/5f7eee027cbd6ae8e989150d9bd8a4fd39654c01
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/600096fe00d5f67726674fb9b0d2a6621a25e79c b/test/core/end2end/fuzzers/api_fuzzer_corpus/600096fe00d5f67726674fb9b0d2a6621a25e79c
new file mode 100644
index 0000000000..f456358e1f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/600096fe00d5f67726674fb9b0d2a6621a25e79c
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6123f6116f3cacb4aabdbe26aed24ed0981d6c1c b/test/core/end2end/fuzzers/api_fuzzer_corpus/6123f6116f3cacb4aabdbe26aed24ed0981d6c1c
new file mode 100644
index 0000000000..292cb9f81b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6123f6116f3cacb4aabdbe26aed24ed0981d6c1c
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/617a2a3f6b6d5d53993db606a8818235ae8d9b96 b/test/core/end2end/fuzzers/api_fuzzer_corpus/617a2a3f6b6d5d53993db606a8818235ae8d9b96
new file mode 100644
index 0000000000..4a6a220ba3
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/617a2a3f6b6d5d53993db606a8818235ae8d9b96
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/617ef08330c0e852f9aae6c63ddc5893b8b2c722 b/test/core/end2end/fuzzers/api_fuzzer_corpus/617ef08330c0e852f9aae6c63ddc5893b8b2c722
new file mode 100644
index 0000000000..efaa4a4fc1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/617ef08330c0e852f9aae6c63ddc5893b8b2c722
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/618e64836dc7f374745be963b7b3c62cc02ae2ca b/test/core/end2end/fuzzers/api_fuzzer_corpus/618e64836dc7f374745be963b7b3c62cc02ae2ca
new file mode 100644
index 0000000000..4775cd0127
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/618e64836dc7f374745be963b7b3c62cc02ae2ca
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/61ce843c87f7bda1fabcb6ae3f41e85e6e2332ac b/test/core/end2end/fuzzers/api_fuzzer_corpus/61ce843c87f7bda1fabcb6ae3f41e85e6e2332ac
new file mode 100644
index 0000000000..6e46ea802e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/61ce843c87f7bda1fabcb6ae3f41e85e6e2332ac
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/61f410c711bc5d53be9e932217ebd035f2716417 b/test/core/end2end/fuzzers/api_fuzzer_corpus/61f410c711bc5d53be9e932217ebd035f2716417
new file mode 100644
index 0000000000..61d118d055
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/61f410c711bc5d53be9e932217ebd035f2716417
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/629eac0e7443a273b5c351757c03fe15a0b87c1c b/test/core/end2end/fuzzers/api_fuzzer_corpus/629eac0e7443a273b5c351757c03fe15a0b87c1c
new file mode 100644
index 0000000000..f1e6ccc10c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/629eac0e7443a273b5c351757c03fe15a0b87c1c
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/62c995646f15be1819bd13e32a60af46297d73b4 b/test/core/end2end/fuzzers/api_fuzzer_corpus/62c995646f15be1819bd13e32a60af46297d73b4
new file mode 100644
index 0000000000..7ecbf72ded
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/62c995646f15be1819bd13e32a60af46297d73b4
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/634d809c430738b89f0e677eec36506e537e86b3 b/test/core/end2end/fuzzers/api_fuzzer_corpus/634d809c430738b89f0e677eec36506e537e86b3
new file mode 100644
index 0000000000..44e84a689e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/634d809c430738b89f0e677eec36506e537e86b3
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/63b91deaac58a7b64fb5999628ff3ff5d32b719d b/test/core/end2end/fuzzers/api_fuzzer_corpus/63b91deaac58a7b64fb5999628ff3ff5d32b719d
new file mode 100644
index 0000000000..25ea6ce836
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/63b91deaac58a7b64fb5999628ff3ff5d32b719d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/63babc04d35adbe48add6e93386dfc838b0bbd25 b/test/core/end2end/fuzzers/api_fuzzer_corpus/63babc04d35adbe48add6e93386dfc838b0bbd25
new file mode 100644
index 0000000000..d2087ce7d5
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/63babc04d35adbe48add6e93386dfc838b0bbd25
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/645b8377f905399af625a01c76ff088745fe1640 b/test/core/end2end/fuzzers/api_fuzzer_corpus/645b8377f905399af625a01c76ff088745fe1640
new file mode 100644
index 0000000000..0826bbcc1b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/645b8377f905399af625a01c76ff088745fe1640
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/649cf0ee983cb5792042687181ce7e4d81f090a5 b/test/core/end2end/fuzzers/api_fuzzer_corpus/649cf0ee983cb5792042687181ce7e4d81f090a5
new file mode 100644
index 0000000000..e59a835025
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/649cf0ee983cb5792042687181ce7e4d81f090a5
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/64d55e872c2148eefb0d7c3df101fd955b709f24 b/test/core/end2end/fuzzers/api_fuzzer_corpus/64d55e872c2148eefb0d7c3df101fd955b709f24
new file mode 100644
index 0000000000..b3aac99dc8
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/64d55e872c2148eefb0d7c3df101fd955b709f24
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6531f1c311678c9247ad6820519bc7e73f56cb81 b/test/core/end2end/fuzzers/api_fuzzer_corpus/6531f1c311678c9247ad6820519bc7e73f56cb81
new file mode 100644
index 0000000000..600f8551df
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6531f1c311678c9247ad6820519bc7e73f56cb81
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/655f952ec49cbc6176ad1bcfa45a87bd6c3542f0 b/test/core/end2end/fuzzers/api_fuzzer_corpus/655f952ec49cbc6176ad1bcfa45a87bd6c3542f0
new file mode 100644
index 0000000000..61529df072
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/655f952ec49cbc6176ad1bcfa45a87bd6c3542f0
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6639deedbf04eceba6017f712b287235540b5528 b/test/core/end2end/fuzzers/api_fuzzer_corpus/6639deedbf04eceba6017f712b287235540b5528
new file mode 100644
index 0000000000..489843ea7d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6639deedbf04eceba6017f712b287235540b5528
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/665d7b4f8082be87864e6ad3a6a3faa1d52ad6e5 b/test/core/end2end/fuzzers/api_fuzzer_corpus/665d7b4f8082be87864e6ad3a6a3faa1d52ad6e5
new file mode 100644
index 0000000000..899f662517
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/665d7b4f8082be87864e6ad3a6a3faa1d52ad6e5
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/66f0ed73b2d4ca3edbd23d5b669e75e4d0ffd292 b/test/core/end2end/fuzzers/api_fuzzer_corpus/66f0ed73b2d4ca3edbd23d5b669e75e4d0ffd292
new file mode 100644
index 0000000000..924c8ac7b3
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/66f0ed73b2d4ca3edbd23d5b669e75e4d0ffd292
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6722929b4924f4d50ccfb999460e9a31ca104b4c b/test/core/end2end/fuzzers/api_fuzzer_corpus/6722929b4924f4d50ccfb999460e9a31ca104b4c
new file mode 100644
index 0000000000..10cebeab1f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6722929b4924f4d50ccfb999460e9a31ca104b4c
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6868e669f4b9a77ae5227767ec455fe6f82e55a1 b/test/core/end2end/fuzzers/api_fuzzer_corpus/6868e669f4b9a77ae5227767ec455fe6f82e55a1
new file mode 100644
index 0000000000..64d6f6d3f5
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6868e669f4b9a77ae5227767ec455fe6f82e55a1
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6887af467b343d6e1a8125ef10eb0a630f2dc06d b/test/core/end2end/fuzzers/api_fuzzer_corpus/6887af467b343d6e1a8125ef10eb0a630f2dc06d
new file mode 100644
index 0000000000..f3d89db61b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6887af467b343d6e1a8125ef10eb0a630f2dc06d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/68c65dc60f887050eb8cd7f946bf37aea2ade9f2 b/test/core/end2end/fuzzers/api_fuzzer_corpus/68c65dc60f887050eb8cd7f946bf37aea2ade9f2
new file mode 100644
index 0000000000..f94aa4efab
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/68c65dc60f887050eb8cd7f946bf37aea2ade9f2
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/68f9d39b83bbc7cb4f743c8814800e6692988897 b/test/core/end2end/fuzzers/api_fuzzer_corpus/68f9d39b83bbc7cb4f743c8814800e6692988897
new file mode 100644
index 0000000000..ef065af58e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/68f9d39b83bbc7cb4f743c8814800e6692988897
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/69d0f8b4a9452d11620c7d3c1fa532a618d65858 b/test/core/end2end/fuzzers/api_fuzzer_corpus/69d0f8b4a9452d11620c7d3c1fa532a618d65858
new file mode 100644
index 0000000000..792443b27b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/69d0f8b4a9452d11620c7d3c1fa532a618d65858
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6a1d877fe1eed1199511b8f28889d8f17665708e b/test/core/end2end/fuzzers/api_fuzzer_corpus/6a1d877fe1eed1199511b8f28889d8f17665708e
new file mode 100644
index 0000000000..4e4ac64e8f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6a1d877fe1eed1199511b8f28889d8f17665708e
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6ac88da4119df5e1592a05bac7ecb92af59dc1d1 b/test/core/end2end/fuzzers/api_fuzzer_corpus/6ac88da4119df5e1592a05bac7ecb92af59dc1d1
new file mode 100644
index 0000000000..d86c3d57b0
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6ac88da4119df5e1592a05bac7ecb92af59dc1d1
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6b1e10a936df3b42720ebc9179fb74aa147f8b14 b/test/core/end2end/fuzzers/api_fuzzer_corpus/6b1e10a936df3b42720ebc9179fb74aa147f8b14
new file mode 100644
index 0000000000..2c01f4f0b0
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6b1e10a936df3b42720ebc9179fb74aa147f8b14
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6bd27df0dc9a3f73108de7bad443433aa5ee1175 b/test/core/end2end/fuzzers/api_fuzzer_corpus/6bd27df0dc9a3f73108de7bad443433aa5ee1175
new file mode 100644
index 0000000000..47e000618c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6bd27df0dc9a3f73108de7bad443433aa5ee1175
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6c5707e8b1aa9a70ec87014cd660df4a7b910ee3 b/test/core/end2end/fuzzers/api_fuzzer_corpus/6c5707e8b1aa9a70ec87014cd660df4a7b910ee3
new file mode 100644
index 0000000000..3ff6967ce7
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6c5707e8b1aa9a70ec87014cd660df4a7b910ee3
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6c91623f5a30f65110a4083897bad2882f032c51 b/test/core/end2end/fuzzers/api_fuzzer_corpus/6c91623f5a30f65110a4083897bad2882f032c51
new file mode 100644
index 0000000000..9a56cb7e1f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6c91623f5a30f65110a4083897bad2882f032c51
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6c9b144f4e6dae6944b524a077dde07ac79e58d5 b/test/core/end2end/fuzzers/api_fuzzer_corpus/6c9b144f4e6dae6944b524a077dde07ac79e58d5
new file mode 100644
index 0000000000..dc4750cbb7
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6c9b144f4e6dae6944b524a077dde07ac79e58d5
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6ca83e5d3f4544a14da513dc798f02464febdcd8 b/test/core/end2end/fuzzers/api_fuzzer_corpus/6ca83e5d3f4544a14da513dc798f02464febdcd8
new file mode 100644
index 0000000000..43b098bdd0
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6ca83e5d3f4544a14da513dc798f02464febdcd8
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6ce9895c780428861d12440946508c6641352544 b/test/core/end2end/fuzzers/api_fuzzer_corpus/6ce9895c780428861d12440946508c6641352544
new file mode 100644
index 0000000000..7d51c94a29
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6ce9895c780428861d12440946508c6641352544
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6df1c575d7f8fdf5593f1f60d9dc540d018fc58c b/test/core/end2end/fuzzers/api_fuzzer_corpus/6df1c575d7f8fdf5593f1f60d9dc540d018fc58c
new file mode 100644
index 0000000000..96758875ef
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6df1c575d7f8fdf5593f1f60d9dc540d018fc58c
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6e97f4e782ca976d4890199d48fcfd64173e24f9 b/test/core/end2end/fuzzers/api_fuzzer_corpus/6e97f4e782ca976d4890199d48fcfd64173e24f9
new file mode 100644
index 0000000000..ee42072d76
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6e97f4e782ca976d4890199d48fcfd64173e24f9
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6f0bbfce7c5027932fb0f809494413e12a4ad3c1 b/test/core/end2end/fuzzers/api_fuzzer_corpus/6f0bbfce7c5027932fb0f809494413e12a4ad3c1
new file mode 100644
index 0000000000..2f9cfea000
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6f0bbfce7c5027932fb0f809494413e12a4ad3c1
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6f39da8f5bbae89a13dd36755f7b3c4a30c25833 b/test/core/end2end/fuzzers/api_fuzzer_corpus/6f39da8f5bbae89a13dd36755f7b3c4a30c25833
new file mode 100644
index 0000000000..98b2635ccd
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6f39da8f5bbae89a13dd36755f7b3c4a30c25833
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6fa93aadbb6ecdc32c9111be7692ec28ec11be72 b/test/core/end2end/fuzzers/api_fuzzer_corpus/6fa93aadbb6ecdc32c9111be7692ec28ec11be72
new file mode 100644
index 0000000000..f7b2e9979f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6fa93aadbb6ecdc32c9111be7692ec28ec11be72
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6fb7b01c1b363390eb9188bcac05f8f11e20c01d b/test/core/end2end/fuzzers/api_fuzzer_corpus/6fb7b01c1b363390eb9188bcac05f8f11e20c01d
new file mode 100644
index 0000000000..792e81225a
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6fb7b01c1b363390eb9188bcac05f8f11e20c01d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6fbbaf9f6f49fabad4a0e47cea9e4048d8f130ed b/test/core/end2end/fuzzers/api_fuzzer_corpus/6fbbaf9f6f49fabad4a0e47cea9e4048d8f130ed
new file mode 100644
index 0000000000..e0a6317195
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6fbbaf9f6f49fabad4a0e47cea9e4048d8f130ed
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6fe041f1468b495d3186da906f9a5091e5761387 b/test/core/end2end/fuzzers/api_fuzzer_corpus/6fe041f1468b495d3186da906f9a5091e5761387
new file mode 100644
index 0000000000..ea9c3546ff
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6fe041f1468b495d3186da906f9a5091e5761387
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6fff95a8d3566b2721fa46e9828b47635f13d9ef b/test/core/end2end/fuzzers/api_fuzzer_corpus/6fff95a8d3566b2721fa46e9828b47635f13d9ef
new file mode 100644
index 0000000000..ec7a56d7ea
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/6fff95a8d3566b2721fa46e9828b47635f13d9ef
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/700f56e26286daf472d371effb9bca13fffa3d77 b/test/core/end2end/fuzzers/api_fuzzer_corpus/700f56e26286daf472d371effb9bca13fffa3d77
new file mode 100644
index 0000000000..0c6b8c13c0
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/700f56e26286daf472d371effb9bca13fffa3d77
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/705c87b99197c87eb2ed148f8b3fdc60f8616f15 b/test/core/end2end/fuzzers/api_fuzzer_corpus/705c87b99197c87eb2ed148f8b3fdc60f8616f15
new file mode 100644
index 0000000000..d8930c7906
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/705c87b99197c87eb2ed148f8b3fdc60f8616f15
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/718d23058d5c805a2984c087cd89f9cb6af065b4 b/test/core/end2end/fuzzers/api_fuzzer_corpus/718d23058d5c805a2984c087cd89f9cb6af065b4
new file mode 100644
index 0000000000..9282b0a779
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/718d23058d5c805a2984c087cd89f9cb6af065b4
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7217d93c1da3ae8ed085a5e6988227dcf430cd89 b/test/core/end2end/fuzzers/api_fuzzer_corpus/7217d93c1da3ae8ed085a5e6988227dcf430cd89
new file mode 100644
index 0000000000..0f64b025e4
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/7217d93c1da3ae8ed085a5e6988227dcf430cd89
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/724063b7a5ee36246d72923e776331487434b81a b/test/core/end2end/fuzzers/api_fuzzer_corpus/724063b7a5ee36246d72923e776331487434b81a
new file mode 100644
index 0000000000..a554b8fb2f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/724063b7a5ee36246d72923e776331487434b81a
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/72a79517b8f9b57f62dc1203a6b5eefadf27c088 b/test/core/end2end/fuzzers/api_fuzzer_corpus/72a79517b8f9b57f62dc1203a6b5eefadf27c088
new file mode 100644
index 0000000000..0e795588a8
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/72a79517b8f9b57f62dc1203a6b5eefadf27c088
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/72f71befa8ebb4b2c1842aec78d840b2a4abdb85 b/test/core/end2end/fuzzers/api_fuzzer_corpus/72f71befa8ebb4b2c1842aec78d840b2a4abdb85
new file mode 100644
index 0000000000..28402793f3
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/72f71befa8ebb4b2c1842aec78d840b2a4abdb85
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/73a6e07089ee011746c1ec3146b8a1b4b82c835e b/test/core/end2end/fuzzers/api_fuzzer_corpus/73a6e07089ee011746c1ec3146b8a1b4b82c835e
new file mode 100644
index 0000000000..0a6411f2c9
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/73a6e07089ee011746c1ec3146b8a1b4b82c835e
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7421d8acd877abd9d437ad447dfae29893cd2f37 b/test/core/end2end/fuzzers/api_fuzzer_corpus/7421d8acd877abd9d437ad447dfae29893cd2f37
new file mode 100644
index 0000000000..7d730cef62
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/7421d8acd877abd9d437ad447dfae29893cd2f37
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/746d9837f0fc3c989b7fe0585b8365478f1c21fc b/test/core/end2end/fuzzers/api_fuzzer_corpus/746d9837f0fc3c989b7fe0585b8365478f1c21fc
new file mode 100644
index 0000000000..be67234643
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/746d9837f0fc3c989b7fe0585b8365478f1c21fc
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/746ecd23f1c41206dd4180a7afb032411f315d73 b/test/core/end2end/fuzzers/api_fuzzer_corpus/746ecd23f1c41206dd4180a7afb032411f315d73
new file mode 100644
index 0000000000..8d7fa42a23
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/746ecd23f1c41206dd4180a7afb032411f315d73
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7487f56a435277d9bd7ef38d361e8ad7cdf62375 b/test/core/end2end/fuzzers/api_fuzzer_corpus/7487f56a435277d9bd7ef38d361e8ad7cdf62375
new file mode 100644
index 0000000000..1f07e584f9
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/7487f56a435277d9bd7ef38d361e8ad7cdf62375
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/75755ae5cb0ae4f711dd15925f9f681d23408bb8 b/test/core/end2end/fuzzers/api_fuzzer_corpus/75755ae5cb0ae4f711dd15925f9f681d23408bb8
new file mode 100644
index 0000000000..94f068b999
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/75755ae5cb0ae4f711dd15925f9f681d23408bb8
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/774a64c60765d78b3b980ff9a6538219d6908a3d b/test/core/end2end/fuzzers/api_fuzzer_corpus/774a64c60765d78b3b980ff9a6538219d6908a3d
new file mode 100644
index 0000000000..d84b622c9e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/774a64c60765d78b3b980ff9a6538219d6908a3d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/783b1f17ae90eba0ff7728e767b56ea6885e0b28 b/test/core/end2end/fuzzers/api_fuzzer_corpus/783b1f17ae90eba0ff7728e767b56ea6885e0b28
new file mode 100644
index 0000000000..3fb16c7c1f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/783b1f17ae90eba0ff7728e767b56ea6885e0b28
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/78499fa2980dce2fde92b74421f486bf544cfb8f b/test/core/end2end/fuzzers/api_fuzzer_corpus/78499fa2980dce2fde92b74421f486bf544cfb8f
new file mode 100644
index 0000000000..0ad9591b68
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/78499fa2980dce2fde92b74421f486bf544cfb8f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/788f18727a0aeb5e200527bca7c889c9954be343 b/test/core/end2end/fuzzers/api_fuzzer_corpus/788f18727a0aeb5e200527bca7c889c9954be343
new file mode 100644
index 0000000000..e8bc498037
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/788f18727a0aeb5e200527bca7c889c9954be343
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/78c3bbeaeb266aac1df0d4abe78bbca68fb085a8 b/test/core/end2end/fuzzers/api_fuzzer_corpus/78c3bbeaeb266aac1df0d4abe78bbca68fb085a8
new file mode 100644
index 0000000000..560f4fc37a
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/78c3bbeaeb266aac1df0d4abe78bbca68fb085a8
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7957953ca449974ec39c6a137c0acdedb71c3b02 b/test/core/end2end/fuzzers/api_fuzzer_corpus/7957953ca449974ec39c6a137c0acdedb71c3b02
new file mode 100644
index 0000000000..65bba5a40d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/7957953ca449974ec39c6a137c0acdedb71c3b02
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/798fd96821ee3d91952373024f35cdceb10ccbed b/test/core/end2end/fuzzers/api_fuzzer_corpus/798fd96821ee3d91952373024f35cdceb10ccbed
new file mode 100644
index 0000000000..c33e5f0e63
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/798fd96821ee3d91952373024f35cdceb10ccbed
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/79ac297c667d2ae77c05d2af275b05138439ee5b b/test/core/end2end/fuzzers/api_fuzzer_corpus/79ac297c667d2ae77c05d2af275b05138439ee5b
new file mode 100644
index 0000000000..06baaa7126
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/79ac297c667d2ae77c05d2af275b05138439ee5b
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7b4b493ac5a36d3b3fed0b66bc504206548a3537 b/test/core/end2end/fuzzers/api_fuzzer_corpus/7b4b493ac5a36d3b3fed0b66bc504206548a3537
new file mode 100644
index 0000000000..a27ffd37fc
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/7b4b493ac5a36d3b3fed0b66bc504206548a3537
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7bb25e1821f1ff6ea4c85259444f7f40b430aa1f b/test/core/end2end/fuzzers/api_fuzzer_corpus/7bb25e1821f1ff6ea4c85259444f7f40b430aa1f
new file mode 100644
index 0000000000..35c5a9d28e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/7bb25e1821f1ff6ea4c85259444f7f40b430aa1f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7bd75ddceb75724e5e9205cf7fadec03d8e1aca2 b/test/core/end2end/fuzzers/api_fuzzer_corpus/7bd75ddceb75724e5e9205cf7fadec03d8e1aca2
new file mode 100644
index 0000000000..1a610e52de
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/7bd75ddceb75724e5e9205cf7fadec03d8e1aca2
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7bdc25dc79ca942673e515126e22474fd89ce55e b/test/core/end2end/fuzzers/api_fuzzer_corpus/7bdc25dc79ca942673e515126e22474fd89ce55e
new file mode 100644
index 0000000000..8d9dd1f7df
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/7bdc25dc79ca942673e515126e22474fd89ce55e
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7bf8d2b77d85e4042e47d0dbe6da9441c6d9530b b/test/core/end2end/fuzzers/api_fuzzer_corpus/7bf8d2b77d85e4042e47d0dbe6da9441c6d9530b
new file mode 100644
index 0000000000..eaf8a8f304
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/7bf8d2b77d85e4042e47d0dbe6da9441c6d9530b
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7c193442a422da21cdeb14f681b0d4179aaeaf5f b/test/core/end2end/fuzzers/api_fuzzer_corpus/7c193442a422da21cdeb14f681b0d4179aaeaf5f
new file mode 100644
index 0000000000..a1fdbfd61f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/7c193442a422da21cdeb14f681b0d4179aaeaf5f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7c6a381eac8fbc8fccada2b2069c3f773a9c6961 b/test/core/end2end/fuzzers/api_fuzzer_corpus/7c6a381eac8fbc8fccada2b2069c3f773a9c6961
new file mode 100644
index 0000000000..33d987810e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/7c6a381eac8fbc8fccada2b2069c3f773a9c6961
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7c70dd584df7a4fda61d08ab8ef85ec70c85b7f5 b/test/core/end2end/fuzzers/api_fuzzer_corpus/7c70dd584df7a4fda61d08ab8ef85ec70c85b7f5
new file mode 100644
index 0000000000..39f933f490
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/7c70dd584df7a4fda61d08ab8ef85ec70c85b7f5
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7cc958be492e942df2b784fcc08a63d57c7fef92 b/test/core/end2end/fuzzers/api_fuzzer_corpus/7cc958be492e942df2b784fcc08a63d57c7fef92
new file mode 100644
index 0000000000..a40561266f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/7cc958be492e942df2b784fcc08a63d57c7fef92
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7d8eeb8778051e621abf74daf43dd4010117d9f9 b/test/core/end2end/fuzzers/api_fuzzer_corpus/7d8eeb8778051e621abf74daf43dd4010117d9f9
new file mode 100644
index 0000000000..1e6d8944f4
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/7d8eeb8778051e621abf74daf43dd4010117d9f9
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7e29172a1d27c4f8a0b138306db1043373b2d0ba b/test/core/end2end/fuzzers/api_fuzzer_corpus/7e29172a1d27c4f8a0b138306db1043373b2d0ba
new file mode 100644
index 0000000000..65c18d1fa6
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/7e29172a1d27c4f8a0b138306db1043373b2d0ba
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7ec62c16916c2c30847b578d2148893924287bfe b/test/core/end2end/fuzzers/api_fuzzer_corpus/7ec62c16916c2c30847b578d2148893924287bfe
new file mode 100644
index 0000000000..a326d20d52
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/7ec62c16916c2c30847b578d2148893924287bfe
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7eea6a4b31c4f10281f31a7461f35af7331becf2 b/test/core/end2end/fuzzers/api_fuzzer_corpus/7eea6a4b31c4f10281f31a7461f35af7331becf2
new file mode 100644
index 0000000000..86ca443228
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/7eea6a4b31c4f10281f31a7461f35af7331becf2
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7efac665d3dabc2162f4407e3bedbd65b3007335 b/test/core/end2end/fuzzers/api_fuzzer_corpus/7efac665d3dabc2162f4407e3bedbd65b3007335
new file mode 100644
index 0000000000..aa8d8c29ad
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/7efac665d3dabc2162f4407e3bedbd65b3007335
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7fe7a6ab57422c40c7e0e2333c3bbb6ae6a0d9a3 b/test/core/end2end/fuzzers/api_fuzzer_corpus/7fe7a6ab57422c40c7e0e2333c3bbb6ae6a0d9a3
new file mode 100644
index 0000000000..00ff25ac97
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/7fe7a6ab57422c40c7e0e2333c3bbb6ae6a0d9a3
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/80ecd5087801e974eae7db730a496d2aca110648 b/test/core/end2end/fuzzers/api_fuzzer_corpus/80ecd5087801e974eae7db730a496d2aca110648
new file mode 100644
index 0000000000..0d16b9ed65
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/80ecd5087801e974eae7db730a496d2aca110648
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/81489a0c6a71c48e9f343cb5ff8e8b5693d5df19 b/test/core/end2end/fuzzers/api_fuzzer_corpus/81489a0c6a71c48e9f343cb5ff8e8b5693d5df19
new file mode 100644
index 0000000000..5fab90d8f9
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/81489a0c6a71c48e9f343cb5ff8e8b5693d5df19
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/819cac3befd0d7b12ffd734c26df1cdf43c376a2 b/test/core/end2end/fuzzers/api_fuzzer_corpus/819cac3befd0d7b12ffd734c26df1cdf43c376a2
new file mode 100644
index 0000000000..01c04453dc
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/819cac3befd0d7b12ffd734c26df1cdf43c376a2
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/81e64ec00272538edef6336423738277647b5ed0 b/test/core/end2end/fuzzers/api_fuzzer_corpus/81e64ec00272538edef6336423738277647b5ed0
new file mode 100644
index 0000000000..69dd622098
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/81e64ec00272538edef6336423738277647b5ed0
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/82182d7a9c73a70f5eec58c03b1db511d7feb95d b/test/core/end2end/fuzzers/api_fuzzer_corpus/82182d7a9c73a70f5eec58c03b1db511d7feb95d
new file mode 100644
index 0000000000..6b61294ed5
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/82182d7a9c73a70f5eec58c03b1db511d7feb95d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/839b0cad1196be563cec8e8a55184fc001b8401a b/test/core/end2end/fuzzers/api_fuzzer_corpus/839b0cad1196be563cec8e8a55184fc001b8401a
new file mode 100644
index 0000000000..3b711c326f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/839b0cad1196be563cec8e8a55184fc001b8401a
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/840928fe62714fdb003b3f0a40c2c4897f9d7938 b/test/core/end2end/fuzzers/api_fuzzer_corpus/840928fe62714fdb003b3f0a40c2c4897f9d7938
new file mode 100644
index 0000000000..9518177620
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/840928fe62714fdb003b3f0a40c2c4897f9d7938
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/84650393df0dca7ca3244faa7ac036873d3dcce1 b/test/core/end2end/fuzzers/api_fuzzer_corpus/84650393df0dca7ca3244faa7ac036873d3dcce1
new file mode 100644
index 0000000000..6ac2f60164
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/84650393df0dca7ca3244faa7ac036873d3dcce1
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/85bd45792a3cf2116fab5e99e2d824ee804af843 b/test/core/end2end/fuzzers/api_fuzzer_corpus/85bd45792a3cf2116fab5e99e2d824ee804af843
new file mode 100644
index 0000000000..eec85e626c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/85bd45792a3cf2116fab5e99e2d824ee804af843
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/875280c0c54d1662b07150e728f9ac0c1af7bf66 b/test/core/end2end/fuzzers/api_fuzzer_corpus/875280c0c54d1662b07150e728f9ac0c1af7bf66
new file mode 100644
index 0000000000..76a53d10c6
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/875280c0c54d1662b07150e728f9ac0c1af7bf66
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/87e510c4dd906ec4de0066e93b2475480fc0768b b/test/core/end2end/fuzzers/api_fuzzer_corpus/87e510c4dd906ec4de0066e93b2475480fc0768b
new file mode 100644
index 0000000000..cdc769a555
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/87e510c4dd906ec4de0066e93b2475480fc0768b
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/88139a0d01f144556ef861af4450f466081443f5 b/test/core/end2end/fuzzers/api_fuzzer_corpus/88139a0d01f144556ef861af4450f466081443f5
new file mode 100644
index 0000000000..7b242bdc3d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/88139a0d01f144556ef861af4450f466081443f5
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/8854a331f3c5ddc4ace70e0505901e53aa48e386 b/test/core/end2end/fuzzers/api_fuzzer_corpus/8854a331f3c5ddc4ace70e0505901e53aa48e386
new file mode 100644
index 0000000000..feba4eb243
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/8854a331f3c5ddc4ace70e0505901e53aa48e386
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/88600f27cb602db290f07eb0e8b6f10488c0760f b/test/core/end2end/fuzzers/api_fuzzer_corpus/88600f27cb602db290f07eb0e8b6f10488c0760f
new file mode 100644
index 0000000000..56be62d99d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/88600f27cb602db290f07eb0e8b6f10488c0760f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/8979c4017b72b970dc33095be26788f52f37a959 b/test/core/end2end/fuzzers/api_fuzzer_corpus/8979c4017b72b970dc33095be26788f52f37a959
new file mode 100644
index 0000000000..64fd265412
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/8979c4017b72b970dc33095be26788f52f37a959
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/8a4183e6bb75036228a42039d678fca0ea6751b7 b/test/core/end2end/fuzzers/api_fuzzer_corpus/8a4183e6bb75036228a42039d678fca0ea6751b7
new file mode 100644
index 0000000000..47d943f96b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/8a4183e6bb75036228a42039d678fca0ea6751b7
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/8aaa277cf855a972c6dec9fc49b171ce3232a26a b/test/core/end2end/fuzzers/api_fuzzer_corpus/8aaa277cf855a972c6dec9fc49b171ce3232a26a
new file mode 100644
index 0000000000..38a319b53d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/8aaa277cf855a972c6dec9fc49b171ce3232a26a
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/8ab19633328ea9e493dee313e135e7d851aa7911 b/test/core/end2end/fuzzers/api_fuzzer_corpus/8ab19633328ea9e493dee313e135e7d851aa7911
new file mode 100644
index 0000000000..24b8e2d831
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/8ab19633328ea9e493dee313e135e7d851aa7911
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/8b30c1f058ac421b6c51c4591ef9e4adc2886b44 b/test/core/end2end/fuzzers/api_fuzzer_corpus/8b30c1f058ac421b6c51c4591ef9e4adc2886b44
new file mode 100644
index 0000000000..ca577c4ccd
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/8b30c1f058ac421b6c51c4591ef9e4adc2886b44
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/8b37ce939cb8d42c459f5e286de980c7b62f14be b/test/core/end2end/fuzzers/api_fuzzer_corpus/8b37ce939cb8d42c459f5e286de980c7b62f14be
new file mode 100644
index 0000000000..cf06afd662
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/8b37ce939cb8d42c459f5e286de980c7b62f14be
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/8ba87aeecf944e0eb387f8f2d9e30964c9f860de b/test/core/end2end/fuzzers/api_fuzzer_corpus/8ba87aeecf944e0eb387f8f2d9e30964c9f860de
new file mode 100644
index 0000000000..cd7f1ec10d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/8ba87aeecf944e0eb387f8f2d9e30964c9f860de
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/8bd94413e2d60effc2806dd7153216a1b6487162 b/test/core/end2end/fuzzers/api_fuzzer_corpus/8bd94413e2d60effc2806dd7153216a1b6487162
new file mode 100644
index 0000000000..9e1266445e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/8bd94413e2d60effc2806dd7153216a1b6487162
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/8c395b9251d60823ef14014f6ad58b29968a1681 b/test/core/end2end/fuzzers/api_fuzzer_corpus/8c395b9251d60823ef14014f6ad58b29968a1681
new file mode 100644
index 0000000000..6eae9d838f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/8c395b9251d60823ef14014f6ad58b29968a1681
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/8c540353717db453eeb865e5b9b7f2efe6c5d5b7 b/test/core/end2end/fuzzers/api_fuzzer_corpus/8c540353717db453eeb865e5b9b7f2efe6c5d5b7
new file mode 100644
index 0000000000..1f97037ce0
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/8c540353717db453eeb865e5b9b7f2efe6c5d5b7
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/8d386a409662ef68370c0c552742bd0ea6d527d5 b/test/core/end2end/fuzzers/api_fuzzer_corpus/8d386a409662ef68370c0c552742bd0ea6d527d5
new file mode 100644
index 0000000000..e987d01d88
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/8d386a409662ef68370c0c552742bd0ea6d527d5
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/8d91dd322c7972a13cb98461b0eb284116905887 b/test/core/end2end/fuzzers/api_fuzzer_corpus/8d91dd322c7972a13cb98461b0eb284116905887
new file mode 100644
index 0000000000..41a1408a4d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/8d91dd322c7972a13cb98461b0eb284116905887
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/8dab1d2d4f470c669688103f52718a7783113cf1 b/test/core/end2end/fuzzers/api_fuzzer_corpus/8dab1d2d4f470c669688103f52718a7783113cf1
new file mode 100644
index 0000000000..6a75add564
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/8dab1d2d4f470c669688103f52718a7783113cf1
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/8dcb4dd3d2fa04ffc83f7fd7f9306ae4105ef7ef b/test/core/end2end/fuzzers/api_fuzzer_corpus/8dcb4dd3d2fa04ffc83f7fd7f9306ae4105ef7ef
new file mode 100644
index 0000000000..50155517b4
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/8dcb4dd3d2fa04ffc83f7fd7f9306ae4105ef7ef
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/8ebddbd256887fb5fe1be69a46023b34f815d2e8 b/test/core/end2end/fuzzers/api_fuzzer_corpus/8ebddbd256887fb5fe1be69a46023b34f815d2e8
new file mode 100644
index 0000000000..fd167a566e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/8ebddbd256887fb5fe1be69a46023b34f815d2e8
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/8edad87970b31dad2b23184d864fe5ad9efb05e5 b/test/core/end2end/fuzzers/api_fuzzer_corpus/8edad87970b31dad2b23184d864fe5ad9efb05e5
new file mode 100644
index 0000000000..06337c5116
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/8edad87970b31dad2b23184d864fe5ad9efb05e5
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/8f4187ea7f2efbcd933fdb2b0652b71ecaff7822 b/test/core/end2end/fuzzers/api_fuzzer_corpus/8f4187ea7f2efbcd933fdb2b0652b71ecaff7822
new file mode 100644
index 0000000000..66c4cbf6d3
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/8f4187ea7f2efbcd933fdb2b0652b71ecaff7822
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/9080684608701e015c764f643dc45fa939d86ed3 b/test/core/end2end/fuzzers/api_fuzzer_corpus/9080684608701e015c764f643dc45fa939d86ed3
new file mode 100644
index 0000000000..29b8e4a430
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/9080684608701e015c764f643dc45fa939d86ed3
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/92d44998655e82d89a614c7b6a2f08c5fc7f8805 b/test/core/end2end/fuzzers/api_fuzzer_corpus/92d44998655e82d89a614c7b6a2f08c5fc7f8805
new file mode 100644
index 0000000000..a4f0ce87ea
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/92d44998655e82d89a614c7b6a2f08c5fc7f8805
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/92ec3b6722dde442121b3d1ed3ef23976c72cba8 b/test/core/end2end/fuzzers/api_fuzzer_corpus/92ec3b6722dde442121b3d1ed3ef23976c72cba8
new file mode 100644
index 0000000000..08e2196cca
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/92ec3b6722dde442121b3d1ed3ef23976c72cba8
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/940a622e8995529f6b0455906d8a035902682d2d b/test/core/end2end/fuzzers/api_fuzzer_corpus/940a622e8995529f6b0455906d8a035902682d2d
new file mode 100644
index 0000000000..39dbccf0b4
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/940a622e8995529f6b0455906d8a035902682d2d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/940e35bed3ff2b52a29e5b15acf9fe39772eb5de b/test/core/end2end/fuzzers/api_fuzzer_corpus/940e35bed3ff2b52a29e5b15acf9fe39772eb5de
new file mode 100644
index 0000000000..3a7c9abc9a
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/940e35bed3ff2b52a29e5b15acf9fe39772eb5de
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/94571a4b13c435117ef9bd914443ce9a07da8e3f b/test/core/end2end/fuzzers/api_fuzzer_corpus/94571a4b13c435117ef9bd914443ce9a07da8e3f
new file mode 100644
index 0000000000..87cf504b4e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/94571a4b13c435117ef9bd914443ce9a07da8e3f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/95940316e7104e9c2d5123b31e36b2dfd12fcea2 b/test/core/end2end/fuzzers/api_fuzzer_corpus/95940316e7104e9c2d5123b31e36b2dfd12fcea2
new file mode 100644
index 0000000000..380dc5e9a1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/95940316e7104e9c2d5123b31e36b2dfd12fcea2
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/95dd85860bde08e1d0ecef805ad55f66008923af b/test/core/end2end/fuzzers/api_fuzzer_corpus/95dd85860bde08e1d0ecef805ad55f66008923af
new file mode 100644
index 0000000000..f04672b5a1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/95dd85860bde08e1d0ecef805ad55f66008923af
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/95f223f8964d294aafc2a6041a83cfa7761c31ab b/test/core/end2end/fuzzers/api_fuzzer_corpus/95f223f8964d294aafc2a6041a83cfa7761c31ab
new file mode 100644
index 0000000000..3752f876d1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/95f223f8964d294aafc2a6041a83cfa7761c31ab
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/9629c00d91e6146b29f7559a944e6bf8dce7d0f1 b/test/core/end2end/fuzzers/api_fuzzer_corpus/9629c00d91e6146b29f7559a944e6bf8dce7d0f1
new file mode 100644
index 0000000000..ddec41102e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/9629c00d91e6146b29f7559a944e6bf8dce7d0f1
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/96a6293d4fc97c75f037bdb0f73dc5b62bbfa2e6 b/test/core/end2end/fuzzers/api_fuzzer_corpus/96a6293d4fc97c75f037bdb0f73dc5b62bbfa2e6
new file mode 100644
index 0000000000..5e370d390b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/96a6293d4fc97c75f037bdb0f73dc5b62bbfa2e6
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/97011f865fcf9c57560d5ed3cb05883ff298ee35 b/test/core/end2end/fuzzers/api_fuzzer_corpus/97011f865fcf9c57560d5ed3cb05883ff298ee35
new file mode 100644
index 0000000000..fff509785c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/97011f865fcf9c57560d5ed3cb05883ff298ee35
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/97440beca022cd5799f76654d8bec51f62c0bbaf b/test/core/end2end/fuzzers/api_fuzzer_corpus/97440beca022cd5799f76654d8bec51f62c0bbaf
new file mode 100644
index 0000000000..15c9411f40
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/97440beca022cd5799f76654d8bec51f62c0bbaf
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/976613cb09127a752d628c4a3cf73b8e3168e0af b/test/core/end2end/fuzzers/api_fuzzer_corpus/976613cb09127a752d628c4a3cf73b8e3168e0af
new file mode 100644
index 0000000000..a35a8db306
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/976613cb09127a752d628c4a3cf73b8e3168e0af
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/97817475213736527fdc3b2a28cd45f52fe4ce1a b/test/core/end2end/fuzzers/api_fuzzer_corpus/97817475213736527fdc3b2a28cd45f52fe4ce1a
new file mode 100644
index 0000000000..23a75843a7
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/97817475213736527fdc3b2a28cd45f52fe4ce1a
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/97efcb1f37032ebf01b4b1065a9df66590b7051f b/test/core/end2end/fuzzers/api_fuzzer_corpus/97efcb1f37032ebf01b4b1065a9df66590b7051f
new file mode 100644
index 0000000000..d76ab526f8
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/97efcb1f37032ebf01b4b1065a9df66590b7051f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/980f0198dc66e867b1a5d04cf24bc02fbdf3b839 b/test/core/end2end/fuzzers/api_fuzzer_corpus/980f0198dc66e867b1a5d04cf24bc02fbdf3b839
new file mode 100644
index 0000000000..4782ad998b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/980f0198dc66e867b1a5d04cf24bc02fbdf3b839
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/98569dc166bfcfef45a66db4de1c0f34340c269c b/test/core/end2end/fuzzers/api_fuzzer_corpus/98569dc166bfcfef45a66db4de1c0f34340c269c
new file mode 100644
index 0000000000..51fa365839
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/98569dc166bfcfef45a66db4de1c0f34340c269c
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/988bd333d5dabe1561cf4429e7481ff110be0da4 b/test/core/end2end/fuzzers/api_fuzzer_corpus/988bd333d5dabe1561cf4429e7481ff110be0da4
new file mode 100644
index 0000000000..948abb17f7
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/988bd333d5dabe1561cf4429e7481ff110be0da4
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/98cdb5ba5725c6b2ed39fc514401fe987fc2d9af b/test/core/end2end/fuzzers/api_fuzzer_corpus/98cdb5ba5725c6b2ed39fc514401fe987fc2d9af
new file mode 100644
index 0000000000..c858baeb6b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/98cdb5ba5725c6b2ed39fc514401fe987fc2d9af
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/9989534524a212092e9d7fede16106b586c434f4 b/test/core/end2end/fuzzers/api_fuzzer_corpus/9989534524a212092e9d7fede16106b586c434f4
new file mode 100644
index 0000000000..f38f1bcdce
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/9989534524a212092e9d7fede16106b586c434f4
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/999737edf1e9740df084c4326ec983137ccd7111 b/test/core/end2end/fuzzers/api_fuzzer_corpus/999737edf1e9740df084c4326ec983137ccd7111
new file mode 100644
index 0000000000..38c8381822
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/999737edf1e9740df084c4326ec983137ccd7111
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/99e8f2ea80ed1d5a78fd5236e89d404bb0c03940 b/test/core/end2end/fuzzers/api_fuzzer_corpus/99e8f2ea80ed1d5a78fd5236e89d404bb0c03940
new file mode 100644
index 0000000000..7eb66b527e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/99e8f2ea80ed1d5a78fd5236e89d404bb0c03940
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/9a0f0818ff9fbfd81e0d0eadeef7b85ca2d4fd46 b/test/core/end2end/fuzzers/api_fuzzer_corpus/9a0f0818ff9fbfd81e0d0eadeef7b85ca2d4fd46
new file mode 100644
index 0000000000..98ff843342
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/9a0f0818ff9fbfd81e0d0eadeef7b85ca2d4fd46
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/9a9af9f266737f95cfedbf5c8fcea22660c3f085 b/test/core/end2end/fuzzers/api_fuzzer_corpus/9a9af9f266737f95cfedbf5c8fcea22660c3f085
new file mode 100644
index 0000000000..40bd95cf19
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/9a9af9f266737f95cfedbf5c8fcea22660c3f085
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/9ab3be55bd49749439f7aa1bfe2d178ad663b003 b/test/core/end2end/fuzzers/api_fuzzer_corpus/9ab3be55bd49749439f7aa1bfe2d178ad663b003
new file mode 100644
index 0000000000..d5e4ff6d9c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/9ab3be55bd49749439f7aa1bfe2d178ad663b003
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/9addda4c7a9940fbbda2218ec58560c10e1df9f7 b/test/core/end2end/fuzzers/api_fuzzer_corpus/9addda4c7a9940fbbda2218ec58560c10e1df9f7
new file mode 100644
index 0000000000..0a6e7511a6
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/9addda4c7a9940fbbda2218ec58560c10e1df9f7
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/9b5b436057dfcf4299e52ad49c74e45ef04be7a2 b/test/core/end2end/fuzzers/api_fuzzer_corpus/9b5b436057dfcf4299e52ad49c74e45ef04be7a2
new file mode 100644
index 0000000000..07c01de2da
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/9b5b436057dfcf4299e52ad49c74e45ef04be7a2
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/9cb91ce75745cc30995b8985a35ea31db766e54c b/test/core/end2end/fuzzers/api_fuzzer_corpus/9cb91ce75745cc30995b8985a35ea31db766e54c
new file mode 100644
index 0000000000..9c6f308a63
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/9cb91ce75745cc30995b8985a35ea31db766e54c
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/9d004fd9a35647ba7ec169e6fedbf9dce5f9623f b/test/core/end2end/fuzzers/api_fuzzer_corpus/9d004fd9a35647ba7ec169e6fedbf9dce5f9623f
new file mode 100644
index 0000000000..e67ab1d606
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/9d004fd9a35647ba7ec169e6fedbf9dce5f9623f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/9d69b6fb15c861c294878da8aaf16a531dfb1b70 b/test/core/end2end/fuzzers/api_fuzzer_corpus/9d69b6fb15c861c294878da8aaf16a531dfb1b70
new file mode 100644
index 0000000000..e7dac59a90
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/9d69b6fb15c861c294878da8aaf16a531dfb1b70
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/9d74922516d210da71d40395f17a3cef4161894d b/test/core/end2end/fuzzers/api_fuzzer_corpus/9d74922516d210da71d40395f17a3cef4161894d
new file mode 100644
index 0000000000..5496b7d8d5
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/9d74922516d210da71d40395f17a3cef4161894d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/9dd25a6857d92ef52169ec95a0cdfbc8570b6d99 b/test/core/end2end/fuzzers/api_fuzzer_corpus/9dd25a6857d92ef52169ec95a0cdfbc8570b6d99
new file mode 100644
index 0000000000..cd272b92dc
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/9dd25a6857d92ef52169ec95a0cdfbc8570b6d99
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/9e48b3aa2c25dbbab21148bdac91b5169ce088bf b/test/core/end2end/fuzzers/api_fuzzer_corpus/9e48b3aa2c25dbbab21148bdac91b5169ce088bf
new file mode 100644
index 0000000000..b7dec16823
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/9e48b3aa2c25dbbab21148bdac91b5169ce088bf
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/9f00c8665f3918e666d424ee67a2556f2651d64f b/test/core/end2end/fuzzers/api_fuzzer_corpus/9f00c8665f3918e666d424ee67a2556f2651d64f
new file mode 100644
index 0000000000..2b0bef7e66
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/9f00c8665f3918e666d424ee67a2556f2651d64f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/9f43969c0777a021539b59eafdac9dd2f51422d5 b/test/core/end2end/fuzzers/api_fuzzer_corpus/9f43969c0777a021539b59eafdac9dd2f51422d5
new file mode 100644
index 0000000000..e059802e58
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/9f43969c0777a021539b59eafdac9dd2f51422d5
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/9f643e51d8e91e7e0348017d98078f078a1790b9 b/test/core/end2end/fuzzers/api_fuzzer_corpus/9f643e51d8e91e7e0348017d98078f078a1790b9
new file mode 100644
index 0000000000..410ba75204
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/9f643e51d8e91e7e0348017d98078f078a1790b9
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/9f86fc902ca36482d09f6c11e821b79bfc0b98cc b/test/core/end2end/fuzzers/api_fuzzer_corpus/9f86fc902ca36482d09f6c11e821b79bfc0b98cc
new file mode 100644
index 0000000000..36a2080e15
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/9f86fc902ca36482d09f6c11e821b79bfc0b98cc
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/a0e80579e201495c2337292a3508b2d220e9737a b/test/core/end2end/fuzzers/api_fuzzer_corpus/a0e80579e201495c2337292a3508b2d220e9737a
new file mode 100644
index 0000000000..296cee354c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/a0e80579e201495c2337292a3508b2d220e9737a
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/a18ed3861270cd42a661211d9d970c488fed46ad b/test/core/end2end/fuzzers/api_fuzzer_corpus/a18ed3861270cd42a661211d9d970c488fed46ad
new file mode 100644
index 0000000000..4b765b45e4
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/a18ed3861270cd42a661211d9d970c488fed46ad
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/a1f6961a480f1eb49b394118b05b9cdabfb6f0a3 b/test/core/end2end/fuzzers/api_fuzzer_corpus/a1f6961a480f1eb49b394118b05b9cdabfb6f0a3
new file mode 100644
index 0000000000..4576144584
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/a1f6961a480f1eb49b394118b05b9cdabfb6f0a3
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/a36a156c5ed8a55aec450393deaed66c0e9117c9 b/test/core/end2end/fuzzers/api_fuzzer_corpus/a36a156c5ed8a55aec450393deaed66c0e9117c9
new file mode 100644
index 0000000000..cf7b2b67d3
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/a36a156c5ed8a55aec450393deaed66c0e9117c9
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/a380f7e56171dc69269afb6364216bc69925eb8a b/test/core/end2end/fuzzers/api_fuzzer_corpus/a380f7e56171dc69269afb6364216bc69925eb8a
new file mode 100644
index 0000000000..048036e83d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/a380f7e56171dc69269afb6364216bc69925eb8a
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/a3926a25374714a71c8bd515564d294df229c7cf b/test/core/end2end/fuzzers/api_fuzzer_corpus/a3926a25374714a71c8bd515564d294df229c7cf
new file mode 100644
index 0000000000..b13e050f8d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/a3926a25374714a71c8bd515564d294df229c7cf
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/a3d52dfd05da328d3f109d125e6c1a15470eab06 b/test/core/end2end/fuzzers/api_fuzzer_corpus/a3d52dfd05da328d3f109d125e6c1a15470eab06
new file mode 100644
index 0000000000..d9bc8d8ea3
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/a3d52dfd05da328d3f109d125e6c1a15470eab06
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/a41e8b175a837b55e540874c3f056a9d9535866c b/test/core/end2end/fuzzers/api_fuzzer_corpus/a41e8b175a837b55e540874c3f056a9d9535866c
new file mode 100644
index 0000000000..b472beb409
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/a41e8b175a837b55e540874c3f056a9d9535866c
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/a4d41bf7bce38a255a431912f6b57637645221e8 b/test/core/end2end/fuzzers/api_fuzzer_corpus/a4d41bf7bce38a255a431912f6b57637645221e8
new file mode 100644
index 0000000000..b39f02dd63
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/a4d41bf7bce38a255a431912f6b57637645221e8
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/a619bb6ff4871fab3045e46bef8036f80d605f37 b/test/core/end2end/fuzzers/api_fuzzer_corpus/a619bb6ff4871fab3045e46bef8036f80d605f37
new file mode 100644
index 0000000000..3054cdb955
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/a619bb6ff4871fab3045e46bef8036f80d605f37
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/a62960425c597cf5d2bd38e9412363991479837f b/test/core/end2end/fuzzers/api_fuzzer_corpus/a62960425c597cf5d2bd38e9412363991479837f
new file mode 100644
index 0000000000..109cf04171
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/a62960425c597cf5d2bd38e9412363991479837f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/a64136997cd4c4be7d93f10fd6a1d12cdc22691c b/test/core/end2end/fuzzers/api_fuzzer_corpus/a64136997cd4c4be7d93f10fd6a1d12cdc22691c
new file mode 100644
index 0000000000..145b962091
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/a64136997cd4c4be7d93f10fd6a1d12cdc22691c
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/a6541e0f317553947d53cfb9318367aff2898ad5 b/test/core/end2end/fuzzers/api_fuzzer_corpus/a6541e0f317553947d53cfb9318367aff2898ad5
new file mode 100644
index 0000000000..7893d71320
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/a6541e0f317553947d53cfb9318367aff2898ad5
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/a8115b0be87517139447c9fefc33e225f2efdf32 b/test/core/end2end/fuzzers/api_fuzzer_corpus/a8115b0be87517139447c9fefc33e225f2efdf32
new file mode 100644
index 0000000000..010d0c4b1b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/a8115b0be87517139447c9fefc33e225f2efdf32
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/aa6e8ab6cab71f0d7fe316a19c47fbeba5351315 b/test/core/end2end/fuzzers/api_fuzzer_corpus/aa6e8ab6cab71f0d7fe316a19c47fbeba5351315
new file mode 100644
index 0000000000..39a8d85ff3
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/aa6e8ab6cab71f0d7fe316a19c47fbeba5351315
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/abaca8e8237d5add7e35752471688233d265efc2 b/test/core/end2end/fuzzers/api_fuzzer_corpus/abaca8e8237d5add7e35752471688233d265efc2
new file mode 100644
index 0000000000..fbfa420b6b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/abaca8e8237d5add7e35752471688233d265efc2
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/abbd9f85ad500d55dda6009681ddffca1849b632 b/test/core/end2end/fuzzers/api_fuzzer_corpus/abbd9f85ad500d55dda6009681ddffca1849b632
new file mode 100644
index 0000000000..0cec8e8b70
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/abbd9f85ad500d55dda6009681ddffca1849b632
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/abcfa029d3eb7c016a162e78e7351f64b9905a42 b/test/core/end2end/fuzzers/api_fuzzer_corpus/abcfa029d3eb7c016a162e78e7351f64b9905a42
new file mode 100644
index 0000000000..6f8f8fb332
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/abcfa029d3eb7c016a162e78e7351f64b9905a42
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/abdb7891569085e3df0f6c7a5348c12bf3dd1ae0 b/test/core/end2end/fuzzers/api_fuzzer_corpus/abdb7891569085e3df0f6c7a5348c12bf3dd1ae0
new file mode 100644
index 0000000000..09803b5976
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/abdb7891569085e3df0f6c7a5348c12bf3dd1ae0
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/ad6369d2c51c4787778ff9dbd86cc6df44312f1d b/test/core/end2end/fuzzers/api_fuzzer_corpus/ad6369d2c51c4787778ff9dbd86cc6df44312f1d
new file mode 100644
index 0000000000..2b28c68604
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/ad6369d2c51c4787778ff9dbd86cc6df44312f1d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/ada998a4b5a9895f514ddbf8da775f5c59736021 b/test/core/end2end/fuzzers/api_fuzzer_corpus/ada998a4b5a9895f514ddbf8da775f5c59736021
new file mode 100644
index 0000000000..287ac9bc07
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/ada998a4b5a9895f514ddbf8da775f5c59736021
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/af1fbe820d92608782360791113393055c171da0 b/test/core/end2end/fuzzers/api_fuzzer_corpus/af1fbe820d92608782360791113393055c171da0
new file mode 100644
index 0000000000..ba0b35418d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/af1fbe820d92608782360791113393055c171da0
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/af990e5c81c307c188a79f4cdfdae4e8e15dc4a2 b/test/core/end2end/fuzzers/api_fuzzer_corpus/af990e5c81c307c188a79f4cdfdae4e8e15dc4a2
new file mode 100644
index 0000000000..1f41e50fe6
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/af990e5c81c307c188a79f4cdfdae4e8e15dc4a2
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/aff1fdfe79c104bce110cec92e1e021caf012fde b/test/core/end2end/fuzzers/api_fuzzer_corpus/aff1fdfe79c104bce110cec92e1e021caf012fde
new file mode 100644
index 0000000000..23e87ea084
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/aff1fdfe79c104bce110cec92e1e021caf012fde
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/b2432248370f7590e894c54f2dd13fe9df9fa53e b/test/core/end2end/fuzzers/api_fuzzer_corpus/b2432248370f7590e894c54f2dd13fe9df9fa53e
new file mode 100644
index 0000000000..304a27967d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/b2432248370f7590e894c54f2dd13fe9df9fa53e
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/b262c677b8c46262f1fc4982f5abf4ef603abe1c b/test/core/end2end/fuzzers/api_fuzzer_corpus/b262c677b8c46262f1fc4982f5abf4ef603abe1c
new file mode 100644
index 0000000000..b859d32d76
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/b262c677b8c46262f1fc4982f5abf4ef603abe1c
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/b2af0db70de3a6ddcb188d1f6f2a673133a8f9c7 b/test/core/end2end/fuzzers/api_fuzzer_corpus/b2af0db70de3a6ddcb188d1f6f2a673133a8f9c7
new file mode 100644
index 0000000000..e0421d7574
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/b2af0db70de3a6ddcb188d1f6f2a673133a8f9c7
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/b2f450dc86671548200a1fe6ee0ee76171edc578 b/test/core/end2end/fuzzers/api_fuzzer_corpus/b2f450dc86671548200a1fe6ee0ee76171edc578
new file mode 100644
index 0000000000..69952817c1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/b2f450dc86671548200a1fe6ee0ee76171edc578
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/b35f51d95f597075bb93cd9d2135870fe0a73486 b/test/core/end2end/fuzzers/api_fuzzer_corpus/b35f51d95f597075bb93cd9d2135870fe0a73486
new file mode 100644
index 0000000000..7c7d787dce
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/b35f51d95f597075bb93cd9d2135870fe0a73486
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/b37ab56aacf7fea7dcade26810117c45e6041068 b/test/core/end2end/fuzzers/api_fuzzer_corpus/b37ab56aacf7fea7dcade26810117c45e6041068
new file mode 100644
index 0000000000..af1bd2acb0
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/b37ab56aacf7fea7dcade26810117c45e6041068
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/b5bec1a19e2ca2394f2c3235266c22a7167bfa5d b/test/core/end2end/fuzzers/api_fuzzer_corpus/b5bec1a19e2ca2394f2c3235266c22a7167bfa5d
new file mode 100644
index 0000000000..ac5fd19164
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/b5bec1a19e2ca2394f2c3235266c22a7167bfa5d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/b5dfbf1965f794634249cc6be9d20d2a9fc6e332 b/test/core/end2end/fuzzers/api_fuzzer_corpus/b5dfbf1965f794634249cc6be9d20d2a9fc6e332
new file mode 100644
index 0000000000..9cd4033b01
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/b5dfbf1965f794634249cc6be9d20d2a9fc6e332
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/b6694ec2d425e8ce6ad9ff712a999fabfa5ce113 b/test/core/end2end/fuzzers/api_fuzzer_corpus/b6694ec2d425e8ce6ad9ff712a999fabfa5ce113
new file mode 100644
index 0000000000..b28d3708a5
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/b6694ec2d425e8ce6ad9ff712a999fabfa5ce113
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/b6c47632d8d697f9f2923bde053f7a5571150705 b/test/core/end2end/fuzzers/api_fuzzer_corpus/b6c47632d8d697f9f2923bde053f7a5571150705
new file mode 100644
index 0000000000..e2db125e25
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/b6c47632d8d697f9f2923bde053f7a5571150705
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/b892c064b2703ac0dc31766946be487b197a541e b/test/core/end2end/fuzzers/api_fuzzer_corpus/b892c064b2703ac0dc31766946be487b197a541e
new file mode 100644
index 0000000000..5404a0407c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/b892c064b2703ac0dc31766946be487b197a541e
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/b8d0be707d9505c0e63253904979492c22cd9fdc b/test/core/end2end/fuzzers/api_fuzzer_corpus/b8d0be707d9505c0e63253904979492c22cd9fdc
new file mode 100644
index 0000000000..6792e9e67a
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/b8d0be707d9505c0e63253904979492c22cd9fdc
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/b8e06536840e31a343b3a42b677d623bacfccd99 b/test/core/end2end/fuzzers/api_fuzzer_corpus/b8e06536840e31a343b3a42b677d623bacfccd99
new file mode 100644
index 0000000000..77a3b9e02c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/b8e06536840e31a343b3a42b677d623bacfccd99
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/b8ea2247c5b1636148fa66fdce22ed1cc72b6bdd b/test/core/end2end/fuzzers/api_fuzzer_corpus/b8ea2247c5b1636148fa66fdce22ed1cc72b6bdd
new file mode 100644
index 0000000000..8a34fd2cac
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/b8ea2247c5b1636148fa66fdce22ed1cc72b6bdd
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/b9318513eb6b1db553855cd062ebbd4d1db9b846 b/test/core/end2end/fuzzers/api_fuzzer_corpus/b9318513eb6b1db553855cd062ebbd4d1db9b846
new file mode 100644
index 0000000000..d3dfb9ab03
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/b9318513eb6b1db553855cd062ebbd4d1db9b846
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/b95899d40afc4b3ff87af2285b61ba66939873fa b/test/core/end2end/fuzzers/api_fuzzer_corpus/b95899d40afc4b3ff87af2285b61ba66939873fa
new file mode 100644
index 0000000000..2666199271
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/b95899d40afc4b3ff87af2285b61ba66939873fa
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/b98ef7107754379c22a3ad59cffa3183e0804c0e b/test/core/end2end/fuzzers/api_fuzzer_corpus/b98ef7107754379c22a3ad59cffa3183e0804c0e
new file mode 100644
index 0000000000..4bff61b679
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/b98ef7107754379c22a3ad59cffa3183e0804c0e
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/b9913b354096dbe1796814e2cea80addef6ee386 b/test/core/end2end/fuzzers/api_fuzzer_corpus/b9913b354096dbe1796814e2cea80addef6ee386
new file mode 100644
index 0000000000..2133d9d56f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/b9913b354096dbe1796814e2cea80addef6ee386
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/ba3d174125e7378292fcbad9bfe8129dabf88b3a b/test/core/end2end/fuzzers/api_fuzzer_corpus/ba3d174125e7378292fcbad9bfe8129dabf88b3a
new file mode 100644
index 0000000000..8600bd5e7e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/ba3d174125e7378292fcbad9bfe8129dabf88b3a
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/baab31938837e1a3cb49ca12fb886fcbb7d48501 b/test/core/end2end/fuzzers/api_fuzzer_corpus/baab31938837e1a3cb49ca12fb886fcbb7d48501
new file mode 100644
index 0000000000..6c7b604c98
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/baab31938837e1a3cb49ca12fb886fcbb7d48501
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/bac43cd2ed1dbf3a89a0c66d8983b586066ef463 b/test/core/end2end/fuzzers/api_fuzzer_corpus/bac43cd2ed1dbf3a89a0c66d8983b586066ef463
new file mode 100644
index 0000000000..61feecdec3
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/bac43cd2ed1dbf3a89a0c66d8983b586066ef463
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/bb2affdc830241ebea35795fed3bc8d478330eec b/test/core/end2end/fuzzers/api_fuzzer_corpus/bb2affdc830241ebea35795fed3bc8d478330eec
new file mode 100644
index 0000000000..c97b75e15c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/bb2affdc830241ebea35795fed3bc8d478330eec
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/bb54fde05891ecc235263ad087cfd9682a25f76d b/test/core/end2end/fuzzers/api_fuzzer_corpus/bb54fde05891ecc235263ad087cfd9682a25f76d
new file mode 100644
index 0000000000..7b31d324b9
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/bb54fde05891ecc235263ad087cfd9682a25f76d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/bba4073cde10ba7abaac18d6303e310d02a47826 b/test/core/end2end/fuzzers/api_fuzzer_corpus/bba4073cde10ba7abaac18d6303e310d02a47826
new file mode 100644
index 0000000000..e73c25b881
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/bba4073cde10ba7abaac18d6303e310d02a47826
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/bc2967ecf8402d442ef63ca451497431932a7e57 b/test/core/end2end/fuzzers/api_fuzzer_corpus/bc2967ecf8402d442ef63ca451497431932a7e57
new file mode 100644
index 0000000000..99ee098cd1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/bc2967ecf8402d442ef63ca451497431932a7e57
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/bc8dd89f31fa5e89cabace6d7701d2a218f97aed b/test/core/end2end/fuzzers/api_fuzzer_corpus/bc8dd89f31fa5e89cabace6d7701d2a218f97aed
new file mode 100644
index 0000000000..4c45a33d9f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/bc8dd89f31fa5e89cabace6d7701d2a218f97aed
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/bd04c9dc7eaf030313d4c87f190a9d973b96ac2d b/test/core/end2end/fuzzers/api_fuzzer_corpus/bd04c9dc7eaf030313d4c87f190a9d973b96ac2d
new file mode 100644
index 0000000000..d1d5a78678
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/bd04c9dc7eaf030313d4c87f190a9d973b96ac2d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/bd585e031f586c4313c6b00e5f247f6b272ce902 b/test/core/end2end/fuzzers/api_fuzzer_corpus/bd585e031f586c4313c6b00e5f247f6b272ce902
new file mode 100644
index 0000000000..5223bb06c1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/bd585e031f586c4313c6b00e5f247f6b272ce902
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/bdab9cab03ad7aa611612e02775018112303d3cd b/test/core/end2end/fuzzers/api_fuzzer_corpus/bdab9cab03ad7aa611612e02775018112303d3cd
new file mode 100644
index 0000000000..e5e20af6eb
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/bdab9cab03ad7aa611612e02775018112303d3cd
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/be29c4d0b6568b06c69fc339ac29890baac569de b/test/core/end2end/fuzzers/api_fuzzer_corpus/be29c4d0b6568b06c69fc339ac29890baac569de
new file mode 100644
index 0000000000..d45f253672
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/be29c4d0b6568b06c69fc339ac29890baac569de
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/be757e0ca581bb4ec14fbba6e87569f93f4c7750 b/test/core/end2end/fuzzers/api_fuzzer_corpus/be757e0ca581bb4ec14fbba6e87569f93f4c7750
new file mode 100644
index 0000000000..31dde2952b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/be757e0ca581bb4ec14fbba6e87569f93f4c7750
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/be8114a7bd73ce15fe0495171234d0af526e41f1 b/test/core/end2end/fuzzers/api_fuzzer_corpus/be8114a7bd73ce15fe0495171234d0af526e41f1
new file mode 100644
index 0000000000..b770bb7e4a
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/be8114a7bd73ce15fe0495171234d0af526e41f1
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/becdf72b57104cede4a1fc7b7a4c97a3cbf3b7b4 b/test/core/end2end/fuzzers/api_fuzzer_corpus/becdf72b57104cede4a1fc7b7a4c97a3cbf3b7b4
new file mode 100644
index 0000000000..a33af534cc
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/becdf72b57104cede4a1fc7b7a4c97a3cbf3b7b4
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/beff7e2d09ef0547a3b1a498311c665954d8baea b/test/core/end2end/fuzzers/api_fuzzer_corpus/beff7e2d09ef0547a3b1a498311c665954d8baea
new file mode 100644
index 0000000000..36b5ce90d7
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/beff7e2d09ef0547a3b1a498311c665954d8baea
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/bfe2840aecee88c5301aedd16a6ac8cea0262005 b/test/core/end2end/fuzzers/api_fuzzer_corpus/bfe2840aecee88c5301aedd16a6ac8cea0262005
new file mode 100644
index 0000000000..fc2c6bf5aa
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/bfe2840aecee88c5301aedd16a6ac8cea0262005
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c061aa42448363b548d90cbf4a7660fb2b043518 b/test/core/end2end/fuzzers/api_fuzzer_corpus/c061aa42448363b548d90cbf4a7660fb2b043518
new file mode 100644
index 0000000000..958bbd54c0
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c061aa42448363b548d90cbf4a7660fb2b043518
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c0bb5f00fc14ea4f2000f75e6d1d94f23e6203f6 b/test/core/end2end/fuzzers/api_fuzzer_corpus/c0bb5f00fc14ea4f2000f75e6d1d94f23e6203f6
new file mode 100644
index 0000000000..952d8adce9
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c0bb5f00fc14ea4f2000f75e6d1d94f23e6203f6
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c0e04f5709338a500b3be166714ed7b0013c17d0 b/test/core/end2end/fuzzers/api_fuzzer_corpus/c0e04f5709338a500b3be166714ed7b0013c17d0
new file mode 100644
index 0000000000..556fb44bf1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c0e04f5709338a500b3be166714ed7b0013c17d0
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c11e6f232cfdc5fffffa2c79150b5647704912c0 b/test/core/end2end/fuzzers/api_fuzzer_corpus/c11e6f232cfdc5fffffa2c79150b5647704912c0
new file mode 100644
index 0000000000..216119493d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c11e6f232cfdc5fffffa2c79150b5647704912c0
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c16876cdc8ab36ef7083bf4579849ee94239af0f b/test/core/end2end/fuzzers/api_fuzzer_corpus/c16876cdc8ab36ef7083bf4579849ee94239af0f
new file mode 100644
index 0000000000..4146d6f72d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c16876cdc8ab36ef7083bf4579849ee94239af0f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c1ac67facfa4ca5ad92c3eed576a59d41558480f b/test/core/end2end/fuzzers/api_fuzzer_corpus/c1ac67facfa4ca5ad92c3eed576a59d41558480f
new file mode 100644
index 0000000000..71934fd9e5
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c1ac67facfa4ca5ad92c3eed576a59d41558480f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c1d33a370a8ec2c2ea380472cc49172c679fa5bc b/test/core/end2end/fuzzers/api_fuzzer_corpus/c1d33a370a8ec2c2ea380472cc49172c679fa5bc
new file mode 100644
index 0000000000..8449ca5c9c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c1d33a370a8ec2c2ea380472cc49172c679fa5bc
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c1d84db44208d08a84084986094aeac3eebfe3b8 b/test/core/end2end/fuzzers/api_fuzzer_corpus/c1d84db44208d08a84084986094aeac3eebfe3b8
new file mode 100644
index 0000000000..81e421bd56
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c1d84db44208d08a84084986094aeac3eebfe3b8
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c259fba0af17dd1636501feddd52e501b51c4137 b/test/core/end2end/fuzzers/api_fuzzer_corpus/c259fba0af17dd1636501feddd52e501b51c4137
new file mode 100644
index 0000000000..4d0b6c239c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c259fba0af17dd1636501feddd52e501b51c4137
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c29f63aa5c4462b359c9028b6e6031dc088d7d46 b/test/core/end2end/fuzzers/api_fuzzer_corpus/c29f63aa5c4462b359c9028b6e6031dc088d7d46
new file mode 100644
index 0000000000..2f4522abe1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c29f63aa5c4462b359c9028b6e6031dc088d7d46
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c2eb3287f8b83c9281826e3c773ca347056ee115 b/test/core/end2end/fuzzers/api_fuzzer_corpus/c2eb3287f8b83c9281826e3c773ca347056ee115
new file mode 100644
index 0000000000..24a6990721
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c2eb3287f8b83c9281826e3c773ca347056ee115
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c32029d5683ad5cfa1af3b534c53bc2f7f513f50 b/test/core/end2end/fuzzers/api_fuzzer_corpus/c32029d5683ad5cfa1af3b534c53bc2f7f513f50
new file mode 100644
index 0000000000..ba48feb7a8
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c32029d5683ad5cfa1af3b534c53bc2f7f513f50
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c370cb2ce56d1006fea0af1a823042927c0cfa07 b/test/core/end2end/fuzzers/api_fuzzer_corpus/c370cb2ce56d1006fea0af1a823042927c0cfa07
new file mode 100644
index 0000000000..e1fe503a89
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c370cb2ce56d1006fea0af1a823042927c0cfa07
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c3ade78c7fea61ed2e2cd843f9c551b107ae050f b/test/core/end2end/fuzzers/api_fuzzer_corpus/c3ade78c7fea61ed2e2cd843f9c551b107ae050f
new file mode 100644
index 0000000000..1a08ade4e1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c3ade78c7fea61ed2e2cd843f9c551b107ae050f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c40e43a76f0c493414386dd90ab892042a6914d2 b/test/core/end2end/fuzzers/api_fuzzer_corpus/c40e43a76f0c493414386dd90ab892042a6914d2
new file mode 100644
index 0000000000..5f31d6c67e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c40e43a76f0c493414386dd90ab892042a6914d2
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c4b438b82ac86439296c31dd7de86a753034c807 b/test/core/end2end/fuzzers/api_fuzzer_corpus/c4b438b82ac86439296c31dd7de86a753034c807
new file mode 100644
index 0000000000..b01f9a1d1a
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c4b438b82ac86439296c31dd7de86a753034c807
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c5154ce0384c3becaf12f83c51114bb3ccd0b673 b/test/core/end2end/fuzzers/api_fuzzer_corpus/c5154ce0384c3becaf12f83c51114bb3ccd0b673
new file mode 100644
index 0000000000..ceaa6d2c87
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c5154ce0384c3becaf12f83c51114bb3ccd0b673
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c5446cba5971d6f44ee93097a21c1b8936f4020a b/test/core/end2end/fuzzers/api_fuzzer_corpus/c5446cba5971d6f44ee93097a21c1b8936f4020a
new file mode 100644
index 0000000000..665d261272
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c5446cba5971d6f44ee93097a21c1b8936f4020a
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c6733483e94f755f1cbf796f8aa3d10a2c371aa3 b/test/core/end2end/fuzzers/api_fuzzer_corpus/c6733483e94f755f1cbf796f8aa3d10a2c371aa3
new file mode 100644
index 0000000000..084991d246
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c6733483e94f755f1cbf796f8aa3d10a2c371aa3
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c8f0972dabb904bc6d35ed576fc9a49eb2ed5273 b/test/core/end2end/fuzzers/api_fuzzer_corpus/c8f0972dabb904bc6d35ed576fc9a49eb2ed5273
new file mode 100644
index 0000000000..2eb2813509
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c8f0972dabb904bc6d35ed576fc9a49eb2ed5273
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c93f16b5b678d3019eb05bd0774598e7d34e9b3b b/test/core/end2end/fuzzers/api_fuzzer_corpus/c93f16b5b678d3019eb05bd0774598e7d34e9b3b
new file mode 100644
index 0000000000..2f79043c4f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c93f16b5b678d3019eb05bd0774598e7d34e9b3b
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/c97c41c0c76a901f458bf9b4d785fb53fe8a2980 b/test/core/end2end/fuzzers/api_fuzzer_corpus/c97c41c0c76a901f458bf9b4d785fb53fe8a2980
new file mode 100644
index 0000000000..716844f39f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/c97c41c0c76a901f458bf9b4d785fb53fe8a2980
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/ca418a61964cb360014b574fe29aa20b193df04f b/test/core/end2end/fuzzers/api_fuzzer_corpus/ca418a61964cb360014b574fe29aa20b193df04f
new file mode 100644
index 0000000000..31eaf39301
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/ca418a61964cb360014b574fe29aa20b193df04f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/cb9a688f0dbc2015c77920f344e2d029c87384ff b/test/core/end2end/fuzzers/api_fuzzer_corpus/cb9a688f0dbc2015c77920f344e2d029c87384ff
new file mode 100644
index 0000000000..e0f0ba5977
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/cb9a688f0dbc2015c77920f344e2d029c87384ff
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/cd779b587b80719e2838853c2eac8d4595c0faa4 b/test/core/end2end/fuzzers/api_fuzzer_corpus/cd779b587b80719e2838853c2eac8d4595c0faa4
new file mode 100644
index 0000000000..4067a15dea
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/cd779b587b80719e2838853c2eac8d4595c0faa4
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/ceecce905981d8291a79fe32f89e8be688dfee7e b/test/core/end2end/fuzzers/api_fuzzer_corpus/ceecce905981d8291a79fe32f89e8be688dfee7e
new file mode 100644
index 0000000000..1a58450f81
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/ceecce905981d8291a79fe32f89e8be688dfee7e
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/d079f5c8a10611dc655cef33f73100f5f43787a8 b/test/core/end2end/fuzzers/api_fuzzer_corpus/d079f5c8a10611dc655cef33f73100f5f43787a8
new file mode 100644
index 0000000000..ac6ea5313e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/d079f5c8a10611dc655cef33f73100f5f43787a8
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/d107d21374f4dba27f173d4edd5c8009e3b0f8c4 b/test/core/end2end/fuzzers/api_fuzzer_corpus/d107d21374f4dba27f173d4edd5c8009e3b0f8c4
new file mode 100644
index 0000000000..b888d6291f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/d107d21374f4dba27f173d4edd5c8009e3b0f8c4
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/d110d5d3a672bf483f230825e735d372b0b2c1a5 b/test/core/end2end/fuzzers/api_fuzzer_corpus/d110d5d3a672bf483f230825e735d372b0b2c1a5
new file mode 100644
index 0000000000..1e3df71064
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/d110d5d3a672bf483f230825e735d372b0b2c1a5
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/d18b2a1520207761100992c88b50f6b410c62184 b/test/core/end2end/fuzzers/api_fuzzer_corpus/d18b2a1520207761100992c88b50f6b410c62184
new file mode 100644
index 0000000000..9510bc0cb6
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/d18b2a1520207761100992c88b50f6b410c62184
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/d22287b96b3dcb840fc65e4be60e409fb0f6bfe5 b/test/core/end2end/fuzzers/api_fuzzer_corpus/d22287b96b3dcb840fc65e4be60e409fb0f6bfe5
new file mode 100644
index 0000000000..7e5f56c0f5
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/d22287b96b3dcb840fc65e4be60e409fb0f6bfe5
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/d27e050b2758f6658d166b0d30e9db9595388ef9 b/test/core/end2end/fuzzers/api_fuzzer_corpus/d27e050b2758f6658d166b0d30e9db9595388ef9
new file mode 100644
index 0000000000..7151cc3fe2
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/d27e050b2758f6658d166b0d30e9db9595388ef9
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/d3089d3ef9be14080abc156e5f2128c3c1a2f23a b/test/core/end2end/fuzzers/api_fuzzer_corpus/d3089d3ef9be14080abc156e5f2128c3c1a2f23a
new file mode 100644
index 0000000000..f4e8b740d0
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/d3089d3ef9be14080abc156e5f2128c3c1a2f23a
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/d3090a5221ea984dc474c3fb448b71957f8197a4 b/test/core/end2end/fuzzers/api_fuzzer_corpus/d3090a5221ea984dc474c3fb448b71957f8197a4
new file mode 100644
index 0000000000..bad057235e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/d3090a5221ea984dc474c3fb448b71957f8197a4
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/d56b3dae753b110e9e1a050486c6deb6ac399bd8 b/test/core/end2end/fuzzers/api_fuzzer_corpus/d56b3dae753b110e9e1a050486c6deb6ac399bd8
new file mode 100644
index 0000000000..c290cccff8
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/d56b3dae753b110e9e1a050486c6deb6ac399bd8
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/d576eb2948463f86f576d85e41d30a8cf3b972c2 b/test/core/end2end/fuzzers/api_fuzzer_corpus/d576eb2948463f86f576d85e41d30a8cf3b972c2
new file mode 100644
index 0000000000..85d31ea425
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/d576eb2948463f86f576d85e41d30a8cf3b972c2
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/d5824da8aeaf96a9e5f590a851e58e2534d178a5 b/test/core/end2end/fuzzers/api_fuzzer_corpus/d5824da8aeaf96a9e5f590a851e58e2534d178a5
new file mode 100644
index 0000000000..8901ee6ff6
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/d5824da8aeaf96a9e5f590a851e58e2534d178a5
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/d67c22b4174555c3e596c58dc7c28e84b1da8353 b/test/core/end2end/fuzzers/api_fuzzer_corpus/d67c22b4174555c3e596c58dc7c28e84b1da8353
new file mode 100644
index 0000000000..cfe39928c1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/d67c22b4174555c3e596c58dc7c28e84b1da8353
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/d68001237e6366c844a6509fa03e677e6adfb75f b/test/core/end2end/fuzzers/api_fuzzer_corpus/d68001237e6366c844a6509fa03e677e6adfb75f
new file mode 100644
index 0000000000..796a3bc8f7
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/d68001237e6366c844a6509fa03e677e6adfb75f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/d681712608025610b8ecc8a76a822516fb659953 b/test/core/end2end/fuzzers/api_fuzzer_corpus/d681712608025610b8ecc8a76a822516fb659953
new file mode 100644
index 0000000000..390be08072
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/d681712608025610b8ecc8a76a822516fb659953
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/d87b7bcd1b05a2f8cc04a2aadb999bcf65b84911 b/test/core/end2end/fuzzers/api_fuzzer_corpus/d87b7bcd1b05a2f8cc04a2aadb999bcf65b84911
new file mode 100644
index 0000000000..837340791d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/d87b7bcd1b05a2f8cc04a2aadb999bcf65b84911
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/d8d117e45b7bc0c48f606d9ef844f00a363a8a38 b/test/core/end2end/fuzzers/api_fuzzer_corpus/d8d117e45b7bc0c48f606d9ef844f00a363a8a38
new file mode 100644
index 0000000000..dad8cbb2a7
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/d8d117e45b7bc0c48f606d9ef844f00a363a8a38
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/d99bfa6bb10d30f64b533ea7620fc08b762a7bf3 b/test/core/end2end/fuzzers/api_fuzzer_corpus/d99bfa6bb10d30f64b533ea7620fc08b762a7bf3
new file mode 100644
index 0000000000..e4df6b8b29
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/d99bfa6bb10d30f64b533ea7620fc08b762a7bf3
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/d9d80422059678f0a011b8e8fdedd3d20c025b91 b/test/core/end2end/fuzzers/api_fuzzer_corpus/d9d80422059678f0a011b8e8fdedd3d20c025b91
new file mode 100644
index 0000000000..bf457107d5
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/d9d80422059678f0a011b8e8fdedd3d20c025b91
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/da2ace62505959bae7b4f158220f7ce97d20423d b/test/core/end2end/fuzzers/api_fuzzer_corpus/da2ace62505959bae7b4f158220f7ce97d20423d
new file mode 100644
index 0000000000..4275d96c4b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/da2ace62505959bae7b4f158220f7ce97d20423d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/dac17b9025074828797ef0dd1e3895baf875627f b/test/core/end2end/fuzzers/api_fuzzer_corpus/dac17b9025074828797ef0dd1e3895baf875627f
new file mode 100644
index 0000000000..98d1f0f9d9
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/dac17b9025074828797ef0dd1e3895baf875627f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/db0dbec7a0811cac7b250cf9b248d47936edc0d0 b/test/core/end2end/fuzzers/api_fuzzer_corpus/db0dbec7a0811cac7b250cf9b248d47936edc0d0
new file mode 100644
index 0000000000..71bc27a366
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/db0dbec7a0811cac7b250cf9b248d47936edc0d0
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/dc38c75bcb7df7e61428d8f12ff01a1ec1b68a99 b/test/core/end2end/fuzzers/api_fuzzer_corpus/dc38c75bcb7df7e61428d8f12ff01a1ec1b68a99
new file mode 100644
index 0000000000..8dbf96262a
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/dc38c75bcb7df7e61428d8f12ff01a1ec1b68a99
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/dcc8e14bbb75292968233ce89acd404303a53cc3 b/test/core/end2end/fuzzers/api_fuzzer_corpus/dcc8e14bbb75292968233ce89acd404303a53cc3
new file mode 100644
index 0000000000..e6db8610f6
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/dcc8e14bbb75292968233ce89acd404303a53cc3
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/dcd0182c3027a0d6cc7a9a8c26f647d45bf3d3df b/test/core/end2end/fuzzers/api_fuzzer_corpus/dcd0182c3027a0d6cc7a9a8c26f647d45bf3d3df
new file mode 100644
index 0000000000..22cb1d0f1b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/dcd0182c3027a0d6cc7a9a8c26f647d45bf3d3df
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/deb08a636c04030bc28459820c7ddbace429b40a b/test/core/end2end/fuzzers/api_fuzzer_corpus/deb08a636c04030bc28459820c7ddbace429b40a
new file mode 100644
index 0000000000..73cfa51de1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/deb08a636c04030bc28459820c7ddbace429b40a
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/df106c9859b09869094c77aeba44e6e9ce909246 b/test/core/end2end/fuzzers/api_fuzzer_corpus/df106c9859b09869094c77aeba44e6e9ce909246
new file mode 100644
index 0000000000..193f219d2c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/df106c9859b09869094c77aeba44e6e9ce909246
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/df380dfd997318c00cfc75313e6a7ecb041d38af b/test/core/end2end/fuzzers/api_fuzzer_corpus/df380dfd997318c00cfc75313e6a7ecb041d38af
new file mode 100644
index 0000000000..8d27db7ea9
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/df380dfd997318c00cfc75313e6a7ecb041d38af
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/dfe4f327699ddea25103dd17b68e9a0fb726f4a7 b/test/core/end2end/fuzzers/api_fuzzer_corpus/dfe4f327699ddea25103dd17b68e9a0fb726f4a7
new file mode 100644
index 0000000000..1a32983581
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/dfe4f327699ddea25103dd17b68e9a0fb726f4a7
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/e007d8c9aa6c37e8b62fab4cb95b2807fc49105f b/test/core/end2end/fuzzers/api_fuzzer_corpus/e007d8c9aa6c37e8b62fab4cb95b2807fc49105f
new file mode 100644
index 0000000000..ba606705de
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/e007d8c9aa6c37e8b62fab4cb95b2807fc49105f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/e0507daae4458401edc11e5c76b246d6d5a44e3d b/test/core/end2end/fuzzers/api_fuzzer_corpus/e0507daae4458401edc11e5c76b246d6d5a44e3d
new file mode 100644
index 0000000000..538f1c6892
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/e0507daae4458401edc11e5c76b246d6d5a44e3d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/e08b85aa24c9d0a49f8946c8400b86b5ea9211c8 b/test/core/end2end/fuzzers/api_fuzzer_corpus/e08b85aa24c9d0a49f8946c8400b86b5ea9211c8
new file mode 100644
index 0000000000..8cb2d39fb9
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/e08b85aa24c9d0a49f8946c8400b86b5ea9211c8
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/e0b7eb44f182f08d2eeaeecc76ef7b3efeff1fc4 b/test/core/end2end/fuzzers/api_fuzzer_corpus/e0b7eb44f182f08d2eeaeecc76ef7b3efeff1fc4
new file mode 100644
index 0000000000..7c8ba6e158
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/e0b7eb44f182f08d2eeaeecc76ef7b3efeff1fc4
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/e13361499a2326ef8dbc3746ceb61c61b2e1ad57 b/test/core/end2end/fuzzers/api_fuzzer_corpus/e13361499a2326ef8dbc3746ceb61c61b2e1ad57
new file mode 100644
index 0000000000..0b6c3a55e0
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/e13361499a2326ef8dbc3746ceb61c61b2e1ad57
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/e15a0a0fb7b4f1c05088bc119c492ac20eb5dbcf b/test/core/end2end/fuzzers/api_fuzzer_corpus/e15a0a0fb7b4f1c05088bc119c492ac20eb5dbcf
new file mode 100644
index 0000000000..7b286e29c2
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/e15a0a0fb7b4f1c05088bc119c492ac20eb5dbcf
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/e192ba28f8a3bc9079b810c46ecc526f84609863 b/test/core/end2end/fuzzers/api_fuzzer_corpus/e192ba28f8a3bc9079b810c46ecc526f84609863
new file mode 100644
index 0000000000..b09975ef27
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/e192ba28f8a3bc9079b810c46ecc526f84609863
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/e33eb4b19232b2e32bc8f18e43459c4ed15bfc4f b/test/core/end2end/fuzzers/api_fuzzer_corpus/e33eb4b19232b2e32bc8f18e43459c4ed15bfc4f
new file mode 100644
index 0000000000..89915b2b58
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/e33eb4b19232b2e32bc8f18e43459c4ed15bfc4f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/e3b45752c8160c48885420e20c24bb7124128f16 b/test/core/end2end/fuzzers/api_fuzzer_corpus/e3b45752c8160c48885420e20c24bb7124128f16
new file mode 100644
index 0000000000..9fa2755047
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/e3b45752c8160c48885420e20c24bb7124128f16
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/e3c1dbfb1ef140f6bdcf7d683e2b2071aacba9ba b/test/core/end2end/fuzzers/api_fuzzer_corpus/e3c1dbfb1ef140f6bdcf7d683e2b2071aacba9ba
new file mode 100644
index 0000000000..7276b8595c
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/e3c1dbfb1ef140f6bdcf7d683e2b2071aacba9ba
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/e3eda76a93e94d081a9dfd675975fe2fc1d670dc b/test/core/end2end/fuzzers/api_fuzzer_corpus/e3eda76a93e94d081a9dfd675975fe2fc1d670dc
new file mode 100644
index 0000000000..c02b7efaaa
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/e3eda76a93e94d081a9dfd675975fe2fc1d670dc
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/e53a201505fe8412278d7444b1a915b353bacb3e b/test/core/end2end/fuzzers/api_fuzzer_corpus/e53a201505fe8412278d7444b1a915b353bacb3e
new file mode 100644
index 0000000000..21c4cee0ef
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/e53a201505fe8412278d7444b1a915b353bacb3e
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/e7484552736c89fe721019daaad8739a68f1a926 b/test/core/end2end/fuzzers/api_fuzzer_corpus/e7484552736c89fe721019daaad8739a68f1a926
new file mode 100644
index 0000000000..10b40e6697
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/e7484552736c89fe721019daaad8739a68f1a926
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/e80302182fbd464b72d2b9be495901c0c3e93344 b/test/core/end2end/fuzzers/api_fuzzer_corpus/e80302182fbd464b72d2b9be495901c0c3e93344
new file mode 100644
index 0000000000..b5081f4396
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/e80302182fbd464b72d2b9be495901c0c3e93344
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/e805c33631e579c782550439f123b78e1ad8e180 b/test/core/end2end/fuzzers/api_fuzzer_corpus/e805c33631e579c782550439f123b78e1ad8e180
new file mode 100644
index 0000000000..1615258697
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/e805c33631e579c782550439f123b78e1ad8e180
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/eab01c8a32e76c8f354055807399a808848234e6 b/test/core/end2end/fuzzers/api_fuzzer_corpus/eab01c8a32e76c8f354055807399a808848234e6
new file mode 100644
index 0000000000..c21869eddf
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/eab01c8a32e76c8f354055807399a808848234e6
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/ebc30c5cbe17138976223f2283fe42d9e4c6f39a b/test/core/end2end/fuzzers/api_fuzzer_corpus/ebc30c5cbe17138976223f2283fe42d9e4c6f39a
new file mode 100644
index 0000000000..060185d722
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/ebc30c5cbe17138976223f2283fe42d9e4c6f39a
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/ebe414975652c12fbbfd99efd2da1cd4c72c340c b/test/core/end2end/fuzzers/api_fuzzer_corpus/ebe414975652c12fbbfd99efd2da1cd4c72c340c
new file mode 100644
index 0000000000..0ce6c54ed0
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/ebe414975652c12fbbfd99efd2da1cd4c72c340c
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/ec230c6a27149df85cad53f33478ffc11bd92d4e b/test/core/end2end/fuzzers/api_fuzzer_corpus/ec230c6a27149df85cad53f33478ffc11bd92d4e
new file mode 100644
index 0000000000..c0669bcaaa
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/ec230c6a27149df85cad53f33478ffc11bd92d4e
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/ec97d4ee730261bdc3b14349a3346fd45929bd17 b/test/core/end2end/fuzzers/api_fuzzer_corpus/ec97d4ee730261bdc3b14349a3346fd45929bd17
new file mode 100644
index 0000000000..1a440005c1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/ec97d4ee730261bdc3b14349a3346fd45929bd17
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/ecf0a3cd157191263734f4f2de9689d5a02e439b b/test/core/end2end/fuzzers/api_fuzzer_corpus/ecf0a3cd157191263734f4f2de9689d5a02e439b
new file mode 100644
index 0000000000..0fa5213824
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/ecf0a3cd157191263734f4f2de9689d5a02e439b
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/ed361ec32383606748bedeb8eee6510041b0f366 b/test/core/end2end/fuzzers/api_fuzzer_corpus/ed361ec32383606748bedeb8eee6510041b0f366
new file mode 100644
index 0000000000..79a8ba2ac1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/ed361ec32383606748bedeb8eee6510041b0f366
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/edcf7ea2ec8443a92883e68e5e18353fad8f6d21 b/test/core/end2end/fuzzers/api_fuzzer_corpus/edcf7ea2ec8443a92883e68e5e18353fad8f6d21
new file mode 100644
index 0000000000..3e661661b8
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/edcf7ea2ec8443a92883e68e5e18353fad8f6d21
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/ef32866f14ccd80c1231fa742b53fba46ae15d6f b/test/core/end2end/fuzzers/api_fuzzer_corpus/ef32866f14ccd80c1231fa742b53fba46ae15d6f
new file mode 100644
index 0000000000..d7c207d1d5
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/ef32866f14ccd80c1231fa742b53fba46ae15d6f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/ef63ab3c4dbf27ed1f15c2b310bf41ff3a2a7e3c b/test/core/end2end/fuzzers/api_fuzzer_corpus/ef63ab3c4dbf27ed1f15c2b310bf41ff3a2a7e3c
new file mode 100644
index 0000000000..d8edea8dff
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/ef63ab3c4dbf27ed1f15c2b310bf41ff3a2a7e3c
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/ef967ba35676b971983b1e95e62c383a978a37f7 b/test/core/end2end/fuzzers/api_fuzzer_corpus/ef967ba35676b971983b1e95e62c383a978a37f7
new file mode 100644
index 0000000000..4d372b6620
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/ef967ba35676b971983b1e95e62c383a978a37f7
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/eff00cadc3130c257b3fe360ea5d32fb034aadff b/test/core/end2end/fuzzers/api_fuzzer_corpus/eff00cadc3130c257b3fe360ea5d32fb034aadff
new file mode 100644
index 0000000000..42c38de35f
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/eff00cadc3130c257b3fe360ea5d32fb034aadff
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/f0649728d5f9e1a91735eaa429605ce0da6c00c0 b/test/core/end2end/fuzzers/api_fuzzer_corpus/f0649728d5f9e1a91735eaa429605ce0da6c00c0
new file mode 100644
index 0000000000..877aed3d96
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/f0649728d5f9e1a91735eaa429605ce0da6c00c0
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/f0d881bdd69c3945694068719a7a6b6b094dee3c b/test/core/end2end/fuzzers/api_fuzzer_corpus/f0d881bdd69c3945694068719a7a6b6b094dee3c
new file mode 100644
index 0000000000..9da6998e28
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/f0d881bdd69c3945694068719a7a6b6b094dee3c
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/f18f2d094ef0f0c971173153279bc44bfa3c1187 b/test/core/end2end/fuzzers/api_fuzzer_corpus/f18f2d094ef0f0c971173153279bc44bfa3c1187
new file mode 100644
index 0000000000..606dcadf37
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/f18f2d094ef0f0c971173153279bc44bfa3c1187
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/f1a7981f4f19f6318e0f16cafe9541d1564f9e15 b/test/core/end2end/fuzzers/api_fuzzer_corpus/f1a7981f4f19f6318e0f16cafe9541d1564f9e15
new file mode 100644
index 0000000000..18aea88b93
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/f1a7981f4f19f6318e0f16cafe9541d1564f9e15
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/f27ae36fe8211e46f49656597658daab1429b163 b/test/core/end2end/fuzzers/api_fuzzer_corpus/f27ae36fe8211e46f49656597658daab1429b163
new file mode 100644
index 0000000000..3f94e68d34
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/f27ae36fe8211e46f49656597658daab1429b163
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/f2f014c6ef70e40f9334096f34584ea4f1f882d7 b/test/core/end2end/fuzzers/api_fuzzer_corpus/f2f014c6ef70e40f9334096f34584ea4f1f882d7
new file mode 100644
index 0000000000..eb8e03b09d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/f2f014c6ef70e40f9334096f34584ea4f1f882d7
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/f463b733bfacabdd064c6b5a0551d72398f833af b/test/core/end2end/fuzzers/api_fuzzer_corpus/f463b733bfacabdd064c6b5a0551d72398f833af
new file mode 100644
index 0000000000..03ad61f798
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/f463b733bfacabdd064c6b5a0551d72398f833af
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/f5867f7dbacd22878e2955f4be8fca147442aa9d b/test/core/end2end/fuzzers/api_fuzzer_corpus/f5867f7dbacd22878e2955f4be8fca147442aa9d
new file mode 100644
index 0000000000..0ea10966e1
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/f5867f7dbacd22878e2955f4be8fca147442aa9d
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/f5a7503830d1e74c6a7230c10c5007a5f8ad5a0f b/test/core/end2end/fuzzers/api_fuzzer_corpus/f5a7503830d1e74c6a7230c10c5007a5f8ad5a0f
new file mode 100644
index 0000000000..9a522beba7
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/f5a7503830d1e74c6a7230c10c5007a5f8ad5a0f
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/f62ae81e655f294699b73830d3abaa787196cb23 b/test/core/end2end/fuzzers/api_fuzzer_corpus/f62ae81e655f294699b73830d3abaa787196cb23
new file mode 100644
index 0000000000..fdba78b086
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/f62ae81e655f294699b73830d3abaa787196cb23
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/f7316eaa3f54119ac5b7fb24e8b92debdf57c3f1 b/test/core/end2end/fuzzers/api_fuzzer_corpus/f7316eaa3f54119ac5b7fb24e8b92debdf57c3f1
new file mode 100644
index 0000000000..35d4f9f003
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/f7316eaa3f54119ac5b7fb24e8b92debdf57c3f1
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/f7909263cd7edc56186185c0b3421ebb68ad8d2b b/test/core/end2end/fuzzers/api_fuzzer_corpus/f7909263cd7edc56186185c0b3421ebb68ad8d2b
new file mode 100644
index 0000000000..9ba6a4b642
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/f7909263cd7edc56186185c0b3421ebb68ad8d2b
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/f912a072f4abf312ebbe7f1a2bf5ebd8c51e35e2 b/test/core/end2end/fuzzers/api_fuzzer_corpus/f912a072f4abf312ebbe7f1a2bf5ebd8c51e35e2
new file mode 100644
index 0000000000..9e85aa9871
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/f912a072f4abf312ebbe7f1a2bf5ebd8c51e35e2
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/fa44038e372af4ab374d3e94ec61662051e0dd74 b/test/core/end2end/fuzzers/api_fuzzer_corpus/fa44038e372af4ab374d3e94ec61662051e0dd74
new file mode 100644
index 0000000000..ca4f7a30be
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/fa44038e372af4ab374d3e94ec61662051e0dd74
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/faa0471930dc99deb5b1ffdc9bab7c1267b4ddbb b/test/core/end2end/fuzzers/api_fuzzer_corpus/faa0471930dc99deb5b1ffdc9bab7c1267b4ddbb
new file mode 100644
index 0000000000..52cb2f2eb2
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/faa0471930dc99deb5b1ffdc9bab7c1267b4ddbb
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/fac54fba5614e5930104bc7391773b490c0523b2 b/test/core/end2end/fuzzers/api_fuzzer_corpus/fac54fba5614e5930104bc7391773b490c0523b2
new file mode 100644
index 0000000000..e13f8bb407
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/fac54fba5614e5930104bc7391773b490c0523b2
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/fb0bef1e4142a7bcfa30e93f834fb6315438d1ad b/test/core/end2end/fuzzers/api_fuzzer_corpus/fb0bef1e4142a7bcfa30e93f834fb6315438d1ad
new file mode 100644
index 0000000000..9953e92fbc
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/fb0bef1e4142a7bcfa30e93f834fb6315438d1ad
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/fb9ad6fd8276dd9b38b27ee8907f0db5a3a2cedf b/test/core/end2end/fuzzers/api_fuzzer_corpus/fb9ad6fd8276dd9b38b27ee8907f0db5a3a2cedf
new file mode 100644
index 0000000000..de5995104a
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/fb9ad6fd8276dd9b38b27ee8907f0db5a3a2cedf
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/fbeb44db0fc0f6b70c226053448c7170f62543b1 b/test/core/end2end/fuzzers/api_fuzzer_corpus/fbeb44db0fc0f6b70c226053448c7170f62543b1
new file mode 100644
index 0000000000..62826f8ea6
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/fbeb44db0fc0f6b70c226053448c7170f62543b1
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/fc39c0c12cde4ef57c217955886ed9508214ca98 b/test/core/end2end/fuzzers/api_fuzzer_corpus/fc39c0c12cde4ef57c217955886ed9508214ca98
new file mode 100644
index 0000000000..378d150b0d
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/fc39c0c12cde4ef57c217955886ed9508214ca98
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/fd4d68895bc219f52d93f3f2f302ff138e8ffeda b/test/core/end2end/fuzzers/api_fuzzer_corpus/fd4d68895bc219f52d93f3f2f302ff138e8ffeda
new file mode 100644
index 0000000000..53ad5a4fdb
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/fd4d68895bc219f52d93f3f2f302ff138e8ffeda
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/fe565289309a897d640309b9bf214d3036c2216b b/test/core/end2end/fuzzers/api_fuzzer_corpus/fe565289309a897d640309b9bf214d3036c2216b
new file mode 100644
index 0000000000..f9614e940b
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/fe565289309a897d640309b9bf214d3036c2216b
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/fe7ac5c3403c7f1673ead3176af4efe7c60b2c02 b/test/core/end2end/fuzzers/api_fuzzer_corpus/fe7ac5c3403c7f1673ead3176af4efe7c60b2c02
new file mode 100644
index 0000000000..38d0e2e273
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/fe7ac5c3403c7f1673ead3176af4efe7c60b2c02
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/fe9d7f510475f17a7592213c9b2e614ce7d38f22 b/test/core/end2end/fuzzers/api_fuzzer_corpus/fe9d7f510475f17a7592213c9b2e614ce7d38f22
new file mode 100644
index 0000000000..6929f700be
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/fe9d7f510475f17a7592213c9b2e614ce7d38f22
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/ff2fd7bfc554729dc2a40554597e3a95ab8baefe b/test/core/end2end/fuzzers/api_fuzzer_corpus/ff2fd7bfc554729dc2a40554597e3a95ab8baefe
new file mode 100644
index 0000000000..617703e79e
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/ff2fd7bfc554729dc2a40554597e3a95ab8baefe
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/ff8ffcfafaf420d6fee1cfa087204975ab8e14d6 b/test/core/end2end/fuzzers/api_fuzzer_corpus/ff8ffcfafaf420d6fee1cfa087204975ab8e14d6
new file mode 100644
index 0000000000..3308bf2007
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/ff8ffcfafaf420d6fee1cfa087204975ab8e14d6
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/ffc74f2184f64032a1f67b5f843a683ea1372b74 b/test/core/end2end/fuzzers/api_fuzzer_corpus/ffc74f2184f64032a1f67b5f843a683ea1372b74
new file mode 100644
index 0000000000..ea81a9f7ec
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/ffc74f2184f64032a1f67b5f843a683ea1372b74
Binary files differ
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/full_request.bin b/test/core/end2end/fuzzers/api_fuzzer_corpus/full_request.bin
new file mode 100644
index 0000000000..144e61807a
--- /dev/null
+++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/full_request.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/04bef86965e816c0cd330896ecd981dd3b14275c b/test/core/end2end/fuzzers/client_fuzzer_corpus/04bef86965e816c0cd330896ecd981dd3b14275c
new file mode 100644
index 0000000000..c90168f1d6
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/04bef86965e816c0cd330896ecd981dd3b14275c
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/0c6f2e0a2232788cb20c4f52ffa18d7ab8f0b938 b/test/core/end2end/fuzzers/client_fuzzer_corpus/0c6f2e0a2232788cb20c4f52ffa18d7ab8f0b938
new file mode 100644
index 0000000000..1db6475e04
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/0c6f2e0a2232788cb20c4f52ffa18d7ab8f0b938
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/1526ac4266e152b029b7c283255fe4fb6507f726 b/test/core/end2end/fuzzers/client_fuzzer_corpus/1526ac4266e152b029b7c283255fe4fb6507f726
new file mode 100644
index 0000000000..c255893e65
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/1526ac4266e152b029b7c283255fe4fb6507f726
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/15c8bfec99ff18b11211d464c824fc139cc791fd b/test/core/end2end/fuzzers/client_fuzzer_corpus/15c8bfec99ff18b11211d464c824fc139cc791fd
new file mode 100644
index 0000000000..394b1cc647
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/15c8bfec99ff18b11211d464c824fc139cc791fd
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/169f579e66b4b8ff423891a40380e648e8d45247 b/test/core/end2end/fuzzers/client_fuzzer_corpus/169f579e66b4b8ff423891a40380e648e8d45247
new file mode 100644
index 0000000000..7b1498d081
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/169f579e66b4b8ff423891a40380e648e8d45247
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/23e8c1377addaf67019ea36a084e0b68ca7a33db b/test/core/end2end/fuzzers/client_fuzzer_corpus/23e8c1377addaf67019ea36a084e0b68ca7a33db
new file mode 100644
index 0000000000..5dd8b4d01c
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/23e8c1377addaf67019ea36a084e0b68ca7a33db
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/25d2969baf8bd256e15b2ab72707682b2d18b40a b/test/core/end2end/fuzzers/client_fuzzer_corpus/25d2969baf8bd256e15b2ab72707682b2d18b40a
new file mode 100644
index 0000000000..5a8b49dcbf
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/25d2969baf8bd256e15b2ab72707682b2d18b40a
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/2862adc802092f1a422416a1666a5142f71d5d7f b/test/core/end2end/fuzzers/client_fuzzer_corpus/2862adc802092f1a422416a1666a5142f71d5d7f
new file mode 100644
index 0000000000..04f59c7309
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/2862adc802092f1a422416a1666a5142f71d5d7f
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/28680d04887f96a1167dd913573ec8daa2a39625 b/test/core/end2end/fuzzers/client_fuzzer_corpus/28680d04887f96a1167dd913573ec8daa2a39625
new file mode 100644
index 0000000000..8cf466e55c
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/28680d04887f96a1167dd913573ec8daa2a39625
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/28f54e558b181e294e101447c7a79d976fe36fcb b/test/core/end2end/fuzzers/client_fuzzer_corpus/28f54e558b181e294e101447c7a79d976fe36fcb
new file mode 100644
index 0000000000..88efbe2b34
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/28f54e558b181e294e101447c7a79d976fe36fcb
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/3c01b1f89d50fa37fcb3457cd3dd6502fe84e25b b/test/core/end2end/fuzzers/client_fuzzer_corpus/3c01b1f89d50fa37fcb3457cd3dd6502fe84e25b
new file mode 100644
index 0000000000..11152e5881
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/3c01b1f89d50fa37fcb3457cd3dd6502fe84e25b
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/4097094277bc09981f428280fc0cc0f590f20ded b/test/core/end2end/fuzzers/client_fuzzer_corpus/4097094277bc09981f428280fc0cc0f590f20ded
new file mode 100644
index 0000000000..4bbae55ada
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/4097094277bc09981f428280fc0cc0f590f20ded
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/44b6be630161765a3de5872629602ca14789c3bd b/test/core/end2end/fuzzers/client_fuzzer_corpus/44b6be630161765a3de5872629602ca14789c3bd
new file mode 100644
index 0000000000..45628daddc
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/44b6be630161765a3de5872629602ca14789c3bd
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/49c5568cb0de363bc9f9298f1eacaace6c8a268a b/test/core/end2end/fuzzers/client_fuzzer_corpus/49c5568cb0de363bc9f9298f1eacaace6c8a268a
new file mode 100644
index 0000000000..ee05f831a9
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/49c5568cb0de363bc9f9298f1eacaace6c8a268a
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/54555ceac4403855f4cf20367f7be05714c46c51 b/test/core/end2end/fuzzers/client_fuzzer_corpus/54555ceac4403855f4cf20367f7be05714c46c51
new file mode 100644
index 0000000000..f075bd0c2b
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/54555ceac4403855f4cf20367f7be05714c46c51
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/5821752bf8923fdaebc8484662624d8acd382716 b/test/core/end2end/fuzzers/client_fuzzer_corpus/5821752bf8923fdaebc8484662624d8acd382716
new file mode 100644
index 0000000000..599622a5af
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/5821752bf8923fdaebc8484662624d8acd382716
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/59d28886db21f371ac9d999b68b116bcf425d971 b/test/core/end2end/fuzzers/client_fuzzer_corpus/59d28886db21f371ac9d999b68b116bcf425d971
new file mode 100644
index 0000000000..8b16036919
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/59d28886db21f371ac9d999b68b116bcf425d971
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/690158fb146f7f3b3ea820979307a8d8e6f38314 b/test/core/end2end/fuzzers/client_fuzzer_corpus/690158fb146f7f3b3ea820979307a8d8e6f38314
new file mode 100644
index 0000000000..e914451c9d
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/690158fb146f7f3b3ea820979307a8d8e6f38314
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/6ca3910d5f4f7967311853724b072750716dcb48 b/test/core/end2end/fuzzers/client_fuzzer_corpus/6ca3910d5f4f7967311853724b072750716dcb48
new file mode 100644
index 0000000000..b9d87632a2
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/6ca3910d5f4f7967311853724b072750716dcb48
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/6f30de3096eb71f697885fdd9cbddd9ee6ce46c4 b/test/core/end2end/fuzzers/client_fuzzer_corpus/6f30de3096eb71f697885fdd9cbddd9ee6ce46c4
new file mode 100644
index 0000000000..fff1abbd0a
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/6f30de3096eb71f697885fdd9cbddd9ee6ce46c4
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/7f1530d4b702e68d043f89d9e63d314319dcd803 b/test/core/end2end/fuzzers/client_fuzzer_corpus/7f1530d4b702e68d043f89d9e63d314319dcd803
new file mode 100644
index 0000000000..cee4bfafcf
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/7f1530d4b702e68d043f89d9e63d314319dcd803
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/85a7e47ef707d3b31cad924ed6c697c3678ab569 b/test/core/end2end/fuzzers/client_fuzzer_corpus/85a7e47ef707d3b31cad924ed6c697c3678ab569
new file mode 100644
index 0000000000..4606930163
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/85a7e47ef707d3b31cad924ed6c697c3678ab569
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/911e2ea20b6c10431e48f70d9933987815926a9d b/test/core/end2end/fuzzers/client_fuzzer_corpus/911e2ea20b6c10431e48f70d9933987815926a9d
new file mode 100644
index 0000000000..d99f977858
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/911e2ea20b6c10431e48f70d9933987815926a9d
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/93ac93b7deabdfb4f86eb37a1e9f6669957d14a6 b/test/core/end2end/fuzzers/client_fuzzer_corpus/93ac93b7deabdfb4f86eb37a1e9f6669957d14a6
new file mode 100644
index 0000000000..1eeb93dd8a
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/93ac93b7deabdfb4f86eb37a1e9f6669957d14a6
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/9eaf2ad607a943141c29f334b2c66c2e59e99980 b/test/core/end2end/fuzzers/client_fuzzer_corpus/9eaf2ad607a943141c29f334b2c66c2e59e99980
new file mode 100644
index 0000000000..300668149b
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/9eaf2ad607a943141c29f334b2c66c2e59e99980
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/a210d629c305b89a34b7ff3c41ae4566cd22186b b/test/core/end2end/fuzzers/client_fuzzer_corpus/a210d629c305b89a34b7ff3c41ae4566cd22186b
new file mode 100644
index 0000000000..07aab36bd3
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/a210d629c305b89a34b7ff3c41ae4566cd22186b
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/a29a547671badd3154789e1a02bdb87332fcd6a4 b/test/core/end2end/fuzzers/client_fuzzer_corpus/a29a547671badd3154789e1a02bdb87332fcd6a4
new file mode 100644
index 0000000000..a2cd476778
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/a29a547671badd3154789e1a02bdb87332fcd6a4
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/a5592f15d5424ab7e16a18e77027ab91c846d90a b/test/core/end2end/fuzzers/client_fuzzer_corpus/a5592f15d5424ab7e16a18e77027ab91c846d90a
new file mode 100644
index 0000000000..4b62307f51
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/a5592f15d5424ab7e16a18e77027ab91c846d90a
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/a5cf80b996b2ba8c9580f8ecd22720c48de41044 b/test/core/end2end/fuzzers/client_fuzzer_corpus/a5cf80b996b2ba8c9580f8ecd22720c48de41044
new file mode 100644
index 0000000000..64f99239d3
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/a5cf80b996b2ba8c9580f8ecd22720c48de41044
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/b24c25c6d4b57a5f3d64a0adb205bf4f150c9138 b/test/core/end2end/fuzzers/client_fuzzer_corpus/b24c25c6d4b57a5f3d64a0adb205bf4f150c9138
new file mode 100644
index 0000000000..43de9548d2
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/b24c25c6d4b57a5f3d64a0adb205bf4f150c9138
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/beabbe93f1e9b2e56f729af30559ec03a00f53fa b/test/core/end2end/fuzzers/client_fuzzer_corpus/beabbe93f1e9b2e56f729af30559ec03a00f53fa
new file mode 100644
index 0000000000..d248d89354
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/beabbe93f1e9b2e56f729af30559ec03a00f53fa
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/cbe59c62c6d36c7307c438159327e320cd2fcf57 b/test/core/end2end/fuzzers/client_fuzzer_corpus/cbe59c62c6d36c7307c438159327e320cd2fcf57
new file mode 100644
index 0000000000..872bc35e3c
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/cbe59c62c6d36c7307c438159327e320cd2fcf57
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/ce1c326f3b0147841550ce3b5126390764bae8e8 b/test/core/end2end/fuzzers/client_fuzzer_corpus/ce1c326f3b0147841550ce3b5126390764bae8e8
new file mode 100644
index 0000000000..5de9280d6e
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/ce1c326f3b0147841550ce3b5126390764bae8e8
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/d21ca2b01baa21a666257d1a1e0275587eeb565d b/test/core/end2end/fuzzers/client_fuzzer_corpus/d21ca2b01baa21a666257d1a1e0275587eeb565d
new file mode 100644
index 0000000000..40e3961660
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/d21ca2b01baa21a666257d1a1e0275587eeb565d
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/d2f71a800612876010558ce804c9a72ad0a1b9fc b/test/core/end2end/fuzzers/client_fuzzer_corpus/d2f71a800612876010558ce804c9a72ad0a1b9fc
new file mode 100644
index 0000000000..b501115d6c
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/d2f71a800612876010558ce804c9a72ad0a1b9fc
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/d637cc9387087de633b9db535d19f64795c43be1 b/test/core/end2end/fuzzers/client_fuzzer_corpus/d637cc9387087de633b9db535d19f64795c43be1
new file mode 100644
index 0000000000..a43faf9a63
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/d637cc9387087de633b9db535d19f64795c43be1
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/dd5ac34f5b220970447b2733848de78570c47883 b/test/core/end2end/fuzzers/client_fuzzer_corpus/dd5ac34f5b220970447b2733848de78570c47883
new file mode 100644
index 0000000000..848969dbf6
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/dd5ac34f5b220970447b2733848de78570c47883
Binary files differ
diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/f2a6bb4e0137541e2b140b976764377d07d822d6 b/test/core/end2end/fuzzers/client_fuzzer_corpus/f2a6bb4e0137541e2b140b976764377d07d822d6
new file mode 100644
index 0000000000..8af994ef3f
--- /dev/null
+++ b/test/core/end2end/fuzzers/client_fuzzer_corpus/f2a6bb4e0137541e2b140b976764377d07d822d6
Binary files differ
diff --git a/test/core/iomgr/udp_server_test.c b/test/core/iomgr/udp_server_test.c
index 5248b613d7..1e7e4fad63 100644
--- a/test/core/iomgr/udp_server_test.c
+++ b/test/core/iomgr/udp_server_test.c
@@ -32,20 +32,22 @@
*/
#include "src/core/lib/iomgr/udp_server.h"
+
+#include <netinet/in.h>
+#include <string.h>
+#include <sys/socket.h>
+#include <unistd.h>
+
#include <grpc/grpc.h>
#include <grpc/support/alloc.h>
#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 "test/core/util/test_config.h"
-#include <netinet/in.h>
-#include <string.h>
-#include <sys/socket.h>
-#include <unistd.h>
-
#ifdef GRPC_NEED_UDP
#define LOG_TEST(x) gpr_log(GPR_INFO, "%s", #x)
@@ -54,6 +56,7 @@ static grpc_pollset *g_pollset;
static gpr_mu *g_mu;
static int g_number_of_reads = 0;
static int g_number_of_bytes_read = 0;
+static int g_number_of_orphan_calls = 0;
static void on_read(grpc_exec_ctx *exec_ctx, grpc_fd *emfd,
grpc_server *server) {
@@ -71,6 +74,12 @@ static void on_read(grpc_exec_ctx *exec_ctx, grpc_fd *emfd,
gpr_mu_unlock(g_mu);
}
+static void on_fd_orphaned(grpc_fd *emfd) {
+ gpr_log(GPR_INFO, "gRPC FD about to be orphaned: %d",
+ grpc_fd_wrapped_fd(emfd));
+ g_number_of_orphan_calls++;
+}
+
static void test_no_op(void) {
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
grpc_udp_server *s = grpc_udp_server_create();
@@ -88,6 +97,7 @@ static void test_no_op_with_start(void) {
}
static void test_no_op_with_port(void) {
+ g_number_of_orphan_calls = 0;
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
struct sockaddr_in addr;
grpc_udp_server *s = grpc_udp_server_create();
@@ -96,13 +106,17 @@ static void test_no_op_with_port(void) {
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
GPR_ASSERT(grpc_udp_server_add_port(s, (struct sockaddr *)&addr, sizeof(addr),
- on_read));
+ on_read, on_fd_orphaned));
grpc_udp_server_destroy(&exec_ctx, s, NULL);
grpc_exec_ctx_finish(&exec_ctx);
+
+ /* The server had a single FD, which should be orphaned. */
+ GPR_ASSERT(g_number_of_orphan_calls == 1);
}
static void test_no_op_with_port_and_start(void) {
+ g_number_of_orphan_calls = 0;
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
struct sockaddr_in addr;
grpc_udp_server *s = grpc_udp_server_create();
@@ -111,12 +125,15 @@ static void test_no_op_with_port_and_start(void) {
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
GPR_ASSERT(grpc_udp_server_add_port(s, (struct sockaddr *)&addr, sizeof(addr),
- on_read));
+ on_read, on_fd_orphaned));
grpc_udp_server_start(&exec_ctx, s, NULL, 0, NULL);
grpc_udp_server_destroy(&exec_ctx, s, NULL);
grpc_exec_ctx_finish(&exec_ctx);
+
+ /* The server had a single FD which should be orphaned. */
+ GPR_ASSERT(g_number_of_orphan_calls == 1);
}
static void test_receive(int number_of_clients) {
@@ -133,11 +150,12 @@ static void test_receive(int number_of_clients) {
gpr_log(GPR_INFO, "clients=%d", number_of_clients);
g_number_of_bytes_read = 0;
+ g_number_of_orphan_calls = 0;
memset(&addr, 0, sizeof(addr));
addr.ss_family = AF_INET;
- GPR_ASSERT(
- grpc_udp_server_add_port(s, (struct sockaddr *)&addr, addr_len, on_read));
+ GPR_ASSERT(grpc_udp_server_add_port(s, (struct sockaddr *)&addr, addr_len,
+ on_read, on_fd_orphaned));
svrfd = grpc_udp_server_get_fd(s, 0);
GPR_ASSERT(svrfd >= 0);
@@ -176,6 +194,8 @@ static void test_receive(int number_of_clients) {
grpc_udp_server_destroy(&exec_ctx, s, NULL);
grpc_exec_ctx_finish(&exec_ctx);
+
+ GPR_ASSERT(g_number_of_orphan_calls == 5);
}
static void destroy_pollset(grpc_exec_ctx *exec_ctx, void *p, bool success) {
diff --git a/test/core/iomgr/workqueue_test.c b/test/core/iomgr/workqueue_test.c
index 874e696fc2..953cc35ee6 100644
--- a/test/core/iomgr/workqueue_test.c
+++ b/test/core/iomgr/workqueue_test.c
@@ -73,8 +73,10 @@ static void test_add_closure(void) {
gpr_mu_lock(g_mu);
GPR_ASSERT(!done);
- grpc_pollset_work(&exec_ctx, g_pollset, &worker, gpr_now(deadline.clock_type),
- deadline);
+ while (!done) {
+ grpc_pollset_work(&exec_ctx, g_pollset, &worker,
+ gpr_now(deadline.clock_type), deadline);
+ }
gpr_mu_unlock(g_mu);
grpc_exec_ctx_finish(&exec_ctx);
GPR_ASSERT(done);
@@ -97,9 +99,10 @@ static void test_flush(void) {
grpc_workqueue_add_to_pollset(&exec_ctx, wq, g_pollset);
gpr_mu_lock(g_mu);
- GPR_ASSERT(!done);
- grpc_pollset_work(&exec_ctx, g_pollset, &worker, gpr_now(deadline.clock_type),
- deadline);
+ while (!done) {
+ grpc_pollset_work(&exec_ctx, g_pollset, &worker,
+ gpr_now(deadline.clock_type), deadline);
+ }
gpr_mu_unlock(g_mu);
grpc_exec_ctx_finish(&exec_ctx);
GPR_ASSERT(done);
diff --git a/test/core/surface/public_headers_must_be_c89.c b/test/core/surface/public_headers_must_be_c89.c
index 3eeb55d033..fd6ff2c26f 100644
--- a/test/core/surface/public_headers_must_be_c89.c
+++ b/test/core/surface/public_headers_must_be_c89.c
@@ -36,6 +36,7 @@
#include <grpc/census.h>
#include <grpc/compression.h>
#include <grpc/grpc.h>
+#include <grpc/grpc_cronet.h>
#include <grpc/grpc_security.h>
#include <grpc/grpc_security_constants.h>
#include <grpc/impl/codegen/alloc.h>
diff --git a/test/core/util/port.h b/test/core/util/port.h
index 93788bcab2..faeabbae9b 100644
--- a/test/core/util/port.h
+++ b/test/core/util/port.h
@@ -40,10 +40,16 @@ extern "C" {
/* pick a port number that is currently unused by either tcp or udp. return
0 on failure. */
-int grpc_pick_unused_port();
+int grpc_pick_unused_port(void);
/* pick a port number that is currently unused by either tcp or udp. abort
on failure. */
-int grpc_pick_unused_port_or_die();
+int grpc_pick_unused_port_or_die(void);
+
+/* Return a port which was previously returned by grpc_pick_unused_port().
+ * Implementations of grpc_pick_unused_port() backed by a portserver may limit
+ * the total number of ports available; this lets a binary return its allocated
+ * ports back to the server if it is going to allocate a large number. */
+void grpc_recycle_unused_port(int port);
#ifdef __cplusplus
}
diff --git a/test/core/util/port_posix.c b/test/core/util/port_posix.c
index eabd62fafc..265e0acee1 100644
--- a/test/core/util/port_posix.c
+++ b/test/core/util/port_posix.c
@@ -68,6 +68,31 @@ static int has_port_been_chosen(int port) {
return 0;
}
+static int free_chosen_port(int port) {
+ size_t i;
+ int found = 0;
+ size_t found_at = 0;
+ char *env = gpr_getenv("GRPC_TEST_PORT_SERVER");
+ /* Find the port and erase it from the list, then tell the server it can be
+ freed. */
+ for (i = 0; i < num_chosen_ports; i++) {
+ if (chosen_ports[i] == port) {
+ GPR_ASSERT(found == 0);
+ found = 1;
+ found_at = i;
+ }
+ }
+ if (found) {
+ chosen_ports[found_at] = chosen_ports[num_chosen_ports - 1];
+ num_chosen_ports--;
+ if (env) {
+ grpc_free_port_using_server(env, port);
+ }
+ }
+ gpr_free(env);
+ return found;
+}
+
static void free_chosen_ports(void) {
char *env = gpr_getenv("GRPC_TEST_PORT_SERVER");
if (env != NULL) {
@@ -210,4 +235,6 @@ int grpc_pick_unused_port_or_die(void) {
return port;
}
+void grpc_recycle_unused_port(int port) { GPR_ASSERT(free_chosen_port(port)); }
+
#endif /* GPR_POSIX_SOCKET && GRPC_TEST_PICK_PORT */
diff --git a/test/core/util/port_windows.c b/test/core/util/port_windows.c
index 154d607ec7..9023719675 100644
--- a/test/core/util/port_windows.c
+++ b/test/core/util/port_windows.c
@@ -71,6 +71,30 @@ static int has_port_been_chosen(int port) {
return 0;
}
+static int free_chosen_port(int port) {
+ size_t i;
+ int found = 0;
+ size_t found_at = 0;
+ char *env = gpr_getenv("GRPC_TEST_PORT_SERVER");
+ if (env != NULL) {
+ /* Find the port and erase it from the list, then tell the server it can be
+ freed. */
+ for (i = 0; i < num_chosen_ports; i++) {
+ if (chosen_ports[i] == port) {
+ GPR_ASSERT(found == 0);
+ found = 1;
+ found_at = i;
+ }
+ }
+ if (found) {
+ chosen_ports[found_at] = chosen_ports[num_chosen_ports - 1];
+ grpc_free_port_using_server(env, port);
+ num_chosen_ports--;
+ }
+ }
+ return found;
+}
+
static void free_chosen_ports(void) {
char *env = gpr_getenv("GRPC_TEST_PORT_SERVER");
if (env != NULL) {
@@ -216,4 +240,6 @@ int grpc_pick_unused_port_or_die(void) {
return port;
}
+void grpc_recycle_unused_port(int port) { GPR_ASSERT(free_chosen_port(port)); }
+
#endif /* GPR_WINSOCK_SOCKET && GRPC_TEST_PICK_PORT */
diff --git a/test/cpp/end2end/async_end2end_test.cc b/test/cpp/end2end/async_end2end_test.cc
index 0232a9fa31..45f5eb1ddd 100644
--- a/test/cpp/end2end/async_end2end_test.cc
+++ b/test/cpp/end2end/async_end2end_test.cc
@@ -199,6 +199,28 @@ class Verifier {
bool spin_;
};
+// This class disables the server builder plugins that may add sync services to
+// the server. If there are sync services, UnimplementedRpc test will triger
+// the sync unkown rpc routine on the server side, rather than the async one
+// that needs to be tested here.
+class ServerBuilderSyncPluginDisabler : public ::grpc::ServerBuilderOption {
+ public:
+ void UpdateArguments(ChannelArguments* arg) GRPC_OVERRIDE {}
+
+ void UpdatePlugins(
+ std::map<grpc::string, std::unique_ptr<ServerBuilderPlugin>>* plugins)
+ GRPC_OVERRIDE {
+ auto plugin = plugins->begin();
+ while (plugin != plugins->end()) {
+ if ((*plugin).second->has_sync_methods()) {
+ plugins->erase(plugin++);
+ } else {
+ plugin++;
+ }
+ }
+ }
+};
+
class TestScenario {
public:
TestScenario(bool non_block, const grpc::string& creds_type,
@@ -223,8 +245,8 @@ class AsyncEnd2endTest : public ::testing::TestWithParam<TestScenario> {
void SetUp() GRPC_OVERRIDE {
poll_overrider_.reset(new PollingOverrider(!GetParam().disable_blocking));
- int port = grpc_pick_unused_port_or_die();
- server_address_ << "localhost:" << port;
+ port_ = grpc_pick_unused_port_or_die();
+ server_address_ << "localhost:" << port_;
// Setup server
ServerBuilder builder;
@@ -232,6 +254,12 @@ class AsyncEnd2endTest : public ::testing::TestWithParam<TestScenario> {
builder.AddListeningPort(server_address_.str(), server_creds);
builder.RegisterService(&service_);
cq_ = builder.AddCompletionQueue();
+
+ // TODO(zyc): make a test option to choose wheather sync plugins should be
+ // deleted
+ std::unique_ptr<ServerBuilderOption> sync_plugin_disabler(
+ new ServerBuilderSyncPluginDisabler());
+ builder.SetOption(move(sync_plugin_disabler));
server_ = builder.BuildAndStart();
gpr_tls_set(&g_is_async_end2end_test, 1);
@@ -246,6 +274,7 @@ class AsyncEnd2endTest : public ::testing::TestWithParam<TestScenario> {
;
poll_overrider_.reset();
gpr_tls_set(&g_is_async_end2end_test, 0);
+ grpc_recycle_unused_port(port_);
}
void ResetStub() {
@@ -297,6 +326,7 @@ class AsyncEnd2endTest : public ::testing::TestWithParam<TestScenario> {
std::unique_ptr<Server> server_;
grpc::testing::EchoTestService::AsyncService service_;
std::ostringstream server_address_;
+ int port_;
std::unique_ptr<PollingOverrider> poll_overrider_;
};
diff --git a/test/cpp/end2end/end2end_test.cc b/test/cpp/end2end/end2end_test.cc
index 0311864759..f52aa52f39 100644
--- a/test/cpp/end2end/end2end_test.cc
+++ b/test/cpp/end2end/end2end_test.cc
@@ -975,6 +975,34 @@ TEST_P(End2endTest, NonExistingService) {
EXPECT_EQ("", s.error_message());
}
+// Ask the server to send back a serialized proto in trailer.
+// This is an example of setting error details.
+TEST_P(End2endTest, BinaryTrailerTest) {
+ ResetStub();
+ EchoRequest request;
+ EchoResponse response;
+ ClientContext context;
+
+ request.mutable_param()->set_echo_metadata(true);
+ DebugInfo* info = request.mutable_param()->mutable_debug_info();
+ info->add_stack_entries("stack_entry_1");
+ info->add_stack_entries("stack_entry_2");
+ info->add_stack_entries("stack_entry_3");
+ info->set_detail("detailed debug info");
+ grpc::string expected_string = info->SerializeAsString();
+ request.set_message("Hello");
+
+ Status s = stub_->Echo(&context, request, &response);
+ EXPECT_FALSE(s.ok());
+ auto trailers = context.GetServerTrailingMetadata();
+ EXPECT_EQ(1u, trailers.count(kDebugInfoTrailerKey));
+ auto iter = trailers.find(kDebugInfoTrailerKey);
+ EXPECT_EQ(expected_string, iter->second);
+ // Parse the returned trailer into a DebugInfo proto.
+ DebugInfo returned_info;
+ EXPECT_TRUE(returned_info.ParseFromString(ToString(iter->second)));
+}
+
//////////////////////////////////////////////////////////////////////////
// Test with and without a proxy.
class ProxyEnd2endTest : public End2endTest {
diff --git a/test/cpp/end2end/server_builder_plugin_test.cc b/test/cpp/end2end/server_builder_plugin_test.cc
new file mode 100644
index 0000000000..87e3709d7d
--- /dev/null
+++ b/test/cpp/end2end/server_builder_plugin_test.cc
@@ -0,0 +1,256 @@
+/*
+ *
+ * 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++/channel.h>
+#include <grpc++/client_context.h>
+#include <grpc++/create_channel.h>
+#include <grpc++/impl/server_builder_option.h>
+#include <grpc++/impl/server_builder_plugin.h>
+#include <grpc++/impl/server_initializer.h>
+#include <grpc++/security/credentials.h>
+#include <grpc++/security/server_credentials.h>
+#include <grpc++/server.h>
+#include <grpc++/server_builder.h>
+#include <grpc++/server_context.h>
+#include <grpc/grpc.h>
+#include <gtest/gtest.h>
+
+#include "src/proto/grpc/testing/echo.grpc.pb.h"
+#include "test/core/util/port.h"
+#include "test/core/util/test_config.h"
+#include "test/cpp/end2end/test_service_impl.h"
+
+#define PLUGIN_NAME "TestServerBuilderPlugin"
+
+namespace grpc {
+namespace testing {
+
+class TestServerBuilderPlugin : public ServerBuilderPlugin {
+ public:
+ TestServerBuilderPlugin() : service_(new TestServiceImpl()) {
+ init_server_is_called_ = false;
+ finish_is_called_ = false;
+ change_arguments_is_called_ = false;
+ }
+
+ grpc::string name() GRPC_OVERRIDE { return PLUGIN_NAME; }
+
+ void InitServer(ServerInitializer* si) GRPC_OVERRIDE {
+ init_server_is_called_ = true;
+ if (register_service_) {
+ si->RegisterService(service_);
+ }
+ }
+
+ void Finish(ServerInitializer* si) GRPC_OVERRIDE { finish_is_called_ = true; }
+
+ void ChangeArguments(const grpc::string& name, void* value) GRPC_OVERRIDE {
+ change_arguments_is_called_ = true;
+ }
+
+ bool has_async_methods() const GRPC_OVERRIDE {
+ if (register_service_) {
+ return service_->has_async_methods();
+ }
+ return false;
+ }
+
+ bool has_sync_methods() const GRPC_OVERRIDE {
+ if (register_service_) {
+ return service_->has_synchronous_methods();
+ }
+ return false;
+ }
+
+ void SetRegisterService() { register_service_ = true; }
+
+ bool init_server_is_called() { return init_server_is_called_; }
+ bool finish_is_called() { return finish_is_called_; }
+ bool change_arguments_is_called() { return change_arguments_is_called_; }
+
+ private:
+ bool init_server_is_called_;
+ bool finish_is_called_;
+ bool change_arguments_is_called_;
+ bool register_service_;
+ std::shared_ptr<TestServiceImpl> service_;
+};
+
+class InsertPluginServerBuilderOption : public ServerBuilderOption {
+ public:
+ InsertPluginServerBuilderOption() { register_service_ = false; }
+
+ void UpdateArguments(ChannelArguments* arg) GRPC_OVERRIDE {}
+
+ void UpdatePlugins(
+ std::map<grpc::string, std::unique_ptr<ServerBuilderPlugin>>* plugins)
+ GRPC_OVERRIDE {
+ plugins->clear();
+
+ std::unique_ptr<TestServerBuilderPlugin> plugin(
+ new TestServerBuilderPlugin());
+ if (register_service_) plugin->SetRegisterService();
+ (*plugins)[plugin->name()] = std::move(plugin);
+ }
+
+ void SetRegisterService() { register_service_ = true; }
+
+ private:
+ bool register_service_;
+};
+
+std::unique_ptr<ServerBuilderPlugin> CreateTestServerBuilderPlugin() {
+ return std::unique_ptr<ServerBuilderPlugin>(new TestServerBuilderPlugin());
+}
+
+void AddTestServerBuilderPlugin() {
+ static bool already_here = false;
+ if (already_here) return;
+ already_here = true;
+ ::grpc::ServerBuilder::InternalAddPluginFactory(
+ &CreateTestServerBuilderPlugin);
+}
+
+// Force AddServerBuilderPlugin() to be called at static initialization time.
+struct StaticTestPluginInitializer {
+ StaticTestPluginInitializer() { AddTestServerBuilderPlugin(); }
+} static_plugin_initializer_test_;
+
+// When the param boolean is true, the ServerBuilder plugin will be added at the
+// time of static initialization. When it's false, the ServerBuilder plugin will
+// be added using ServerBuilder::SetOption().
+class ServerBuilderPluginTest : public ::testing::TestWithParam<bool> {
+ public:
+ ServerBuilderPluginTest() {}
+
+ void SetUp() GRPC_OVERRIDE {
+ port_ = grpc_pick_unused_port_or_die();
+ builder_.reset(new ServerBuilder());
+ }
+
+ void InsertPlugin() {
+ if (GetParam()) {
+ // Add ServerBuilder plugin in static initialization
+ EXPECT_TRUE(builder_->plugins_[PLUGIN_NAME] != nullptr);
+ } else {
+ // Add ServerBuilder plugin using ServerBuilder::SetOption()
+ builder_->SetOption(std::unique_ptr<ServerBuilderOption>(
+ new InsertPluginServerBuilderOption()));
+ }
+ }
+
+ void InsertPluginWithTestService() {
+ if (GetParam()) {
+ // Add ServerBuilder plugin in static initialization
+ EXPECT_TRUE(builder_->plugins_[PLUGIN_NAME] != nullptr);
+ auto plugin = static_cast<TestServerBuilderPlugin*>(
+ builder_->plugins_[PLUGIN_NAME].get());
+ EXPECT_TRUE(plugin != nullptr);
+ plugin->SetRegisterService();
+ } else {
+ // Add ServerBuilder plugin using ServerBuilder::SetOption()
+ std::unique_ptr<InsertPluginServerBuilderOption> option(
+ new InsertPluginServerBuilderOption());
+ option->SetRegisterService();
+ builder_->SetOption(std::move(option));
+ }
+ }
+
+ void StartServer() {
+ grpc::string server_address = "localhost:" + to_string(port_);
+ builder_->AddListeningPort(server_address, InsecureServerCredentials());
+ server_ = builder_->BuildAndStart();
+ EXPECT_TRUE(builder_->plugins_[PLUGIN_NAME] != nullptr);
+ }
+
+ void ResetStub() {
+ string target = "dns:localhost:" + to_string(port_);
+ channel_ = CreateChannel(target, InsecureChannelCredentials());
+ stub_ = grpc::testing::EchoTestService::NewStub(channel_);
+ }
+
+ void TearDown() GRPC_OVERRIDE {
+ EXPECT_TRUE(builder_->plugins_[PLUGIN_NAME] != nullptr);
+ auto plugin = static_cast<TestServerBuilderPlugin*>(
+ builder_->plugins_[PLUGIN_NAME].get());
+ EXPECT_TRUE(plugin != nullptr);
+ EXPECT_TRUE(plugin->init_server_is_called());
+ EXPECT_TRUE(plugin->finish_is_called());
+ }
+
+ string to_string(const int number) {
+ std::stringstream strs;
+ strs << number;
+ return strs.str();
+ }
+
+ protected:
+ std::shared_ptr<Channel> channel_;
+ std::unique_ptr<ServerBuilder> builder_;
+ std::unique_ptr<grpc::testing::EchoTestService::Stub> stub_;
+ std::unique_ptr<Server> server_;
+ TestServiceImpl service_;
+ int port_;
+};
+
+TEST_P(ServerBuilderPluginTest, PluginWithoutServiceTest) {
+ InsertPlugin();
+ StartServer();
+}
+
+TEST_P(ServerBuilderPluginTest, PluginWithServiceTest) {
+ InsertPluginWithTestService();
+ StartServer();
+ ResetStub();
+
+ EchoRequest request;
+ EchoResponse response;
+ request.set_message("Hello hello hello hello");
+ ClientContext context;
+ context.set_compression_algorithm(GRPC_COMPRESS_GZIP);
+ Status s = stub_->Echo(&context, request, &response);
+ EXPECT_EQ(response.message(), request.message());
+ EXPECT_TRUE(s.ok());
+}
+
+INSTANTIATE_TEST_CASE_P(ServerBuilderPluginTest, ServerBuilderPluginTest,
+ ::testing::Values(false, true));
+
+} // namespace testing
+} // namespace grpc
+
+int main(int argc, char** argv) {
+ grpc_test_init(argc, argv);
+ ::testing::InitGoogleTest(&argc, argv);
+ return RUN_ALL_TESTS();
+}
diff --git a/test/cpp/end2end/test_service_impl.cc b/test/cpp/end2end/test_service_impl.cc
index 2f5dd6d49e..cbaee92228 100644
--- a/test/cpp/end2end/test_service_impl.cc
+++ b/test/cpp/end2end/test_service_impl.cc
@@ -135,6 +135,14 @@ Status TestServiceImpl::Echo(ServerContext* context, const EchoRequest* request,
context->AddTrailingMetadata(ToString(iter->first),
ToString(iter->second));
}
+ // Terminate rpc with error and debug info in trailer.
+ if (request->param().debug_info().stack_entries_size() ||
+ !request->param().debug_info().detail().empty()) {
+ grpc::string serialized_debug_info =
+ request->param().debug_info().SerializeAsString();
+ context->AddTrailingMetadata(kDebugInfoTrailerKey, serialized_debug_info);
+ return Status::CANCELLED;
+ }
}
if (request->has_param() &&
(request->param().expected_client_identity().length() > 0 ||
diff --git a/test/cpp/end2end/test_service_impl.h b/test/cpp/end2end/test_service_impl.h
index 1ab6ced9e0..c89f88c900 100644
--- a/test/cpp/end2end/test_service_impl.h
+++ b/test/cpp/end2end/test_service_impl.h
@@ -47,6 +47,7 @@ namespace testing {
const int kNumResponseStreamsMsgs = 3;
const char* const kServerCancelAfterReads = "cancel_after_reads";
const char* const kServerTryCancelRequest = "server_try_cancel";
+const char* const kDebugInfoTrailerKey = "debug-info-bin";
typedef enum {
DO_NOT_CANCEL = 0,
diff --git a/test/cpp/interop/client.cc b/test/cpp/interop/client.cc
index 9af6a88044..7727824979 100644
--- a/test/cpp/interop/client.cc
+++ b/test/cpp/interop/client.cc
@@ -81,6 +81,14 @@ DEFINE_string(default_service_account, "",
DEFINE_string(service_account_key_file, "",
"Path to service account json key file.");
DEFINE_string(oauth_scope, "", "Scope for OAuth tokens.");
+DEFINE_bool(do_not_abort_on_transient_failures, false,
+ "If set to 'true', abort() is not called in case of transient "
+ "failures (i.e failures that are temporary and will likely go away "
+ "on retrying; like a temporary connection failure) and an error "
+ "message is printed instead. Note that this flag just controls "
+ "whether abort() is called or not. It does not control whether the "
+ "test is retried in case of transient failures (and currently the "
+ "interop tests are not retried even if this flag is set to true)");
using grpc::testing::CreateChannelForTestCase;
using grpc::testing::GetServiceAccountJsonKey;
@@ -89,8 +97,9 @@ int main(int argc, char** argv) {
grpc::testing::InitTest(&argc, &argv, true);
gpr_log(GPR_INFO, "Testing these cases: %s", FLAGS_test_case.c_str());
int ret = 0;
- grpc::testing::InteropClient client(
- CreateChannelForTestCase(FLAGS_test_case));
+ grpc::testing::InteropClient client(CreateChannelForTestCase(FLAGS_test_case),
+ true,
+ FLAGS_do_not_abort_on_transient_failures);
if (FLAGS_test_case == "empty_unary") {
client.DoEmpty();
} else if (FLAGS_test_case == "large_unary") {
diff --git a/test/cpp/interop/interop_client.cc b/test/cpp/interop/interop_client.cc
index 22293d211f..189e4a8aab 100644
--- a/test/cpp/interop/interop_client.cc
+++ b/test/cpp/interop/interop_client.cc
@@ -60,7 +60,7 @@ static const char* kRandomFile = "test/cpp/interop/rnd.dat";
namespace {
// The same value is defined by the Java client.
const std::vector<int> request_stream_sizes = {27182, 8, 1828, 45904};
-const std::vector<int> response_stream_sizes = {31415, 9, 2653, 58979};
+const std::vector<int> response_stream_sizes = {31415, 59, 2653, 58979};
const int kNumResponseMessages = 2000;
const int kResponseMessageSize = 1030;
const int kReceiveDelayMilliSeconds = 20;
@@ -134,23 +134,43 @@ void InteropClient::Reset(std::shared_ptr<Channel> channel) {
serviceStub_.Reset(channel);
}
-InteropClient::InteropClient(std::shared_ptr<Channel> channel)
- : serviceStub_(channel, true) {}
-
InteropClient::InteropClient(std::shared_ptr<Channel> channel,
- bool new_stub_every_test_case)
- : serviceStub_(channel, new_stub_every_test_case) {}
+ bool new_stub_every_test_case,
+ bool do_not_abort_on_transient_failures)
+ : serviceStub_(channel, new_stub_every_test_case),
+ do_not_abort_on_transient_failures_(do_not_abort_on_transient_failures) {}
-void InteropClient::AssertOkOrPrintErrorStatus(const Status& s) {
+bool InteropClient::AssertStatusOk(const Status& s) {
if (s.ok()) {
- return;
+ return true;
}
- gpr_log(GPR_ERROR, "Error status code: %d, message: %s", s.error_code(),
- s.error_message().c_str());
- GPR_ASSERT(0);
+
+ // Note: At this point, s.error_code is definitely not StatusCode::OK (we
+ // already checked for s.ok() above). So, the following will call abort()
+ // (unless s.error_code() corresponds to a transient failure and
+ // 'do_not_abort_on_transient_failures' is true)
+ return AssertStatusCode(s, StatusCode::OK);
}
-void InteropClient::DoEmpty() {
+bool InteropClient::AssertStatusCode(const Status& s,
+ StatusCode expected_code) {
+ if (s.error_code() == expected_code) {
+ return true;
+ }
+
+ gpr_log(GPR_ERROR, "Error status code: %d (expected: %d), message: %s",
+ s.error_code(), expected_code, s.error_message().c_str());
+
+ // In case of transient transient/retryable failures (like a broken
+ // connection) we may or may not abort (see TransientFailureOrAbort())
+ if (s.error_code() == grpc::StatusCode::UNAVAILABLE) {
+ return TransientFailureOrAbort();
+ }
+
+ abort();
+}
+
+bool InteropClient::DoEmpty() {
gpr_log(GPR_DEBUG, "Sending an empty rpc...");
Empty request = Empty::default_instance();
@@ -158,17 +178,21 @@ void InteropClient::DoEmpty() {
ClientContext context;
Status s = serviceStub_.Get()->EmptyCall(&context, request, &response);
- AssertOkOrPrintErrorStatus(s);
+
+ if (!AssertStatusOk(s)) {
+ return false;
+ }
gpr_log(GPR_DEBUG, "Empty rpc done.");
+ return true;
}
-void InteropClient::PerformLargeUnary(SimpleRequest* request,
+bool InteropClient::PerformLargeUnary(SimpleRequest* request,
SimpleResponse* response) {
- PerformLargeUnary(request, response, NoopChecks);
+ return PerformLargeUnary(request, response, NoopChecks);
}
-void InteropClient::PerformLargeUnary(SimpleRequest* request,
+bool InteropClient::PerformLargeUnary(SimpleRequest* request,
SimpleResponse* response,
CheckerFn custom_checks_fn) {
ClientContext context;
@@ -180,7 +204,9 @@ void InteropClient::PerformLargeUnary(SimpleRequest* request,
request->mutable_payload()->set_body(payload.c_str(), kLargeRequestSize);
Status s = serviceStub_.Get()->UnaryCall(&context, *request, response);
- AssertOkOrPrintErrorStatus(s);
+ if (!AssertStatusOk(s)) {
+ return false;
+ }
custom_checks_fn(inspector, request, response);
@@ -203,9 +229,11 @@ void InteropClient::PerformLargeUnary(SimpleRequest* request,
default:
GPR_ASSERT(false);
}
+
+ return true;
}
-void InteropClient::DoComputeEngineCreds(
+bool InteropClient::DoComputeEngineCreds(
const grpc::string& default_service_account,
const grpc::string& oauth_scope) {
gpr_log(GPR_DEBUG,
@@ -215,7 +243,11 @@ void InteropClient::DoComputeEngineCreds(
request.set_fill_username(true);
request.set_fill_oauth_scope(true);
request.set_response_type(PayloadType::COMPRESSABLE);
- PerformLargeUnary(&request, &response);
+
+ if (!PerformLargeUnary(&request, &response)) {
+ return false;
+ }
+
gpr_log(GPR_DEBUG, "Got username %s", response.username().c_str());
gpr_log(GPR_DEBUG, "Got oauth_scope %s", response.oauth_scope().c_str());
GPR_ASSERT(!response.username().empty());
@@ -224,9 +256,10 @@ void InteropClient::DoComputeEngineCreds(
const char* oauth_scope_str = response.oauth_scope().c_str();
GPR_ASSERT(oauth_scope.find(oauth_scope_str) != grpc::string::npos);
gpr_log(GPR_DEBUG, "Large unary with compute engine creds done.");
+ return true;
}
-void InteropClient::DoOauth2AuthToken(const grpc::string& username,
+bool InteropClient::DoOauth2AuthToken(const grpc::string& username,
const grpc::string& oauth_scope) {
gpr_log(GPR_DEBUG,
"Sending a unary rpc with raw oauth2 access token credentials ...");
@@ -239,16 +272,20 @@ void InteropClient::DoOauth2AuthToken(const grpc::string& username,
Status s = serviceStub_.Get()->UnaryCall(&context, request, &response);
- AssertOkOrPrintErrorStatus(s);
+ if (!AssertStatusOk(s)) {
+ return false;
+ }
+
GPR_ASSERT(!response.username().empty());
GPR_ASSERT(!response.oauth_scope().empty());
GPR_ASSERT(username == response.username());
const char* oauth_scope_str = response.oauth_scope().c_str();
GPR_ASSERT(oauth_scope.find(oauth_scope_str) != grpc::string::npos);
gpr_log(GPR_DEBUG, "Unary with oauth2 access token credentials done.");
+ return true;
}
-void InteropClient::DoPerRpcCreds(const grpc::string& json_key) {
+bool InteropClient::DoPerRpcCreds(const grpc::string& json_key) {
gpr_log(GPR_DEBUG, "Sending a unary rpc with per-rpc JWT access token ...");
SimpleRequest request;
SimpleResponse response;
@@ -263,35 +300,47 @@ void InteropClient::DoPerRpcCreds(const grpc::string& json_key) {
Status s = serviceStub_.Get()->UnaryCall(&context, request, &response);
- AssertOkOrPrintErrorStatus(s);
+ if (!AssertStatusOk(s)) {
+ return false;
+ }
+
GPR_ASSERT(!response.username().empty());
GPR_ASSERT(json_key.find(response.username()) != grpc::string::npos);
gpr_log(GPR_DEBUG, "Unary with per-rpc JWT access token done.");
+ return true;
}
-void InteropClient::DoJwtTokenCreds(const grpc::string& username) {
+bool InteropClient::DoJwtTokenCreds(const grpc::string& username) {
gpr_log(GPR_DEBUG,
"Sending a large unary rpc with JWT token credentials ...");
SimpleRequest request;
SimpleResponse response;
request.set_fill_username(true);
request.set_response_type(PayloadType::COMPRESSABLE);
- PerformLargeUnary(&request, &response);
+
+ if (!PerformLargeUnary(&request, &response)) {
+ return false;
+ }
+
GPR_ASSERT(!response.username().empty());
GPR_ASSERT(username.find(response.username()) != grpc::string::npos);
gpr_log(GPR_DEBUG, "Large unary with JWT token creds done.");
+ return true;
}
-void InteropClient::DoLargeUnary() {
+bool InteropClient::DoLargeUnary() {
gpr_log(GPR_DEBUG, "Sending a large unary rpc...");
SimpleRequest request;
SimpleResponse response;
request.set_response_type(PayloadType::COMPRESSABLE);
- PerformLargeUnary(&request, &response);
+ if (!PerformLargeUnary(&request, &response)) {
+ return false;
+ }
gpr_log(GPR_DEBUG, "Large unary done.");
+ return true;
}
-void InteropClient::DoLargeCompressedUnary() {
+bool InteropClient::DoLargeCompressedUnary() {
const CompressionType compression_types[] = {NONE, GZIP, DEFLATE};
const PayloadType payload_types[] = {COMPRESSABLE, UNCOMPRESSABLE, RANDOM};
for (size_t i = 0; i < GPR_ARRAY_SIZE(payload_types); i++) {
@@ -307,14 +356,32 @@ void InteropClient::DoLargeCompressedUnary() {
SimpleResponse response;
request.set_response_type(payload_types[i]);
request.set_response_compression(compression_types[j]);
- PerformLargeUnary(&request, &response, CompressionChecks);
+
+ if (!PerformLargeUnary(&request, &response, CompressionChecks)) {
+ gpr_log(GPR_ERROR, "Large compressed unary failed %s", log_suffix);
+ gpr_free(log_suffix);
+ return false;
+ }
+
gpr_log(GPR_DEBUG, "Large compressed unary done %s.", log_suffix);
gpr_free(log_suffix);
}
}
+
+ return true;
+}
+
+// Either abort() (unless do_not_abort_on_transient_failures_ is true) or return
+// false
+bool InteropClient::TransientFailureOrAbort() {
+ if (do_not_abort_on_transient_failures_) {
+ return false;
+ }
+
+ abort();
}
-void InteropClient::DoRequestStreaming() {
+bool InteropClient::DoRequestStreaming() {
gpr_log(GPR_DEBUG, "Sending request steaming rpc ...");
ClientContext context;
@@ -328,19 +395,25 @@ void InteropClient::DoRequestStreaming() {
for (unsigned int i = 0; i < request_stream_sizes.size(); ++i) {
Payload* payload = request.mutable_payload();
payload->set_body(grpc::string(request_stream_sizes[i], '\0'));
- GPR_ASSERT(stream->Write(request));
+ if (!stream->Write(request)) {
+ gpr_log(GPR_ERROR, "DoRequestStreaming(): stream->Write() failed");
+ return TransientFailureOrAbort();
+ }
aggregated_payload_size += request_stream_sizes[i];
}
stream->WritesDone();
+
Status s = stream->Finish();
+ if (!AssertStatusOk(s)) {
+ return false;
+ }
GPR_ASSERT(response.aggregated_payload_size() == aggregated_payload_size);
- AssertOkOrPrintErrorStatus(s);
- gpr_log(GPR_DEBUG, "Request streaming done.");
+ return true;
}
-void InteropClient::DoResponseStreaming() {
- gpr_log(GPR_DEBUG, "Receiving response steaming rpc ...");
+bool InteropClient::DoResponseStreaming() {
+ gpr_log(GPR_DEBUG, "Receiving response streaming rpc ...");
ClientContext context;
StreamingOutputCallRequest request;
@@ -358,13 +431,27 @@ void InteropClient::DoResponseStreaming() {
grpc::string(response_stream_sizes[i], '\0'));
++i;
}
- GPR_ASSERT(response_stream_sizes.size() == i);
+
+ if (i < response_stream_sizes.size()) {
+ // stream->Read() failed before reading all the expected messages. This is
+ // most likely due to connection failure.
+ gpr_log(GPR_ERROR,
+ "DoResponseStreaming(): Read fewer streams (%d) than "
+ "response_stream_sizes.size() (%d)",
+ i, response_stream_sizes.size());
+ return TransientFailureOrAbort();
+ }
+
Status s = stream->Finish();
- AssertOkOrPrintErrorStatus(s);
+ if (!AssertStatusOk(s)) {
+ return false;
+ }
+
gpr_log(GPR_DEBUG, "Response streaming done.");
+ return true;
}
-void InteropClient::DoResponseCompressedStreaming() {
+bool InteropClient::DoResponseCompressedStreaming() {
const CompressionType compression_types[] = {NONE, GZIP, DEFLATE};
const PayloadType payload_types[] = {COMPRESSABLE, UNCOMPRESSABLE, RANDOM};
for (size_t i = 0; i < GPR_ARRAY_SIZE(payload_types); i++) {
@@ -378,7 +465,7 @@ void InteropClient::DoResponseCompressedStreaming() {
CompressionType_Name(compression_types[j]).c_str(),
PayloadType_Name(payload_types[i]).c_str());
- gpr_log(GPR_DEBUG, "Receiving response steaming rpc %s.", log_suffix);
+ gpr_log(GPR_DEBUG, "Receiving response streaming rpc %s.", log_suffix);
request.set_response_type(payload_types[i]);
request.set_response_compression(compression_types[j]);
@@ -432,18 +519,32 @@ void InteropClient::DoResponseCompressedStreaming() {
++k;
}
- GPR_ASSERT(response_stream_sizes.size() == k);
- Status s = stream->Finish();
-
- AssertOkOrPrintErrorStatus(s);
gpr_log(GPR_DEBUG, "Response streaming done %s.", log_suffix);
gpr_free(log_suffix);
+
+ if (k < response_stream_sizes.size()) {
+ // stream->Read() failed before reading all the expected messages. This
+ // is most likely due to a connection failure.
+ gpr_log(GPR_ERROR,
+ "DoResponseCompressedStreaming(): Responses read (k=%d) is "
+ "less than the expected messages (i.e "
+ "response_stream_sizes.size() (%d)). (i=%d, j=%d)",
+ k, response_stream_sizes.size(), i, j);
+ return TransientFailureOrAbort();
+ }
+
+ Status s = stream->Finish();
+ if (!AssertStatusOk(s)) {
+ return false;
+ }
}
}
+
+ return true;
}
-void InteropClient::DoResponseStreamingWithSlowConsumer() {
- gpr_log(GPR_DEBUG, "Receiving response steaming rpc with slow consumer ...");
+bool InteropClient::DoResponseStreamingWithSlowConsumer() {
+ gpr_log(GPR_DEBUG, "Receiving response streaming rpc with slow consumer ...");
ClientContext context;
StreamingOutputCallRequest request;
@@ -464,14 +565,26 @@ void InteropClient::DoResponseStreamingWithSlowConsumer() {
usleep(kReceiveDelayMilliSeconds * 1000);
++i;
}
- GPR_ASSERT(kNumResponseMessages == i);
+
+ if (i < kNumResponseMessages) {
+ gpr_log(GPR_ERROR,
+ "DoResponseStreamingWithSlowConsumer(): Responses read (i=%d) is "
+ "less than the expected messages (i.e kNumResponseMessages = %d)",
+ i, kNumResponseMessages);
+
+ return TransientFailureOrAbort();
+ }
+
Status s = stream->Finish();
+ if (!AssertStatusOk(s)) {
+ return false;
+ }
- AssertOkOrPrintErrorStatus(s);
gpr_log(GPR_DEBUG, "Response streaming done.");
+ return true;
}
-void InteropClient::DoHalfDuplex() {
+bool InteropClient::DoHalfDuplex() {
gpr_log(GPR_DEBUG, "Sending half-duplex streaming rpc ...");
ClientContext context;
@@ -483,7 +596,11 @@ void InteropClient::DoHalfDuplex() {
ResponseParameters* response_parameter = request.add_response_parameters();
for (unsigned int i = 0; i < response_stream_sizes.size(); ++i) {
response_parameter->set_size(response_stream_sizes[i]);
- GPR_ASSERT(stream->Write(request));
+
+ if (!stream->Write(request)) {
+ gpr_log(GPR_ERROR, "DoHalfDuplex(): stream->Write() failed. i=%d", i);
+ return TransientFailureOrAbort();
+ }
}
stream->WritesDone();
@@ -494,13 +611,27 @@ void InteropClient::DoHalfDuplex() {
grpc::string(response_stream_sizes[i], '\0'));
++i;
}
- GPR_ASSERT(response_stream_sizes.size() == i);
+
+ if (i < response_stream_sizes.size()) {
+ // stream->Read() failed before reading all the expected messages. This is
+ // most likely due to a connection failure
+ gpr_log(GPR_ERROR,
+ "DoHalfDuplex(): Responses read (i=%d) are less than the expected "
+ "number of messages response_stream_sizes.size() (%d)",
+ i, response_stream_sizes.size());
+ return TransientFailureOrAbort();
+ }
+
Status s = stream->Finish();
- AssertOkOrPrintErrorStatus(s);
+ if (!AssertStatusOk(s)) {
+ return false;
+ }
+
gpr_log(GPR_DEBUG, "Half-duplex streaming rpc done.");
+ return true;
}
-void InteropClient::DoPingPong() {
+bool InteropClient::DoPingPong() {
gpr_log(GPR_DEBUG, "Sending Ping Pong streaming rpc ...");
ClientContext context;
@@ -513,24 +644,40 @@ void InteropClient::DoPingPong() {
ResponseParameters* response_parameter = request.add_response_parameters();
Payload* payload = request.mutable_payload();
StreamingOutputCallResponse response;
+
for (unsigned int i = 0; i < request_stream_sizes.size(); ++i) {
response_parameter->set_size(response_stream_sizes[i]);
payload->set_body(grpc::string(request_stream_sizes[i], '\0'));
- GPR_ASSERT(stream->Write(request));
- GPR_ASSERT(stream->Read(&response));
+
+ if (!stream->Write(request)) {
+ gpr_log(GPR_ERROR, "DoPingPong(): stream->Write() failed. i: %d", i);
+ return TransientFailureOrAbort();
+ }
+
+ if (!stream->Read(&response)) {
+ gpr_log(GPR_ERROR, "DoPingPong(): stream->Read() failed. i:%d", i);
+ return TransientFailureOrAbort();
+ }
+
GPR_ASSERT(response.payload().body() ==
grpc::string(response_stream_sizes[i], '\0'));
}
stream->WritesDone();
+
GPR_ASSERT(!stream->Read(&response));
+
Status s = stream->Finish();
- AssertOkOrPrintErrorStatus(s);
+ if (!AssertStatusOk(s)) {
+ return false;
+ }
+
gpr_log(GPR_DEBUG, "Ping pong streaming done.");
+ return true;
}
-void InteropClient::DoCancelAfterBegin() {
- gpr_log(GPR_DEBUG, "Sending request steaming rpc ...");
+bool InteropClient::DoCancelAfterBegin() {
+ gpr_log(GPR_DEBUG, "Sending request streaming rpc ...");
ClientContext context;
StreamingInputCallRequest request;
@@ -542,11 +689,16 @@ void InteropClient::DoCancelAfterBegin() {
gpr_log(GPR_DEBUG, "Trying to cancel...");
context.TryCancel();
Status s = stream->Finish();
- GPR_ASSERT(s.error_code() == StatusCode::CANCELLED);
+
+ if (!AssertStatusCode(s, StatusCode::CANCELLED)) {
+ return false;
+ }
+
gpr_log(GPR_DEBUG, "Canceling streaming done.");
+ return true;
}
-void InteropClient::DoCancelAfterFirstResponse() {
+bool InteropClient::DoCancelAfterFirstResponse() {
gpr_log(GPR_DEBUG, "Sending Ping Pong streaming rpc ...");
ClientContext context;
@@ -560,17 +712,27 @@ void InteropClient::DoCancelAfterFirstResponse() {
response_parameter->set_size(31415);
request.mutable_payload()->set_body(grpc::string(27182, '\0'));
StreamingOutputCallResponse response;
- GPR_ASSERT(stream->Write(request));
- GPR_ASSERT(stream->Read(&response));
+
+ if (!stream->Write(request)) {
+ gpr_log(GPR_ERROR, "DoCancelAfterFirstResponse(): stream->Write() failed");
+ return TransientFailureOrAbort();
+ }
+
+ if (!stream->Read(&response)) {
+ gpr_log(GPR_ERROR, "DoCancelAfterFirstResponse(): stream->Read failed");
+ return TransientFailureOrAbort();
+ }
GPR_ASSERT(response.payload().body() == grpc::string(31415, '\0'));
+
gpr_log(GPR_DEBUG, "Trying to cancel...");
context.TryCancel();
Status s = stream->Finish();
gpr_log(GPR_DEBUG, "Canceling pingpong streaming done.");
+ return true;
}
-void InteropClient::DoTimeoutOnSleepingServer() {
+bool InteropClient::DoTimeoutOnSleepingServer() {
gpr_log(GPR_DEBUG,
"Sending Ping Pong streaming rpc with a short deadline...");
@@ -587,11 +749,15 @@ void InteropClient::DoTimeoutOnSleepingServer() {
stream->Write(request);
Status s = stream->Finish();
- GPR_ASSERT(s.error_code() == StatusCode::DEADLINE_EXCEEDED);
+ if (!AssertStatusCode(s, StatusCode::DEADLINE_EXCEEDED)) {
+ return false;
+ }
+
gpr_log(GPR_DEBUG, "Pingpong streaming timeout done.");
+ return true;
}
-void InteropClient::DoEmptyStream() {
+bool InteropClient::DoEmptyStream() {
gpr_log(GPR_DEBUG, "Starting empty_stream.");
ClientContext context;
@@ -601,12 +767,17 @@ void InteropClient::DoEmptyStream() {
stream->WritesDone();
StreamingOutputCallResponse response;
GPR_ASSERT(stream->Read(&response) == false);
+
Status s = stream->Finish();
- AssertOkOrPrintErrorStatus(s);
+ if (!AssertStatusOk(s)) {
+ return false;
+ }
+
gpr_log(GPR_DEBUG, "empty_stream done.");
+ return true;
}
-void InteropClient::DoStatusWithMessage() {
+bool InteropClient::DoStatusWithMessage() {
gpr_log(GPR_DEBUG,
"Sending RPC with a request for status code 2 and message");
@@ -620,12 +791,16 @@ void InteropClient::DoStatusWithMessage() {
Status s = serviceStub_.Get()->UnaryCall(&context, request, &response);
- GPR_ASSERT(s.error_code() == grpc::StatusCode::UNKNOWN);
+ if (!AssertStatusCode(s, grpc::StatusCode::UNKNOWN)) {
+ return false;
+ }
+
GPR_ASSERT(s.error_message() == test_msg);
gpr_log(GPR_DEBUG, "Done testing Status and Message");
+ return true;
}
-void InteropClient::DoCustomMetadata() {
+bool InteropClient::DoCustomMetadata() {
const grpc::string kEchoInitialMetadataKey("x-grpc-test-echo-initial");
const grpc::string kInitialMetadataValue("test_initial_metadata_value");
const grpc::string kEchoTrailingBinMetadataKey(
@@ -645,7 +820,10 @@ void InteropClient::DoCustomMetadata() {
request.mutable_payload()->set_body(payload.c_str(), kLargeRequestSize);
Status s = serviceStub_.Get()->UnaryCall(&context, request, &response);
- AssertOkOrPrintErrorStatus(s);
+ if (!AssertStatusOk(s)) {
+ return false;
+ }
+
const auto& server_initial_metadata = context.GetServerInitialMetadata();
auto iter = server_initial_metadata.find(kEchoInitialMetadataKey);
GPR_ASSERT(iter != server_initial_metadata.end());
@@ -675,14 +853,29 @@ void InteropClient::DoCustomMetadata() {
grpc::string payload(kLargeRequestSize, '\0');
request.mutable_payload()->set_body(payload.c_str(), kLargeRequestSize);
StreamingOutputCallResponse response;
- GPR_ASSERT(stream->Write(request));
+
+ if (!stream->Write(request)) {
+ gpr_log(GPR_ERROR, "DoCustomMetadata(): stream->Write() failed");
+ return TransientFailureOrAbort();
+ }
+
stream->WritesDone();
- GPR_ASSERT(stream->Read(&response));
+
+ if (!stream->Read(&response)) {
+ gpr_log(GPR_ERROR, "DoCustomMetadata(): stream->Read() failed");
+ return TransientFailureOrAbort();
+ }
+
GPR_ASSERT(response.payload().body() ==
grpc::string(kLargeResponseSize, '\0'));
+
GPR_ASSERT(!stream->Read(&response));
+
Status s = stream->Finish();
- AssertOkOrPrintErrorStatus(s);
+ if (!AssertStatusOk(s)) {
+ return false;
+ }
+
const auto& server_initial_metadata = context.GetServerInitialMetadata();
auto iter = server_initial_metadata.find(kEchoInitialMetadataKey);
GPR_ASSERT(iter != server_initial_metadata.end());
@@ -695,6 +888,8 @@ void InteropClient::DoCustomMetadata() {
gpr_log(GPR_DEBUG, "Done testing stream with custom metadata");
}
+
+ return true;
}
} // namespace testing
diff --git a/test/cpp/interop/interop_client.h b/test/cpp/interop/interop_client.h
index a3794fd93f..ae75762bb8 100644
--- a/test/cpp/interop/interop_client.h
+++ b/test/cpp/interop/interop_client.h
@@ -51,41 +51,42 @@ using CheckerFn =
class InteropClient {
public:
- explicit InteropClient(std::shared_ptr<Channel> channel);
- explicit InteropClient(
- std::shared_ptr<Channel> channel,
- bool new_stub_every_test_case); // If new_stub_every_test_case is true,
- // a new TestService::Stub object is
- // created for every test case below
+ /// If new_stub_every_test_case is true, a new TestService::Stub object is
+ /// created for every test case
+ /// If do_not_abort_on_transient_failures is true, abort() is not called in
+ /// case of transient failures (like connection failures)
+ explicit InteropClient(std::shared_ptr<Channel> channel,
+ bool new_stub_every_test_case,
+ bool do_not_abort_on_transient_failures);
~InteropClient() {}
void Reset(std::shared_ptr<Channel> channel);
- void DoEmpty();
- void DoLargeUnary();
- void DoLargeCompressedUnary();
- void DoPingPong();
- void DoHalfDuplex();
- void DoRequestStreaming();
- void DoResponseStreaming();
- void DoResponseCompressedStreaming();
- void DoResponseStreamingWithSlowConsumer();
- void DoCancelAfterBegin();
- void DoCancelAfterFirstResponse();
- void DoTimeoutOnSleepingServer();
- void DoEmptyStream();
- void DoStatusWithMessage();
- void DoCustomMetadata();
+ bool DoEmpty();
+ bool DoLargeUnary();
+ bool DoLargeCompressedUnary();
+ bool DoPingPong();
+ bool DoHalfDuplex();
+ bool DoRequestStreaming();
+ bool DoResponseStreaming();
+ bool DoResponseCompressedStreaming();
+ bool DoResponseStreamingWithSlowConsumer();
+ bool DoCancelAfterBegin();
+ bool DoCancelAfterFirstResponse();
+ bool DoTimeoutOnSleepingServer();
+ bool DoEmptyStream();
+ bool DoStatusWithMessage();
+ bool DoCustomMetadata();
// Auth tests.
// username is a string containing the user email
- void DoJwtTokenCreds(const grpc::string& username);
- void DoComputeEngineCreds(const grpc::string& default_service_account,
+ bool DoJwtTokenCreds(const grpc::string& username);
+ bool DoComputeEngineCreds(const grpc::string& default_service_account,
const grpc::string& oauth_scope);
// username the GCE default service account email
- void DoOauth2AuthToken(const grpc::string& username,
+ bool DoOauth2AuthToken(const grpc::string& username,
const grpc::string& oauth_scope);
// username is a string containing the user email
- void DoPerRpcCreds(const grpc::string& json_key);
+ bool DoPerRpcCreds(const grpc::string& json_key);
private:
class ServiceStub {
@@ -105,13 +106,18 @@ class InteropClient {
// Get() call
};
- void PerformLargeUnary(SimpleRequest* request, SimpleResponse* response);
+ bool PerformLargeUnary(SimpleRequest* request, SimpleResponse* response);
/// Run \a custom_check_fn as an additional check.
- void PerformLargeUnary(SimpleRequest* request, SimpleResponse* response,
+ bool PerformLargeUnary(SimpleRequest* request, SimpleResponse* response,
CheckerFn custom_checks_fn);
- void AssertOkOrPrintErrorStatus(const Status& s);
+ bool AssertStatusOk(const Status& s);
+ bool AssertStatusCode(const Status& s, StatusCode expected_code);
+ bool TransientFailureOrAbort();
ServiceStub serviceStub_;
+
+ /// If true, abort() is not called for transient failures
+ bool do_not_abort_on_transient_failures_;
};
} // namespace testing
diff --git a/test/cpp/interop/metrics_client.cc b/test/cpp/interop/metrics_client.cc
index cc304f2e89..c8c2215fab 100644
--- a/test/cpp/interop/metrics_client.cc
+++ b/test/cpp/interop/metrics_client.cc
@@ -42,13 +42,15 @@
#include "test/cpp/util/metrics_server.h"
#include "test/cpp/util/test_config.h"
-DEFINE_string(metrics_server_address, "",
+int kDeadlineSecs = 10;
+
+DEFINE_string(metrics_server_address, "localhost:8081",
"The metrics server addresses in the fomrat <hostname>:<port>");
+DEFINE_int32(deadline_secs, kDeadlineSecs,
+ "The deadline (in seconds) for RCP call");
DEFINE_bool(total_only, false,
"If true, this prints only the total value of all gauges");
-int kDeadlineSecs = 10;
-
using grpc::testing::EmptyMessage;
using grpc::testing::GaugeResponse;
using grpc::testing::MetricsService;
@@ -56,12 +58,13 @@ using grpc::testing::MetricsServiceImpl;
// Prints the values of all Gauges (unless total_only is set to 'true' in which
// case this only prints the sum of all gauge values).
-bool PrintMetrics(std::unique_ptr<MetricsService::Stub> stub, bool total_only) {
+bool PrintMetrics(std::unique_ptr<MetricsService::Stub> stub, bool total_only,
+ int deadline_secs) {
grpc::ClientContext context;
EmptyMessage message;
std::chrono::system_clock::time_point deadline =
- std::chrono::system_clock::now() + std::chrono::seconds(kDeadlineSecs);
+ std::chrono::system_clock::now() + std::chrono::seconds(deadline_secs);
context.set_deadline(deadline);
@@ -108,7 +111,8 @@ int main(int argc, char** argv) {
std::shared_ptr<grpc::Channel> channel(grpc::CreateChannel(
FLAGS_metrics_server_address, grpc::InsecureChannelCredentials()));
- if (!PrintMetrics(MetricsService::NewStub(channel), FLAGS_total_only)) {
+ if (!PrintMetrics(MetricsService::NewStub(channel), FLAGS_total_only,
+ FLAGS_deadline_secs)) {
return 1;
}
diff --git a/test/cpp/interop/stress_interop_client.cc b/test/cpp/interop/stress_interop_client.cc
index f287a5aa3b..aa95682e74 100644
--- a/test/cpp/interop/stress_interop_client.cc
+++ b/test/cpp/interop/stress_interop_client.cc
@@ -84,11 +84,12 @@ StressTestInteropClient::StressTestInteropClient(
int test_id, const grpc::string& server_address,
std::shared_ptr<Channel> channel,
const WeightedRandomTestSelector& test_selector, long test_duration_secs,
- long sleep_duration_ms)
+ long sleep_duration_ms, bool do_not_abort_on_transient_failures)
: test_id_(test_id),
server_address_(server_address),
channel_(channel),
- interop_client_(new InteropClient(channel, false)),
+ interop_client_(new InteropClient(channel, false,
+ do_not_abort_on_transient_failures)),
test_selector_(test_selector),
test_duration_secs_(test_duration_secs),
sleep_duration_ms_(sleep_duration_ms) {}
@@ -126,31 +127,67 @@ void StressTestInteropClient::MainLoop(std::shared_ptr<QpsGauge> qps_gauge) {
}
}
-// TODO(sree): Add all interop tests
-void StressTestInteropClient::RunTest(TestCaseType test_case) {
+bool StressTestInteropClient::RunTest(TestCaseType test_case) {
+ bool is_success = false;
switch (test_case) {
case EMPTY_UNARY: {
- interop_client_->DoEmpty();
+ is_success = interop_client_->DoEmpty();
break;
}
case LARGE_UNARY: {
- interop_client_->DoLargeUnary();
+ is_success = interop_client_->DoLargeUnary();
break;
}
case LARGE_COMPRESSED_UNARY: {
- interop_client_->DoLargeCompressedUnary();
+ is_success = interop_client_->DoLargeCompressedUnary();
break;
}
case CLIENT_STREAMING: {
- interop_client_->DoRequestStreaming();
+ is_success = interop_client_->DoRequestStreaming();
break;
}
case SERVER_STREAMING: {
- interop_client_->DoResponseStreaming();
+ is_success = interop_client_->DoResponseStreaming();
+ break;
+ }
+ case SERVER_COMPRESSED_STREAMING: {
+ is_success = interop_client_->DoResponseCompressedStreaming();
+ break;
+ }
+ case SLOW_CONSUMER: {
+ is_success = interop_client_->DoResponseStreamingWithSlowConsumer();
+ break;
+ }
+ case HALF_DUPLEX: {
+ is_success = interop_client_->DoHalfDuplex();
+ break;
+ }
+ case PING_PONG: {
+ is_success = interop_client_->DoPingPong();
+ break;
+ }
+ case CANCEL_AFTER_BEGIN: {
+ is_success = interop_client_->DoCancelAfterBegin();
+ break;
+ }
+ case CANCEL_AFTER_FIRST_RESPONSE: {
+ is_success = interop_client_->DoCancelAfterFirstResponse();
+ break;
+ }
+ case TIMEOUT_ON_SLEEPING_SERVER: {
+ is_success = interop_client_->DoTimeoutOnSleepingServer();
break;
}
case EMPTY_STREAM: {
- interop_client_->DoEmptyStream();
+ is_success = interop_client_->DoEmptyStream();
+ break;
+ }
+ case STATUS_CODE_AND_MESSAGE: {
+ is_success = interop_client_->DoStatusWithMessage();
+ break;
+ }
+ case CUSTOM_METADATA: {
+ is_success = interop_client_->DoCustomMetadata();
break;
}
default: {
@@ -159,6 +196,8 @@ void StressTestInteropClient::RunTest(TestCaseType test_case) {
break;
}
}
+
+ return is_success;
}
} // namespace testing
diff --git a/test/cpp/interop/stress_interop_client.h b/test/cpp/interop/stress_interop_client.h
index cb0cd98821..aa93b58b4a 100644
--- a/test/cpp/interop/stress_interop_client.h
+++ b/test/cpp/interop/stress_interop_client.h
@@ -49,7 +49,6 @@ namespace testing {
using std::pair;
using std::vector;
-// TODO(sreek): Add more test cases here in future
enum TestCaseType {
UNKNOWN_TEST = -1,
EMPTY_UNARY = 0,
@@ -57,7 +56,16 @@ enum TestCaseType {
LARGE_COMPRESSED_UNARY = 2,
CLIENT_STREAMING = 3,
SERVER_STREAMING = 4,
- EMPTY_STREAM = 5
+ SERVER_COMPRESSED_STREAMING = 5,
+ SLOW_CONSUMER = 6,
+ HALF_DUPLEX = 7,
+ PING_PONG = 8,
+ CANCEL_AFTER_BEGIN = 9,
+ CANCEL_AFTER_FIRST_RESPONSE = 10,
+ TIMEOUT_ON_SLEEPING_SERVER = 11,
+ EMPTY_STREAM = 12,
+ STATUS_CODE_AND_MESSAGE = 13,
+ CUSTOM_METADATA = 14
};
const vector<pair<TestCaseType, grpc::string>> kTestCaseList = {
@@ -66,7 +74,16 @@ const vector<pair<TestCaseType, grpc::string>> kTestCaseList = {
{LARGE_COMPRESSED_UNARY, "large_compressed_unary"},
{CLIENT_STREAMING, "client_streaming"},
{SERVER_STREAMING, "server_streaming"},
- {EMPTY_STREAM, "empty_stream"}};
+ {SERVER_COMPRESSED_STREAMING, "server_compressed_streaming"},
+ {SLOW_CONSUMER, "slow_consumer"},
+ {HALF_DUPLEX, "half_duplex"},
+ {PING_PONG, "ping_pong"},
+ {CANCEL_AFTER_BEGIN, "cancel_after_begin"},
+ {CANCEL_AFTER_FIRST_RESPONSE, "cancel_after_first_response"},
+ {TIMEOUT_ON_SLEEPING_SERVER, "timeout_on_sleeping_server"},
+ {EMPTY_STREAM, "empty_stream"},
+ {STATUS_CODE_AND_MESSAGE, "status_code_and_message"},
+ {CUSTOM_METADATA, "custom_metadata"}};
class WeightedRandomTestSelector {
public:
@@ -87,14 +104,15 @@ class StressTestInteropClient {
StressTestInteropClient(int test_id, const grpc::string& server_address,
std::shared_ptr<Channel> channel,
const WeightedRandomTestSelector& test_selector,
- long test_duration_secs, long sleep_duration_ms);
+ long test_duration_secs, long sleep_duration_ms,
+ bool do_not_abort_on_transient_failures);
// The main function. Use this as the thread entry point.
// qps_gauge is the QpsGauge to record the requests per second metric
void MainLoop(std::shared_ptr<QpsGauge> qps_gauge);
private:
- void RunTest(TestCaseType test_case);
+ bool RunTest(TestCaseType test_case);
int test_id_;
const grpc::string& server_address_;
diff --git a/test/cpp/interop/stress_test.cc b/test/cpp/interop/stress_test.cc
index d9e3fd25c5..7787931900 100644
--- a/test/cpp/interop/stress_test.cc
+++ b/test/cpp/interop/stress_test.cc
@@ -89,7 +89,16 @@ DEFINE_string(test_cases, "",
" large_compressed_unary\n"
" client_streaming\n"
" server_streaming\n"
+ " server_compressed_streaming\n"
+ " slow_consumer\n"
+ " half_duplex\n"
+ " ping_pong\n"
+ " cancel_after_begin\n"
+ " cancel_after_first_response\n"
+ " timeout_on_sleeping_server\n"
" empty_stream\n"
+ " status_code_and_message\n"
+ " custom_metadata\n"
" Example: \"empty_unary:20,large_unary:10,empty_stream:70\"\n"
" The above will execute 'empty_unary', 20% of the time,"
" 'large_unary', 10% of the time and 'empty_stream' the remaining"
@@ -101,6 +110,10 @@ DEFINE_int32(log_level, GPR_LOG_SEVERITY_INFO,
"The choices are: 0 (GPR_LOG_SEVERITY_DEBUG), 1 "
"(GPR_LOG_SEVERITY_INFO) and 2 (GPR_LOG_SEVERITY_ERROR)");
+DEFINE_bool(do_not_abort_on_transient_failures, true,
+ "If set to 'true', abort() is not called in case of transient "
+ "failures like temporary connection failures.");
+
using grpc::testing::kTestCaseList;
using grpc::testing::MetricsService;
using grpc::testing::MetricsServiceImpl;
@@ -189,6 +202,12 @@ void LogParameterInfo(const std::vector<grpc::string>& addresses,
gpr_log(GPR_INFO, "test_cases : %s", FLAGS_test_cases.c_str());
gpr_log(GPR_INFO, "sleep_duration_ms: %d", FLAGS_sleep_duration_ms);
gpr_log(GPR_INFO, "test_duration_secs: %d", FLAGS_test_duration_secs);
+ gpr_log(GPR_INFO, "num_channels_per_server: %d",
+ FLAGS_num_channels_per_server);
+ gpr_log(GPR_INFO, "num_stubs_per_channel: %d", FLAGS_num_stubs_per_channel);
+ gpr_log(GPR_INFO, "log_level: %d", FLAGS_log_level);
+ gpr_log(GPR_INFO, "do_not_abort_on_transient_failures: %s",
+ FLAGS_do_not_abort_on_transient_failures ? "true" : "false");
int num = 0;
for (auto it = addresses.begin(); it != addresses.end(); it++) {
@@ -272,7 +291,7 @@ int main(int argc, char** argv) {
stub_idx++) {
StressTestInteropClient* client = new StressTestInteropClient(
++thread_idx, *it, channel, test_selector, FLAGS_test_duration_secs,
- FLAGS_sleep_duration_ms);
+ FLAGS_sleep_duration_ms, FLAGS_do_not_abort_on_transient_failures);
bool is_already_created = false;
// QpsGauge name
diff --git a/test/distrib/csharp/build_vs2015.bat b/test/distrib/csharp/build_vs2015.bat
index 50485a30f3..5779878e09 100644
--- a/test/distrib/csharp/build_vs2015.bat
+++ b/test/distrib/csharp/build_vs2015.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@rem (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+@rem OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
@rem Convenience wrapper that runs specified gRPC target using msbuild
@rem Usage: build.bat TARGET_NAME
diff --git a/third_party/objective_c/Cronet/cronet_c_for_grpc.h b/third_party/objective_c/Cronet/cronet_c_for_grpc.h
new file mode 100644
index 0000000000..15a511aebd
--- /dev/null
+++ b/third_party/objective_c/Cronet/cronet_c_for_grpc.h
@@ -0,0 +1,202 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_CRONET_IOS_CRONET_C_FOR_GRPC_H_
+#define COMPONENTS_CRONET_IOS_CRONET_C_FOR_GRPC_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stddef.h>
+
+/* Cronet Engine API. */
+
+/* Opaque object representing Cronet Engine. Created and configured outside
+ * of this API to facilitate sharing with other components */
+typedef struct cronet_engine { void* obj; } cronet_engine;
+
+void cronet_engine_add_quic_hint(cronet_engine* engine,
+ const char* host,
+ int port,
+ int alternate_port);
+
+/* Cronet Bidirectional Stream API */
+
+/* Opaque object representing Cronet Bidirectional Stream. */
+typedef struct cronet_bidirectional_stream {
+ void* obj;
+ void* annotation;
+} cronet_bidirectional_stream;
+
+/* A single request or response header element. */
+typedef struct cronet_bidirectional_stream_header {
+ const char* key;
+ const char* value;
+} cronet_bidirectional_stream_header;
+
+/* Array of request or response headers or trailers. */
+typedef struct cronet_bidirectional_stream_header_array {
+ size_t count;
+ size_t capacity;
+ cronet_bidirectional_stream_header* headers;
+} cronet_bidirectional_stream_header_array;
+
+/* Set of callbacks used to receive callbacks from bidirectional stream. */
+typedef struct cronet_bidirectional_stream_callback {
+ /* Invoked when request headers are sent. Indicates that stream has initiated
+ * the request. Consumer may call cronet_bidirectional_stream_write() to start
+ * writing data.
+ */
+ void (*on_request_headers_sent)(cronet_bidirectional_stream* stream);
+
+ /* Invoked when initial response headers are received.
+ * Consumer must call cronet_bidirectional_stream_read() to start reading.
+ * Consumer may call cronet_bidirectional_stream_write() to start writing or
+ * close the stream. Contents of |headers| is valid for duration of the call.
+ */
+ void (*on_response_headers_received)(
+ cronet_bidirectional_stream* stream,
+ const cronet_bidirectional_stream_header_array* headers,
+ const char* negotiated_protocol);
+
+ /* Invoked when data is read into the buffer passed to
+ * cronet_bidirectional_stream_read(). Only part of the buffer may be
+ * populated. To continue reading, call cronet_bidirectional_stream_read().
+ * It may be invoked after on_response_trailers_received()}, if there was
+ * pending read data before trailers were received.
+ *
+ * If count is 0, it means the remote side has signaled that it will send no
+ * more data; future calls to cronet_bidirectional_stream_read() will result
+ * in the on_data_read() callback or on_succeded() callback if
+ * cronet_bidirectional_stream_write() was invoked with end_of_stream set to
+ * true.
+ */
+ void (*on_read_completed)(cronet_bidirectional_stream* stream,
+ char* data,
+ int count);
+
+ /**
+ * Invoked when all data passed to cronet_bidirectional_stream_write() is
+ * sent.
+ * To continue writing, call cronet_bidirectional_stream_write().
+ */
+ void (*on_write_completed)(cronet_bidirectional_stream* stream,
+ const char* data);
+
+ /* Invoked when trailers are received before closing the stream. Only invoked
+ * when server sends trailers, which it may not. May be invoked while there is
+ * read data remaining in local buffer. Contents of |trailers| is valid for
+ * duration of the call.
+ */
+ void (*on_response_trailers_received)(
+ cronet_bidirectional_stream* stream,
+ const cronet_bidirectional_stream_header_array* trailers);
+
+ /**
+ * Invoked when there is no data to be read or written and the stream is
+ * closed successfully remotely and locally. Once invoked, no further callback
+ * methods will be invoked.
+ */
+ void (*on_succeded)(cronet_bidirectional_stream* stream);
+
+ /**
+ * Invoked if the stream failed for any reason after
+ * cronet_bidirectional_stream_start(). HTTP/2 error codes are
+ * mapped to chrome net error codes. Once invoked, no further callback methods
+ * will be invoked.
+ */
+ void (*on_failed)(cronet_bidirectional_stream* stream, int net_error);
+
+ /**
+ * Invoked if the stream was canceled via
+ * cronet_bidirectional_stream_cancel(). Once invoked, no further callback
+ * methods will be invoked.
+ */
+ void (*on_canceled)(cronet_bidirectional_stream* stream);
+} cronet_bidirectional_stream_callback;
+
+/* Create a new stream object that uses |engine| and |callback|. All stream
+ * tasks are performed asynchronously on the |engine| network thread. |callback|
+ * methods are invoked synchronously on the |engine| network thread, but must
+ * not run tasks on the current thread to prevent blocking networking operations
+ * and causing exceptions during shutdown. The |annotation| is stored in
+ * bidirectional stream for arbitrary use by application.
+ *
+ * Returned |cronet_bidirectional_stream*| is owned by the caller, and must be
+ * destroyed using |cronet_bidirectional_stream_destroy|.
+ *
+ * Both |calback| and |engine| must remain valid until stream is destroyed.
+ */
+cronet_bidirectional_stream* cronet_bidirectional_stream_create(
+ cronet_engine* engine,
+ void* annotation,
+ cronet_bidirectional_stream_callback* callback);
+
+/* TBD: The following methods return int. Should it be a custom type? */
+
+/* Destroy stream object. Destroy could be called from any thread, including
+ * network thread, but is posted, so |stream| is valid until calling task is
+ * complete.
+ */
+int cronet_bidirectional_stream_destroy(cronet_bidirectional_stream* stream);
+
+/* Start the stream by sending request to |url| using |method| and |headers|. If
+ * |end_of_stream| is true, then no data is expected to be written.
+ */
+int cronet_bidirectional_stream_start(
+ cronet_bidirectional_stream* stream,
+ const char* url,
+ int priority,
+ const char* method,
+ const cronet_bidirectional_stream_header_array* headers,
+ bool end_of_stream);
+
+/* Read response data into |buffer| of |capacity| length. Must only be called at
+ * most once in response to each invocation of the
+ * on_response_headers_received() and on_read_completed() methods of the
+ * cronet_bidirectional_stream_callback.
+ * Each call will result in an invocation of one of the callback's
+ * on_read_completed method if data is read, its on_succeeded() method if
+ * the stream is closed, or its on_failed() method if there's an error.
+ */
+int cronet_bidirectional_stream_read(cronet_bidirectional_stream* stream,
+ char* buffer,
+ int capacity);
+
+/* Read response data into |buffer| of |capacity| length. Must only be called at
+ * most once in response to each invocation of the
+ * on_response_headers_received() and on_read_completed() methods of the
+ * cronet_bidirectional_stream_callback.
+ * Each call will result in an invocation of one of the callback's
+ * on_read_completed method if data is read, its on_succeeded() method if
+ * the stream is closed, or its on_failed() method if there's an error.
+ */
+int cronet_bidirectional_stream_write(cronet_bidirectional_stream* stream,
+ const char* buffer,
+ int count,
+ bool end_of_stream);
+
+/* Cancels the stream. Can be called at any time after
+ * cronet_bidirectional_stream_start(). The on_canceled() method of
+ * cronet_bidirectional_stream_callback will be invoked when cancelation
+ * is complete and no further callback methods will be invoked. If the
+ * stream has completed or has not started, calling
+ * cronet_bidirectional_stream_cancel() has no effect and on_canceled() will not
+ * be invoked. At most one callback method may be invoked after
+ * cronet_bidirectional_stream_cancel() has completed.
+ */
+int cronet_bidirectional_stream_cancel(cronet_bidirectional_stream* stream);
+
+/* Returns true if the |stream| was successfully started and is now done
+ * (succeeded, canceled, or failed).
+ * Returns false if the |stream| stream is not yet started or is in progress.
+ */
+bool cronet_bidirectional_stream_is_done(cronet_bidirectional_stream* stream);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // COMPONENTS_CRONET_IOS_CRONET_C_FOR_GRPC_H_
diff --git a/third_party/protobuf b/third_party/protobuf
-Subproject d5fb408ddc281ffcadeb08699e65bb694656d0b
+Subproject a1938b2aa9ca86ce7ce50c27ff9737c1008d2a0
diff --git a/tools/buildgen/plugins/make_fuzzer_tests.py b/tools/buildgen/plugins/make_fuzzer_tests.py
index 9d0006973a..7c6fd53570 100644
--- a/tools/buildgen/plugins/make_fuzzer_tests.py
+++ b/tools/buildgen/plugins/make_fuzzer_tests.py
@@ -50,6 +50,7 @@ def mako_plugin(dictionary):
'name': new_target['name'],
'args': [fn],
'exclude_configs': [],
+ 'uses_polling': False,
'platforms': ['linux'],
'ci_platforms': ['linux'],
'flaky': False,
diff --git a/tools/distrib/check_copyright.py b/tools/distrib/check_copyright.py
index 68411c631d..4577ab3d11 100755
--- a/tools/distrib/check_copyright.py
+++ b/tools/distrib/check_copyright.py
@@ -71,6 +71,7 @@ with open('LICENSE') as f:
# that given a line of license text, returns what should
# be in the file
LICENSE_PREFIX = {
+ '.bat': r'@rem\s*',
'.c': r'\s*(?://|\*)\s*',
'.cc': r'\s*(?://|\*)\s*',
'.h': r'\s*(?://|\*)\s*',
diff --git a/tools/distrib/check_include_guards.py b/tools/distrib/check_include_guards.py
index 8207f5cce0..ef770b30b4 100755
--- a/tools/distrib/check_include_guards.py
+++ b/tools/distrib/check_include_guards.py
@@ -56,7 +56,7 @@ class GuardValidator(object):
def __init__(self):
self.ifndef_re = re.compile(r'#ifndef ([A-Z][A-Z_1-9]*)')
self.define_re = re.compile(r'#define ([A-Z][A-Z_1-9]*)')
- self.endif_c_re = re.compile(r'#endif /\* ([A-Z][A-Z_1-9]*) \*/')
+ self.endif_c_re = re.compile(r'#endif /\* ([A-Z][A-Z_1-9]*) (?:\\ *\n *)?\*/')
self.endif_cpp_re = re.compile(r'#endif // ([A-Z][A-Z_1-9]*)')
self.failed = False
@@ -98,6 +98,7 @@ class GuardValidator(object):
match = self.ifndef_re.search(fcontents)
if not match:
print 'something drastically wrong with: %s' % fpath
+ return False # failed
if match.lastindex is None:
# No ifndef. Request manual addition with hints
self.fail(fpath, match.re, match.string, '', '', False)
@@ -132,7 +133,7 @@ class GuardValidator(object):
# Is there a properly commented #endif?
endif_re = self.endif_cpp_re if cpp_header else self.endif_c_re
flines = fcontents.rstrip().splitlines()
- match = endif_re.search(flines[-1])
+ match = endif_re.search('\n'.join(flines[-2:]))
if not match:
# No endif. Check if we have the last line as just '#endif' and if so
# replace it with a properly commented one.
diff --git a/tools/distrib/python/grpcio_tools/protoc_lib_deps.py b/tools/distrib/python/grpcio_tools/protoc_lib_deps.py
index 9f31172170..135ac5cbb3 100644
--- a/tools/distrib/python/grpcio_tools/protoc_lib_deps.py
+++ b/tools/distrib/python/grpcio_tools/protoc_lib_deps.py
@@ -29,4 +29,4 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# AUTO-GENERATED BY make_grpcio_tools.py!
-CC_FILES=['google/protobuf/compiler/zip_writer.cc', 'google/protobuf/compiler/subprocess.cc', 'google/protobuf/compiler/ruby/ruby_generator.cc', 'google/protobuf/compiler/python/python_generator.cc', 'google/protobuf/compiler/plugin.pb.cc', 'google/protobuf/compiler/plugin.cc', 'google/protobuf/compiler/objectivec/objectivec_primitive_field.cc', 'google/protobuf/compiler/objectivec/objectivec_oneof.cc', 'google/protobuf/compiler/objectivec/objectivec_message_field.cc', 'google/protobuf/compiler/objectivec/objectivec_message.cc', 'google/protobuf/compiler/objectivec/objectivec_map_field.cc', 'google/protobuf/compiler/objectivec/objectivec_helpers.cc', 'google/protobuf/compiler/objectivec/objectivec_generator.cc', 'google/protobuf/compiler/objectivec/objectivec_file.cc', 'google/protobuf/compiler/objectivec/objectivec_field.cc', 'google/protobuf/compiler/objectivec/objectivec_extension.cc', 'google/protobuf/compiler/objectivec/objectivec_enum_field.cc', 'google/protobuf/compiler/objectivec/objectivec_enum.cc', 'google/protobuf/compiler/js/js_generator.cc', 'google/protobuf/compiler/javanano/javanano_primitive_field.cc', 'google/protobuf/compiler/javanano/javanano_message_field.cc', 'google/protobuf/compiler/javanano/javanano_message.cc', 'google/protobuf/compiler/javanano/javanano_map_field.cc', 'google/protobuf/compiler/javanano/javanano_helpers.cc', 'google/protobuf/compiler/javanano/javanano_generator.cc', 'google/protobuf/compiler/javanano/javanano_file.cc', 'google/protobuf/compiler/javanano/javanano_field.cc', 'google/protobuf/compiler/javanano/javanano_extension.cc', 'google/protobuf/compiler/javanano/javanano_enum_field.cc', 'google/protobuf/compiler/javanano/javanano_enum.cc', 'google/protobuf/compiler/java/java_string_field_lite.cc', 'google/protobuf/compiler/java/java_string_field.cc', 'google/protobuf/compiler/java/java_shared_code_generator.cc', 'google/protobuf/compiler/java/java_service.cc', 'google/protobuf/compiler/java/java_primitive_field_lite.cc', 'google/protobuf/compiler/java/java_primitive_field.cc', 'google/protobuf/compiler/java/java_name_resolver.cc', 'google/protobuf/compiler/java/java_message_lite.cc', 'google/protobuf/compiler/java/java_message_field_lite.cc', 'google/protobuf/compiler/java/java_message_field.cc', 'google/protobuf/compiler/java/java_message_builder_lite.cc', 'google/protobuf/compiler/java/java_message_builder.cc', 'google/protobuf/compiler/java/java_message.cc', 'google/protobuf/compiler/java/java_map_field_lite.cc', 'google/protobuf/compiler/java/java_map_field.cc', 'google/protobuf/compiler/java/java_lazy_message_field_lite.cc', 'google/protobuf/compiler/java/java_lazy_message_field.cc', 'google/protobuf/compiler/java/java_helpers.cc', 'google/protobuf/compiler/java/java_generator_factory.cc', 'google/protobuf/compiler/java/java_generator.cc', 'google/protobuf/compiler/java/java_file.cc', 'google/protobuf/compiler/java/java_field.cc', 'google/protobuf/compiler/java/java_extension.cc', 'google/protobuf/compiler/java/java_enum_lite.cc', 'google/protobuf/compiler/java/java_enum_field_lite.cc', 'google/protobuf/compiler/java/java_enum_field.cc', 'google/protobuf/compiler/java/java_enum.cc', 'google/protobuf/compiler/java/java_doc_comment.cc', 'google/protobuf/compiler/java/java_context.cc', 'google/protobuf/compiler/csharp/csharp_wrapper_field.cc', 'google/protobuf/compiler/csharp/csharp_source_generator_base.cc', 'google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc', 'google/protobuf/compiler/csharp/csharp_repeated_message_field.cc', 'google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc', 'google/protobuf/compiler/csharp/csharp_reflection_class.cc', 'google/protobuf/compiler/csharp/csharp_primitive_field.cc', 'google/protobuf/compiler/csharp/csharp_message_field.cc', 'google/protobuf/compiler/csharp/csharp_message.cc', 'google/protobuf/compiler/csharp/csharp_map_field.cc', 'google/protobuf/compiler/csharp/csharp_helpers.cc', 'google/protobuf/compiler/csharp/csharp_generator.cc', 'google/protobuf/compiler/csharp/csharp_field_base.cc', 'google/protobuf/compiler/csharp/csharp_enum_field.cc', 'google/protobuf/compiler/csharp/csharp_enum.cc', 'google/protobuf/compiler/csharp/csharp_doc_comment.cc', 'google/protobuf/compiler/cpp/cpp_string_field.cc', 'google/protobuf/compiler/cpp/cpp_service.cc', 'google/protobuf/compiler/cpp/cpp_primitive_field.cc', 'google/protobuf/compiler/cpp/cpp_message_field.cc', 'google/protobuf/compiler/cpp/cpp_message.cc', 'google/protobuf/compiler/cpp/cpp_map_field.cc', 'google/protobuf/compiler/cpp/cpp_helpers.cc', 'google/protobuf/compiler/cpp/cpp_generator.cc', 'google/protobuf/compiler/cpp/cpp_file.cc', 'google/protobuf/compiler/cpp/cpp_field.cc', 'google/protobuf/compiler/cpp/cpp_extension.cc', 'google/protobuf/compiler/cpp/cpp_enum_field.cc', 'google/protobuf/compiler/cpp/cpp_enum.cc', 'google/protobuf/compiler/command_line_interface.cc', 'google/protobuf/compiler/code_generator.cc', 'google/protobuf/wrappers.pb.cc', 'google/protobuf/wire_format.cc', 'google/protobuf/util/type_resolver_util.cc', 'google/protobuf/util/time_util.cc', 'google/protobuf/util/message_differencer.cc', 'google/protobuf/util/json_util.cc', 'google/protobuf/util/internal/utility.cc', 'google/protobuf/util/internal/type_info_test_helper.cc', 'google/protobuf/util/internal/type_info.cc', 'google/protobuf/util/internal/protostream_objectwriter.cc', 'google/protobuf/util/internal/protostream_objectsource.cc', 'google/protobuf/util/internal/proto_writer.cc', 'google/protobuf/util/internal/object_writer.cc', 'google/protobuf/util/internal/json_stream_parser.cc', 'google/protobuf/util/internal/json_objectwriter.cc', 'google/protobuf/util/internal/json_escaping.cc', 'google/protobuf/util/internal/field_mask_utility.cc', 'google/protobuf/util/internal/error_listener.cc', 'google/protobuf/util/internal/default_value_objectwriter.cc', 'google/protobuf/util/internal/datapiece.cc', 'google/protobuf/util/field_mask_util.cc', 'google/protobuf/util/field_comparator.cc', 'google/protobuf/unknown_field_set.cc', 'google/protobuf/type.pb.cc', 'google/protobuf/timestamp.pb.cc', 'google/protobuf/text_format.cc', 'google/protobuf/stubs/substitute.cc', 'google/protobuf/stubs/mathlimits.cc', 'google/protobuf/struct.pb.cc', 'google/protobuf/source_context.pb.cc', 'google/protobuf/service.cc', 'google/protobuf/reflection_ops.cc', 'google/protobuf/message.cc', 'google/protobuf/map_field.cc', 'google/protobuf/io/zero_copy_stream_impl.cc', 'google/protobuf/io/tokenizer.cc', 'google/protobuf/io/strtod.cc', 'google/protobuf/io/printer.cc', 'google/protobuf/io/gzip_stream.cc', 'google/protobuf/generated_message_reflection.cc', 'google/protobuf/field_mask.pb.cc', 'google/protobuf/extension_set_heavy.cc', 'google/protobuf/empty.pb.cc', 'google/protobuf/dynamic_message.cc', 'google/protobuf/duration.pb.cc', 'google/protobuf/descriptor_database.cc', 'google/protobuf/descriptor.pb.cc', 'google/protobuf/descriptor.cc', 'google/protobuf/compiler/parser.cc', 'google/protobuf/compiler/importer.cc', 'google/protobuf/api.pb.cc', 'google/protobuf/any.pb.cc', 'google/protobuf/any.cc', 'google/protobuf/wire_format_lite.cc', 'google/protobuf/stubs/time.cc', 'google/protobuf/stubs/strutil.cc', 'google/protobuf/stubs/structurally_valid.cc', 'google/protobuf/stubs/stringprintf.cc', 'google/protobuf/stubs/stringpiece.cc', 'google/protobuf/stubs/statusor.cc', 'google/protobuf/stubs/status.cc', 'google/protobuf/stubs/once.cc', 'google/protobuf/stubs/int128.cc', 'google/protobuf/stubs/common.cc', 'google/protobuf/stubs/bytestream.cc', 'google/protobuf/stubs/atomicops_internals_x86_msvc.cc', 'google/protobuf/stubs/atomicops_internals_x86_gcc.cc', 'google/protobuf/repeated_field.cc', 'google/protobuf/message_lite.cc', 'google/protobuf/io/zero_copy_stream_impl_lite.cc', 'google/protobuf/io/zero_copy_stream.cc', 'google/protobuf/io/coded_stream.cc', 'google/protobuf/generated_message_util.cc', 'google/protobuf/extension_set.cc', 'google/protobuf/arenastring.cc', 'google/protobuf/arena.cc']
+CC_FILES=['google/protobuf/compiler/zip_writer.cc', 'google/protobuf/compiler/subprocess.cc', 'google/protobuf/compiler/ruby/ruby_generator.cc', 'google/protobuf/compiler/python/python_generator.cc', 'google/protobuf/compiler/plugin.pb.cc', 'google/protobuf/compiler/plugin.cc', 'google/protobuf/compiler/objectivec/objectivec_primitive_field.cc', 'google/protobuf/compiler/objectivec/objectivec_oneof.cc', 'google/protobuf/compiler/objectivec/objectivec_message_field.cc', 'google/protobuf/compiler/objectivec/objectivec_message.cc', 'google/protobuf/compiler/objectivec/objectivec_map_field.cc', 'google/protobuf/compiler/objectivec/objectivec_helpers.cc', 'google/protobuf/compiler/objectivec/objectivec_generator.cc', 'google/protobuf/compiler/objectivec/objectivec_file.cc', 'google/protobuf/compiler/objectivec/objectivec_field.cc', 'google/protobuf/compiler/objectivec/objectivec_extension.cc', 'google/protobuf/compiler/objectivec/objectivec_enum_field.cc', 'google/protobuf/compiler/objectivec/objectivec_enum.cc', 'google/protobuf/compiler/js/js_generator.cc', 'google/protobuf/compiler/javanano/javanano_primitive_field.cc', 'google/protobuf/compiler/javanano/javanano_message_field.cc', 'google/protobuf/compiler/javanano/javanano_message.cc', 'google/protobuf/compiler/javanano/javanano_map_field.cc', 'google/protobuf/compiler/javanano/javanano_helpers.cc', 'google/protobuf/compiler/javanano/javanano_generator.cc', 'google/protobuf/compiler/javanano/javanano_file.cc', 'google/protobuf/compiler/javanano/javanano_field.cc', 'google/protobuf/compiler/javanano/javanano_extension.cc', 'google/protobuf/compiler/javanano/javanano_enum_field.cc', 'google/protobuf/compiler/javanano/javanano_enum.cc', 'google/protobuf/compiler/java/java_string_field_lite.cc', 'google/protobuf/compiler/java/java_string_field.cc', 'google/protobuf/compiler/java/java_shared_code_generator.cc', 'google/protobuf/compiler/java/java_service.cc', 'google/protobuf/compiler/java/java_primitive_field_lite.cc', 'google/protobuf/compiler/java/java_primitive_field.cc', 'google/protobuf/compiler/java/java_name_resolver.cc', 'google/protobuf/compiler/java/java_message_lite.cc', 'google/protobuf/compiler/java/java_message_field_lite.cc', 'google/protobuf/compiler/java/java_message_field.cc', 'google/protobuf/compiler/java/java_message_builder_lite.cc', 'google/protobuf/compiler/java/java_message_builder.cc', 'google/protobuf/compiler/java/java_message.cc', 'google/protobuf/compiler/java/java_map_field_lite.cc', 'google/protobuf/compiler/java/java_map_field.cc', 'google/protobuf/compiler/java/java_lazy_message_field_lite.cc', 'google/protobuf/compiler/java/java_lazy_message_field.cc', 'google/protobuf/compiler/java/java_helpers.cc', 'google/protobuf/compiler/java/java_generator_factory.cc', 'google/protobuf/compiler/java/java_generator.cc', 'google/protobuf/compiler/java/java_file.cc', 'google/protobuf/compiler/java/java_field.cc', 'google/protobuf/compiler/java/java_extension_lite.cc', 'google/protobuf/compiler/java/java_extension.cc', 'google/protobuf/compiler/java/java_enum_lite.cc', 'google/protobuf/compiler/java/java_enum_field_lite.cc', 'google/protobuf/compiler/java/java_enum_field.cc', 'google/protobuf/compiler/java/java_enum.cc', 'google/protobuf/compiler/java/java_doc_comment.cc', 'google/protobuf/compiler/java/java_context.cc', 'google/protobuf/compiler/csharp/csharp_wrapper_field.cc', 'google/protobuf/compiler/csharp/csharp_source_generator_base.cc', 'google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc', 'google/protobuf/compiler/csharp/csharp_repeated_message_field.cc', 'google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc', 'google/protobuf/compiler/csharp/csharp_reflection_class.cc', 'google/protobuf/compiler/csharp/csharp_primitive_field.cc', 'google/protobuf/compiler/csharp/csharp_message_field.cc', 'google/protobuf/compiler/csharp/csharp_message.cc', 'google/protobuf/compiler/csharp/csharp_map_field.cc', 'google/protobuf/compiler/csharp/csharp_helpers.cc', 'google/protobuf/compiler/csharp/csharp_generator.cc', 'google/protobuf/compiler/csharp/csharp_field_base.cc', 'google/protobuf/compiler/csharp/csharp_enum_field.cc', 'google/protobuf/compiler/csharp/csharp_enum.cc', 'google/protobuf/compiler/csharp/csharp_doc_comment.cc', 'google/protobuf/compiler/cpp/cpp_string_field.cc', 'google/protobuf/compiler/cpp/cpp_service.cc', 'google/protobuf/compiler/cpp/cpp_primitive_field.cc', 'google/protobuf/compiler/cpp/cpp_message_field.cc', 'google/protobuf/compiler/cpp/cpp_message.cc', 'google/protobuf/compiler/cpp/cpp_map_field.cc', 'google/protobuf/compiler/cpp/cpp_helpers.cc', 'google/protobuf/compiler/cpp/cpp_generator.cc', 'google/protobuf/compiler/cpp/cpp_file.cc', 'google/protobuf/compiler/cpp/cpp_field.cc', 'google/protobuf/compiler/cpp/cpp_extension.cc', 'google/protobuf/compiler/cpp/cpp_enum_field.cc', 'google/protobuf/compiler/cpp/cpp_enum.cc', 'google/protobuf/compiler/command_line_interface.cc', 'google/protobuf/compiler/code_generator.cc', 'google/protobuf/wrappers.pb.cc', 'google/protobuf/wire_format.cc', 'google/protobuf/util/type_resolver_util.cc', 'google/protobuf/util/time_util.cc', 'google/protobuf/util/message_differencer.cc', 'google/protobuf/util/json_util.cc', 'google/protobuf/util/internal/utility.cc', 'google/protobuf/util/internal/type_info_test_helper.cc', 'google/protobuf/util/internal/type_info.cc', 'google/protobuf/util/internal/protostream_objectwriter.cc', 'google/protobuf/util/internal/protostream_objectsource.cc', 'google/protobuf/util/internal/proto_writer.cc', 'google/protobuf/util/internal/object_writer.cc', 'google/protobuf/util/internal/json_stream_parser.cc', 'google/protobuf/util/internal/json_objectwriter.cc', 'google/protobuf/util/internal/json_escaping.cc', 'google/protobuf/util/internal/field_mask_utility.cc', 'google/protobuf/util/internal/error_listener.cc', 'google/protobuf/util/internal/default_value_objectwriter.cc', 'google/protobuf/util/internal/datapiece.cc', 'google/protobuf/util/field_mask_util.cc', 'google/protobuf/util/field_comparator.cc', 'google/protobuf/unknown_field_set.cc', 'google/protobuf/type.pb.cc', 'google/protobuf/timestamp.pb.cc', 'google/protobuf/text_format.cc', 'google/protobuf/stubs/substitute.cc', 'google/protobuf/stubs/mathlimits.cc', 'google/protobuf/struct.pb.cc', 'google/protobuf/source_context.pb.cc', 'google/protobuf/service.cc', 'google/protobuf/reflection_ops.cc', 'google/protobuf/message.cc', 'google/protobuf/map_field.cc', 'google/protobuf/io/zero_copy_stream_impl.cc', 'google/protobuf/io/tokenizer.cc', 'google/protobuf/io/strtod.cc', 'google/protobuf/io/printer.cc', 'google/protobuf/io/gzip_stream.cc', 'google/protobuf/generated_message_reflection.cc', 'google/protobuf/field_mask.pb.cc', 'google/protobuf/extension_set_heavy.cc', 'google/protobuf/empty.pb.cc', 'google/protobuf/dynamic_message.cc', 'google/protobuf/duration.pb.cc', 'google/protobuf/descriptor_database.cc', 'google/protobuf/descriptor.pb.cc', 'google/protobuf/descriptor.cc', 'google/protobuf/compiler/parser.cc', 'google/protobuf/compiler/importer.cc', 'google/protobuf/api.pb.cc', 'google/protobuf/any.pb.cc', 'google/protobuf/any.cc', 'google/protobuf/wire_format_lite.cc', 'google/protobuf/stubs/time.cc', 'google/protobuf/stubs/strutil.cc', 'google/protobuf/stubs/structurally_valid.cc', 'google/protobuf/stubs/stringprintf.cc', 'google/protobuf/stubs/stringpiece.cc', 'google/protobuf/stubs/statusor.cc', 'google/protobuf/stubs/status.cc', 'google/protobuf/stubs/once.cc', 'google/protobuf/stubs/int128.cc', 'google/protobuf/stubs/common.cc', 'google/protobuf/stubs/bytestream.cc', 'google/protobuf/stubs/atomicops_internals_x86_msvc.cc', 'google/protobuf/stubs/atomicops_internals_x86_gcc.cc', 'google/protobuf/repeated_field.cc', 'google/protobuf/message_lite.cc', 'google/protobuf/io/zero_copy_stream_impl_lite.cc', 'google/protobuf/io/zero_copy_stream.cc', 'google/protobuf/io/coded_stream.cc', 'google/protobuf/generated_message_util.cc', 'google/protobuf/extension_set.cc', 'google/protobuf/arenastring.cc', 'google/protobuf/arena.cc']
diff --git a/tools/doxygen/Doxyfile.c++ b/tools/doxygen/Doxyfile.c++
index 2a319db979..798d68b018 100644
--- a/tools/doxygen/Doxyfile.c++
+++ b/tools/doxygen/Doxyfile.c++
@@ -777,6 +777,8 @@ include/grpc++/impl/rpc_method.h \
include/grpc++/impl/rpc_service_method.h \
include/grpc++/impl/serialization_traits.h \
include/grpc++/impl/server_builder_option.h \
+include/grpc++/impl/server_builder_plugin.h \
+include/grpc++/impl/server_initializer.h \
include/grpc++/impl/service_type.h \
include/grpc++/impl/sync.h \
include/grpc++/impl/sync_cxx11.h \
diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal
index 5fdfafbf3e..ce1d6ac3c1 100644
--- a/tools/doxygen/Doxyfile.c++.internal
+++ b/tools/doxygen/Doxyfile.c++.internal
@@ -777,6 +777,8 @@ include/grpc++/impl/rpc_method.h \
include/grpc++/impl/rpc_service_method.h \
include/grpc++/impl/serialization_traits.h \
include/grpc++/impl/server_builder_option.h \
+include/grpc++/impl/server_builder_plugin.h \
+include/grpc++/impl/server_initializer.h \
include/grpc++/impl/service_type.h \
include/grpc++/impl/sync.h \
include/grpc++/impl/sync_cxx11.h \
diff --git a/tools/doxygen/Doxyfile.core b/tools/doxygen/Doxyfile.core
index eed84252cc..aabca410da 100644
--- a/tools/doxygen/Doxyfile.core
+++ b/tools/doxygen/Doxyfile.core
@@ -786,6 +786,7 @@ include/grpc/impl/codegen/sync_generic.h \
include/grpc/impl/codegen/sync_posix.h \
include/grpc/impl/codegen/sync_win32.h \
include/grpc/impl/codegen/time.h \
+include/grpc/grpc_cronet.h \
include/grpc/grpc_security.h \
include/grpc/grpc_security_constants.h \
include/grpc/census.h \
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index 870138a672..386ef7d427 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -786,6 +786,7 @@ include/grpc/impl/codegen/sync_generic.h \
include/grpc/impl/codegen/sync_posix.h \
include/grpc/impl/codegen/sync_win32.h \
include/grpc/impl/codegen/time.h \
+include/grpc/grpc_cronet.h \
include/grpc/grpc_security.h \
include/grpc/grpc_security_constants.h \
include/grpc/census.h \
@@ -807,6 +808,7 @@ 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_poll_posix.h \
src/core/lib/iomgr/ev_posix.h \
src/core/lib/iomgr/exec_ctx.h \
src/core/lib/iomgr/executor.h \
@@ -922,6 +924,7 @@ src/core/ext/client_config/subchannel.h \
src/core/ext/client_config/subchannel_call_holder.h \
src/core/ext/client_config/subchannel_index.h \
src/core/ext/client_config/uri_parser.h \
+third_party/objective_c/Cronet/cronet_c_for_grpc.h \
src/core/ext/lb_policy/grpclb/load_balancer_api.h \
src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h \
third_party/nanopb/pb.h \
@@ -953,6 +956,7 @@ 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_poll_posix.c \
src/core/lib/iomgr/ev_posix.c \
src/core/lib/iomgr/exec_ctx.c \
src/core/lib/iomgr/executor.c \
@@ -1088,6 +1092,9 @@ src/core/ext/client_config/subchannel_index.c \
src/core/ext/client_config/uri_parser.c \
src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \
src/core/ext/transport/chttp2/client/insecure/channel_create.c \
+src/core/ext/transport/cronet/client/secure/cronet_channel_create.c \
+src/core/ext/transport/cronet/transport/cronet_api_dummy.c \
+src/core/ext/transport/cronet/transport/cronet_transport.c \
src/core/ext/lb_policy/grpclb/load_balancer_api.c \
src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c \
third_party/nanopb/pb_common.c \
diff --git a/tools/gce/create_linux_performance_worker.sh b/tools/gce/create_linux_performance_worker.sh
index 96d5558d9a..c9a0ffa4e1 100755
--- a/tools/gce/create_linux_performance_worker.sh
+++ b/tools/gce/create_linux_performance_worker.sh
@@ -50,7 +50,7 @@ gcloud compute instances create $INSTANCE_NAME \
--machine-type $MACHINE_TYPE \
--image ubuntu-15-10 \
--boot-disk-size 300 \
- --scope https://www.googleapis.com/auth/bigquery
+ --scopes https://www.googleapis.com/auth/bigquery
echo 'Created GCE instance, waiting 60 seconds for it to come online.'
sleep 60
diff --git a/tools/gce/linux_performance_worker_init.sh b/tools/gce/linux_performance_worker_init.sh
index 96e8a1353c..dc4784262e 100755
--- a/tools/gce/linux_performance_worker_init.sh
+++ b/tools/gce/linux_performance_worker_init.sh
@@ -77,6 +77,9 @@ sudo apt-get install -y \
# perftools
sudo apt-get install -y google-perftools libgoogle-perftools-dev
+# netperf
+sudo apt-get install -y netperf
+
# C++ dependencies
sudo apt-get install -y libgflags-dev libgtest-dev libc++-dev clang
diff --git a/tools/gcp/stress_test/run_client.py b/tools/gcp/stress_test/run_client.py
index 2004bf6db4..51ada6820d 100755
--- a/tools/gcp/stress_test/run_client.py
+++ b/tools/gcp/stress_test/run_client.py
@@ -133,12 +133,15 @@ def run_client():
details = 'Logfile: %s' % logfile_name
logfile = open(logfile_name, 'w')
+ metrics_cmd = metrics_client_cmd + [x
+ for x in metrics_client_args_str.split()]
+ stress_cmd = stress_client_cmd + [x for x in args_str.split()]
+
+ details = '%s, Metrics command: %s, Stress client command: %s' % (
+ details, str(metrics_cmd), str(stress_cmd))
# Update status that the test is starting (in the status table)
bq_helper.insert_summary_row(EventType.STARTING, details)
- metrics_cmd = metrics_client_cmd + [x for x in metrics_client_args_str.split()]
- stress_cmd = stress_client_cmd + [x for x in args_str.split()]
-
print 'Launching process %s ...' % stress_cmd
stress_p = subprocess.Popen(args=stress_cmd,
stdout=logfile,
@@ -147,6 +150,7 @@ def run_client():
qps_history = [1, 1, 1] # Maintain the last 3 qps readings
qps_history_idx = 0 # Index into the qps_history list
+ is_running_status_written = False
is_error = False
while True:
# Check if stress_client is still running. If so, collect metrics and upload
@@ -165,6 +169,10 @@ def run_client():
print details
break
+ if not is_running_status_written:
+ bq_helper.insert_summary_row(EventType.RUNNING, '')
+ is_running_status_written = True
+
# Stress client still running. Get metrics
qps = _get_qps(metrics_cmd)
qps_recorded_at = datetime.datetime.now().isoformat()
diff --git a/tools/gcp/stress_test/run_server.py b/tools/gcp/stress_test/run_server.py
index a666ae2900..8f47e42ef3 100755
--- a/tools/gcp/stress_test/run_server.py
+++ b/tools/gcp/stress_test/run_server.py
@@ -106,16 +106,22 @@ def run_server():
logfile = open(logfile_name, 'w')
details = 'Logfile: %s' % logfile_name
+ stress_cmd = stress_server_cmd + [x for x in args_str.split()]
+
+ details = '%s, Stress server command: %s' % (details, str(stress_cmd))
# Update status that the test is starting (in the status table)
bq_helper.insert_summary_row(EventType.STARTING, details)
- stress_cmd = stress_server_cmd + [x for x in args_str.split()]
-
print 'Launching process %s ...' % stress_cmd
stress_p = subprocess.Popen(args=stress_cmd,
stdout=logfile,
stderr=subprocess.STDOUT)
+ # Update the status to running if subprocess.Popen launched the server
+ if stress_p.poll() is None:
+ bq_helper.insert_summary_row(EventType.RUNNING, '')
+
+ # Wait for the server process to terminate
returncode = stress_p.wait()
if will_run_forever == '1' or returncode != 0:
diff --git a/tools/gcp/stress_test/stress_test_utils.py b/tools/gcp/stress_test/stress_test_utils.py
index 19d59c0df1..b821fc8fcc 100755
--- a/tools/gcp/stress_test/stress_test_utils.py
+++ b/tools/gcp/stress_test/stress_test_utils.py
@@ -46,6 +46,7 @@ import big_query_utils as bq_utils
class EventType:
STARTING = 'STARTING'
+ RUNNING = 'RUNNING'
SUCCESS = 'SUCCESS'
FAILURE = 'FAILURE'
@@ -195,11 +196,11 @@ class BigQueryHelper:
('image_type', 'STRING', 'Client or Server?'),
('pod_name', 'STRING', 'GKE pod hosting this image'),
('event_date', 'STRING', 'The date of this event'),
- ('event_type', 'STRING', 'STARTED/SUCCESS/FAILURE'),
+ ('event_type', 'STRING', 'STARTING/RUNNING/SUCCESS/FAILURE'),
('details', 'STRING', 'Any other relevant details')
]
- desc = ('The table that contains START/SUCCESS/FAILURE events for '
- ' the stress test clients and servers')
+ desc = ('The table that contains STARTING/RUNNING/SUCCESS/FAILURE events '
+ 'for the stress test clients and servers')
return bq_utils.create_table(self.bq, self.project_id, self.dataset_id,
self.summary_table_id, summary_table_schema,
desc)
diff --git a/src/ruby/ext/grpc/rb_signal.h b/tools/gource/create_auth_context.h
index 07e49c0a8b..387407bfec 100644
--- a/src/ruby/ext/grpc/rb_signal.h
+++ b/tools/gource/create_auth_context.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -30,10 +30,13 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
+#include <memory>
-#ifndef GRPC_RB_SIGNAL_H_
-#define GRPC_RB_SIGNAL_H_
+#include <grpc++/security/auth_context.h>
+#include <grpc/grpc.h>
-void Init_grpc_signals();
+namespace grpc {
-#endif /* GRPC_RB_SIGNAL_H_ */
+std::shared_ptr<const AuthContext> CreateAuthContext(grpc_call* call);
+
+} // namespace grpc
diff --git a/src/ruby/lib/grpc/signals.rb b/tools/gource/gen-all-logs.sh
index 2ab85c8bb1..85352c514e 100644..100755
--- a/src/ruby/lib/grpc/signals.rb
+++ b/tools/gource/gen-all-logs.sh
@@ -1,3 +1,4 @@
+#!/bin/bash
# Copyright 2016, Google Inc.
# All rights reserved.
#
@@ -27,43 +28,20 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-require 'thread'
-require_relative 'grpc'
+set -ex
-# GRPC contains the General RPC module.
-module GRPC
- # Signals contains gRPC functions related to signal handling
- module Signals
- @interpreter_exiting = false
- @signal_handlers = []
- @handlers_mutex = Mutex.new
+outdir=`pwd`
- def register_handler(&handler)
- @handlers_mutex.synchronize do
- @signal_handlers.push(handler)
- handler.call if @exit_signal_received
- end
- # Returns a function to remove the handler
- lambda do
- @handlers_mutex.synchronize { @signal_handlers.delete(handler) }
- end
- end
- module_function :register_handler
-
- def wait_for_signals
- t = Thread.new do
- sleep 0.1 until GRPC::Core.signal_received? || @interpreter_exiting
- unless @interpreter_exiting
- @handlers_mutex.synchronize do
- @signal_handlers.each(&:call)
- end
- end
- end
- at_exit do
- @interpreter_exiting = true
- t.join
- end
- end
- module_function :wait_for_signals
- end
-end
+tmpdir=`mktemp -d`
+mkdir -p $tmpdir/logs
+repos="grpc grpc-common grpc-go grpc-java grpc.github.io grpc-tools homebrew-grpc grpc-docker-library"
+for repo in $repos
+do
+ cd $tmpdir
+ git clone https://github.com/grpc/$repo.git
+ cd $repo
+ gource --output-custom-log $tmpdir/logs/$repo
+ sed -i .backup "s,\|/,\|/$repo/,g" $tmpdir/logs/$repo
+done
+rm $tmpdir/logs/*.backup
+cat $tmpdir/logs/* | sort -n > $outdir/all-logs.txt
diff --git a/tools/gource/gource.sh b/tools/gource/gource.sh
index 0199609e9b..b3dad5d7c7 100755
--- a/tools/gource/gource.sh
+++ b/tools/gource/gource.sh
@@ -28,5 +28,13 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-gource --multi-sampling -c 4 -s 0.1 --max-file-lag 0.05 --max-files 0 -e 0.05 --hide filenames,dirnames $*
-
+gource \
+ --multi-sampling \
+ -s 0.1 \
+ --max-file-lag 0.05 \
+ --max-files 0 \
+ -e 0.01 \
+ --hide filenames,dirnames \
+ --disable-auto-rotate \
+ --file-filter '/grpc/doc/ref' \
+ $*
diff --git a/tools/gource/make-video.sh b/tools/gource/make-video.sh
new file mode 100755
index 0000000000..02d79df81b
--- /dev/null
+++ b/tools/gource/make-video.sh
@@ -0,0 +1,47 @@
+#!/bin/bash
+# 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.
+
+set -ex
+
+dst=$1
+shift
+$(dirname $0)/gource.sh \
+ --disable-progress \
+ --stop-at-end \
+ --output-ppm-stream - \
+ $@ | \
+ffmpeg \
+ -y \
+ -r 60 \
+ -f image2pipe \
+ -vcodec ppm \
+ -i - \
+ -vcodec libx264 \
+ $dst
diff --git a/tools/jenkins/run_performance.sh b/tools/jenkins/run_performance.sh
index 13a332751b..99b920f6a0 100755
--- a/tools/jenkins/run_performance.sh
+++ b/tools/jenkins/run_performance.sh
@@ -34,4 +34,4 @@ set -ex
# Enter the gRPC repo root
cd $(dirname $0)/../..
-tools/run_tests/run_performance_tests.py -l c++ node ruby csharp python
+tools/run_tests/run_performance_tests.py -l c++ node ruby csharp python --netperf --category smoketest
diff --git a/tools/run_tests/build_artifact_csharp.bat b/tools/run_tests/build_artifact_csharp.bat
index 33dc8c25ae..24c8d485f9 100644
--- a/tools/run_tests/build_artifact_csharp.bat
+++ b/tools/run_tests/build_artifact_csharp.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@rem (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+@rem OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
@rem Builds C# artifacts on Windows
@call vsprojects\build_vs2013.bat %* || goto :error
diff --git a/tools/run_tests/build_package_node.sh b/tools/run_tests/build_package_node.sh
index 6bc9466b63..4646072a54 100755
--- a/tools/run_tests/build_package_node.sh
+++ b/tools/run_tests/build_package_node.sh
@@ -55,7 +55,7 @@ npm pack
cp grpc-tools-*.tgz $artifacts/
tools_version=$(npm list | grep -oP '(?<=grpc-tools@)\S+')
-output_dir=$artifacts/grpc-precompiled-binaries/node/grpc-tools/$tools_version
+output_dir=$artifacts/grpc-precompiled-binaries/node/grpc-tools/v$tools_version
mkdir -p $output_dir
for arch in {x86,x64}; do
diff --git a/tools/run_tests/build_python.sh b/tools/run_tests/build_python.sh
index 594c20b14c..4cc6881ef5 100755
--- a/tools/run_tests/build_python.sh
+++ b/tools/run_tests/build_python.sh
@@ -55,3 +55,7 @@ $ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/setup.py build
$ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/setup.py build_py
$ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/setup.py build_ext --inplace
$ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/setup.py gather --test
+
+# Build the health checker
+$ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/src/python/grpcio_health_checking/setup.py build
+$ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/src/python/grpcio_health_checking/setup.py build_py
diff --git a/tools/run_tests/configs.json b/tools/run_tests/configs.json
index 325e9aa929..bcc4118d2f 100644
--- a/tools/run_tests/configs.json
+++ b/tools/run_tests/configs.json
@@ -56,6 +56,9 @@
},
{
"config": "ubsan",
+ "environ": {
+ "UBSAN_OPTIONS": "print_stacktrace=1"
+ },
"timeout_multiplier": 1.5
},
{
diff --git a/tools/run_tests/dockerize/docker_run_tests.sh b/tools/run_tests/dockerize/docker_run_tests.sh
index 2fc66c21f5..8c6143d24f 100755
--- a/tools/run_tests/dockerize/docker_run_tests.sh
+++ b/tools/run_tests/dockerize/docker_run_tests.sh
@@ -35,6 +35,7 @@ set -e
export CONFIG=$config
export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
+export PATH=$PATH:/usr/bin/llvm-symbolizer
# Ensure that programs depending on current-user-ownership of cache directories
# are satisfied (it's being mounted from outside the image).
diff --git a/tools/run_tests/jobset.py b/tools/run_tests/jobset.py
index e9675fb785..d3259e724d 100755
--- a/tools/run_tests/jobset.py
+++ b/tools/run_tests/jobset.py
@@ -344,6 +344,7 @@ class Jobset(object):
self._add_env = add_env
self.resultset = {}
self._remaining = None
+ self._start_time = time.time()
def set_remaining(self, remaining):
self._remaining = remaining
@@ -413,6 +414,11 @@ class Jobset(object):
if dead: return
if (not self._travis):
rstr = '' if self._remaining is None else '%d queued, ' % self._remaining
+ if self._remaining is not None and self._completed > 0:
+ now = time.time()
+ sofar = now - self._start_time
+ remaining = sofar / self._completed * (self._remaining + len(self._running))
+ rstr = 'ETA %.1f sec; %s' % (remaining, rstr)
message('WAITING', '%s%d jobs running, %d complete, %d failed' % (
rstr, len(self._running), self._completed, self._failures))
if platform_string() == 'windows':
@@ -457,7 +463,7 @@ def tag_remaining(xs):
staging = []
for x in xs:
staging.append(x)
- if len(staging) > 1000:
+ if len(staging) > 5000:
yield (staging.pop(0), None)
n = len(staging)
for i, x in enumerate(staging):
diff --git a/tools/run_tests/performance/bq_upload_result.py b/tools/run_tests/performance/bq_upload_result.py
index ebd28f7591..fbccf3bdca 100755
--- a/tools/run_tests/performance/bq_upload_result.py
+++ b/tools/run_tests/performance/bq_upload_result.py
@@ -48,20 +48,47 @@ import big_query_utils
_PROJECT_ID='grpc-testing'
-def _upload_scenario_result_to_bigquery(dataset_id, table_id, result_file):
+def _upload_netperf_latency_csv_to_bigquery(dataset_id, table_id, result_file):
+ with open(result_file, 'r') as f:
+ (col1, col2, col3) = f.read().split(',')
+ latency50 = float(col1.strip()) * 1000
+ latency90 = float(col2.strip()) * 1000
+ latency99 = float(col3.strip()) * 1000
+
+ scenario_result = {
+ 'scenario': {
+ 'name': 'netperf_tcp_rr'
+ },
+ 'summary': {
+ 'latency50': latency50,
+ 'latency90': latency90,
+ 'latency99': latency99
+ }
+ }
+
bq = big_query_utils.create_big_query()
_create_results_table(bq, dataset_id, table_id)
+ if not _insert_result(bq, dataset_id, table_id, scenario_result, flatten=False):
+ print 'Error uploading result to bigquery.'
+ sys.exit(1)
+
+
+def _upload_scenario_result_to_bigquery(dataset_id, table_id, result_file):
with open(result_file, 'r') as f:
scenario_result = json.loads(f.read())
+ bq = big_query_utils.create_big_query()
+ _create_results_table(bq, dataset_id, table_id)
+
if not _insert_result(bq, dataset_id, table_id, scenario_result):
print 'Error uploading result to bigquery.'
sys.exit(1)
-def _insert_result(bq, dataset_id, table_id, scenario_result):
- _flatten_result_inplace(scenario_result)
+def _insert_result(bq, dataset_id, table_id, scenario_result, flatten=True):
+ if flatten:
+ _flatten_result_inplace(scenario_result)
_populate_metadata_inplace(scenario_result)
row = big_query_utils.make_row(str(uuid.uuid4()), scenario_result)
return big_query_utils.insert_rows(bq,
@@ -127,9 +154,17 @@ argp.add_argument('--bq_result_table', required=True, default=None, type=str,
help='Bigquery "dataset.table" to upload results to.')
argp.add_argument('--file_to_upload', default='scenario_result.json', type=str,
help='Report file to upload.')
+argp.add_argument('--file_format',
+ choices=['scenario_result','netperf_latency_csv'],
+ default='scenario_result',
+ help='Format of the file to upload.')
args = argp.parse_args()
dataset_id, table_id = args.bq_result_table.split('.', 2)
-_upload_scenario_result_to_bigquery(dataset_id, table_id, args.file_to_upload)
+
+if args.file_format == 'netperf_latency_csv':
+ _upload_netperf_latency_csv_to_bigquery(dataset_id, table_id, args.file_to_upload)
+else:
+ _upload_scenario_result_to_bigquery(dataset_id, table_id, args.file_to_upload)
print 'Successfully uploaded %s to BigQuery.\n' % args.file_to_upload
diff --git a/tools/run_tests/performance/build_performance.sh b/tools/run_tests/performance/build_performance.sh
index 8cfe1c48e9..352c679757 100755
--- a/tools/run_tests/performance/build_performance.sh
+++ b/tools/run_tests/performance/build_performance.sh
@@ -33,8 +33,6 @@ set -ex
cd $(dirname $0)/../../..
-#TODO(jtattermusch): add support for more languages
-
CONFIG=${CONFIG:-opt}
# build C++ qps worker & driver always - we need at least the driver to
@@ -53,6 +51,9 @@ do
(cd ../grpc-java/ &&
./gradlew -PskipCodegen=true :grpc-benchmarks:installDist)
;;
+ "go")
+ tools/run_tests/performance/build_performance_go.sh
+ ;;
*)
tools/run_tests/run_tests.py -l $language -c $CONFIG --build_only -j 8
;;
diff --git a/tools/run_tests/performance/build_performance_go.sh b/tools/run_tests/performance/build_performance_go.sh
new file mode 100755
index 0000000000..3719cc5986
--- /dev/null
+++ b/tools/run_tests/performance/build_performance_go.sh
@@ -0,0 +1,44 @@
+#!/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)/../../..
+
+export GOPATH=$(pwd)/../gopath
+
+# Get grpc-go and the dependencies but get rid of the upstream/master version
+go get google.golang.org/grpc
+rm -rf "${GOPATH}/src/google.golang.org/grpc"
+
+# Get the revision of grpc-go we want to test
+git clone --recursive ../grpc-go ${GOPATH}/src/google.golang.org/grpc
+
+(cd ${GOPATH}/src/google.golang.org/grpc/benchmark/worker && go install)
diff --git a/tools/run_tests/performance/kill_workers.sh b/tools/run_tests/performance/kill_workers.sh
index 7a8763424d..f306f0c991 100755
--- a/tools/run_tests/performance/kill_workers.sh
+++ b/tools/run_tests/performance/kill_workers.sh
@@ -52,3 +52,6 @@ ps -C python -o pid=,cmd= | grep 'qps_worker.py' | awk '{print $1}' | xargs kill
# Java
jps | grep LoadWorker | awk '{print $1}' | xargs kill -9
+
+# Go
+killall -9 worker || true
diff --git a/tools/run_tests/performance/remote_host_prepare.sh b/tools/run_tests/performance/remote_host_prepare.sh
index d7f539a74e..f81102bbdc 100755
--- a/tools/run_tests/performance/remote_host_prepare.sh
+++ b/tools/run_tests/performance/remote_host_prepare.sh
@@ -39,7 +39,7 @@ ssh "${USER_AT_HOST}" "rm -rf ~/performance_workspace && mkdir -p ~/performance_
# mess with the results, be rough and reboot the slave here
# and wait for it to come back online.
# could also kill jenkins.
-ssh "${USER_AT_HOST}" "killall -9 qps_worker mono node ruby || true"
+ssh "${USER_AT_HOST}" "killall -9 qps_worker mono node ruby worker || true"
# push the current sources to the slave and unpack it.
scp ../grpc.tar "${USER_AT_HOST}:~/performance_workspace"
diff --git a/tools/run_tests/performance/run_netperf.sh b/tools/run_tests/performance/run_netperf.sh
new file mode 100755
index 0000000000..298edbe0c3
--- /dev/null
+++ b/tools/run_tests/performance/run_netperf.sh
@@ -0,0 +1,45 @@
+#!/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)/../../..
+
+netperf >netperf_latency.txt -P 0 -t TCP_RR -H "$NETPERF_SERVER_HOST" -- -r 1,1 -o P50_LATENCY,P90_LATENCY,P99_LATENCY
+
+cat netperf_latency.txt
+
+if [ "$BQ_RESULT_TABLE" != "" ]
+then
+ tools/run_tests/performance/bq_upload_result.py \
+ --file_to_upload=netperf_latency.txt \
+ --file_format=netperf_latency_csv \
+ --bq_result_table="$BQ_RESULT_TABLE"
+fi
diff --git a/tools/run_tests/performance/run_worker_go.sh b/tools/run_tests/performance/run_worker_go.sh
new file mode 100755
index 0000000000..6b1242a419
--- /dev/null
+++ b/tools/run_tests/performance/run_worker_go.sh
@@ -0,0 +1,37 @@
+#!/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)/../../..
+
+export GOPATH=$(pwd)/../gopath
+
+${GOPATH}/bin/worker $@
diff --git a/tools/run_tests/performance/scenario_config.py b/tools/run_tests/performance/scenario_config.py
index 8f76d0a02e..77b158f27e 100644
--- a/tools/run_tests/performance/scenario_config.py
+++ b/tools/run_tests/performance/scenario_config.py
@@ -69,6 +69,10 @@ DEEP=100
# wide is the number of client channels in multi-channel tests (1 otherwise)
WIDE=64
+# For most synchronous clients, DEEP*WIDE threads will be created.
+SYNC_DEEP=10
+SYNC_WIDE=8
+
def _get_secargs(is_secure):
if is_secure:
@@ -81,6 +85,7 @@ def remove_nonproto_fields(scenario):
"""Remove special-purpose that contains some extra info about the scenario
but don't belong to the ScenarioConfig protobuf message"""
scenario.pop('CATEGORIES', None)
+ scenario.pop('CLIENT_LANGUAGE', None)
scenario.pop('SERVER_LANGUAGE', None)
return scenario
@@ -89,7 +94,8 @@ def _ping_pong_scenario(name, rpc_type,
client_type, server_type,
secure=True,
use_generic_payload=False,
- use_unconstrained_client=False,
+ unconstrained_client=None,
+ client_language=None,
server_language=None,
server_core_limit=0,
async_server_threads=0,
@@ -130,18 +136,28 @@ def _ping_pong_scenario(name, rpc_type,
# For proto payload, only the client should get the config.
scenario['client_config']['payload_config'] = EMPTY_PROTO_PAYLOAD
- if use_unconstrained_client:
+ if unconstrained_client:
+ if unconstrained_client == 'async':
+ deep = DEEP
+ wide = WIDE
+ elif unconstrained_client == 'sync':
+ deep = SYNC_DEEP
+ wide = SYNC_WIDE
+ else:
+ raise Exception('Illegal value of unconstrained_client option.')
+
scenario['num_clients'] = 0 # use as many client as available.
- # TODO(jtattermusch): for SYNC_CLIENT, this will create 100*64 threads
- # and that's probably too much (at least for wrapped languages).
- scenario['client_config']['outstanding_rpcs_per_channel'] = DEEP
- scenario['client_config']['client_channels'] = WIDE
+ scenario['client_config']['outstanding_rpcs_per_channel'] = deep
+ scenario['client_config']['client_channels'] = wide
scenario['client_config']['async_client_threads'] = 0
else:
scenario['client_config']['outstanding_rpcs_per_channel'] = 1
scenario['client_config']['client_channels'] = 1
scenario['client_config']['async_client_threads'] = 1
+ if client_language:
+ # the CLIENT_LANGUAGE field is recognized by run_performance_tests.py
+ scenario['CLIENT_LANGUAGE'] = client_language
if server_language:
# the SERVER_LANGUAGE field is recognized by run_performance_tests.py
scenario['SERVER_LANGUAGE'] = server_language
@@ -196,27 +212,27 @@ class CXXLanguage:
yield _ping_pong_scenario(
'cpp_protobuf_async_unary_qps_unconstrained_%s' % secstr, rpc_type='UNARY',
client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
- use_unconstrained_client=True,
+ unconstrained_client='async',
secure=secure,
categories=smoketest_categories)
yield _ping_pong_scenario(
'cpp_protobuf_async_streaming_qps_unconstrained_%s' % secstr, rpc_type='STREAMING',
client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
- use_unconstrained_client=True,
+ unconstrained_client='async',
secure=secure)
yield _ping_pong_scenario(
'cpp_generic_async_streaming_qps_unconstrained_%s' % secstr, rpc_type='STREAMING',
client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
- use_unconstrained_client=True, use_generic_payload=True,
+ unconstrained_client='async', use_generic_payload=True,
secure=secure,
categories=smoketest_categories)
yield _ping_pong_scenario(
'cpp_generic_async_streaming_qps_one_server_core_%s' % secstr, rpc_type='STREAMING',
client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
- use_unconstrained_client=True, use_generic_payload=True,
+ unconstrained_client='async', use_generic_payload=True,
server_core_limit=1, async_server_threads=1,
secure=secure)
@@ -258,13 +274,13 @@ class CSharpLanguage:
yield _ping_pong_scenario(
'csharp_protobuf_async_unary_qps_unconstrained', rpc_type='UNARY',
client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
- use_unconstrained_client=True,
+ unconstrained_client='async',
categories=[SMOKETEST])
yield _ping_pong_scenario(
'csharp_protobuf_async_streaming_qps_unconstrained', rpc_type='STREAMING',
client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
- use_unconstrained_client=True)
+ unconstrained_client='async')
yield _ping_pong_scenario(
'csharp_to_cpp_protobuf_sync_unary_ping_pong', rpc_type='UNARY',
@@ -277,6 +293,22 @@ class CSharpLanguage:
client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
server_language='c++', server_core_limit=1, async_server_threads=1)
+ yield _ping_pong_scenario(
+ 'csharp_to_cpp_protobuf_async_unary_qps_unconstrained', rpc_type='UNARY',
+ client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
+ unconstrained_client='async', server_language='c++')
+
+ yield _ping_pong_scenario(
+ 'csharp_to_cpp_protobuf_sync_to_async_unary_qps_unconstrained', rpc_type='UNARY',
+ client_type='SYNC_CLIENT', server_type='ASYNC_SERVER',
+ unconstrained_client='sync', server_language='c++')
+
+ yield _ping_pong_scenario(
+ 'cpp_to_csharp_protobuf_async_unary_qps_unconstrained', rpc_type='UNARY',
+ client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
+ unconstrained_client='async', client_language='c++')
+
+
def __str__(self):
return 'csharp'
@@ -313,14 +345,14 @@ class NodeLanguage:
yield _ping_pong_scenario(
'node_protobuf_async_unary_qps_unconstrained', rpc_type='UNARY',
client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
- use_unconstrained_client=True,
+ unconstrained_client='async',
categories=[SMOKETEST])
# TODO(jtattermusch): make this scenario work
#yield _ping_pong_scenario(
# 'node_protobuf_async_streaming_qps_unconstrained', rpc_type='STREAMING',
# client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
- # use_unconstrained_client=True)
+ # unconstrained_client='async')
# TODO(jtattermusch): make this scenario work
#yield _ping_pong_scenario(
@@ -349,39 +381,35 @@ class PythonLanguage:
return 500
def scenarios(self):
- # TODO(jtattermusch): this scenario reports QPS 0.0
- yield _ping_pong_scenario(
- 'python_generic_async_streaming_ping_pong', rpc_type='STREAMING',
- client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
- use_generic_payload=True,
- categories=[SMOKETEST])
-
- # TODO(jtattermusch): make this scenario work
+ # TODO(issue #6522): Empty streaming requests does not work for python
#yield _ping_pong_scenario(
- # 'python_protobuf_async_streaming_ping_pong', rpc_type='STREAMING',
- # client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER')
+ # 'python_generic_async_streaming_ping_pong', rpc_type='STREAMING',
+ # client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
+ # use_generic_payload=True,
+ # categories=[SMOKETEST])
- # TODO(jtattermusch): make this scenario work
- #yield _ping_pong_scenario(
- # 'python_protobuf_async_unary_ping_pong', rpc_type='UNARY',
- # client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER')
+ yield _ping_pong_scenario(
+ 'python_protobuf_async_streaming_ping_pong', rpc_type='STREAMING',
+ client_type='ASYNC_CLIENT', server_type='SYNC_SERVER')
+
+ yield _ping_pong_scenario(
+ 'python_protobuf_async_unary_ping_pong', rpc_type='UNARY',
+ client_type='ASYNC_CLIENT', server_type='SYNC_SERVER')
yield _ping_pong_scenario(
'python_protobuf_sync_unary_ping_pong', rpc_type='UNARY',
client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
categories=[SMOKETEST])
- # TODO(jtattermusch): make this scenario work
- #yield _ping_pong_scenario(
- # 'python_protobuf_sync_unary_qps_unconstrained', rpc_type='UNARY',
- # client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
- # use_unconstrained_client=True)
+ yield _ping_pong_scenario(
+ 'python_protobuf_sync_unary_qps_unconstrained', rpc_type='UNARY',
+ client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+ unconstrained_client='sync')
- # TODO(jtattermusch): make this scenario work
- #yield _ping_pong_scenario(
- # 'python_protobuf_async_streaming_qps_unconstrained', rpc_type='STREAMING',
- # client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
- # use_unconstrained_client=True)
+ yield _ping_pong_scenario(
+ 'python_protobuf_async_streaming_qps_unconstrained', rpc_type='STREAMING',
+ client_type='ASYNC_CLIENT', server_type='SYNC_SERVER',
+ unconstrained_client='async')
yield _ping_pong_scenario(
'python_to_cpp_protobuf_sync_unary_ping_pong', rpc_type='UNARY',
@@ -389,11 +417,10 @@ class PythonLanguage:
server_language='c++', server_core_limit=1, async_server_threads=1,
categories=[SMOKETEST])
- # TODO(jtattermusch): make this scenario work
- #yield _ping_pong_scenario(
- # 'python_to_cpp_protobuf_sync_streaming_ping_pong', rpc_type='STREAMING',
- # client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
- # server_language='c++', server_core_limit=1, async_server_threads=1)
+ yield _ping_pong_scenario(
+ 'python_to_cpp_protobuf_sync_streaming_ping_pong', rpc_type='STREAMING',
+ client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+ server_language='c++', server_core_limit=1, async_server_threads=1)
def __str__(self):
return 'python'
@@ -421,17 +448,15 @@ class RubyLanguage:
client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
categories=[SMOKETEST])
- # TODO: scenario reports QPS of 0.0
- #yield _ping_pong_scenario(
- # 'ruby_protobuf_sync_unary_qps_unconstrained', rpc_type='UNARY',
- # client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
- # use_unconstrained_client=True)
+ yield _ping_pong_scenario(
+ 'ruby_protobuf_sync_unary_qps_unconstrained', rpc_type='UNARY',
+ client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+ unconstrained_client='sync')
- # TODO: scenario reports QPS of 0.0
- #yield _ping_pong_scenario(
- # 'ruby_protobuf_sync_streaming_qps_unconstrained', rpc_type='STREAMING',
- # client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
- # use_unconstrained_client=True)
+ yield _ping_pong_scenario(
+ 'ruby_protobuf_sync_streaming_qps_unconstrained', rpc_type='STREAMING',
+ client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+ unconstrained_client='sync')
yield _ping_pong_scenario(
'ruby_to_cpp_protobuf_sync_unary_ping_pong', rpc_type='UNARY',
@@ -493,26 +518,26 @@ class JavaLanguage:
yield _ping_pong_scenario(
'java_protobuf_async_unary_qps_unconstrained_%s' % secstr, rpc_type='UNARY',
client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
- use_unconstrained_client=True,
+ unconstrained_client='async',
secure=secure, warmup_seconds=JAVA_WARMUP_SECONDS,
categories=smoketest_categories)
yield _ping_pong_scenario(
'java_protobuf_async_streaming_qps_unconstrained_%s' % secstr, rpc_type='STREAMING',
client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
- use_unconstrained_client=True,
+ unconstrained_client='async',
secure=secure, warmup_seconds=JAVA_WARMUP_SECONDS)
yield _ping_pong_scenario(
'java_generic_async_streaming_qps_unconstrained_%s' % secstr, rpc_type='STREAMING',
client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
- use_unconstrained_client=True, use_generic_payload=True,
+ unconstrained_client='async', use_generic_payload=True,
secure=secure, warmup_seconds=JAVA_WARMUP_SECONDS)
yield _ping_pong_scenario(
'java_generic_async_streaming_qps_one_server_core_%s' % secstr, rpc_type='STREAMING',
client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
- use_unconstrained_client=True, use_generic_payload=True,
+ unconstrained_client='async', use_generic_payload=True,
async_server_threads=1,
secure=secure, warmup_seconds=JAVA_WARMUP_SECONDS)
@@ -522,6 +547,75 @@ class JavaLanguage:
return 'java'
+class GoLanguage:
+
+ def __init__(self):
+ pass
+ self.safename = str(self)
+
+ def worker_cmdline(self):
+ return ['tools/run_tests/performance/run_worker_go.sh']
+
+ def worker_port_offset(self):
+ return 600
+
+ def scenarios(self):
+ for secure in [True, False]:
+ secstr = 'secure' if secure else 'insecure'
+ smoketest_categories = [SMOKETEST] if secure else None
+
+ # ASYNC_GENERIC_SERVER for Go actually uses a sync streaming server,
+ # but that's mostly because of lack of better name of the enum value.
+ yield _ping_pong_scenario(
+ 'go_generic_sync_streaming_ping_pong_%s' % secstr, rpc_type='STREAMING',
+ client_type='SYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
+ use_generic_payload=True, async_server_threads=1,
+ secure=secure,
+ categories=smoketest_categories)
+
+ yield _ping_pong_scenario(
+ 'go_protobuf_sync_streaming_ping_pong_%s' % secstr, rpc_type='STREAMING',
+ client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+ async_server_threads=1,
+ secure=secure)
+
+ yield _ping_pong_scenario(
+ 'go_protobuf_sync_unary_ping_pong_%s' % secstr, rpc_type='UNARY',
+ client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+ async_server_threads=1,
+ secure=secure,
+ categories=smoketest_categories)
+
+ # unconstrained_client='async' is intended (client uses goroutines)
+ yield _ping_pong_scenario(
+ 'go_protobuf_sync_unary_qps_unconstrained_%s' % secstr, rpc_type='UNARY',
+ client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+ unconstrained_client='async',
+ secure=secure,
+ categories=smoketest_categories)
+
+ # unconstrained_client='async' is intended (client uses goroutines)
+ yield _ping_pong_scenario(
+ 'go_protobuf_sync_streaming_qps_unconstrained_%s' % secstr, rpc_type='STREAMING',
+ client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+ unconstrained_client='async',
+ secure=secure)
+
+ # unconstrained_client='async' is intended (client uses goroutines)
+ # ASYNC_GENERIC_SERVER for Go actually uses a sync streaming server,
+ # but that's mostly because of lack of better name of the enum value.
+ yield _ping_pong_scenario(
+ 'go_generic_sync_streaming_qps_unconstrained_%s' % secstr, rpc_type='STREAMING',
+ client_type='SYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
+ unconstrained_client='async', use_generic_payload=True,
+ secure=secure)
+
+ # TODO(jtattermusch): add scenarios go vs C++
+
+ def __str__(self):
+ return 'go'
+
+
LANGUAGES = {
'c++' : CXXLanguage(),
'csharp' : CSharpLanguage(),
@@ -529,4 +623,5 @@ LANGUAGES = {
'ruby' : RubyLanguage(),
'java' : JavaLanguage(),
'python' : PythonLanguage(),
+ 'go' : GoLanguage(),
}
diff --git a/tools/run_tests/post_tests_csharp.bat b/tools/run_tests/post_tests_csharp.bat
index 7851b9137a..0d49a00b2a 100644
--- a/tools/run_tests/post_tests_csharp.bat
+++ b/tools/run_tests/post_tests_csharp.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@rem (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+@rem OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
@rem Runs C# tests for given assembly from command line. The Grpc.sln solution needs to be built before running the tests.
setlocal
diff --git a/tools/run_tests/pre_build_c.bat b/tools/run_tests/pre_build_c.bat
index f0449f3c42..e4ab69384c 100644
--- a/tools/run_tests/pre_build_c.bat
+++ b/tools/run_tests/pre_build_c.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@rem (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+@rem OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
@rem Performs nuget restore step for C/C++.
setlocal
diff --git a/tools/run_tests/pre_build_csharp.bat b/tools/run_tests/pre_build_csharp.bat
index 853a8f4325..e7131d504c 100644
--- a/tools/run_tests/pre_build_csharp.bat
+++ b/tools/run_tests/pre_build_csharp.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@rem (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+@rem OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
@rem Performs nuget restore step for C#.
setlocal
diff --git a/tools/run_tests/run_interop_tests.py b/tools/run_tests/run_interop_tests.py
index e813473421..edbdf05e2a 100755
--- a/tools/run_tests/run_interop_tests.py
+++ b/tools/run_tests/run_interop_tests.py
@@ -82,10 +82,10 @@ class CXXLanguage:
return {}
def unimplemented_test_cases(self):
- return _SKIP_ADVANCED + _SKIP_COMPRESSION
+ return _SKIP_ADVANCED
def unimplemented_test_cases_server(self):
- return _SKIP_ADVANCED + _SKIP_COMPRESSION
+ return _SKIP_ADVANCED
def __str__(self):
return 'c++'
diff --git a/tools/run_tests/run_performance_tests.py b/tools/run_tests/run_performance_tests.py
index b1f5889e54..181d62bf4a 100755
--- a/tools/run_tests/run_performance_tests.py
+++ b/tools/run_tests/run_performance_tests.py
@@ -131,6 +131,36 @@ def create_quit_jobspec(workers, remote_host=None):
verbose_success=True)
+def create_netperf_jobspec(server_host='localhost', client_host=None,
+ bq_result_table=None):
+ """Runs netperf benchmark."""
+ cmd = 'NETPERF_SERVER_HOST="%s" ' % server_host
+ if bq_result_table:
+ cmd += 'BQ_RESULT_TABLE="%s" ' % bq_result_table
+ if client_host:
+ # If netperf is running remotely, the env variables populated by Jenkins
+ # won't be available on the client, but we need them for uploading results
+ # to BigQuery.
+ jenkins_job_name = os.getenv('JOB_NAME')
+ if jenkins_job_name:
+ cmd += 'JOB_NAME="%s" ' % jenkins_job_name
+ jenkins_build_number = os.getenv('BUILD_NUMBER')
+ if jenkins_build_number:
+ cmd += 'BUILD_NUMBER="%s" ' % jenkins_build_number
+
+ cmd += 'tools/run_tests/performance/run_netperf.sh'
+ if client_host:
+ user_at_host = '%s@%s' % (_REMOTE_HOST_USERNAME, client_host)
+ cmd = 'ssh %s "cd ~/performance_workspace/grpc/ && "%s' % (user_at_host, pipes.quote(cmd))
+
+ return jobset.JobSpec(
+ cmdline=[cmd],
+ shortname='netperf',
+ timeout_seconds=60,
+ shell=True,
+ verbose_success=True)
+
+
def archive_repo(languages):
"""Archives local version of repo including submodules."""
cmdline=['tar', '-cf', '../grpc.tar', '../grpc/']
@@ -244,12 +274,28 @@ def start_qpsworkers(languages, worker_hosts):
def create_scenarios(languages, workers_by_lang, remote_host=None, regex='.*',
- category='all', bq_result_table=None):
+ category='all', bq_result_table=None,
+ netperf=False, netperf_hosts=[]):
"""Create jobspecs for scenarios to run."""
all_workers = [worker
for workers in workers_by_lang.values()
for worker in workers]
scenarios = []
+
+ if netperf:
+ if not netperf_hosts:
+ netperf_server='localhost'
+ netperf_client=None
+ elif len(netperf_hosts) == 1:
+ netperf_server=netperf_hosts[0]
+ netperf_client=netperf_hosts[0]
+ else:
+ netperf_server=netperf_hosts[0]
+ netperf_client=netperf_hosts[1]
+ scenarios.append(create_netperf_jobspec(server_host=netperf_server,
+ client_host=netperf_client,
+ bq_result_table=bq_result_table))
+
for language in languages:
for scenario_json in language.scenarios():
if re.search(args.regex, scenario_json['name']):
@@ -258,7 +304,11 @@ def create_scenarios(languages, workers_by_lang, remote_host=None, regex='.*',
# 'SERVER_LANGUAGE' is an indicator for this script to pick
# a server in different language.
custom_server_lang = scenario_json.get('SERVER_LANGUAGE', None)
+ custom_client_lang = scenario_json.get('CLIENT_LANGUAGE', None)
scenario_json = scenario_config.remove_nonproto_fields(scenario_json)
+ if custom_server_lang and custom_client_lang:
+ raise Exception('Cannot set both custom CLIENT_LANGUAGE and SERVER_LANGUAGE'
+ 'in the same scenario')
if custom_server_lang:
if not workers_by_lang.get(custom_server_lang, []):
print 'Warning: Skipping scenario %s as' % scenario_json['name']
@@ -268,6 +318,16 @@ def create_scenarios(languages, workers_by_lang, remote_host=None, regex='.*',
for idx in range(0, scenario_json['num_servers']):
# replace first X workers by workers of a different language
workers[idx] = workers_by_lang[custom_server_lang][idx]
+ if custom_client_lang:
+ if not workers_by_lang.get(custom_client_lang, []):
+ print 'Warning: Skipping scenario %s as' % scenario_json['name']
+ print('CLIENT_LANGUAGE is set to %s yet the language has '
+ 'not been selected with -l' % custom_client_lang)
+ continue
+ for idx in range(scenario_json['num_servers'], len(workers)):
+ # replace all client workers by workers of a different language,
+ # leave num_server workers as they are server workers.
+ workers[idx] = workers_by_lang[custom_client_lang][idx]
scenario = create_scenario_jobspec(scenario_json,
workers,
remote_host=remote_host,
@@ -314,8 +374,13 @@ argp.add_argument('--bq_result_table', default=None, type=str,
help='Bigquery "dataset.table" to upload results to.')
argp.add_argument('--category',
choices=['smoketest','all'],
- default='smoketest',
- help='Select a category of tests to run. Smoketest runs by default.')
+ default='all',
+ help='Select a category of tests to run.')
+argp.add_argument('--netperf',
+ default=False,
+ action='store_const',
+ const=True,
+ help='Run netperf benchmark as one of the scenarios.')
args = argp.parse_args()
@@ -360,7 +425,10 @@ try:
remote_host=args.remote_driver_host,
regex=args.regex,
category=args.category,
- bq_result_table=args.bq_result_table)
+ bq_result_table=args.bq_result_table,
+ netperf=args.netperf,
+ netperf_hosts=args.remote_worker_host)
+
if not scenarios:
raise Exception('No scenarios to run')
diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index 37291f4d3f..65596dea7f 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -153,52 +153,64 @@ class CLanguage(object):
def test_specs(self):
out = []
binaries = get_c_tests(self.args.travis, self.test_lang)
+ POLLING_STRATEGIES = {
+ 'windows': ['all'],
+ 'mac': ['all'],
+ 'posix': ['all'],
+ 'linux': ['poll', 'legacy']
+ }
for target in binaries:
- if self.config.build_config in target['exclude_configs']:
- continue
- if self.platform == 'windows':
- binary = 'vsprojects/%s%s/%s.exe' % (
- 'x64/' if self.args.arch == 'x64' else '',
- _MSBUILD_CONFIG[self.config.build_config],
- target['name'])
- else:
- binary = 'bins/%s/%s' % (self.config.build_config, target['name'])
- if os.path.isfile(binary):
- if 'gtest' in target and target['gtest']:
- # here we parse the output of --gtest_list_tests to build up a
- # complete list of the tests contained in a binary
- # for each test, we then add a job to run, filtering for just that
- # test
- with open(os.devnull, 'w') as fnull:
- tests = subprocess.check_output([binary, '--gtest_list_tests'],
- stderr=fnull)
- base = None
- for line in tests.split('\n'):
- i = line.find('#')
- if i >= 0: line = line[:i]
- if not line: continue
- if line[0] != ' ':
- base = line.strip()
- else:
- assert base is not None
- assert line[1] == ' '
- test = base + line.strip()
- cmdline = [binary] + ['--gtest_filter=%s' % test]
- out.append(self.config.job_spec(cmdline, [binary],
- shortname='%s:%s' % (binary, test),
- cpu_cost=target['cpu_cost'],
- environ={'GRPC_DEFAULT_SSL_ROOTS_FILE_PATH':
- _ROOT + '/src/core/lib/tsi/test_creds/ca.pem'}))
+ polling_strategies = (POLLING_STRATEGIES[self.platform]
+ if target.get('uses_polling', True)
+ else ['all'])
+ for polling_strategy in polling_strategies:
+ env={'GRPC_DEFAULT_SSL_ROOTS_FILE_PATH':
+ _ROOT + '/src/core/lib/tsi/test_creds/ca.pem',
+ 'GRPC_POLL_STRATEGY': polling_strategy}
+ shortname_ext = '' if polling_strategy=='all' else ' polling=%s' % polling_strategy
+ if self.config.build_config in target['exclude_configs']:
+ continue
+ if self.platform == 'windows':
+ binary = 'vsprojects/%s%s/%s.exe' % (
+ 'x64/' if self.args.arch == 'x64' else '',
+ _MSBUILD_CONFIG[self.config.build_config],
+ target['name'])
else:
- cmdline = [binary] + target['args']
- out.append(self.config.job_spec(cmdline, [binary],
- shortname=target.get('shortname', ' '.join(cmdline)),
- cpu_cost=target['cpu_cost'],
- flaky=target.get('flaky', False),
- environ={'GRPC_DEFAULT_SSL_ROOTS_FILE_PATH':
- _ROOT + '/src/core/lib/tsi/test_creds/ca.pem'}))
- elif self.args.regex == '.*' or self.platform == 'windows':
- print '\nWARNING: binary not found, skipping', binary
+ binary = 'bins/%s/%s' % (self.config.build_config, target['name'])
+ if os.path.isfile(binary):
+ if 'gtest' in target and target['gtest']:
+ # here we parse the output of --gtest_list_tests to build up a
+ # complete list of the tests contained in a binary
+ # for each test, we then add a job to run, filtering for just that
+ # test
+ with open(os.devnull, 'w') as fnull:
+ tests = subprocess.check_output([binary, '--gtest_list_tests'],
+ stderr=fnull)
+ base = None
+ for line in tests.split('\n'):
+ i = line.find('#')
+ if i >= 0: line = line[:i]
+ if not line: continue
+ if line[0] != ' ':
+ base = line.strip()
+ else:
+ assert base is not None
+ assert line[1] == ' '
+ test = base + line.strip()
+ cmdline = [binary] + ['--gtest_filter=%s' % test]
+ out.append(self.config.job_spec(cmdline, [binary],
+ shortname='%s:%s %s' % (binary, test, shortname_ext),
+ cpu_cost=target['cpu_cost'],
+ environ=env))
+ else:
+ cmdline = [binary] + target['args']
+ out.append(self.config.job_spec(cmdline, [binary],
+ shortname=' '.join(cmdline) + shortname_ext,
+ cpu_cost=target['cpu_cost'],
+ flaky=target.get('flaky', False),
+ environ=env))
+ elif self.args.regex == '.*' or self.platform == 'windows':
+ print '\nWARNING: binary not found, skipping', binary
return sorted(out)
def make_targets(self):
@@ -371,7 +383,9 @@ class PythonLanguage(object):
with open('src/python/grpcio/tests/tests.json') as tests_json_file:
tests_json = json.load(tests_json_file)
environment = dict(_FORCE_ENVIRON_FOR_WRAPPERS)
- environment['PYTHONPATH'] = os.path.abspath('src/python/gens')
+ environment['PYTHONPATH'] = '{}:{}'.format(
+ os.path.abspath('src/python/gens'),
+ os.path.abspath('src/python/grpcio_health_checking'))
if self.config.build_config != 'gcov':
return [self.config.job_spec(
['tools/run_tests/run_python.sh', self._tox_env],
diff --git a/tools/run_tests/sanity/check_submodules.sh b/tools/run_tests/sanity/check_submodules.sh
index 3349d28cf9..3b8d81b18f 100755
--- a/tools/run_tests/sanity/check_submodules.sh
+++ b/tools/run_tests/sanity/check_submodules.sh
@@ -45,7 +45,7 @@ cat << EOF | awk '{ print $1 }' | sort > $want_submodules
05b155ff59114735ec8cd089f669c4c3d8f59029 third_party/gflags (v2.1.0-45-g05b155f)
c99458533a9b4c743ed51537e25989ea55944908 third_party/googletest (release-1.7.0)
f8ac463766281625ad710900479130c7fcb4d63b third_party/nanopb (nanopb-0.3.4-29-gf8ac463)
- d5fb408ddc281ffcadeb08699e65bb694656d0bd third_party/protobuf (v3.0.0-beta-2)
+ a1938b2aa9ca86ce7ce50c27ff9737c1008d2a03 third_party/protobuf (v3.0.0-beta-3-pre1)
50893291621658f355bc5b4d450a8d06a563053d third_party/zlib (v1.2.8)
EOF
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index e77ae9456a..1e0c22bde3 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -2599,6 +2599,24 @@
],
"headers": [],
"language": "c++",
+ "name": "server_builder_plugin_test",
+ "src": [
+ "test/cpp/end2end/server_builder_plugin_test.cc"
+ ],
+ "third_party": false,
+ "type": "target"
+ },
+ {
+ "deps": [
+ "gpr",
+ "gpr_test_util",
+ "grpc",
+ "grpc++",
+ "grpc++_test_util",
+ "grpc_test_util"
+ ],
+ "headers": [],
+ "language": "c++",
"name": "server_crash_test",
"src": [
"test/cpp/end2end/server_crash_test.cc"
@@ -4157,7 +4175,8 @@
"grpc_transport_chttp2_client_insecure",
"grpc_transport_chttp2_client_secure",
"grpc_transport_chttp2_server_insecure",
- "grpc_transport_chttp2_server_secure"
+ "grpc_transport_chttp2_server_secure",
+ "grpc_transport_cronet_client_secure"
],
"headers": [],
"language": "c",
@@ -5627,6 +5646,7 @@
"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_poll_posix.h",
"src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.h",
"src/core/lib/iomgr/executor.h",
@@ -5727,6 +5747,8 @@
"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_poll_posix.c",
+ "src/core/lib/iomgr/ev_poll_posix.h",
"src/core/lib/iomgr/ev_posix.c",
"src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.c",
@@ -6031,6 +6053,7 @@
"tsi"
],
"headers": [
+ "include/grpc/grpc_cronet.h",
"include/grpc/grpc_security.h",
"include/grpc/grpc_security_constants.h",
"src/core/lib/security/context/security_context.h",
@@ -6055,6 +6078,7 @@
"language": "c",
"name": "grpc_secure",
"src": [
+ "include/grpc/grpc_cronet.h",
"include/grpc/grpc_security.h",
"include/grpc/grpc_security_constants.h",
"src/core/lib/http/httpcli_security_connector.c",
@@ -6308,6 +6332,24 @@
"type": "filegroup"
},
{
+ "deps": [
+ "grpc_base",
+ "grpc_transport_chttp2"
+ ],
+ "headers": [
+ "third_party/objective_c/Cronet/cronet_c_for_grpc.h"
+ ],
+ "language": "c",
+ "name": "grpc_transport_cronet_client_secure",
+ "src": [
+ "src/core/ext/transport/cronet/client/secure/cronet_channel_create.c",
+ "src/core/ext/transport/cronet/transport/cronet_api_dummy.c",
+ "src/core/ext/transport/cronet/transport/cronet_transport.c"
+ ],
+ "third_party": false,
+ "type": "filegroup"
+ },
+ {
"deps": [],
"headers": [
"third_party/nanopb/pb.h",
@@ -6371,6 +6413,8 @@
"include/grpc++/impl/rpc_service_method.h",
"include/grpc++/impl/serialization_traits.h",
"include/grpc++/impl/server_builder_option.h",
+ "include/grpc++/impl/server_builder_plugin.h",
+ "include/grpc++/impl/server_initializer.h",
"include/grpc++/impl/service_type.h",
"include/grpc++/impl/sync.h",
"include/grpc++/impl/sync_cxx11.h",
@@ -6421,6 +6465,8 @@
"include/grpc++/impl/rpc_service_method.h",
"include/grpc++/impl/serialization_traits.h",
"include/grpc++/impl/server_builder_option.h",
+ "include/grpc++/impl/server_builder_plugin.h",
+ "include/grpc++/impl/server_initializer.h",
"include/grpc++/impl/service_type.h",
"include/grpc++/impl/sync.h",
"include/grpc++/impl/sync_cxx11.h",
diff --git a/tools/run_tests/stress_test/configs/csharp.json b/tools/run_tests/stress_test/configs/csharp.json
index 587e1552b9..c438e08964 100644
--- a/tools/run_tests/stress_test/configs/csharp.json
+++ b/tools/run_tests/stress_test/configs/csharp.json
@@ -10,7 +10,7 @@
"baseTemplates": {
"default": {
"wrapperScriptPath": "/var/local/git/grpc/tools/gcp/stress_test/run_client.py",
- "pollIntervalSecs": 60,
+ "pollIntervalSecs": 100,
"clientArgs": {
"num_channels_per_server":5,
"num_stubs_per_channel":10,
@@ -20,7 +20,8 @@
"metricsPort": 8081,
"metricsArgs": {
"metrics_server_address": "localhost:8081",
- "total_only": "true"
+ "total_only": "true",
+ "deadline_secs": 60
}
}
},
@@ -78,7 +79,7 @@
"globalSettings": {
"buildDockerImages": true,
- "pollIntervalSecs": 60,
+ "pollIntervalSecs": 100,
"testDurationSecs": 7200,
"kubernetesProxyPort": 8009,
"datasetIdNamePrefix": "stress_test_csharp",
diff --git a/tools/run_tests/stress_test/configs/java.json b/tools/run_tests/stress_test/configs/java.json
index 2ce6c00780..92af63c6b5 100644
--- a/tools/run_tests/stress_test/configs/java.json
+++ b/tools/run_tests/stress_test/configs/java.json
@@ -10,7 +10,7 @@
"baseTemplates": {
"default": {
"wrapperScriptPath": "/var/local/git/grpc/tools/gcp/stress_test/run_client.py",
- "pollIntervalSecs": 60,
+ "pollIntervalSecs": 100,
"clientArgs": {
"num_channels_per_server":5,
"num_stubs_per_channel":10,
@@ -20,7 +20,11 @@
"metricsPort": 8081,
"metricsArgs": {
"metrics_server_address": "localhost:8081",
- "total_only": "true"
+ "total_only": "true",
+ "deadline_secs": 60
+ },
+ "env": {
+ "STRESSTEST_CLIENT_OPTS":"-Xmx3g -Xms3g -XX:NewSize=1500m -XX:MaxNewSize=1500m -XX:+UseConcMarkSweepGC"
}
}
},
@@ -44,7 +48,10 @@
"serverPort": 8080,
"serverArgs": {
"port": 8080,
- "use_tls": "false"
+ "use_tls": "false"
+ },
+ "env": {
+ "TEST_SERVER_OPTS":"-Xmx3g -Xms3g -XX:NewSize=1500m -XX:MaxNewSize=1500m -XX:+UseConcMarkSweepGC"
}
}
},
@@ -79,7 +86,7 @@
"globalSettings": {
"buildDockerImages": true,
- "pollIntervalSecs": 60,
+ "pollIntervalSecs": 100,
"testDurationSecs": 7200,
"kubernetesProxyPort": 8008,
"datasetIdNamePrefix": "stress_test_java",
diff --git a/tools/run_tests/stress_test/print_summary.py b/tools/run_tests/stress_test/print_summary.py
new file mode 100755
index 0000000000..cb1a33961e
--- /dev/null
+++ b/tools/run_tests/stress_test/print_summary.py
@@ -0,0 +1,59 @@
+#!/usr/bin/env python2.7
+# 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.
+import argparse
+import os
+import sys
+
+stress_test_utils_dir = os.path.abspath(os.path.join(
+ os.path.dirname(__file__), '../../gcp/stress_test'))
+sys.path.append(stress_test_utils_dir)
+from stress_test_utils import BigQueryHelper
+
+argp = argparse.ArgumentParser(
+ description='Print summary tables',
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter)
+argp.add_argument('--gcp_project_id',
+ required=True,
+ help='The Google Cloud Platform Project Id')
+argp.add_argument('--dataset_id', type=str, required=True)
+argp.add_argument('--run_id', type=str, required=True)
+argp.add_argument('--summary_table_id', type=str, default='summary')
+argp.add_argument('--qps_table_id', type=str, default='qps')
+argp.add_argument('--summary_only', action='store_true', default=True)
+
+if __name__ == '__main__':
+ args = argp.parse_args()
+ bq_helper = BigQueryHelper(args.run_id, '', '', args.gcp_project_id,
+ args.dataset_id, args.summary_table_id,
+ args.qps_table_id)
+ bq_helper.initialize()
+ if not args.summary_only:
+ bq_helper.print_qps_records()
+ bq_helper.print_summary_records()
diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json
index f1d302f2ef..10674d22b3 100644
--- a/tools/run_tests/tests.json
+++ b/tools/run_tests/tests.json
@@ -2453,6 +2453,27 @@
"ci_platforms": [
"linux",
"mac",
+ "posix",
+ "windows"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "gtest": true,
+ "language": "c++",
+ "name": "server_builder_plugin_test",
+ "platforms": [
+ "linux",
+ "mac",
+ "posix",
+ "windows"
+ ]
+ },
+ {
+ "args": [],
+ "ci_platforms": [
+ "linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
@@ -23428,7 +23449,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/001ea98069c10f808c281da9bbdd84cc05c3bad1"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23444,7 +23483,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23460,7 +23500,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/01f52e31dfffdab89d83acd39925c3dd81baa76f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23476,7 +23534,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23492,7 +23551,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23508,7 +23568,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23524,7 +23585,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/02c3cf8d52fbc43f89b5f516a17cea23b68fc8d5"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23540,7 +23619,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23556,7 +23636,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/032744b59cafd3320cc932ad39926a9bc92f589e"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/0385c7b41263419e25a4342fbfc44fbd65eb2ed5"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23572,7 +23687,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23588,7 +23704,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23604,7 +23721,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23620,7 +23738,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23636,7 +23755,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/04d93c9df413717f71abd091592b5238afb799e8"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23652,7 +23789,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23668,7 +23806,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23684,7 +23823,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23700,7 +23840,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23716,7 +23857,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23732,7 +23874,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23748,7 +23891,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23764,7 +23908,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/064d50aee4416ccf32f4e4fe7b770b7802265ffe"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/066e7fcb68e83b432c414f63f6de73e5f5099e49"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23780,7 +23959,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/06c714e289673cf982ce2ac0670707a15f2ac5ea"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23796,7 +23993,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23812,7 +24010,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/071247b8fddda8aa520d9142c89039fbf8bf6cee"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23828,7 +24044,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23844,7 +24061,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23860,7 +24078,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/07cb3b9baca1bbcce2e199e551073ba2fdd4e05c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23876,7 +24112,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/07fa2b6ed650d436f423adcccfcbe63ce6253de0"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23892,7 +24146,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/081e3248dfca2b32837c4738daee3a4698caaf15"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23908,7 +24180,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/088bf259e854abd9508d91b23983737f8e9e242c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23924,7 +24214,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23940,7 +24231,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/0976de1461fb037c6987d77d088416440b524dde"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23956,7 +24265,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23972,7 +24282,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23988,7 +24299,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24004,7 +24316,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/0adaf5f559e1fb9cd8cd5b29911e13bca315c606"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/0af5adf68560b3a7036ad23af62e4f9749eca690"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24020,7 +24367,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24036,7 +24384,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24052,7 +24401,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/0becc6ede499ddc452fd4e6c3c0413a1107a8373"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24068,7 +24435,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/0c531e03e56a5cf48bdd531a8c11a19e4a3b0aeb"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/0c65733bc09e8527347e20f5c876c5b64570d423"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/0c7b763d22885462527123656fa17af7520fc55d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24084,7 +24503,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24100,7 +24520,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/0d604693a9d3e76f54d28a26142abd729b0a9acd"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24116,7 +24554,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/0d993b34021ec088f1aa3e5acdd98089b4104b07"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24132,7 +24588,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/0def53b5575cc6ab2fbbd17e2bc6a24de9656f84"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24148,7 +24622,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24164,7 +24639,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/0e2ddbe92c08eb9ad3cbee1d0db2264baaca12df"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/0ea509d249ae28faba8980aacb972c7ea28d3fd5"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24180,7 +24690,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/0f16eeeecdebcb59022bda5a0972d1b3429648fd"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24196,7 +24724,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/0f81830560dbb9c6d3889b5d581b918c6cade65f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24212,7 +24758,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24228,7 +24775,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/105d9784648fe2d6c22fbefa69c9a26fff1c6481"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24244,7 +24809,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/11153bfeee3cdede86a52151dbb939c3ffee48ed"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/113c1d1bac15d550124f1ffb9012c32755adf27f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/11759723c597e6806f8873e5062d31516cdb97ea"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24260,7 +24877,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24276,7 +24894,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24292,7 +24911,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24308,7 +24928,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/12abf5dcf2aba770f7b94ce5d96d7a8565a9aa19"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/12b904b97ed234fa45073b4e346ebe3211558528"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/12c00ed8945bdae03f03142cb964a47ea0c5786e"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24324,7 +24996,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/12f977ee18a7499d18a503a47e71b4f241052640"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24340,7 +25030,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24356,7 +25047,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24372,7 +25064,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/145acf7c03a0bc6c4a40d710ba5813b9f28efe2a"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24388,7 +25098,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/14ccbe1d9d7302d642e51ede3d4d846e85310fc2"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24404,7 +25132,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/1586adc8c21b5796ba52203379faeb5f251f5c1d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24420,7 +25166,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/1608a688768bdecdb205a455401ce5d9a1424a22"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/162b4ec7cf39df091898e01057b2fa39605b34bb"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24436,7 +25217,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24452,7 +25234,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/16858f1f9db0e248a15ce09d9848612de1f4bba6"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24468,7 +25268,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24484,7 +25285,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/16e681f1867a1ac5612e1a88fddaed0bcb4521e7"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/16ebac3f7cea2b46f660ec6a5ef3401c3e17a2e9"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24500,7 +25336,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24516,7 +25353,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/17ec0503991dc248d2b188edfa3d28573a1c2154"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/17fb35db0b73c331a66120dbc491300b2d1665e0"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24532,7 +25404,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24548,7 +25421,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24564,7 +25438,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24580,7 +25455,76 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/190c4ca0cf29c99bc987d2792c7f62e1007c0245"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/1949f4a75f7d501d5279a01f58a444640379bd78"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/1972f535ae202777efdd15a09138efc37e07ac01"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/198e691a9dabd23ed5c156f3a6e2c06a4379c15b"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24596,7 +25540,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/1a16a4b32cb0cb3a759ec20edf332cdfc5d1717e"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24612,7 +25574,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/1af0744fe0ccad11d6df023803ab699e1464c8da"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24628,7 +25608,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/1b6d8326532cea974655dc86657d8e3b9ba021de"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/1b78d906803b539ea9f135e41b58257365948855"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/1ba0190ef2cde93332f850753a05b89ae5f39f1f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24644,7 +25676,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/1c24396c21f2c6aa2ad9b9a14877b7edf0ce61d2"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24660,7 +25710,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24676,7 +25727,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/1c86c4f2d173059e5cfe67b446fdfa285743f61f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24692,7 +25761,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/1cbbae18babaa20229b42b4633ef812bd3b40ad4"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24708,7 +25795,76 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/1d259d9c908db8a0a7012c054bfde7f86474dab7"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/1d55650c5bc30ea68168a9287820e25d2d53ab4c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/1d795268725d3a08883b05b021a437654aaed908"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/1d7bd5961f6963c65054fb9a24d913601f37bf3d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24724,7 +25880,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24740,7 +25897,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24756,7 +25914,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24772,7 +25931,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/1eefda69c1787cc55a8bd43774ca13563e0972bc"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/1f4d0adab39a988792cca201626c28293e247226"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/1f7847ed44c5acbc52c5d16b0222b44067076478"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24788,7 +25999,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/200521ca3891bfed841ca8c22691196a1a03ccd3"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24804,7 +26033,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/205dd562c7202d4231b232a6804889e77eba5292"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24820,7 +26067,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24836,7 +26084,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/2193a1e20caee37676d08c88154a462acf120fb0"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/21da45db854aeae9bef8576d6cb5859c0cf7a34c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24852,7 +26135,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/226b0315f87b08521c9a2d3e2b50c01ec421be14"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/22c9ed2979d9963bce6500997f1e0433988e7e37"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24868,7 +26186,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/247d0d09deeeb76422cd1d06305a63378a498656"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24884,7 +26220,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24900,7 +26237,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/24fbdfa73f26686633871ddad9698d7059db488f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24916,7 +26271,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24932,7 +26288,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24948,7 +26305,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/2535940afe69b3106b7696a486a2617d0d9a7150"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24964,7 +26339,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/25aa74daea95f9fc46a78239bd2e78ccf0fb3ffc"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24980,7 +26373,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/26930c35fbe83e4d165b8b7f218ac8ea231c87dd"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/26dfa46c2bb2e6af6f52bac6f03a9e4406c6e700"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24996,7 +26424,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25012,7 +26441,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/27a8643ba6047e12de1b2a4f7d0994a2c095a6d5"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/27f5e317e8a3a1098e786b96175c15d0855c4855"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25028,7 +26492,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/285b0b9b11fe506527c880d3a866ba94f8038cdf"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/28851da472cd09123465241e0d59697f563f53a8"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/28c56acb0f9b47ead49f34c0d92a661fa04952c2"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25044,7 +26560,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/2923d9c864597016358f37ce4014c61648b7290a"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25060,7 +26594,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25076,7 +26611,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/29a6d7ab3e7ea8d331358df45e5b0926e768e227"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/2a410e3d783bc93e63206e28f92b6a40e1db09cf"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25092,7 +26662,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25108,7 +26679,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25124,7 +26696,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25140,7 +26713,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25156,7 +26730,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25172,7 +26747,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/2b80854b52267dd70b622670e401280387f15dd2"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25188,7 +26781,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25204,7 +26798,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25220,7 +26815,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25236,7 +26832,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25252,7 +26849,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/2d5613b7bc0f5060eb1fa0449face6a9c503b589"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25268,7 +26883,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/2d7f42d3df4a206d09a9fa3126333a61f5e678ec"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/2d82b2376d689485814ade91df8f65ee08395a02"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25284,7 +26934,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25300,7 +26951,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25316,7 +26968,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/2df65610f1c24ad1cf9a5b22614434c96ffc12fb"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25332,7 +27002,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/2e48a9c8d204975060e81f37c7a46ab501750067"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/2e7441eacf8fcc7043f24b3beba4fcbe3c0c5ea0"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25348,7 +27053,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/2ef149e8fd68e06fcb7ba2fb43a17cc1dcfd989b"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25364,7 +27087,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25380,7 +27104,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/2f35914500b09477fe245bc130f86bbd15112ce7"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25396,7 +27138,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25412,7 +27155,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25428,7 +27172,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/2fece42b158854855dd42eac3fc7b8f1eb61fb04"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/3017e9f66dacf5a01f8c7d65b8a72d4f68aa6a28"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25444,7 +27223,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25460,7 +27240,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25476,7 +27257,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/30948ba77c2e56903a9ad5190cc74e59d42f67fe"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/30d6ca02d96fe1d1b91b7fa5180789a6cc9d0d45"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25492,7 +27308,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/30fc581d975cd8384b86be0ae59792a605ca68c6"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25508,7 +27342,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25524,7 +27359,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/3152365a4d8540623c9fb3a93712d096bf6b34e6"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25540,7 +27393,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/324b9341bfc56b24a60f0687a52981fcdeaa8733"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25556,7 +27427,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/32a6ea045d1288418617e5e0c52ae02c1f6598aa"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25572,7 +27461,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25588,7 +27478,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/3356fa1721a0dec9fedacba8d86e6100a49d5316"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25604,7 +27512,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/33af00c8deb0f0fdfc113f21c3cb5769aa474587"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/33b7cb7d4dcd380b207f1137722fe394de2a0f8e"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/33ff864434b4f0c0e08c00ec2442cb521e9f79ed"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25620,7 +27580,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25636,7 +27597,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/34aca5e37920615e8c141ed1fe4e419ae2e4df65"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/35ba1a4df4d362ea98e9386269bfbb95c5ed4874"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25652,7 +27648,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/3662f5312562bbe4503018a820692962e7dd66c8"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25668,7 +27682,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/37309bbfb4f0d78e6138b13a4e5da5944c95b97d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/37bc0646132afe8c79cda5e76de150a473fc0680"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25684,7 +27733,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25700,7 +27750,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/385626d51cd29e1b32befeaecde5df7248270754"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25716,7 +27784,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25732,7 +27801,76 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/39160bc99597105d50cf7a15698090399a2482ea"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/391ef74273ae5e1cd8a2342c5370fde5df1a7140"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/39525bbff413519199d1cf2c564d62b9c3c7736e"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/39b6daa9ae088667c5080709ca829cf51e66212d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25748,7 +27886,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25764,7 +27903,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/3a90fbc998ad7219e447db6155e6174e0117dd49"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25780,7 +27937,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/3af9522626ddfeb1ef461e3ba0f397ea4b2d99fb"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25796,7 +27971,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/3b60e6663ac7ceaa40f91d3a68fcb9c35e3e99b8"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/3bdfaad171c20468a866329355621cd579eff21c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/3c18f7c2d8fef6f119fe5bdbb5d191a92c627cb3"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25812,7 +28039,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25828,7 +28056,76 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/3c933aea09501c81d7e065c671cdc3bd55f8caf9"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/3cac139b58decec7c0d1f1318e8f1f28f9650c19"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/3cd19f8138a81f242cb92212df2b4812cde8385a"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/3d7d13b272c46ccceca36729e9893e5142961fd3"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25844,7 +28141,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/3d9534f373e79edd704cc9529600efd62451fb78"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25860,7 +28175,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25876,7 +28192,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/3e4c1755d1ad78103f10c2af7c7d2f86326f02f6"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/3e8bef87bb89525914b5e7964969a66eabc78eee"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25892,7 +28243,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25908,7 +28260,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/3fada97db682f675597cb58c5d43a72e283ab960"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25924,7 +28294,76 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/40fb9f1d9086ace2de0ad59648d196ba0705ae00"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/41921ba00dfc038778074b1af81104555ca74927"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/41de80653b78b98f5caa7f6d00a96d72bc245068"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/4212d95c0bfdf34b9c7fbd05bc732fa1bbb226ce"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25940,7 +28379,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/4236180c7d6f2edba5355b79bbe1a5c16266dd95"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/428b5b04a92ad6c28fc38451236c85338b9f8ce0"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25956,7 +28430,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/42a92ac224829067ee7dbadafb777bd38f076c6f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/42c2e90f2e228d6bec0d81e55f08647a2d651bbe"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25972,7 +28481,76 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/42c50f9543819ff7f440a7ac660cea374355c455"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/42c5f1965243b4bdf0212123d3430010bdacefaa"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/4305b19e8a214d2cf47436d964d52d10e430575f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/43646936116c18140ff0f01306d16280943eedac"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25988,7 +28566,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/43874e2bb721b485a93d80b7f1c3e3630f746b02"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26004,7 +28600,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/43ed8f46ad700ddd4c2a7a15f0cd209954f0a774"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/43f79e748c5da73a13555b00cf5050af68f07829"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/43ff758aba2eca1e355f0062ca8fa2dcc8edc69c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26020,7 +28668,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/4427b547b6693c39f08ba67c5d2ad012d5088f83"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/442bb0df4955b8dc95cc69af79a522a04c23dfe1"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/44378830a865936e205bb757a69bdf8d788bf26e"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26036,7 +28736,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/4471ee009359844e7600175546a3b36a21329666"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26052,7 +28770,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26068,7 +28787,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26084,7 +28804,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/454fb5eab23aacdba559ed9a9a36941732eb3276"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26100,7 +28838,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/461949a48f4f2234cce6bfc1476bc9fd96552c0e"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/462ae7e1d7eb4a4d8b4d5daaa1422b7cf835e127"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/46325fcd7a3a718f2188f49e28ad9d0c9dcd06a9"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26116,7 +28906,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/4667156173c437c62fdea99a199f3aed0b504fe0"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26132,7 +28940,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/46f88af92fbd99c386bd24d8a045a9a9c2469d53"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26148,7 +28974,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/4799a2aacdba08bd3e418c5659060829a997d715"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26164,7 +29008,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26180,7 +29025,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/47f2ead1b9cd99a8603dc5fd583afe3d4287deab"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26196,7 +29059,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/485410954a625f5749bce6ae923a620371542ed8"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/48f56289592da153b3c50bcc26ad6d4d3a7e443b"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26212,7 +29110,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26228,7 +29127,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/49d816ae44b329820f47979c5790eebc8eadafd7"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/4a2ee017facf4df1929e7db4b34b12018b64461c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26244,7 +29178,110 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/4a6c8938a8a30567a481599eddfc137fa5454b21"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/4a97016bb83b0db1c51fbb4d4f9c909dd85bdb41"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/4b011706723e645407b871241c2c11004103d628"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/4bedfc6d01a2d6bc0911d48123d6b8b30a46732e"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/4c03f9d60bfc5a2ab41c1703672a339838890ef3"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/4c34bbb26218f40a8ea1bafc8c50cd814a781cd2"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26260,7 +29297,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/4c6258b5299bd03560e292fcf3008efc60bc6cd1"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26276,7 +29331,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26292,7 +29348,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26308,7 +29365,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/4d7b5b98536de248387605efd813ba23b8b613dd"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/4d800cf62e39478c1bc1db8222a8d810fff6ad85"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/4d81efc0d5945caada326e2f6e55167120f0d3ce"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26324,7 +29433,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/4ea18756816848daf5e799ce1d75ecf52353eb08"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26340,7 +29467,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/4f320381bfd3927493db8037238bdce1766c68ee"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26356,7 +29501,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26372,7 +29518,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26388,7 +29535,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/50a96367b6a52c58a36364f4b1ec0583c7f315a5"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26404,7 +29569,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5151ad7147bbb75b1b377ce03f4ef5ef0f4f1c82"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26420,7 +29603,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26436,7 +29620,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5220909c423d2b321e8459355c965fb330288565"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26452,7 +29654,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26468,7 +29671,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/52b5c86f262d46624b2211151a38cbd69c705734"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26484,7 +29705,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5394ae134e9023432ac137789815e2b24d1bab3b"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26500,7 +29739,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/53e9f9a4b0347651b3833c3e153e743a1194e0fa"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/543ea879faab347874ad5e297684a62a1555e1ab"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26516,7 +29790,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/548190b9eb539e0841bcdd6e2c095cbef6ebd119"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26532,7 +29824,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/54d5ac6cc4bd944e60b7464e36c5d1b144c17da4"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5515fa05b890973031b0e2cc8c2925f3974e2821"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26548,7 +29875,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/560fe3fe0bb266ccb8c59ce19302bce23835097d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26564,7 +29909,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/56ac47e07bf3f42310773a4c66ee9d3afc27a8a3"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26580,7 +29943,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/570215c70de40add2ad62bed9ce47f8b6b231de6"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/572ab3983e406a82325f02edfdd7981d040cfbdb"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/573665d817a96a324fb8ba40a06425f572327b78"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26596,7 +30011,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/57bc1a4501ceb31b4ead1c2428798be073eb9db3"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26612,7 +30045,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26628,7 +30062,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26644,7 +30079,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/58c57e0ef4c2a630150f53ccdc2bfa798d5b9eae"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26660,7 +30113,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26676,7 +30130,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26692,7 +30147,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/59de0a42d012ca3dd8b7fa2f1b1c6642cb86fad4"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5a1d370abacb9f46fa966c8e58992897606a7900"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5a34e7fd2ff3f8e32ce85138931a387dc5f15db0"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26708,7 +30215,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5a3d25f74f7629c675be11faaea35921229b8757"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26724,7 +30249,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26740,7 +30266,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26756,7 +30283,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5ae4d5439ec6910a5fcd9c41f20ae843942853c6"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5b3f6f20f348cc4e5fb07cdb6e8614ca24f2cf13"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26772,7 +30334,110 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5c117dbd5d3146fd94c667f15f4c006fea88d14d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5c388b60e622e14c9abfb5b46c65207a319e09e4"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5c43f3a5de9c581693432dbb2ad604550c3948f5"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5cce719931cf1f07536401134de4325b942be87d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5cd55495dee689728feee959bcb09e2ab13d013d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5cf8b4c70476c124711e731cd2e00f67906bd457"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26788,7 +30453,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26804,7 +30470,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5d5ce71ab1258e014e06e6a2edb94a47a4ae1b35"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26820,7 +30504,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5d76fdb98fb38243a1f1c5f96d31ece34c5a91b7"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5da437d4fd58607deeed34bcb21accece71a056b"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5ddcbde7afa43e7fe4e44ef1470fc0c282873cae"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26836,7 +30572,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5e880db498f9baae544cdbc23476873d8766ac58"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26852,7 +30606,127 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5eae70ef8ab19fead6a9275e3e40df6b201159b1"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5ed431181bedd9a496aa3bb2330957c621f1443d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5ed8998cfc22cce008e3988b3591b1c9ddbfaa75"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5f07e5246d765494ee26c689072ab3ced452f30e"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5f52309deaa1b641fe199889d18f921d6909fc14"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/5f7eee027cbd6ae8e989150d9bd8a4fd39654c01"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/600096fe00d5f67726674fb9b0d2a6621a25e79c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26868,7 +30742,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6123f6116f3cacb4aabdbe26aed24ed0981d6c1c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/617a2a3f6b6d5d53993db606a8818235ae8d9b96"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/617ef08330c0e852f9aae6c63ddc5893b8b2c722"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26884,7 +30810,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26900,7 +30827,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/618e64836dc7f374745be963b7b3c62cc02ae2ca"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/61ce843c87f7bda1fabcb6ae3f41e85e6e2332ac"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/61f410c711bc5d53be9e932217ebd035f2716417"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26916,7 +30895,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/629eac0e7443a273b5c351757c03fe15a0b87c1c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/62c995646f15be1819bd13e32a60af46297d73b4"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26932,7 +30946,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/634d809c430738b89f0e677eec36506e537e86b3"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26948,7 +30980,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/63b91deaac58a7b64fb5999628ff3ff5d32b719d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/63babc04d35adbe48add6e93386dfc838b0bbd25"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26964,7 +31031,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/645b8377f905399af625a01c76ff088745fe1640"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26980,7 +31065,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/649cf0ee983cb5792042687181ce7e4d81f090a5"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26996,7 +31099,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/64d55e872c2148eefb0d7c3df101fd955b709f24"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27012,7 +31133,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6531f1c311678c9247ad6820519bc7e73f56cb81"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27028,7 +31167,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/655f952ec49cbc6176ad1bcfa45a87bd6c3542f0"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27044,7 +31201,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6639deedbf04eceba6017f712b287235540b5528"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/665d7b4f8082be87864e6ad3a6a3faa1d52ad6e5"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27060,7 +31252,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27076,7 +31269,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/66f0ed73b2d4ca3edbd23d5b669e75e4d0ffd292"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6722929b4924f4d50ccfb999460e9a31ca104b4c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27092,7 +31320,76 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6868e669f4b9a77ae5227767ec455fe6f82e55a1"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6887af467b343d6e1a8125ef10eb0a630f2dc06d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/68c65dc60f887050eb8cd7f946bf37aea2ade9f2"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/68f9d39b83bbc7cb4f743c8814800e6692988897"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27108,7 +31405,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27124,7 +31422,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/69d0f8b4a9452d11620c7d3c1fa532a618d65858"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27140,7 +31456,76 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6a1d877fe1eed1199511b8f28889d8f17665708e"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6ac88da4119df5e1592a05bac7ecb92af59dc1d1"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6b1e10a936df3b42720ebc9179fb74aa147f8b14"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6bd27df0dc9a3f73108de7bad443433aa5ee1175"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27156,7 +31541,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27172,7 +31558,93 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6c5707e8b1aa9a70ec87014cd660df4a7b910ee3"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6c91623f5a30f65110a4083897bad2882f032c51"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6c9b144f4e6dae6944b524a077dde07ac79e58d5"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6ca83e5d3f4544a14da513dc798f02464febdcd8"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6ce9895c780428861d12440946508c6641352544"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27188,7 +31660,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6df1c575d7f8fdf5593f1f60d9dc540d018fc58c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27204,7 +31694,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6e97f4e782ca976d4890199d48fcfd64173e24f9"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27220,7 +31728,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6f0bbfce7c5027932fb0f809494413e12a4ad3c1"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6f39da8f5bbae89a13dd36755f7b3c4a30c25833"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27236,7 +31779,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27252,7 +31796,127 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6fa93aadbb6ecdc32c9111be7692ec28ec11be72"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6fb7b01c1b363390eb9188bcac05f8f11e20c01d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6fbbaf9f6f49fabad4a0e47cea9e4048d8f130ed"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6fe041f1468b495d3186da906f9a5091e5761387"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/6fff95a8d3566b2721fa46e9828b47635f13d9ef"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/700f56e26286daf472d371effb9bca13fffa3d77"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/705c87b99197c87eb2ed148f8b3fdc60f8616f15"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27268,7 +31932,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27284,7 +31949,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/718d23058d5c805a2984c087cd89f9cb6af065b4"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27300,7 +31983,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27316,7 +32000,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/7217d93c1da3ae8ed085a5e6988227dcf430cd89"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/724063b7a5ee36246d72923e776331487434b81a"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27332,7 +32051,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27348,7 +32068,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27364,7 +32085,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/72a79517b8f9b57f62dc1203a6b5eefadf27c088"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27380,7 +32119,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/72f71befa8ebb4b2c1842aec78d840b2a4abdb85"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27396,7 +32153,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/73a6e07089ee011746c1ec3146b8a1b4b82c835e"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/7421d8acd877abd9d437ad447dfae29893cd2f37"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27412,7 +32204,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/746d9837f0fc3c989b7fe0585b8365478f1c21fc"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/746ecd23f1c41206dd4180a7afb032411f315d73"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/7487f56a435277d9bd7ef38d361e8ad7cdf62375"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27428,7 +32272,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27444,7 +32289,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27460,7 +32306,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/75755ae5cb0ae4f711dd15925f9f681d23408bb8"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27476,7 +32340,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27492,7 +32357,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27508,7 +32374,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27524,7 +32391,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27540,7 +32408,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27556,7 +32425,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/774a64c60765d78b3b980ff9a6538219d6908a3d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27572,7 +32459,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27588,7 +32476,76 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/783b1f17ae90eba0ff7728e767b56ea6885e0b28"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/78499fa2980dce2fde92b74421f486bf544cfb8f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/788f18727a0aeb5e200527bca7c889c9954be343"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/78c3bbeaeb266aac1df0d4abe78bbca68fb085a8"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27604,7 +32561,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/7957953ca449974ec39c6a137c0acdedb71c3b02"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/798fd96821ee3d91952373024f35cdceb10ccbed"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/79ac297c667d2ae77c05d2af275b05138439ee5b"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27620,7 +32629,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27636,7 +32646,76 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/7b4b493ac5a36d3b3fed0b66bc504206548a3537"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/7bb25e1821f1ff6ea4c85259444f7f40b430aa1f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/7bd75ddceb75724e5e9205cf7fadec03d8e1aca2"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/7bdc25dc79ca942673e515126e22474fd89ce55e"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27652,7 +32731,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/7bf8d2b77d85e4042e47d0dbe6da9441c6d9530b"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27668,7 +32765,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/7c193442a422da21cdeb14f681b0d4179aaeaf5f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27684,7 +32799,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/7c6a381eac8fbc8fccada2b2069c3f773a9c6961"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/7c70dd584df7a4fda61d08ab8ef85ec70c85b7f5"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27700,7 +32850,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/7cc958be492e942df2b784fcc08a63d57c7fef92"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27716,7 +32884,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27732,7 +32901,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27748,7 +32918,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27764,7 +32935,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/7d8eeb8778051e621abf74daf43dd4010117d9f9"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27780,7 +32969,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/7e29172a1d27c4f8a0b138306db1043373b2d0ba"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27796,7 +33003,76 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/7ec62c16916c2c30847b578d2148893924287bfe"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/7eea6a4b31c4f10281f31a7461f35af7331becf2"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/7efac665d3dabc2162f4407e3bedbd65b3007335"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/7fe7a6ab57422c40c7e0e2333c3bbb6ae6a0d9a3"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27812,7 +33088,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27828,7 +33105,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27844,7 +33122,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/80ecd5087801e974eae7db730a496d2aca110648"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27860,7 +33156,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27876,7 +33173,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/81489a0c6a71c48e9f343cb5ff8e8b5693d5df19"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/819cac3befd0d7b12ffd734c26df1cdf43c376a2"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/81e64ec00272538edef6336423738277647b5ed0"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27892,7 +33241,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/82182d7a9c73a70f5eec58c03b1db511d7feb95d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/839b0cad1196be563cec8e8a55184fc001b8401a"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27908,7 +33292,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/840928fe62714fdb003b3f0a40c2c4897f9d7938"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/84650393df0dca7ca3244faa7ac036873d3dcce1"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27924,7 +33343,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27940,7 +33360,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27956,7 +33377,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27972,7 +33394,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27988,7 +33411,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/85bd45792a3cf2116fab5e99e2d824ee804af843"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28004,7 +33445,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28020,7 +33462,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/875280c0c54d1662b07150e728f9ac0c1af7bf66"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28036,7 +33496,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28052,7 +33513,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28068,7 +33530,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/87e510c4dd906ec4de0066e93b2475480fc0768b"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28084,7 +33564,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/88139a0d01f144556ef861af4450f466081443f5"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28100,7 +33598,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/8854a331f3c5ddc4ace70e0505901e53aa48e386"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/88600f27cb602db290f07eb0e8b6f10488c0760f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28116,7 +33649,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28132,7 +33666,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28148,7 +33683,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/8979c4017b72b970dc33095be26788f52f37a959"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28164,7 +33717,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/8a4183e6bb75036228a42039d678fca0ea6751b7"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28180,7 +33751,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28196,7 +33768,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/8aaa277cf855a972c6dec9fc49b171ce3232a26a"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/8ab19633328ea9e493dee313e135e7d851aa7911"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28212,7 +33819,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/8b30c1f058ac421b6c51c4591ef9e4adc2886b44"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/8b37ce939cb8d42c459f5e286de980c7b62f14be"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28228,7 +33870,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28244,7 +33887,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/8ba87aeecf944e0eb387f8f2d9e30964c9f860de"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/8bd94413e2d60effc2806dd7153216a1b6487162"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/8c395b9251d60823ef14014f6ad58b29968a1681"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28260,7 +33955,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/8c540353717db453eeb865e5b9b7f2efe6c5d5b7"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28276,7 +33989,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/8d386a409662ef68370c0c552742bd0ea6d527d5"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28292,7 +34023,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/8d91dd322c7972a13cb98461b0eb284116905887"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28308,7 +34057,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/8dab1d2d4f470c669688103f52718a7783113cf1"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/8dcb4dd3d2fa04ffc83f7fd7f9306ae4105ef7ef"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28324,7 +34108,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28340,7 +34125,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/8ebddbd256887fb5fe1be69a46023b34f815d2e8"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/8edad87970b31dad2b23184d864fe5ad9efb05e5"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/8f4187ea7f2efbcd933fdb2b0652b71ecaff7822"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28356,7 +34193,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28372,7 +34210,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28388,7 +34227,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28404,7 +34244,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28420,7 +34261,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/9080684608701e015c764f643dc45fa939d86ed3"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28436,7 +34295,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28452,7 +34312,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28468,7 +34329,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28484,7 +34346,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/92d44998655e82d89a614c7b6a2f08c5fc7f8805"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/92ec3b6722dde442121b3d1ed3ef23976c72cba8"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28500,7 +34397,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/940a622e8995529f6b0455906d8a035902682d2d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/940e35bed3ff2b52a29e5b15acf9fe39772eb5de"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/94571a4b13c435117ef9bd914443ce9a07da8e3f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28516,7 +34465,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28532,7 +34482,76 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/95940316e7104e9c2d5123b31e36b2dfd12fcea2"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/95dd85860bde08e1d0ecef805ad55f66008923af"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/95f223f8964d294aafc2a6041a83cfa7761c31ab"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/9629c00d91e6146b29f7559a944e6bf8dce7d0f1"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28548,7 +34567,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/96a6293d4fc97c75f037bdb0f73dc5b62bbfa2e6"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28564,7 +34601,110 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/97011f865fcf9c57560d5ed3cb05883ff298ee35"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/97440beca022cd5799f76654d8bec51f62c0bbaf"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/976613cb09127a752d628c4a3cf73b8e3168e0af"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/97817475213736527fdc3b2a28cd45f52fe4ce1a"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/97efcb1f37032ebf01b4b1065a9df66590b7051f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/980f0198dc66e867b1a5d04cf24bc02fbdf3b839"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28580,7 +34720,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/98569dc166bfcfef45a66db4de1c0f34340c269c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/988bd333d5dabe1561cf4429e7481ff110be0da4"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28596,7 +34771,76 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/98cdb5ba5725c6b2ed39fc514401fe987fc2d9af"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/9989534524a212092e9d7fede16106b586c434f4"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/999737edf1e9740df084c4326ec983137ccd7111"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/99e8f2ea80ed1d5a78fd5236e89d404bb0c03940"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28612,7 +34856,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/9a0f0818ff9fbfd81e0d0eadeef7b85ca2d4fd46"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28628,7 +34890,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28644,7 +34907,76 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/9a9af9f266737f95cfedbf5c8fcea22660c3f085"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/9ab3be55bd49749439f7aa1bfe2d178ad663b003"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/9addda4c7a9940fbbda2218ec58560c10e1df9f7"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/9b5b436057dfcf4299e52ad49c74e45ef04be7a2"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28660,7 +34992,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28676,7 +35009,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28692,7 +35026,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28708,7 +35043,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28724,7 +35060,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28740,7 +35077,76 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/9cb91ce75745cc30995b8985a35ea31db766e54c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/9d004fd9a35647ba7ec169e6fedbf9dce5f9623f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/9d69b6fb15c861c294878da8aaf16a531dfb1b70"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/9d74922516d210da71d40395f17a3cef4161894d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28756,7 +35162,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/9dd25a6857d92ef52169ec95a0cdfbc8570b6d99"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/9e48b3aa2c25dbbab21148bdac91b5169ce088bf"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28772,7 +35213,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/9f00c8665f3918e666d424ee67a2556f2651d64f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28788,7 +35247,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/9f43969c0777a021539b59eafdac9dd2f51422d5"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/9f643e51d8e91e7e0348017d98078f078a1790b9"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28804,7 +35298,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/9f86fc902ca36482d09f6c11e821b79bfc0b98cc"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28820,7 +35332,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28836,7 +35349,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/a0e80579e201495c2337292a3508b2d220e9737a"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28852,7 +35383,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/a18ed3861270cd42a661211d9d970c488fed46ad"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28868,7 +35417,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28884,7 +35434,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28900,7 +35451,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/a1f6961a480f1eb49b394118b05b9cdabfb6f0a3"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28916,7 +35485,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28932,7 +35502,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28948,7 +35519,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/a36a156c5ed8a55aec450393deaed66c0e9117c9"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/a380f7e56171dc69269afb6364216bc69925eb8a"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/a3926a25374714a71c8bd515564d294df229c7cf"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28964,7 +35587,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28980,7 +35604,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/a3d52dfd05da328d3f109d125e6c1a15470eab06"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/a41e8b175a837b55e540874c3f056a9d9535866c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/a4d41bf7bce38a255a431912f6b57637645221e8"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28996,7 +35672,76 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/a619bb6ff4871fab3045e46bef8036f80d605f37"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/a62960425c597cf5d2bd38e9412363991479837f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/a64136997cd4c4be7d93f10fd6a1d12cdc22691c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/a6541e0f317553947d53cfb9318367aff2898ad5"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29012,7 +35757,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29028,7 +35774,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29044,7 +35791,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29060,7 +35808,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/a8115b0be87517139447c9fefc33e225f2efdf32"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29076,7 +35842,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29092,7 +35859,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29108,7 +35876,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29124,7 +35893,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29140,7 +35910,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29156,7 +35927,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/aa6e8ab6cab71f0d7fe316a19c47fbeba5351315"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29172,7 +35961,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29188,7 +35978,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29204,7 +35995,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29220,7 +36012,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29236,7 +36029,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29252,7 +36046,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29268,7 +36063,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29284,7 +36080,76 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/abaca8e8237d5add7e35752471688233d265efc2"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/abbd9f85ad500d55dda6009681ddffca1849b632"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/abcfa029d3eb7c016a162e78e7351f64b9905a42"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/abdb7891569085e3df0f6c7a5348c12bf3dd1ae0"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29300,7 +36165,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29316,7 +36182,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/ad6369d2c51c4787778ff9dbd86cc6df44312f1d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29332,7 +36216,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/ada998a4b5a9895f514ddbf8da775f5c59736021"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29348,7 +36250,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29364,7 +36267,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/af1fbe820d92608782360791113393055c171da0"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/af990e5c81c307c188a79f4cdfdae4e8e15dc4a2"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/aff1fdfe79c104bce110cec92e1e021caf012fde"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29380,7 +36335,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29396,7 +36352,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29412,7 +36369,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29428,7 +36386,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/b2432248370f7590e894c54f2dd13fe9df9fa53e"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/b262c677b8c46262f1fc4982f5abf4ef603abe1c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29444,7 +36437,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/b2af0db70de3a6ddcb188d1f6f2a673133a8f9c7"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/b2f450dc86671548200a1fe6ee0ee76171edc578"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29460,7 +36488,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/b35f51d95f597075bb93cd9d2135870fe0a73486"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/b37ab56aacf7fea7dcade26810117c45e6041068"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29476,7 +36539,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29492,7 +36556,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29508,7 +36573,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29524,7 +36590,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29540,7 +36607,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29556,7 +36624,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29572,7 +36641,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29588,7 +36658,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29604,7 +36675,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29620,7 +36692,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/b5bec1a19e2ca2394f2c3235266c22a7167bfa5d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29636,7 +36726,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/b5dfbf1965f794634249cc6be9d20d2a9fc6e332"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29652,7 +36760,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/b6694ec2d425e8ce6ad9ff712a999fabfa5ce113"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/b6c47632d8d697f9f2923bde053f7a5571150705"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29668,7 +36811,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29684,7 +36828,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29700,7 +36845,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29716,7 +36862,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29732,7 +36879,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/b892c064b2703ac0dc31766946be487b197a541e"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29748,7 +36913,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29764,7 +36930,76 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/b8d0be707d9505c0e63253904979492c22cd9fdc"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/b8e06536840e31a343b3a42b677d623bacfccd99"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/b8ea2247c5b1636148fa66fdce22ed1cc72b6bdd"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/b9318513eb6b1db553855cd062ebbd4d1db9b846"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29780,7 +37015,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29796,7 +37032,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/b95899d40afc4b3ff87af2285b61ba66939873fa"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29812,7 +37066,93 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/b98ef7107754379c22a3ad59cffa3183e0804c0e"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/b9913b354096dbe1796814e2cea80addef6ee386"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/ba3d174125e7378292fcbad9bfe8129dabf88b3a"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/baab31938837e1a3cb49ca12fb886fcbb7d48501"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/bac43cd2ed1dbf3a89a0c66d8983b586066ef463"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29828,7 +37168,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/bb2affdc830241ebea35795fed3bc8d478330eec"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29844,7 +37202,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/bb54fde05891ecc235263ad087cfd9682a25f76d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/bba4073cde10ba7abaac18d6303e310d02a47826"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29860,7 +37253,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29876,7 +37270,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/bc2967ecf8402d442ef63ca451497431932a7e57"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29892,7 +37304,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29908,7 +37321,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29924,7 +37338,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/bc8dd89f31fa5e89cabace6d7701d2a218f97aed"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29940,7 +37372,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29956,7 +37389,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29972,7 +37406,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29988,7 +37423,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/bd04c9dc7eaf030313d4c87f190a9d973b96ac2d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30004,7 +37457,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30020,7 +37474,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30036,7 +37491,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/bd585e031f586c4313c6b00e5f247f6b272ce902"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30052,7 +37525,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30068,7 +37542,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30084,7 +37559,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/bdab9cab03ad7aa611612e02775018112303d3cd"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30100,7 +37593,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30116,7 +37610,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/be29c4d0b6568b06c69fc339ac29890baac569de"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30132,7 +37644,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/be757e0ca581bb4ec14fbba6e87569f93f4c7750"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/be8114a7bd73ce15fe0495171234d0af526e41f1"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/becdf72b57104cede4a1fc7b7a4c97a3cbf3b7b4"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30148,7 +37712,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/beff7e2d09ef0547a3b1a498311c665954d8baea"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30164,7 +37746,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/bfe2840aecee88c5301aedd16a6ac8cea0262005"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30180,7 +37780,93 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c061aa42448363b548d90cbf4a7660fb2b043518"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c0bb5f00fc14ea4f2000f75e6d1d94f23e6203f6"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c0e04f5709338a500b3be166714ed7b0013c17d0"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c11e6f232cfdc5fffffa2c79150b5647704912c0"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c16876cdc8ab36ef7083bf4579849ee94239af0f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30196,7 +37882,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30212,7 +37899,93 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c1ac67facfa4ca5ad92c3eed576a59d41558480f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c1d33a370a8ec2c2ea380472cc49172c679fa5bc"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c1d84db44208d08a84084986094aeac3eebfe3b8"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c259fba0af17dd1636501feddd52e501b51c4137"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c29f63aa5c4462b359c9028b6e6031dc088d7d46"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30228,7 +38001,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c2eb3287f8b83c9281826e3c773ca347056ee115"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c32029d5683ad5cfa1af3b534c53bc2f7f513f50"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30244,7 +38052,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c370cb2ce56d1006fea0af1a823042927c0cfa07"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c3ade78c7fea61ed2e2cd843f9c551b107ae050f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c40e43a76f0c493414386dd90ab892042a6914d2"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30260,7 +38120,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30276,7 +38137,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c4b438b82ac86439296c31dd7de86a753034c807"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c5154ce0384c3becaf12f83c51114bb3ccd0b673"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30292,7 +38188,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c5446cba5971d6f44ee93097a21c1b8936f4020a"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30308,7 +38222,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30324,7 +38239,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c6733483e94f755f1cbf796f8aa3d10a2c371aa3"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30340,7 +38273,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30356,7 +38290,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30372,7 +38307,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30388,7 +38324,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30404,7 +38341,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30420,7 +38358,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c8f0972dabb904bc6d35ed576fc9a49eb2ed5273"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30436,7 +38392,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c93f16b5b678d3019eb05bd0774598e7d34e9b3b"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30452,7 +38426,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30468,7 +38443,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/c97c41c0c76a901f458bf9b4d785fb53fe8a2980"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30484,7 +38477,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30500,7 +38494,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/ca418a61964cb360014b574fe29aa20b193df04f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30516,7 +38528,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30532,7 +38545,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/cb9a688f0dbc2015c77920f344e2d029c87384ff"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30548,7 +38579,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30564,7 +38596,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30580,7 +38613,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30596,7 +38630,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30612,7 +38647,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30628,7 +38664,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/cd779b587b80719e2838853c2eac8d4595c0faa4"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30644,7 +38698,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30660,7 +38715,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/ceecce905981d8291a79fe32f89e8be688dfee7e"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30676,7 +38749,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30692,7 +38766,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30708,7 +38783,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30724,7 +38800,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30740,7 +38817,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30756,7 +38834,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30772,7 +38851,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30788,7 +38868,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30804,7 +38885,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30820,7 +38902,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30836,7 +38919,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30852,7 +38936,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30868,7 +38953,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30884,7 +38970,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30900,7 +38987,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30916,7 +39004,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30932,7 +39021,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30948,7 +39038,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30964,7 +39055,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30980,7 +39072,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30996,7 +39089,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31012,7 +39106,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31028,7 +39123,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31044,7 +39140,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31060,7 +39157,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31076,7 +39174,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31092,7 +39191,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31108,7 +39208,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31124,7 +39225,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31140,7 +39242,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31156,7 +39259,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31172,7 +39276,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31188,7 +39293,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31204,7 +39310,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31220,7 +39327,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31236,7 +39344,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31252,7 +39361,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31268,7 +39378,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31284,7 +39395,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31300,7 +39412,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/d079f5c8a10611dc655cef33f73100f5f43787a8"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31316,7 +39446,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/d107d21374f4dba27f173d4edd5c8009e3b0f8c4"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/d110d5d3a672bf483f230825e735d372b0b2c1a5"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31332,7 +39497,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/d18b2a1520207761100992c88b50f6b410c62184"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31348,7 +39531,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31364,7 +39548,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31380,7 +39565,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31396,7 +39582,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/d22287b96b3dcb840fc65e4be60e409fb0f6bfe5"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/d27e050b2758f6658d166b0d30e9db9595388ef9"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31412,7 +39633,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31428,7 +39650,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31444,7 +39667,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/d3089d3ef9be14080abc156e5f2128c3c1a2f23a"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/d3090a5221ea984dc474c3fb448b71957f8197a4"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31460,7 +39718,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31476,7 +39735,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31492,7 +39752,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31508,7 +39769,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31524,7 +39786,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31540,7 +39803,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/d56b3dae753b110e9e1a050486c6deb6ac399bd8"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/d576eb2948463f86f576d85e41d30a8cf3b972c2"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/d5824da8aeaf96a9e5f590a851e58e2534d178a5"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31556,7 +39871,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31572,7 +39888,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/d67c22b4174555c3e596c58dc7c28e84b1da8353"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/d68001237e6366c844a6509fa03e677e6adfb75f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/d681712608025610b8ecc8a76a822516fb659953"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31588,7 +39956,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31604,7 +39973,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31620,7 +39990,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/d87b7bcd1b05a2f8cc04a2aadb999bcf65b84911"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31636,7 +40024,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/d8d117e45b7bc0c48f606d9ef844f00a363a8a38"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31652,7 +40058,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31668,7 +40075,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31684,7 +40092,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/d99bfa6bb10d30f64b533ea7620fc08b762a7bf3"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/d9d80422059678f0a011b8e8fdedd3d20c025b91"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31700,7 +40143,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31716,7 +40160,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/da2ace62505959bae7b4f158220f7ce97d20423d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31732,7 +40194,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/dac17b9025074828797ef0dd1e3895baf875627f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31748,7 +40228,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31764,7 +40245,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/db0dbec7a0811cac7b250cf9b248d47936edc0d0"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31780,7 +40279,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/dc38c75bcb7df7e61428d8f12ff01a1ec1b68a99"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/dcc8e14bbb75292968233ce89acd404303a53cc3"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/dcd0182c3027a0d6cc7a9a8c26f647d45bf3d3df"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31796,7 +40347,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31812,7 +40364,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31828,7 +40381,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31844,7 +40398,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/deb08a636c04030bc28459820c7ddbace429b40a"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31860,7 +40432,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/df106c9859b09869094c77aeba44e6e9ce909246"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/df380dfd997318c00cfc75313e6a7ecb041d38af"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31876,7 +40483,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31892,7 +40500,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31908,7 +40517,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/dfe4f327699ddea25103dd17b68e9a0fb726f4a7"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31924,7 +40551,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31940,7 +40568,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/e007d8c9aa6c37e8b62fab4cb95b2807fc49105f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31956,7 +40602,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/e0507daae4458401edc11e5c76b246d6d5a44e3d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31972,7 +40636,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/e08b85aa24c9d0a49f8946c8400b86b5ea9211c8"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/e0b7eb44f182f08d2eeaeecc76ef7b3efeff1fc4"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31988,7 +40687,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/e13361499a2326ef8dbc3746ceb61c61b2e1ad57"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32004,7 +40721,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/e15a0a0fb7b4f1c05088bc119c492ac20eb5dbcf"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/e192ba28f8a3bc9079b810c46ecc526f84609863"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32020,7 +40772,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32036,7 +40789,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32052,7 +40806,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/e33eb4b19232b2e32bc8f18e43459c4ed15bfc4f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32068,7 +40840,59 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/e3b45752c8160c48885420e20c24bb7124128f16"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/e3c1dbfb1ef140f6bdcf7d683e2b2071aacba9ba"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/e3eda76a93e94d081a9dfd675975fe2fc1d670dc"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32084,7 +40908,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32100,7 +40925,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32116,7 +40942,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32132,7 +40959,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/e53a201505fe8412278d7444b1a915b353bacb3e"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32148,7 +40993,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32164,7 +41010,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32180,7 +41027,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32196,7 +41044,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32212,7 +41061,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32228,7 +41078,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32244,7 +41095,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32260,7 +41112,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32276,7 +41129,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32292,7 +41146,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/e7484552736c89fe721019daaad8739a68f1a926"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32308,7 +41180,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32324,7 +41197,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/e80302182fbd464b72d2b9be495901c0c3e93344"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/e805c33631e579c782550439f123b78e1ad8e180"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32340,7 +41248,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32356,7 +41265,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32372,7 +41282,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32388,7 +41299,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32404,7 +41316,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32420,7 +41333,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/eab01c8a32e76c8f354055807399a808848234e6"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32436,7 +41367,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32452,7 +41384,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32468,7 +41401,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32484,7 +41418,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/ebc30c5cbe17138976223f2283fe42d9e4c6f39a"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/ebe414975652c12fbbfd99efd2da1cd4c72c340c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32500,7 +41469,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/ec230c6a27149df85cad53f33478ffc11bd92d4e"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/ec97d4ee730261bdc3b14349a3346fd45929bd17"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32516,7 +41520,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/ecf0a3cd157191263734f4f2de9689d5a02e439b"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/ed361ec32383606748bedeb8eee6510041b0f366"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32532,7 +41571,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32548,7 +41588,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/edcf7ea2ec8443a92883e68e5e18353fad8f6d21"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32564,7 +41622,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32580,7 +41639,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/ef32866f14ccd80c1231fa742b53fba46ae15d6f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32596,7 +41673,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/ef63ab3c4dbf27ed1f15c2b310bf41ff3a2a7e3c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32612,7 +41707,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/ef967ba35676b971983b1e95e62c383a978a37f7"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32628,7 +41741,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/eff00cadc3130c257b3fe360ea5d32fb034aadff"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/f0649728d5f9e1a91735eaa429605ce0da6c00c0"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32644,7 +41792,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/f0d881bdd69c3945694068719a7a6b6b094dee3c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32660,7 +41826,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32676,7 +41843,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/f18f2d094ef0f0c971173153279bc44bfa3c1187"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32692,7 +41877,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/f1a7981f4f19f6318e0f16cafe9541d1564f9e15"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32708,7 +41911,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32724,7 +41928,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32740,7 +41945,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/f27ae36fe8211e46f49656597658daab1429b163"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32756,7 +41979,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/f2f014c6ef70e40f9334096f34584ea4f1f882d7"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32772,7 +42013,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32788,7 +42030,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/f463b733bfacabdd064c6b5a0551d72398f833af"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32804,7 +42064,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32820,7 +42081,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32836,7 +42098,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/f5867f7dbacd22878e2955f4be8fca147442aa9d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32852,7 +42132,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/f5a7503830d1e74c6a7230c10c5007a5f8ad5a0f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/f62ae81e655f294699b73830d3abaa787196cb23"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32868,7 +42183,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32884,7 +42200,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32900,7 +42217,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/f7316eaa3f54119ac5b7fb24e8b92debdf57c3f1"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32916,7 +42251,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32932,7 +42268,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32948,7 +42285,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/f7909263cd7edc56186185c0b3421ebb68ad8d2b"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32964,7 +42319,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32980,7 +42336,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32996,7 +42353,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33012,7 +42370,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33028,7 +42387,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33044,7 +42404,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/f912a072f4abf312ebbe7f1a2bf5ebd8c51e35e2"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33060,7 +42438,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33076,7 +42455,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33092,7 +42472,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33108,7 +42489,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33124,7 +42506,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/fa44038e372af4ab374d3e94ec61662051e0dd74"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33140,7 +42540,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33156,7 +42557,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/faa0471930dc99deb5b1ffdc9bab7c1267b4ddbb"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/fac54fba5614e5930104bc7391773b490c0523b2"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33172,7 +42608,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/fb0bef1e4142a7bcfa30e93f834fb6315438d1ad"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33188,7 +42642,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33204,7 +42659,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/fb9ad6fd8276dd9b38b27ee8907f0db5a3a2cedf"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/fbeb44db0fc0f6b70c226053448c7170f62543b1"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33220,7 +42710,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33236,7 +42727,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33252,7 +42744,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/fc39c0c12cde4ef57c217955886ed9508214ca98"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33268,7 +42778,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/fd4d68895bc219f52d93f3f2f302ff138e8ffeda"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33284,7 +42812,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/fe565289309a897d640309b9bf214d3036c2216b"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33300,7 +42846,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/fe7ac5c3403c7f1673ead3176af4efe7c60b2c02"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/fe9d7f510475f17a7592213c9b2e614ce7d38f22"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33316,7 +42897,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/ff2fd7bfc554729dc2a40554597e3a95ab8baefe"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33332,7 +42931,42 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/ff8ffcfafaf420d6fee1cfa087204975ab8e14d6"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/ffc74f2184f64032a1f67b5f843a683ea1372b74"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33348,7 +42982,25 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/api_fuzzer_corpus/full_request.bin"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "api_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33364,7 +43016,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33380,7 +43033,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33396,7 +43050,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33412,7 +43067,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33428,7 +43084,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33444,7 +43101,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33460,7 +43118,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33476,7 +43135,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33492,7 +43152,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33508,7 +43169,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33524,7 +43186,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33540,7 +43203,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33556,7 +43220,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/04bef86965e816c0cd330896ecd981dd3b14275c"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33572,7 +43254,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33588,7 +43271,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33604,7 +43288,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33620,7 +43305,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33636,7 +43322,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33652,7 +43339,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33668,7 +43356,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33684,7 +43373,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33700,7 +43390,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/0c6f2e0a2232788cb20c4f52ffa18d7ab8f0b938"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33716,7 +43424,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33732,7 +43441,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33748,7 +43458,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33764,7 +43475,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33780,7 +43492,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33796,7 +43509,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33812,7 +43526,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33828,7 +43543,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33844,7 +43560,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33860,7 +43577,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33876,7 +43594,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33892,7 +43611,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33908,7 +43628,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33924,7 +43645,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33940,7 +43662,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33956,7 +43679,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33972,7 +43696,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/1526ac4266e152b029b7c283255fe4fb6507f726"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33988,7 +43730,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/15c8bfec99ff18b11211d464c824fc139cc791fd"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34004,7 +43764,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/169f579e66b4b8ff423891a40380e648e8d45247"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34020,7 +43798,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34036,7 +43815,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34052,7 +43832,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34068,7 +43849,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34084,7 +43866,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34100,7 +43883,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34116,7 +43900,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34132,7 +43917,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34148,7 +43934,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34164,7 +43951,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34180,7 +43968,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34196,7 +43985,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34212,7 +44002,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34228,7 +44019,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34244,7 +44036,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34260,7 +44053,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34276,7 +44070,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34292,7 +44087,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34308,7 +44104,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34324,7 +44121,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34340,7 +44138,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34356,7 +44155,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34372,7 +44172,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34388,7 +44189,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34404,7 +44206,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34420,7 +44223,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34436,7 +44240,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34452,7 +44257,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34468,7 +44274,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34484,7 +44291,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34500,7 +44308,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/23e8c1377addaf67019ea36a084e0b68ca7a33db"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34516,7 +44342,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34532,7 +44359,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34548,7 +44376,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34564,7 +44393,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34580,7 +44410,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34596,7 +44427,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/25d2969baf8bd256e15b2ab72707682b2d18b40a"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34612,7 +44461,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34628,7 +44478,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34644,7 +44495,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34660,7 +44512,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34676,7 +44529,42 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/2862adc802092f1a422416a1666a5142f71d5d7f"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/28680d04887f96a1167dd913573ec8daa2a39625"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34692,7 +44580,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34708,7 +44597,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/28f54e558b181e294e101447c7a79d976fe36fcb"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34724,7 +44631,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34740,7 +44648,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34756,7 +44665,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34772,7 +44682,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34788,7 +44699,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34804,7 +44716,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34820,7 +44733,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34836,7 +44750,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34852,7 +44767,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34868,7 +44784,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34884,7 +44801,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34900,7 +44818,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34916,7 +44835,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34932,7 +44852,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34948,7 +44869,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34964,7 +44886,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34980,7 +44903,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34996,7 +44920,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35012,7 +44937,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35028,7 +44954,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35044,7 +44971,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35060,7 +44988,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35076,7 +45005,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35092,7 +45022,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35108,7 +45039,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35124,7 +45056,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35140,7 +45073,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35156,7 +45090,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35172,7 +45107,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35188,7 +45124,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35204,7 +45141,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35220,7 +45158,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35236,7 +45175,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35252,7 +45192,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35268,7 +45209,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35284,7 +45226,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35300,7 +45243,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35316,7 +45260,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35332,7 +45277,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/3c01b1f89d50fa37fcb3457cd3dd6502fe84e25b"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35348,7 +45311,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35364,7 +45328,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35380,7 +45345,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35396,7 +45362,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35412,7 +45379,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35428,7 +45396,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/4097094277bc09981f428280fc0cc0f590f20ded"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35444,7 +45430,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35460,7 +45447,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35476,7 +45464,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35492,7 +45481,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35508,7 +45498,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35524,7 +45515,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35540,7 +45532,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/44b6be630161765a3de5872629602ca14789c3bd"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35556,7 +45566,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35572,7 +45583,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35588,7 +45600,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35604,7 +45617,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35620,7 +45634,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35636,7 +45651,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35652,7 +45668,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35668,7 +45685,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/49c5568cb0de363bc9f9298f1eacaace6c8a268a"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35684,7 +45719,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35700,7 +45736,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35716,7 +45753,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35732,7 +45770,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35748,7 +45787,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35764,7 +45804,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35780,7 +45821,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35796,7 +45838,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35812,7 +45855,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35828,7 +45872,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35844,7 +45889,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35860,7 +45906,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35876,7 +45923,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35892,7 +45940,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35908,7 +45957,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35924,7 +45974,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35940,7 +45991,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/54555ceac4403855f4cf20367f7be05714c46c51"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35956,7 +46025,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35972,7 +46042,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35988,7 +46059,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36004,7 +46076,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36020,7 +46093,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/5821752bf8923fdaebc8484662624d8acd382716"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36036,7 +46127,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36052,7 +46144,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36068,7 +46161,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/59d28886db21f371ac9d999b68b116bcf425d971"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36084,7 +46195,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36100,7 +46212,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36116,7 +46229,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36132,7 +46246,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36148,7 +46263,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36164,7 +46280,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36180,7 +46297,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36196,7 +46314,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36212,7 +46331,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36228,7 +46348,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36244,7 +46365,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36260,7 +46382,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36276,7 +46399,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36292,7 +46416,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36308,7 +46433,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36324,7 +46450,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36340,7 +46467,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36356,7 +46484,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36372,7 +46501,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36388,7 +46518,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36404,7 +46535,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36420,7 +46552,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/690158fb146f7f3b3ea820979307a8d8e6f38314"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36436,7 +46586,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36452,7 +46603,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36468,7 +46620,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36484,7 +46637,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36500,7 +46654,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/6ca3910d5f4f7967311853724b072750716dcb48"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36516,7 +46688,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36532,7 +46705,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/6f30de3096eb71f697885fdd9cbddd9ee6ce46c4"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36548,7 +46739,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36564,7 +46756,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36580,7 +46773,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36596,7 +46790,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36612,7 +46807,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36628,7 +46824,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36644,7 +46841,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36660,7 +46858,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36676,7 +46875,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36692,7 +46892,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36708,7 +46909,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36724,7 +46926,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36740,7 +46943,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36756,7 +46960,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36772,7 +46977,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/7f1530d4b702e68d043f89d9e63d314319dcd803"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36788,7 +47011,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36804,7 +47028,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36820,7 +47045,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36836,7 +47062,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36852,7 +47079,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36868,7 +47096,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36884,7 +47113,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36900,7 +47130,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36916,7 +47147,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36932,7 +47164,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36948,7 +47181,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36964,7 +47198,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36980,7 +47215,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36996,7 +47232,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/85a7e47ef707d3b31cad924ed6c697c3678ab569"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37012,7 +47266,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37028,7 +47283,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37044,7 +47300,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37060,7 +47317,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37076,7 +47334,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37092,7 +47351,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37108,7 +47368,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37124,7 +47385,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37140,7 +47402,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37156,7 +47419,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37172,7 +47436,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37188,7 +47453,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37204,7 +47470,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37220,7 +47487,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37236,7 +47504,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37252,7 +47521,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/911e2ea20b6c10431e48f70d9933987815926a9d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37268,7 +47555,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37284,7 +47572,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37300,7 +47589,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37316,7 +47606,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37332,7 +47623,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/93ac93b7deabdfb4f86eb37a1e9f6669957d14a6"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37348,7 +47657,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37364,7 +47674,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37380,7 +47691,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37396,7 +47708,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37412,7 +47725,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37428,7 +47742,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37444,7 +47759,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37460,7 +47776,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37476,7 +47793,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37492,7 +47810,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37508,7 +47827,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37524,7 +47844,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37540,7 +47861,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37556,7 +47878,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37572,7 +47895,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37588,7 +47912,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37604,7 +47929,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37620,7 +47946,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37636,7 +47963,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37652,7 +47980,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37668,7 +47997,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37684,7 +48014,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/9eaf2ad607a943141c29f334b2c66c2e59e99980"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37700,7 +48048,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37716,7 +48065,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37732,7 +48082,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37748,7 +48099,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37764,7 +48116,42 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/a210d629c305b89a34b7ff3c41ae4566cd22186b"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/a29a547671badd3154789e1a02bdb87332fcd6a4"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37780,7 +48167,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37796,7 +48184,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37812,7 +48201,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37828,7 +48218,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37844,7 +48235,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37860,7 +48252,42 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/a5592f15d5424ab7e16a18e77027ab91c846d90a"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/a5cf80b996b2ba8c9580f8ecd22720c48de41044"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37876,7 +48303,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37892,7 +48320,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37908,7 +48337,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37924,7 +48354,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37940,7 +48371,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37956,7 +48388,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37972,7 +48405,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37988,7 +48422,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38004,7 +48439,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38020,7 +48456,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38036,7 +48473,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38052,7 +48490,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38068,7 +48507,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38084,7 +48524,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38100,7 +48541,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38116,7 +48558,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38132,7 +48575,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38148,7 +48592,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38164,7 +48609,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38180,7 +48626,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38196,7 +48643,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38212,7 +48660,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38228,7 +48677,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/b24c25c6d4b57a5f3d64a0adb205bf4f150c9138"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38244,7 +48711,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38260,7 +48728,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38276,7 +48745,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38292,7 +48762,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38308,7 +48779,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38324,7 +48796,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38340,7 +48813,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38356,7 +48830,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38372,7 +48847,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38388,7 +48864,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38404,7 +48881,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38420,7 +48898,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38436,7 +48915,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38452,7 +48932,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38468,7 +48949,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38484,7 +48966,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38500,7 +48983,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38516,7 +49000,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38532,7 +49017,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38548,7 +49034,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38564,7 +49051,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/beabbe93f1e9b2e56f729af30559ec03a00f53fa"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38580,7 +49085,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38596,7 +49102,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38612,7 +49119,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38628,7 +49136,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38644,7 +49153,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38660,7 +49170,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38676,7 +49187,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38692,7 +49204,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38708,7 +49221,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38724,7 +49238,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38740,7 +49255,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38756,7 +49272,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38772,7 +49289,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38788,7 +49306,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38804,7 +49323,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/cbe59c62c6d36c7307c438159327e320cd2fcf57"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38820,7 +49357,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38836,7 +49374,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38852,7 +49391,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38868,7 +49408,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/ce1c326f3b0147841550ce3b5126390764bae8e8"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38884,7 +49442,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38900,7 +49459,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38916,7 +49476,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38932,7 +49493,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38948,7 +49510,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38964,7 +49527,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38980,7 +49544,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38996,7 +49561,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39012,7 +49578,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39028,7 +49595,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39044,7 +49612,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39060,7 +49629,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39076,7 +49646,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39092,7 +49663,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39108,7 +49680,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/d21ca2b01baa21a666257d1a1e0275587eeb565d"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39124,7 +49714,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39140,7 +49731,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39156,7 +49748,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39172,7 +49765,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/d2f71a800612876010558ce804c9a72ad0a1b9fc"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39188,7 +49799,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39204,7 +49816,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39220,7 +49833,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39236,7 +49850,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39252,7 +49867,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39268,7 +49884,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/d637cc9387087de633b9db535d19f64795c43be1"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39284,7 +49918,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39300,7 +49935,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39316,7 +49952,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39332,7 +49969,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39348,7 +49986,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39364,7 +50003,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39380,7 +50020,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39396,7 +50037,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39412,7 +50054,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39428,7 +50071,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39444,7 +50088,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39460,7 +50105,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39476,7 +50122,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39492,7 +50139,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/dd5ac34f5b220970447b2733848de78570c47883"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39508,7 +50173,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39524,7 +50190,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39540,7 +50207,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39556,7 +50224,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39572,7 +50241,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39588,7 +50258,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39604,7 +50275,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39620,7 +50292,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39636,7 +50309,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39652,7 +50326,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39668,7 +50343,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39684,7 +50360,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39700,7 +50377,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39716,7 +50394,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39732,7 +50411,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39748,7 +50428,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39764,7 +50445,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39780,7 +50462,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39796,7 +50479,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39812,7 +50496,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39828,7 +50513,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39844,7 +50530,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39860,7 +50547,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39876,7 +50564,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39892,7 +50581,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39908,7 +50598,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39924,7 +50615,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39940,7 +50632,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39956,7 +50649,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39972,7 +50666,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39988,7 +50683,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40004,7 +50700,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40020,7 +50717,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40036,7 +50734,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40052,7 +50751,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40068,7 +50768,25 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
+ },
+ {
+ "args": [
+ "test/core/end2end/fuzzers/client_fuzzer_corpus/f2a6bb4e0137541e2b140b976764377d07d822d6"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "client_fuzzer_one_entry",
+ "platforms": [
+ "linux"
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40084,7 +50802,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40100,7 +50819,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40116,7 +50836,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40132,7 +50853,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40148,7 +50870,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40164,7 +50887,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40180,7 +50904,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40196,7 +50921,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40212,7 +50938,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40228,7 +50955,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40244,7 +50972,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40260,7 +50989,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40276,7 +51006,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40292,7 +51023,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40308,7 +51040,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40324,7 +51057,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40340,7 +51074,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40356,7 +51091,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40372,7 +51108,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40388,7 +51125,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40404,7 +51142,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40420,7 +51159,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40436,7 +51176,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40452,7 +51193,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40468,7 +51210,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40484,7 +51227,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40500,7 +51244,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40516,7 +51261,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40532,7 +51278,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40548,7 +51295,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40564,7 +51312,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40580,7 +51329,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40596,7 +51346,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40612,7 +51363,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40628,7 +51380,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40644,7 +51397,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40660,7 +51414,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40676,7 +51431,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40692,7 +51448,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40708,7 +51465,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40724,7 +51482,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40740,7 +51499,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40756,7 +51516,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40772,7 +51533,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40788,7 +51550,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40804,7 +51567,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40820,7 +51584,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40836,7 +51601,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40852,7 +51618,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40868,7 +51635,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40884,7 +51652,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40900,7 +51669,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40916,7 +51686,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40932,7 +51703,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40948,7 +51720,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40964,7 +51737,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40980,7 +51754,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40996,7 +51771,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41012,7 +51788,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41028,7 +51805,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41044,7 +51822,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41060,7 +51839,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41076,7 +51856,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41092,7 +51873,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41108,7 +51890,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41124,7 +51907,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41140,7 +51924,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41156,7 +51941,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41172,7 +51958,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41188,7 +51975,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41204,7 +51992,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41220,7 +52009,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41236,7 +52026,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41252,7 +52043,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41268,7 +52060,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41284,7 +52077,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41300,7 +52094,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41316,7 +52111,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41332,7 +52128,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41348,7 +52145,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41364,7 +52162,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41380,7 +52179,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41396,7 +52196,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41412,7 +52213,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41428,7 +52230,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41444,7 +52247,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41460,7 +52264,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41476,7 +52281,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41492,7 +52298,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41508,7 +52315,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41524,7 +52332,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41540,7 +52349,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41556,7 +52366,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41572,7 +52383,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41588,7 +52400,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41604,7 +52417,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41620,7 +52434,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41636,7 +52451,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41652,7 +52468,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41668,7 +52485,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41684,7 +52502,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41700,7 +52519,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41716,7 +52536,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41732,7 +52553,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41748,7 +52570,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41764,7 +52587,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41780,7 +52604,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41796,7 +52621,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41812,7 +52638,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41828,7 +52655,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41844,7 +52672,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41860,7 +52689,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41876,7 +52706,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41892,7 +52723,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41908,7 +52740,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41924,7 +52757,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41940,7 +52774,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41956,7 +52791,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41972,7 +52808,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41988,7 +52825,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42004,7 +52842,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42020,7 +52859,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42036,7 +52876,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42052,7 +52893,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42068,7 +52910,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42084,7 +52927,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42100,7 +52944,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42116,7 +52961,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42132,7 +52978,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42148,7 +52995,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42164,7 +53012,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42180,7 +53029,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42196,7 +53046,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42212,7 +53063,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42228,7 +53080,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42244,7 +53097,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42260,7 +53114,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42276,7 +53131,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42292,7 +53148,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42308,7 +53165,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42324,7 +53182,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42340,7 +53199,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42356,7 +53216,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42372,7 +53233,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42388,7 +53250,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42404,7 +53267,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42420,7 +53284,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42436,7 +53301,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42452,7 +53318,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42468,7 +53335,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42484,7 +53352,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42500,7 +53369,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42516,7 +53386,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42532,7 +53403,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42548,7 +53420,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42564,7 +53437,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42580,7 +53454,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42596,7 +53471,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42612,7 +53488,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42628,7 +53505,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42644,7 +53522,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42660,7 +53539,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42676,7 +53556,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42692,7 +53573,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42708,7 +53590,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42724,7 +53607,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42740,7 +53624,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42756,7 +53641,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42772,7 +53658,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42788,7 +53675,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42804,7 +53692,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42820,7 +53709,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42836,7 +53726,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42852,7 +53743,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42868,7 +53760,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42884,7 +53777,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42900,7 +53794,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42916,7 +53811,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42932,7 +53828,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42948,7 +53845,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42964,7 +53862,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42980,7 +53879,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42996,7 +53896,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43012,7 +53913,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43028,7 +53930,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43044,7 +53947,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43060,7 +53964,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43076,7 +53981,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43092,7 +53998,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43108,7 +54015,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43124,7 +54032,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43140,7 +54049,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43156,7 +54066,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43172,7 +54083,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43188,7 +54100,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43204,7 +54117,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43220,7 +54134,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43236,7 +54151,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43252,7 +54168,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43268,7 +54185,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43284,7 +54202,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43300,7 +54219,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43316,7 +54236,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43332,7 +54253,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43348,7 +54270,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43364,7 +54287,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43380,7 +54304,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43396,7 +54321,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43412,7 +54338,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43428,7 +54355,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43444,7 +54372,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43460,7 +54389,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43476,7 +54406,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43492,7 +54423,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43508,7 +54440,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43524,7 +54457,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43540,7 +54474,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43556,7 +54491,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43572,7 +54508,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43588,7 +54525,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43604,7 +54542,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43620,7 +54559,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43636,7 +54576,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43652,7 +54593,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43668,7 +54610,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43684,7 +54627,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43700,7 +54644,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43716,7 +54661,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43732,7 +54678,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43748,7 +54695,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43764,7 +54712,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43780,7 +54729,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43796,7 +54746,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43812,7 +54763,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43828,7 +54780,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43844,7 +54797,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43860,7 +54814,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43876,7 +54831,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43892,7 +54848,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43908,7 +54865,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43924,7 +54882,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43940,7 +54899,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43956,7 +54916,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43972,7 +54933,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43988,7 +54950,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44004,7 +54967,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44020,7 +54984,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44036,7 +55001,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44052,7 +55018,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44068,7 +55035,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44084,7 +55052,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44100,7 +55069,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44116,7 +55086,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44132,7 +55103,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44148,7 +55120,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44164,7 +55137,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44180,7 +55154,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44196,7 +55171,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44212,7 +55188,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44228,7 +55205,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44244,7 +55222,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44260,7 +55239,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44276,7 +55256,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44292,7 +55273,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44308,7 +55290,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44324,7 +55307,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44340,7 +55324,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44356,7 +55341,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44372,7 +55358,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44388,7 +55375,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44404,7 +55392,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44420,7 +55409,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44436,7 +55426,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44452,7 +55443,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44468,7 +55460,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44484,7 +55477,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44500,7 +55494,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44516,7 +55511,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44532,7 +55528,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44548,7 +55545,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44564,7 +55562,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44580,7 +55579,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44596,7 +55596,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44612,7 +55613,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44628,7 +55630,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44644,7 +55647,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44660,7 +55664,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44676,7 +55681,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44692,7 +55698,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44708,7 +55715,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44724,7 +55732,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44740,7 +55749,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44756,7 +55766,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44772,7 +55783,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44788,7 +55800,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44804,7 +55817,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44820,7 +55834,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44836,7 +55851,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44852,7 +55868,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44868,7 +55885,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44884,7 +55902,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44900,7 +55919,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44916,7 +55936,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44932,7 +55953,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44948,7 +55970,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44964,7 +55987,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44980,7 +56004,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44996,7 +56021,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45012,7 +56038,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45028,7 +56055,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45044,7 +56072,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45060,7 +56089,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45076,7 +56106,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45092,7 +56123,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45108,7 +56140,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45124,7 +56157,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45140,7 +56174,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45156,7 +56191,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45172,7 +56208,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45188,7 +56225,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45204,7 +56242,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45220,7 +56259,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45236,7 +56276,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45252,7 +56293,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45268,7 +56310,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45284,7 +56327,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45300,7 +56344,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45316,7 +56361,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45332,7 +56378,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45348,7 +56395,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45364,7 +56412,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45380,7 +56429,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45396,7 +56446,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45412,7 +56463,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45428,7 +56480,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45444,7 +56497,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45460,7 +56514,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45476,7 +56531,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45492,7 +56548,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45508,7 +56565,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45524,7 +56582,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45540,7 +56599,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45556,7 +56616,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45572,7 +56633,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45588,7 +56650,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45604,7 +56667,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45620,7 +56684,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45636,7 +56701,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45652,7 +56718,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45668,7 +56735,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45684,7 +56752,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45700,7 +56769,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45716,7 +56786,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45732,7 +56803,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45748,7 +56820,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45764,7 +56837,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45780,7 +56854,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45796,7 +56871,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45812,7 +56888,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45828,7 +56905,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45844,7 +56922,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45860,7 +56939,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45876,7 +56956,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45892,7 +56973,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45908,7 +56990,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45924,7 +57007,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45940,7 +57024,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45956,7 +57041,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45972,7 +57058,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45988,7 +57075,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46004,7 +57092,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46020,7 +57109,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46036,7 +57126,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46052,7 +57143,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46068,7 +57160,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46084,7 +57177,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46100,7 +57194,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46116,7 +57211,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46132,7 +57228,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46148,7 +57245,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46164,7 +57262,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46180,7 +57279,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46196,7 +57296,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46212,7 +57313,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46228,7 +57330,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46244,7 +57347,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46260,7 +57364,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46276,7 +57381,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46292,7 +57398,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46308,7 +57415,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46324,7 +57432,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46340,7 +57449,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46356,7 +57466,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46372,7 +57483,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46388,7 +57500,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46404,7 +57517,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46420,7 +57534,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46436,7 +57551,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46452,7 +57568,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46468,7 +57585,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46484,7 +57602,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46500,7 +57619,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46516,7 +57636,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46532,7 +57653,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46548,7 +57670,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46564,7 +57687,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46580,7 +57704,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46596,7 +57721,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46612,7 +57738,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46628,7 +57755,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46644,7 +57772,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46660,7 +57789,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46676,7 +57806,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46692,7 +57823,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46708,7 +57840,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46724,7 +57857,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46740,7 +57874,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46756,7 +57891,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46772,7 +57908,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46788,7 +57925,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46804,7 +57942,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46820,7 +57959,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46836,7 +57976,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46852,7 +57993,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46868,7 +58010,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46884,7 +58027,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46900,7 +58044,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46916,7 +58061,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46932,7 +58078,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46948,7 +58095,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46964,7 +58112,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46980,7 +58129,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46996,7 +58146,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47012,7 +58163,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47028,7 +58180,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47044,7 +58197,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47060,7 +58214,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47076,7 +58231,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47092,7 +58248,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47108,7 +58265,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47124,7 +58282,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47140,7 +58299,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47156,7 +58316,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47172,7 +58333,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47188,7 +58350,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47204,7 +58367,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47220,7 +58384,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47236,7 +58401,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47252,7 +58418,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47268,7 +58435,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47284,7 +58452,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47300,7 +58469,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47316,7 +58486,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47332,7 +58503,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47348,7 +58520,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47364,7 +58537,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47380,7 +58554,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47396,7 +58571,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47412,7 +58588,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47428,7 +58605,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47444,7 +58622,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47460,7 +58639,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47476,7 +58656,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47492,7 +58673,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47508,7 +58690,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47524,7 +58707,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47540,7 +58724,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47556,7 +58741,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47572,7 +58758,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47588,7 +58775,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47604,7 +58792,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47620,7 +58809,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47636,7 +58826,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47652,7 +58843,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47668,7 +58860,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47684,7 +58877,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47700,7 +58894,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47716,7 +58911,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47732,7 +58928,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47748,7 +58945,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47764,7 +58962,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47780,7 +58979,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47796,7 +58996,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47812,7 +59013,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47828,7 +59030,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47844,7 +59047,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47860,7 +59064,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47876,7 +59081,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47892,7 +59098,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47908,7 +59115,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47924,7 +59132,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47940,7 +59149,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47956,7 +59166,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47972,7 +59183,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47988,7 +59200,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48004,7 +59217,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48020,7 +59234,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48036,7 +59251,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48052,7 +59268,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48068,7 +59285,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48084,7 +59302,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48100,7 +59319,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48116,7 +59336,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48132,7 +59353,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48148,7 +59370,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48164,7 +59387,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48180,7 +59404,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48196,7 +59421,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48212,7 +59438,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48228,7 +59455,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48244,7 +59472,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48260,7 +59489,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48276,7 +59506,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48292,7 +59523,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48308,7 +59540,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48324,7 +59557,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48340,7 +59574,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48356,7 +59591,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48372,7 +59608,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48388,7 +59625,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48404,7 +59642,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48420,7 +59659,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48436,7 +59676,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48452,7 +59693,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48468,7 +59710,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48484,7 +59727,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48500,7 +59744,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48516,7 +59761,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48532,7 +59778,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48548,7 +59795,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48564,7 +59812,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48580,7 +59829,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48596,7 +59846,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48612,7 +59863,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48628,7 +59880,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48644,7 +59897,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48660,7 +59914,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48676,7 +59931,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48692,7 +59948,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48708,7 +59965,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48724,7 +59982,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48740,7 +59999,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48756,7 +60016,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48772,7 +60033,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48788,7 +60050,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48804,7 +60067,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48820,7 +60084,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48836,7 +60101,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48852,7 +60118,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48868,7 +60135,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48884,7 +60152,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48900,7 +60169,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48916,7 +60186,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48932,7 +60203,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48948,7 +60220,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48964,7 +60237,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48980,7 +60254,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48996,7 +60271,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49012,7 +60288,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49028,7 +60305,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49044,7 +60322,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49060,7 +60339,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49076,7 +60356,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49092,7 +60373,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49108,7 +60390,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49124,7 +60407,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49140,7 +60424,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49156,7 +60441,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49172,7 +60458,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49188,7 +60475,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49204,7 +60492,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49220,7 +60509,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49236,7 +60526,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49252,7 +60543,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49268,7 +60560,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49284,7 +60577,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49300,7 +60594,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49316,7 +60611,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49332,7 +60628,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49348,7 +60645,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49364,7 +60662,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49380,7 +60679,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49396,7 +60696,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49412,7 +60713,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49428,7 +60730,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49444,7 +60747,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49460,7 +60764,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49476,7 +60781,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49492,7 +60798,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49508,7 +60815,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49524,7 +60832,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49540,7 +60849,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49556,7 +60866,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49572,7 +60883,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49588,7 +60900,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49604,7 +60917,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49620,7 +60934,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49636,7 +60951,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49652,7 +60968,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49668,7 +60985,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49684,7 +61002,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49700,7 +61019,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49716,7 +61036,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49732,7 +61053,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49748,7 +61070,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49764,7 +61087,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49780,7 +61104,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49796,7 +61121,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49812,7 +61138,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49828,7 +61155,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49844,7 +61172,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49860,7 +61189,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49876,7 +61206,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49892,7 +61223,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49908,7 +61240,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49924,7 +61257,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49940,7 +61274,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49956,7 +61291,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49972,7 +61308,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49988,7 +61325,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50004,7 +61342,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50020,7 +61359,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50036,7 +61376,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50052,7 +61393,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50068,7 +61410,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50084,7 +61427,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50100,7 +61444,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50116,7 +61461,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50132,7 +61478,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50148,7 +61495,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50164,7 +61512,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50180,7 +61529,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50196,7 +61546,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50212,7 +61563,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50228,7 +61580,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50244,7 +61597,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50260,7 +61614,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50276,7 +61631,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50292,7 +61648,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50308,7 +61665,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50324,7 +61682,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50340,7 +61699,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50356,7 +61716,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50372,7 +61733,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50388,7 +61750,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50404,7 +61767,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50420,7 +61784,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50436,7 +61801,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50452,7 +61818,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50468,7 +61835,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50484,7 +61852,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50500,7 +61869,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50516,7 +61886,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50532,7 +61903,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50548,7 +61920,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50564,7 +61937,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50580,7 +61954,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50596,7 +61971,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50612,7 +61988,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50628,7 +62005,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50644,7 +62022,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50660,7 +62039,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50676,7 +62056,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50692,7 +62073,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50708,7 +62090,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50724,7 +62107,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50740,7 +62124,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50756,7 +62141,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50772,7 +62158,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50788,7 +62175,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50804,7 +62192,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50820,7 +62209,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50836,7 +62226,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50852,7 +62243,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50868,7 +62260,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50884,7 +62277,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50900,7 +62294,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50916,7 +62311,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50932,7 +62328,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50948,7 +62345,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50964,7 +62362,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50980,7 +62379,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50996,7 +62396,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51012,7 +62413,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51028,7 +62430,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51044,7 +62447,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51060,7 +62464,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51076,7 +62481,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51092,7 +62498,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51108,7 +62515,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51124,7 +62532,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51140,7 +62549,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51156,7 +62566,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51172,7 +62583,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51188,7 +62600,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51204,7 +62617,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51220,7 +62634,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51236,7 +62651,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51252,7 +62668,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51268,7 +62685,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51284,7 +62702,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51300,7 +62719,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51316,7 +62736,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51332,7 +62753,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51348,7 +62770,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51364,7 +62787,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51380,7 +62804,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51396,7 +62821,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51412,7 +62838,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51428,7 +62855,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51444,7 +62872,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51460,7 +62889,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51476,7 +62906,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51492,7 +62923,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51508,7 +62940,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51524,7 +62957,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51540,7 +62974,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51556,7 +62991,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51572,7 +63008,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51588,7 +63025,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51604,7 +63042,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51620,7 +63059,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51636,7 +63076,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51652,7 +63093,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51668,7 +63110,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51684,7 +63127,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51700,7 +63144,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51716,7 +63161,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51732,7 +63178,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51748,7 +63195,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51764,7 +63212,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51780,7 +63229,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51796,7 +63246,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51812,7 +63263,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51828,7 +63280,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51844,7 +63297,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51860,7 +63314,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51876,7 +63331,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51892,7 +63348,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51908,7 +63365,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51924,7 +63382,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51940,7 +63399,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51956,7 +63416,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51972,7 +63433,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51988,7 +63450,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52004,7 +63467,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52020,7 +63484,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52036,7 +63501,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52052,7 +63518,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52068,7 +63535,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52084,7 +63552,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52100,7 +63569,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52116,7 +63586,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52132,7 +63603,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52148,7 +63620,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52164,7 +63637,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52180,7 +63654,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52196,7 +63671,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52212,7 +63688,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52228,7 +63705,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52244,7 +63722,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52260,7 +63739,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52276,7 +63756,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52292,7 +63773,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52308,7 +63790,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52324,7 +63807,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52340,7 +63824,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52356,7 +63841,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52372,7 +63858,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52388,7 +63875,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52404,7 +63892,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52420,7 +63909,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52436,7 +63926,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52452,7 +63943,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52468,7 +63960,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52484,7 +63977,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52500,7 +63994,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52516,7 +64011,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52532,7 +64028,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52548,7 +64045,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52564,7 +64062,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52580,7 +64079,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52596,7 +64096,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52612,7 +64113,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52628,7 +64130,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52644,7 +64147,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52660,7 +64164,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52676,7 +64181,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52692,7 +64198,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52708,7 +64215,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52724,7 +64232,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52740,7 +64249,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52756,7 +64266,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52772,7 +64283,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52788,7 +64300,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52804,7 +64317,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52820,7 +64334,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52836,7 +64351,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52852,7 +64368,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52868,7 +64385,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52884,7 +64402,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52900,7 +64419,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52916,7 +64436,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52932,7 +64453,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52948,7 +64470,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52964,7 +64487,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52980,7 +64504,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52996,7 +64521,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53012,7 +64538,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53028,7 +64555,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53044,7 +64572,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53060,7 +64589,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53076,7 +64606,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53092,7 +64623,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53108,7 +64640,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53124,7 +64657,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53140,7 +64674,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53156,7 +64691,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53172,7 +64708,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53188,7 +64725,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53204,7 +64742,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53220,7 +64759,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53236,7 +64776,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53252,7 +64793,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53268,7 +64810,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53284,7 +64827,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53300,7 +64844,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53316,7 +64861,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53332,7 +64878,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53348,7 +64895,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53364,7 +64912,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53380,7 +64929,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53396,7 +64946,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53412,7 +64963,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53428,7 +64980,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53444,7 +64997,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53460,7 +65014,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53476,7 +65031,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53492,7 +65048,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53508,7 +65065,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53524,7 +65082,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53540,7 +65099,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53556,7 +65116,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53572,7 +65133,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53588,7 +65150,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53604,7 +65167,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53620,7 +65184,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53636,7 +65201,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53652,7 +65218,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53668,7 +65235,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53684,7 +65252,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53700,7 +65269,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53716,7 +65286,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53732,7 +65303,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53748,7 +65320,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53764,7 +65337,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53780,7 +65354,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53796,7 +65371,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53812,7 +65388,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53828,7 +65405,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53844,7 +65422,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53860,7 +65439,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53876,7 +65456,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53892,7 +65473,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53908,7 +65490,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53924,7 +65507,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53940,7 +65524,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53956,7 +65541,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53972,7 +65558,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53988,7 +65575,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54004,7 +65592,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54020,7 +65609,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54036,7 +65626,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54052,7 +65643,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54068,7 +65660,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54084,7 +65677,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54100,7 +65694,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54116,7 +65711,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54132,7 +65728,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54148,7 +65745,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54164,7 +65762,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54180,7 +65779,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54196,7 +65796,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54212,7 +65813,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54228,7 +65830,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54244,7 +65847,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54260,7 +65864,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54276,7 +65881,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54292,7 +65898,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54308,7 +65915,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54324,7 +65932,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54340,7 +65949,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54356,7 +65966,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54372,7 +65983,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54388,7 +66000,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54404,7 +66017,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54420,7 +66034,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54436,7 +66051,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54452,7 +66068,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54468,7 +66085,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54484,7 +66102,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54500,7 +66119,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54516,7 +66136,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54532,7 +66153,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54548,7 +66170,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54564,7 +66187,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54580,7 +66204,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54596,7 +66221,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54612,7 +66238,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54628,7 +66255,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54644,7 +66272,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54660,7 +66289,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54676,7 +66306,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54692,7 +66323,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54708,7 +66340,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54724,7 +66357,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54740,7 +66374,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54756,7 +66391,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54772,7 +66408,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54788,7 +66425,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54804,7 +66442,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54820,7 +66459,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54836,7 +66476,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54852,7 +66493,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54868,7 +66510,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54884,7 +66527,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54900,7 +66544,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54916,7 +66561,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54932,7 +66578,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54948,7 +66595,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54964,7 +66612,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54980,7 +66629,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54996,7 +66646,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55012,7 +66663,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55028,7 +66680,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55044,7 +66697,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55060,7 +66714,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55076,7 +66731,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55092,7 +66748,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55108,7 +66765,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55124,7 +66782,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55140,7 +66799,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55156,7 +66816,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55172,7 +66833,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55188,7 +66850,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55204,7 +66867,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55220,7 +66884,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55236,7 +66901,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55252,7 +66918,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55268,7 +66935,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55284,7 +66952,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55300,7 +66969,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55316,7 +66986,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55332,7 +67003,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55348,7 +67020,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55364,7 +67037,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55380,7 +67054,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55396,7 +67071,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55412,7 +67088,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55428,7 +67105,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55444,7 +67122,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55460,7 +67139,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55476,7 +67156,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55492,7 +67173,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55508,7 +67190,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55524,7 +67207,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55540,7 +67224,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55556,7 +67241,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55572,7 +67258,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55588,7 +67275,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55604,7 +67292,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55620,7 +67309,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55636,7 +67326,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55652,7 +67343,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55668,7 +67360,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55684,7 +67377,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55700,7 +67394,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55716,7 +67411,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55732,7 +67428,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55748,7 +67445,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55764,7 +67462,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55780,7 +67479,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55796,7 +67496,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55812,7 +67513,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55828,7 +67530,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55844,7 +67547,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55860,7 +67564,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55876,7 +67581,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55892,7 +67598,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55908,7 +67615,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55924,7 +67632,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55940,7 +67649,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55956,7 +67666,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55972,7 +67683,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55988,7 +67700,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56004,7 +67717,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56020,7 +67734,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56036,7 +67751,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56052,7 +67768,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56068,7 +67785,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56084,7 +67802,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56100,7 +67819,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56116,7 +67836,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56132,7 +67853,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56148,7 +67870,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56164,7 +67887,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56180,7 +67904,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56196,7 +67921,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56212,7 +67938,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56228,7 +67955,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56244,7 +67972,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56260,7 +67989,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56276,7 +68006,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56292,7 +68023,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56308,7 +68040,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56324,7 +68057,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56340,7 +68074,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56356,7 +68091,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56372,7 +68108,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56388,7 +68125,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56404,7 +68142,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56420,7 +68159,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56436,7 +68176,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56452,7 +68193,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56468,7 +68210,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56484,7 +68227,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56500,7 +68244,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56516,7 +68261,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56532,7 +68278,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56548,7 +68295,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56564,7 +68312,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56580,7 +68329,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56596,7 +68346,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56612,7 +68363,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56628,7 +68380,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56644,7 +68397,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56660,7 +68414,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56676,7 +68431,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56692,7 +68448,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56708,7 +68465,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56724,7 +68482,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56740,7 +68499,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56756,7 +68516,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56772,7 +68533,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56788,7 +68550,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56804,7 +68567,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56820,7 +68584,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56836,7 +68601,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56852,7 +68618,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56868,7 +68635,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56884,7 +68652,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56900,7 +68669,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56916,7 +68686,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56932,7 +68703,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56948,7 +68720,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56964,7 +68737,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56980,7 +68754,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56996,7 +68771,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57012,7 +68788,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57028,7 +68805,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57044,7 +68822,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57060,7 +68839,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57076,7 +68856,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57092,7 +68873,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57108,7 +68890,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57124,7 +68907,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57140,7 +68924,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57156,7 +68941,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57172,7 +68958,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57188,7 +68975,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57204,7 +68992,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57220,7 +69009,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57236,7 +69026,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57252,7 +69043,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57268,7 +69060,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57284,7 +69077,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57300,7 +69094,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57316,7 +69111,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57332,7 +69128,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57348,7 +69145,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57364,7 +69162,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57380,7 +69179,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57396,7 +69196,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57412,7 +69213,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57428,7 +69230,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57444,7 +69247,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57460,7 +69264,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57476,7 +69281,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57492,7 +69298,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57508,7 +69315,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57524,7 +69332,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57540,7 +69349,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57556,7 +69366,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57572,7 +69383,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57588,7 +69400,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57604,7 +69417,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57620,7 +69434,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57636,7 +69451,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57652,7 +69468,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57668,7 +69485,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57684,7 +69502,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57700,7 +69519,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57716,7 +69536,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57732,7 +69553,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57748,7 +69570,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57764,7 +69587,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57780,7 +69604,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57796,7 +69621,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57812,7 +69638,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57828,7 +69655,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57844,7 +69672,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57860,7 +69689,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57876,7 +69706,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57892,7 +69723,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57908,7 +69740,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57924,7 +69757,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57940,7 +69774,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57956,7 +69791,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57972,7 +69808,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57988,7 +69825,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58004,7 +69842,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58020,7 +69859,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58036,7 +69876,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58052,7 +69893,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58068,7 +69910,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58084,7 +69927,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58100,7 +69944,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58116,7 +69961,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58132,7 +69978,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58148,7 +69995,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58164,7 +70012,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58180,7 +70029,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58196,7 +70046,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58212,7 +70063,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58228,7 +70080,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58244,7 +70097,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58260,7 +70114,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58276,7 +70131,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58292,7 +70148,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58308,7 +70165,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58324,7 +70182,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58340,7 +70199,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58356,7 +70216,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58372,7 +70233,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58388,7 +70250,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58404,7 +70267,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58420,7 +70284,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58436,7 +70301,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58452,7 +70318,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58468,7 +70335,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58484,7 +70352,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58500,7 +70369,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58516,7 +70386,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58532,7 +70403,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58548,7 +70420,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58564,7 +70437,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58580,7 +70454,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58596,7 +70471,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58612,7 +70488,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58628,7 +70505,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58644,7 +70522,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58660,7 +70539,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58676,7 +70556,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58692,7 +70573,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58708,7 +70590,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58724,7 +70607,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58740,7 +70624,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58756,7 +70641,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58772,7 +70658,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58788,7 +70675,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58804,7 +70692,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58820,7 +70709,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58836,7 +70726,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58852,7 +70743,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58868,7 +70760,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58884,7 +70777,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58900,7 +70794,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58916,7 +70811,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58932,7 +70828,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58948,7 +70845,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58964,7 +70862,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58980,7 +70879,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58996,7 +70896,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59012,7 +70913,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59028,7 +70930,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59044,7 +70947,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59060,7 +70964,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59076,7 +70981,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59092,7 +70998,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59108,7 +71015,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59124,7 +71032,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59140,7 +71049,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59156,7 +71066,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59172,7 +71083,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59188,7 +71100,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59204,7 +71117,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59220,7 +71134,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59236,7 +71151,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59252,7 +71168,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59268,7 +71185,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59284,7 +71202,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59300,7 +71219,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59316,7 +71236,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59332,7 +71253,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59348,7 +71270,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59364,7 +71287,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59380,7 +71304,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59396,7 +71321,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59412,7 +71338,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59428,7 +71355,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59444,7 +71372,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59460,7 +71389,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59476,7 +71406,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59492,7 +71423,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59508,7 +71440,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59524,7 +71457,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59540,7 +71474,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59556,7 +71491,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59572,7 +71508,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59588,7 +71525,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59604,7 +71542,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59620,7 +71559,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59636,7 +71576,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59652,7 +71593,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59668,7 +71610,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59684,7 +71627,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59700,7 +71644,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59716,7 +71661,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59732,7 +71678,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59748,7 +71695,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59764,7 +71712,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59780,7 +71729,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59796,7 +71746,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59812,7 +71763,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59828,7 +71780,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59844,7 +71797,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59860,7 +71814,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59876,7 +71831,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59892,7 +71848,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59908,7 +71865,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59924,7 +71882,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59940,7 +71899,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59956,7 +71916,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59972,7 +71933,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59988,7 +71950,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60004,7 +71967,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60020,7 +71984,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60036,7 +72001,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60052,7 +72018,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60068,7 +72035,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60084,7 +72052,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60100,7 +72069,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60116,7 +72086,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60132,7 +72103,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60148,7 +72120,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60164,7 +72137,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60180,7 +72154,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60196,7 +72171,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60212,7 +72188,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60228,7 +72205,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60244,7 +72222,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60260,7 +72239,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60276,7 +72256,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60292,7 +72273,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60308,7 +72290,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60324,7 +72307,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60340,7 +72324,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60356,7 +72341,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60372,7 +72358,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60388,7 +72375,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60404,7 +72392,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60420,7 +72409,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60436,7 +72426,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60452,7 +72443,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60468,7 +72460,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60484,7 +72477,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60500,7 +72494,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60516,7 +72511,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60532,7 +72528,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60548,7 +72545,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60564,7 +72562,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60580,7 +72579,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60596,7 +72596,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60612,7 +72613,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60628,7 +72630,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60644,7 +72647,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60660,7 +72664,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60676,7 +72681,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60692,7 +72698,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60708,7 +72715,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60724,7 +72732,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60740,7 +72749,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60756,7 +72766,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60772,7 +72783,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60788,7 +72800,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60804,7 +72817,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60820,7 +72834,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60836,7 +72851,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60852,7 +72868,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60868,7 +72885,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60884,7 +72902,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60900,7 +72919,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60916,7 +72936,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60932,7 +72953,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60948,7 +72970,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60964,7 +72987,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60980,7 +73004,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60996,7 +73021,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61012,7 +73038,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61028,7 +73055,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61044,7 +73072,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61060,7 +73089,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61076,7 +73106,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61092,7 +73123,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61108,7 +73140,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61124,7 +73157,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61140,7 +73174,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61156,7 +73191,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61172,7 +73208,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61188,7 +73225,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61204,7 +73242,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61220,7 +73259,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61236,7 +73276,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61252,7 +73293,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61268,7 +73310,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61284,7 +73327,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61300,7 +73344,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61316,7 +73361,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61332,7 +73378,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61348,7 +73395,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61364,7 +73412,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61380,7 +73429,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61396,7 +73446,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61412,7 +73463,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61428,7 +73480,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61444,7 +73497,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61460,7 +73514,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61476,7 +73531,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61492,7 +73548,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61508,7 +73565,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61524,7 +73582,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61540,7 +73599,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61556,7 +73616,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61572,7 +73633,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61588,7 +73650,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61604,7 +73667,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61620,7 +73684,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61636,7 +73701,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61652,7 +73718,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61668,7 +73735,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61684,7 +73752,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61700,7 +73769,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61716,7 +73786,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61732,7 +73803,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61748,7 +73820,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61764,7 +73837,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61780,7 +73854,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61796,7 +73871,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61812,7 +73888,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61828,7 +73905,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61844,7 +73922,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61860,7 +73939,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61876,7 +73956,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61892,7 +73973,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61908,7 +73990,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61924,7 +74007,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61940,7 +74024,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61956,7 +74041,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61972,7 +74058,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61988,7 +74075,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62004,7 +74092,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62020,7 +74109,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62036,7 +74126,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62052,7 +74143,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62068,7 +74160,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62084,7 +74177,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62100,7 +74194,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62116,7 +74211,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62132,7 +74228,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62148,7 +74245,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62164,7 +74262,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62180,7 +74279,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62196,7 +74296,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62212,7 +74313,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62228,7 +74330,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62244,7 +74347,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62260,7 +74364,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62276,7 +74381,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62292,7 +74398,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62308,7 +74415,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62324,7 +74432,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62340,7 +74449,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62356,7 +74466,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62372,7 +74483,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62388,7 +74500,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62404,7 +74517,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62420,7 +74534,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62436,7 +74551,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62452,7 +74568,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62468,7 +74585,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62484,7 +74602,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62500,7 +74619,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62516,7 +74636,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62532,7 +74653,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62548,7 +74670,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62564,7 +74687,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62580,7 +74704,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62596,7 +74721,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62612,7 +74738,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62628,7 +74755,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62644,7 +74772,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62660,7 +74789,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62676,7 +74806,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62692,7 +74823,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62708,7 +74840,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62724,7 +74857,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62740,7 +74874,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62756,7 +74891,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62772,7 +74908,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62788,7 +74925,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62804,7 +74942,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62820,7 +74959,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62836,7 +74976,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62852,7 +74993,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62868,7 +75010,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62884,7 +75027,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62900,7 +75044,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62916,7 +75061,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62932,7 +75078,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62948,7 +75095,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62964,7 +75112,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62980,7 +75129,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62996,7 +75146,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63012,7 +75163,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63028,7 +75180,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63044,7 +75197,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63060,7 +75214,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63076,7 +75231,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63092,7 +75248,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63108,7 +75265,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63124,7 +75282,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63140,7 +75299,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63156,7 +75316,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63172,7 +75333,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63188,7 +75350,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63204,7 +75367,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63220,7 +75384,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63236,7 +75401,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63252,7 +75418,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63268,7 +75435,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63284,7 +75452,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63300,7 +75469,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63316,7 +75486,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63332,7 +75503,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63348,7 +75520,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63364,7 +75537,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63380,7 +75554,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63396,7 +75571,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63412,7 +75588,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63428,7 +75605,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63444,7 +75622,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63460,7 +75639,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63476,7 +75656,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63492,7 +75673,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63508,7 +75690,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63524,7 +75707,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63540,7 +75724,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63556,7 +75741,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63572,7 +75758,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63588,7 +75775,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63604,7 +75792,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63620,7 +75809,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63636,7 +75826,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63652,7 +75843,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63668,7 +75860,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63684,7 +75877,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63700,7 +75894,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63716,7 +75911,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63732,7 +75928,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63748,7 +75945,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63764,7 +75962,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63780,7 +75979,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63796,7 +75996,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63812,7 +76013,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63828,7 +76030,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63844,7 +76047,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63860,7 +76064,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63876,7 +76081,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63892,7 +76098,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63908,7 +76115,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63924,7 +76132,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63940,7 +76149,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63956,7 +76166,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63972,7 +76183,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63988,7 +76200,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64004,7 +76217,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64020,7 +76234,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64036,7 +76251,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64052,7 +76268,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64068,7 +76285,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64084,7 +76302,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64100,7 +76319,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64116,7 +76336,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64132,7 +76353,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64148,7 +76370,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64164,7 +76387,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64180,7 +76404,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64196,7 +76421,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64212,7 +76438,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64228,7 +76455,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64244,7 +76472,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64260,7 +76489,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64276,7 +76506,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64292,7 +76523,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64308,7 +76540,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64324,7 +76557,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64340,7 +76574,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64356,7 +76591,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64372,7 +76608,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64388,7 +76625,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64404,7 +76642,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64420,7 +76659,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64436,7 +76676,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64452,7 +76693,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64468,7 +76710,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64484,7 +76727,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64500,7 +76744,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64516,7 +76761,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64532,7 +76778,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64548,7 +76795,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64564,7 +76812,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64580,7 +76829,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64596,7 +76846,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64612,7 +76863,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64628,7 +76880,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64644,7 +76897,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64660,7 +76914,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64676,7 +76931,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64692,7 +76948,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64708,7 +76965,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64724,7 +76982,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64740,7 +76999,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64756,7 +77016,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64772,7 +77033,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64788,7 +77050,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64804,7 +77067,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64820,7 +77084,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64836,7 +77101,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64852,7 +77118,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64868,7 +77135,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64884,7 +77152,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64900,7 +77169,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64916,7 +77186,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64932,7 +77203,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64948,7 +77220,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64964,7 +77237,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64980,7 +77254,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64996,7 +77271,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -65012,7 +77288,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -65028,7 +77305,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -65044,7 +77322,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -65060,7 +77339,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -65076,7 +77356,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -65092,7 +77373,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -65108,7 +77390,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -65124,7 +77407,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -65140,6 +77424,7 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
}
]
diff --git a/vsprojects/build_plugins.bat b/vsprojects/build_plugins.bat
index 4c33a584ad..7c8e056dc4 100644
--- a/vsprojects/build_plugins.bat
+++ b/vsprojects/build_plugins.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@rem (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+@rem OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
@rem Convenience script to build gRPC protoc plugins from command line. protoc plugins are used to generate service stub code from .proto service defintions.
setlocal
diff --git a/vsprojects/build_vs2010.bat b/vsprojects/build_vs2010.bat
index 1bc3c86a92..d951295369 100644
--- a/vsprojects/build_vs2010.bat
+++ b/vsprojects/build_vs2010.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@rem (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+@rem OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
@rem Convenience wrapper that runs specified gRPC target using msbuild
@rem Usage: build_vs2010.bat TARGET_NAME
diff --git a/vsprojects/build_vs2013.bat b/vsprojects/build_vs2013.bat
index 82c0a3ad82..c500bf11ed 100644
--- a/vsprojects/build_vs2013.bat
+++ b/vsprojects/build_vs2013.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@rem (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+@rem OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
@rem Convenience wrapper that runs specified gRPC target using msbuild
@rem Usage: build_vs2013.bat TARGET_NAME
diff --git a/vsprojects/build_vs2015.bat b/vsprojects/build_vs2015.bat
index c6e1b433a3..e2f4b3db06 100644
--- a/vsprojects/build_vs2015.bat
+++ b/vsprojects/build_vs2015.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@rem (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+@rem OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
@rem Convenience wrapper that runs specified gRPC target using msbuild
@rem Usage: build_vs2015.bat TARGET_NAME
diff --git a/vsprojects/coapp/openssl/buildall.bat b/vsprojects/coapp/openssl/buildall.bat
index 2bf1c87077..f5797abb21 100644
--- a/vsprojects/coapp/openssl/buildall.bat
+++ b/vsprojects/coapp/openssl/buildall.bat
@@ -1,3 +1,31 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@rem (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+@rem OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
rem Restore using NuGet dependencies (Download NuGet from nuget.org and put it in this directory first)
nuget restore || goto eof:
diff --git a/vsprojects/coapp/zlib/buildall.bat b/vsprojects/coapp/zlib/buildall.bat
index 840410a5a2..2b4b4a1c80 100644
--- a/vsprojects/coapp/zlib/buildall.bat
+++ b/vsprojects/coapp/zlib/buildall.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@rem (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+@rem OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
@echo off
setlocal
diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj b/vsprojects/vcxproj/grpc++/grpc++.vcxproj
index 0ec53acf65..65de5e9717 100644
--- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj
+++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj
@@ -275,6 +275,8 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\rpc_service_method.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\serialization_traits.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_builder_option.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_builder_plugin.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_initializer.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\service_type.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\sync.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\sync_cxx11.h" />
diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters
index 491aeaeb67..ce50bd9de8 100644
--- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters
@@ -147,6 +147,12 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_builder_option.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_builder_plugin.h">
+ <Filter>include\grpc++\impl</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_initializer.h">
+ <Filter>include\grpc++\impl</Filter>
+ </ClInclude>
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\service_type.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj
index 96bee4101c..895e223351 100644
--- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj
+++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj
@@ -275,6 +275,8 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\rpc_service_method.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\serialization_traits.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_builder_option.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_builder_plugin.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_initializer.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\service_type.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\sync.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\sync_cxx11.h" />
diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
index fe9eed781c..ab305fa929 100644
--- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
@@ -132,6 +132,12 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_builder_option.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_builder_plugin.h">
+ <Filter>include\grpc++\impl</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_initializer.h">
+ <Filter>include\grpc++\impl</Filter>
+ </ClInclude>
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\service_type.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj b/vsprojects/vcxproj/grpc/grpc.vcxproj
index c145d38679..7a39070b00 100644
--- a/vsprojects/vcxproj/grpc/grpc.vcxproj
+++ b/vsprojects/vcxproj/grpc/grpc.vcxproj
@@ -293,6 +293,7 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_posix.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_win32.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\time.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\grpc_cronet.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\grpc_security.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\grpc_security_constants.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\census.h" />
@@ -316,6 +317,7 @@
<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_poll_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" />
@@ -431,6 +433,7 @@
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_call_holder.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_index.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\uri_parser.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\objective_c\Cronet\cronet_c_for_grpc.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\v1\load_balancer.pb.h" />
<ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb.h" />
@@ -483,6 +486,8 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.c">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_posix.c">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.c">
@@ -753,6 +758,12 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\client\insecure\channel_create.c">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\cronet\client\secure\cronet_channel_create.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\cronet\transport\cronet_api_dummy.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\cronet\transport\cronet_transport.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\v1\load_balancer.pb.c">
diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
index a834e3ae0e..ae70e0ada0 100644
--- a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
@@ -58,6 +58,9 @@
<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\ev_poll_posix.c">
+ <Filter>src\core\lib\iomgr</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
@@ -463,6 +466,15 @@
<ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\client\insecure\channel_create.c">
<Filter>src\core\ext\transport\chttp2\client\insecure</Filter>
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\cronet\client\secure\cronet_channel_create.c">
+ <Filter>src\core\ext\transport\cronet\client\secure</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\cronet\transport\cronet_api_dummy.c">
+ <Filter>src\core\ext\transport\cronet\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\cronet\transport\cronet_transport.c">
+ <Filter>src\core\ext\transport\cronet\transport</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.c">
<Filter>src\core\ext\lb_policy\grpclb</Filter>
</ClCompile>
@@ -600,6 +612,9 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\time.h">
<Filter>include\grpc\impl\codegen</Filter>
</ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\grpc_cronet.h">
+ <Filter>include\grpc</Filter>
+ </ClInclude>
<ClInclude Include="$(SolutionDir)\..\include\grpc\grpc_security.h">
<Filter>include\grpc</Filter>
</ClInclude>
@@ -665,6 +680,9 @@
<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\ev_poll_posix.h">
+ <Filter>src\core\lib\iomgr</Filter>
+ </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
@@ -1010,6 +1028,9 @@
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\uri_parser.h">
<Filter>src\core\ext\client_config</Filter>
</ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\objective_c\Cronet\cronet_c_for_grpc.h">
+ <Filter>third_party\objective_c\Cronet</Filter>
+ </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.h">
<Filter>src\core\ext\lb_policy\grpclb</Filter>
</ClInclude>
@@ -1142,6 +1163,18 @@
<Filter Include="src\core\ext\transport\chttp2\transport">
<UniqueIdentifier>{6f34254e-e69f-c9b4-156d-5024bade5408}</UniqueIdentifier>
</Filter>
+ <Filter Include="src\core\ext\transport\cronet">
+ <UniqueIdentifier>{1e9c85e9-5522-7ef8-0017-7e19990a6194}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\transport\cronet\client">
+ <UniqueIdentifier>{d0530883-75d9-b5f7-d594-26735a70ac7b}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\transport\cronet\client\secure">
+ <UniqueIdentifier>{4fa6fe90-b7a8-5c8f-d629-db1e68d89eed}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\transport\cronet\transport">
+ <UniqueIdentifier>{31518af8-5860-6d0d-ff78-4059fce29ec2}</UniqueIdentifier>
+ </Filter>
<Filter Include="src\core\lib">
<UniqueIdentifier>{5b2ded3f-84a5-f6b4-2060-286c7d1dc945}</UniqueIdentifier>
</Filter>
@@ -1220,6 +1253,12 @@
<Filter Include="third_party\nanopb">
<UniqueIdentifier>{93d6596d-330c-1d27-6f84-3c840e57869e}</UniqueIdentifier>
</Filter>
+ <Filter Include="third_party\objective_c">
+ <UniqueIdentifier>{3a56a516-857e-d2aa-95cc-11685baf4e8c}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="third_party\objective_c\Cronet">
+ <UniqueIdentifier>{a165c6e3-0776-6f40-7351-d7865668e220}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
</Project>
diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
index fbf26a29f3..09748f082c 100644
--- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
+++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
@@ -305,6 +305,7 @@
<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_poll_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" />
@@ -451,6 +452,8 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.c">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_posix.c">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.c">
diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
index 2500d5c106..a85bfeefe6 100644
--- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
@@ -61,6 +61,9 @@
<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\ev_poll_posix.c">
+ <Filter>src\core\lib\iomgr</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
@@ -575,6 +578,9 @@
<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\ev_poll_posix.h">
+ <Filter>src\core\lib\iomgr</Filter>
+ </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
diff --git a/vsprojects/vcxproj/test/server_builder_plugin_test/server_builder_plugin_test.vcxproj b/vsprojects/vcxproj/test/server_builder_plugin_test/server_builder_plugin_test.vcxproj
new file mode 100644
index 0000000000..0ebdd98817
--- /dev/null
+++ b/vsprojects/vcxproj/test/server_builder_plugin_test/server_builder_plugin_test.vcxproj
@@ -0,0 +1,207 @@
+<?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>{86751DC8-C8D9-57B6-2C8A-BB33021C773C}</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\cpptest.props" />
+ <Import Project="$(SolutionDir)\..\vsprojects\global.props" />
+ <Import Project="$(SolutionDir)\..\vsprojects\openssl.props" />
+ <Import Project="$(SolutionDir)\..\vsprojects\protobuf.props" />
+ <Import Project="$(SolutionDir)\..\vsprojects\winsock.props" />
+ <Import Project="$(SolutionDir)\..\vsprojects\zlib.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)'=='Debug'">
+ <TargetName>server_builder_plugin_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>server_builder_plugin_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\cpp\end2end\server_builder_plugin_test.cc">
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++_test_util\grpc++_test_util.vcxproj">
+ <Project>{0BE77741-552A-929B-A497-4EF7ECE17A64}</Project>
+ </ProjectReference>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc_test_util\grpc_test_util.vcxproj">
+ <Project>{17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}</Project>
+ </ProjectReference>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++\grpc++.vcxproj">
+ <Project>{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}</Project>
+ </ProjectReference>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc\grpc.vcxproj">
+ <Project>{29D16885-7228-4C31-81ED-5F9187C7F2A9}</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/server_builder_plugin_test/server_builder_plugin_test.vcxproj.filters b/vsprojects/vcxproj/test/server_builder_plugin_test/server_builder_plugin_test.vcxproj.filters
new file mode 100644
index 0000000000..629b913fc6
--- /dev/null
+++ b/vsprojects/vcxproj/test/server_builder_plugin_test/server_builder_plugin_test.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\cpp\end2end\server_builder_plugin_test.cc">
+ <Filter>test\cpp\end2end</Filter>
+ </ClCompile>
+ </ItemGroup>
+
+ <ItemGroup>
+ <Filter Include="test">
+ <UniqueIdentifier>{37b2ebc1-b2f2-ecb9-37b7-f6d757bb99e3}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="test\cpp">
+ <UniqueIdentifier>{39400fed-f7b7-0f44-0ef3-ba3693d42011}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="test\cpp\end2end">
+ <UniqueIdentifier>{dab9dd19-3e5b-005e-4b5a-456de6111d71}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
+