aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--BUILD16
-rw-r--r--Makefile13
-rw-r--r--binding.gyp4
-rw-r--r--build.yaml22
-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/grpc_cronet.h51
-rw-r--r--include/grpc/impl/codegen/compression_types.h29
-rw-r--r--package.xml7
-rw-r--r--src/compiler/python_generator.cc110
-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/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/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/cpp/common/channel_arguments.cc2
-rw-r--r--src/cpp/server/server_builder.cc2
-rw-r--r--src/csharp/build_packages.bat29
-rw-r--r--src/csharp/buildall.bat29
-rw-r--r--src/php/ext/grpc/call.c1
-rw-r--r--src/proto/grpc/reflection/v1alpha/reflection.proto151
-rw-r--r--src/python/grpcio/grpc/_cython/imports.generated.c2
-rw-r--r--src/python/grpcio/grpc/_cython/imports.generated.h4
-rw-r--r--src/python/grpcio/grpc_core_dependencies.py4
-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.proto47
-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/ruby/ext/grpc/rb_grpc_imports.generated.c2
-rw-r--r--src/ruby/ext/grpc/rb_grpc_imports.generated.h4
-rw-r--r--templates/src/csharp/build_packages.bat.template29
-rw-r--r--test/core/channel/channel_args_test.c3
-rw-r--r--test/core/client_config/set_initial_connect_string_test.c44
-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/cpp/interop/interop_client.cc8
-rw-r--r--test/distrib/csharp/build_vs2015.bat29
-rw-r--r--third_party/objective_c/Cronet/cronet_c_for_grpc.h202
-rw-r--r--tools/buildgen/plugins/make_fuzzer_tests.py1
-rwxr-xr-xtools/distrib/check_copyright.py1
-rw-r--r--tools/doxygen/Doxyfile.core1
-rw-r--r--tools/doxygen/Doxyfile.core.internal7
-rw-r--r--tools/run_tests/build_artifact_csharp.bat29
-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
-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_tests.py100
-rw-r--r--tools/run_tests/sources_and_headers.json26
-rw-r--r--tools/run_tests/stress_test/configs/java.json8
-rw-r--r--tools/run_tests/tests.json7824
-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.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
96 files changed, 11771 insertions, 3002 deletions
diff --git a/BUILD b/BUILD
index 1ca357896a..793c1c714d 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",
@@ -285,6 +286,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",
@@ -312,6 +314,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",
@@ -439,6 +442,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",
@@ -483,6 +489,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",
@@ -525,6 +532,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",
@@ -645,6 +653,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",
@@ -1337,6 +1346,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",
@@ -1464,6 +1474,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",
@@ -1508,6 +1521,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",
@@ -1529,6 +1543,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",
@@ -1635,6 +1650,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 f0a0ebd3eb..42cedf51c3 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
@@ -2511,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 \
@@ -2638,6 +2639,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 \
@@ -2685,6 +2689,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 \
@@ -2853,6 +2858,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 \
@@ -14399,6 +14405,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/b64.c: $(OPENSSL_DEP)
src/core/lib/security/client_auth_filter.c: $(OPENSSL_DEP)
diff --git a/binding.gyp b/binding.gyp
index 8bc2aee3d1..760bb24d72 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',
@@ -709,6 +710,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 187eb9ca8c..ac61612da4 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:
@@ -547,6 +550,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
@@ -736,6 +749,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
@@ -3255,14 +3269,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 c8d2aae106..6ed1887fef 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 \
@@ -228,6 +229,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 \
@@ -566,6 +570,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 393733209d..67e7a8174f 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',
@@ -288,6 +289,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',
@@ -326,6 +328,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',
@@ -348,6 +351,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',
@@ -475,6 +479,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',
@@ -525,6 +532,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',
@@ -631,6 +639,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 240ea1ca1f..13aed6b61c 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 )
@@ -296,6 +298,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 )
@@ -327,6 +330,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 )
@@ -454,6 +458,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/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.xml b/package.xml
index 4c159e6024..33a769a7e9 100644
--- a/package.xml
+++ b/package.xml
@@ -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" />
@@ -303,6 +305,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" />
@@ -334,6 +337,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" />
@@ -461,6 +465,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" />
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/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/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..d1752327a2
--- /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;
+ while (keep_polling) {
+ keep_polling = 0;
+ if (!pollset->kicked_without_pollers) {
+ if (!added_worker) {
+ push_front_worker(pollset, &worker);
+ added_worker = 1;
+ gpr_tls_set(&g_current_thread_worker, (intptr_t)&worker);
+ }
+ gpr_tls_set(&g_current_thread_poller, (intptr_t)pollset);
+ GPR_TIMER_BEGIN("maybe_work_and_unlock", 0);
+#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;
+ gpr_tls_set(&g_current_thread_poller, 0);
+ } else {
+ GPR_TIMER_MARK("pollset_work.kicked_without_pollers", 0);
+ pollset->kicked_without_pollers = 0;
+ }
+ /* Finished execution - start cleaning up.
+ Note that we may arrive here from outside the enclosing while() loop.
+ In that case we won't loop though as we haven't added worker to the
+ worker list, which means nobody could ask us to re-evaluate polling). */
+ done:
+ if (!locked) {
+ queued_work |= grpc_exec_ctx_flush(exec_ctx);
+ gpr_mu_lock(&pollset->mu);
+ locked = 1;
+ }
+ /* If we're forced to re-evaluate polling (via pollset_kick with
+ GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) then we land here and force
+ a loop */
+ if (worker.reevaluate_polling_on_wakeup) {
+ worker.reevaluate_polling_on_wakeup = 0;
+ pollset->kicked_without_pollers = 0;
+ if (queued_work || worker.kicked_specifically) {
+ /* If there's queued work on the list, then set the deadline to be
+ immediate so we get back out of the polling loop quickly */
+ deadline = gpr_inf_past(GPR_CLOCK_MONOTONIC);
+ }
+ keep_polling = 1;
+ }
+ if (keep_polling) {
+ now = gpr_now(now.clock_type);
+ }
+ }
+ 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/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/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_builder.cc b/src/cpp/server/server_builder.cc
index 9658a56745..61f0f6ae2a 100644
--- a/src/cpp/server/server_builder.cc
+++ b/src/cpp/server/server_builder.cc
@@ -123,7 +123,7 @@ std::unique_ptr<Server> ServerBuilder::BuildAndStart() {
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));
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/php/ext/grpc/call.c b/src/php/ext/grpc/call.c
index a0f3d160c6..a2c1c08169 100644
--- a/src/php/ext/grpc/call.c
+++ b/src/php/ext/grpc/call.c
@@ -96,6 +96,7 @@ zval *grpc_php_wrap_call(grpc_call *wrapped, bool owned) {
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;
}
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/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..54c8aaad13 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
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
index 4b98dc1a13..162191b06d 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',
@@ -222,6 +223,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/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/tests/protoc_plugin/protos/responses/test_responses.proto b/src/python/grpcio/tests/protoc_plugin/protos/responses/test_responses.proto
new file mode 100644
index 0000000000..734fbda86e
--- /dev/null
+++ b/src/python/grpcio/tests/protoc_plugin/protos/responses/test_responses.proto
@@ -0,0 +1,47 @@
+// Copyright 2015, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+syntax = "proto3";
+
+import "protos/payload/test_payload.proto";
+
+package grpc_protoc_plugin;
+
+message SimpleResponse {
+ Payload payload = 1;
+}
+
+message StreamingInputCallResponse {
+ // Aggregated size of payloads received from the client.
+ int32 aggregated_payload_size = 1;
+}
+
+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/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/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/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/set_initial_connect_string_test.c b/test/core/client_config/set_initial_connect_string_test.c
index 83058d9b2c..c1b8452866 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/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/cpp/interop/interop_client.cc b/test/cpp/interop/interop_client.cc
index e9d95dc8d0..cba52b111f 100644
--- a/test/cpp/interop/interop_client.cc
+++ b/test/cpp/interop/interop_client.cc
@@ -413,7 +413,7 @@ bool InteropClient::DoRequestStreaming() {
}
bool InteropClient::DoResponseStreaming() {
- gpr_log(GPR_DEBUG, "Receiving response steaming rpc ...");
+ gpr_log(GPR_DEBUG, "Receiving response streaming rpc ...");
ClientContext context;
StreamingOutputCallRequest request;
@@ -465,7 +465,7 @@ bool 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]);
@@ -544,7 +544,7 @@ bool InteropClient::DoResponseCompressedStreaming() {
}
bool InteropClient::DoResponseStreamingWithSlowConsumer() {
- gpr_log(GPR_DEBUG, "Receiving response steaming rpc with slow consumer ...");
+ gpr_log(GPR_DEBUG, "Receiving response streaming rpc with slow consumer ...");
ClientContext context;
StreamingOutputCallRequest request;
@@ -677,7 +677,7 @@ bool InteropClient::DoPingPong() {
}
bool InteropClient::DoCancelAfterBegin() {
- gpr_log(GPR_DEBUG, "Sending request steaming rpc ...");
+ gpr_log(GPR_DEBUG, "Sending request streaming rpc ...");
ClientContext context;
StreamingInputCallRequest request;
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/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/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 7e0d5ebd37..212dfc3160 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 \
@@ -913,6 +915,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 \
@@ -944,6 +947,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 \
@@ -1071,6 +1075,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/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/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/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_tests.py b/tools/run_tests/run_tests.py
index 37291f4d3f..fd5564adb2 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):
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index b36f0a8ca8..3866ebb0e5 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -4175,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",
@@ -5645,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",
@@ -5745,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",
@@ -6049,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/auth_filters.h",
@@ -6064,6 +6069,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",
@@ -6300,6 +6306,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",
diff --git a/tools/run_tests/stress_test/configs/java.json b/tools/run_tests/stress_test/configs/java.json
index 2ce6c00780..b7c6d8b286 100644
--- a/tools/run_tests/stress_test/configs/java.json
+++ b/tools/run_tests/stress_test/configs/java.json
@@ -21,6 +21,9 @@
"metricsArgs": {
"metrics_server_address": "localhost:8081",
"total_only": "true"
+ },
+ "env": {
+ "STRESSTEST_CLIENT_OPTS":"-Xmx3g -Xms3g -XX:NewSize=1500m -XX:MaxNewSize=1500m -XX:+UseConcMarkSweepGC"
}
}
},
@@ -44,7 +47,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"
}
}
},
diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json
index 581b8fd0e7..4f11ceb4da 100644
--- a/tools/run_tests/tests.json
+++ b/tools/run_tests/tests.json
@@ -23449,7 +23449,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23465,7 +23466,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23481,7 +23483,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23497,7 +23500,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23513,7 +23517,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23529,7 +23534,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23545,7 +23551,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23561,7 +23568,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23577,7 +23585,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23593,7 +23602,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23609,7 +23619,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23625,7 +23636,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23641,7 +23653,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23657,7 +23670,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23673,7 +23687,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23689,7 +23704,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23705,7 +23721,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23721,7 +23738,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23737,7 +23755,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23753,7 +23772,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23769,7 +23789,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23785,7 +23806,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23801,7 +23823,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23817,7 +23840,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23833,7 +23857,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23849,7 +23874,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23865,7 +23891,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23881,7 +23908,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23897,7 +23925,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23913,7 +23942,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23929,7 +23959,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23945,7 +23976,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23961,7 +23993,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23977,7 +24010,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -23993,7 +24027,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24009,7 +24044,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24025,7 +24061,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24041,7 +24078,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24057,7 +24095,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24073,7 +24112,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24089,7 +24129,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24105,7 +24146,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24121,7 +24163,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24137,7 +24180,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24153,7 +24197,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24169,7 +24214,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24185,7 +24231,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24201,7 +24248,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24217,7 +24265,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24233,7 +24282,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24249,7 +24299,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24265,7 +24316,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24281,7 +24333,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24297,7 +24350,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24313,7 +24367,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24329,7 +24384,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24345,7 +24401,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24361,7 +24418,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24377,7 +24435,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24393,7 +24452,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24409,7 +24469,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24425,7 +24486,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24441,7 +24503,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24457,7 +24520,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24473,7 +24537,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24489,7 +24554,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24505,7 +24571,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24521,7 +24588,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24537,7 +24605,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24553,7 +24622,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24569,7 +24639,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24585,7 +24656,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24601,7 +24673,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24617,7 +24690,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24633,7 +24707,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24649,7 +24724,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24665,7 +24741,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24681,7 +24758,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24697,7 +24775,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24713,7 +24792,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24729,7 +24809,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24745,7 +24826,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24761,7 +24843,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24777,7 +24860,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24793,7 +24877,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24809,7 +24894,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24825,7 +24911,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24841,7 +24928,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24857,7 +24945,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24873,7 +24962,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24889,7 +24979,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24905,7 +24996,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24921,7 +25013,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24937,7 +25030,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24953,7 +25047,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24969,7 +25064,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -24985,7 +25081,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25001,7 +25098,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25017,7 +25115,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25033,7 +25132,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25049,7 +25149,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25065,7 +25166,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25081,7 +25183,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25097,7 +25200,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25113,7 +25217,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25129,7 +25234,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25145,7 +25251,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25161,7 +25268,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25177,7 +25285,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25193,7 +25302,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25209,7 +25319,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25225,7 +25336,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25241,7 +25353,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25257,7 +25370,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25273,7 +25387,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25289,7 +25404,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25305,7 +25421,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25321,7 +25438,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25337,7 +25455,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25353,7 +25472,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25369,7 +25489,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25385,7 +25506,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25401,7 +25523,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25417,7 +25540,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25433,7 +25557,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25449,7 +25574,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25465,7 +25591,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25481,7 +25608,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25497,7 +25625,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25513,7 +25642,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25529,7 +25659,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25545,7 +25676,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25561,7 +25693,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25577,7 +25710,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25593,7 +25727,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25609,7 +25744,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25625,7 +25761,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25641,7 +25778,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25657,7 +25795,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25673,7 +25812,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25689,7 +25829,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25705,7 +25846,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25721,7 +25863,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25737,7 +25880,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25753,7 +25897,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25769,7 +25914,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25785,7 +25931,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25801,7 +25948,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25817,7 +25965,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25833,7 +25982,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25849,7 +25999,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25865,7 +26016,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25881,7 +26033,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25897,7 +26050,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25913,7 +26067,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25929,7 +26084,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25945,7 +26101,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25961,7 +26118,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25977,7 +26135,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -25993,7 +26152,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26009,7 +26169,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26025,7 +26186,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26041,7 +26203,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26057,7 +26220,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26073,7 +26237,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26089,7 +26254,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26105,7 +26271,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26121,7 +26288,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26137,7 +26305,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26153,7 +26322,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26169,7 +26339,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26185,7 +26356,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26201,7 +26373,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26217,7 +26390,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26233,7 +26407,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26249,7 +26424,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26265,7 +26441,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26281,7 +26458,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26297,7 +26475,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26313,7 +26492,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26329,7 +26509,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26345,7 +26526,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26361,7 +26543,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26377,7 +26560,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26393,7 +26577,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26409,7 +26594,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26425,7 +26611,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26441,7 +26628,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26457,7 +26645,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26473,7 +26662,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26489,7 +26679,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26505,7 +26696,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26521,7 +26713,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26537,7 +26730,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26553,7 +26747,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26569,7 +26764,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26585,7 +26781,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26601,7 +26798,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26617,7 +26815,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26633,7 +26832,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26649,7 +26849,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26665,7 +26866,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26681,7 +26883,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26697,7 +26900,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26713,7 +26917,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26729,7 +26934,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26745,7 +26951,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26761,7 +26968,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26777,7 +26985,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26793,7 +27002,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26809,7 +27019,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26825,7 +27036,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26841,7 +27053,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26857,7 +27070,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26873,7 +27087,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26889,7 +27104,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26905,7 +27121,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26921,7 +27138,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26937,7 +27155,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26953,7 +27172,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26969,7 +27189,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -26985,7 +27206,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27001,7 +27223,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27017,7 +27240,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27033,7 +27257,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27049,7 +27274,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27065,7 +27291,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27081,7 +27308,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27097,7 +27325,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27113,7 +27342,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27129,7 +27359,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27145,7 +27376,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27161,7 +27393,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27177,7 +27410,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27193,7 +27427,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27209,7 +27444,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27225,7 +27461,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27241,7 +27478,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27257,7 +27495,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27273,7 +27512,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27289,7 +27529,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27305,7 +27546,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27321,7 +27563,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27337,7 +27580,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27353,7 +27597,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27369,7 +27614,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27385,7 +27631,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27401,7 +27648,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27417,7 +27665,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27433,7 +27682,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27449,7 +27699,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27465,7 +27716,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27481,7 +27733,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27497,7 +27750,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27513,7 +27767,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27529,7 +27784,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27545,7 +27801,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27561,7 +27818,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27577,7 +27835,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27593,7 +27852,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27609,7 +27869,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27625,7 +27886,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27641,7 +27903,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27657,7 +27920,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27673,7 +27937,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27689,7 +27954,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27705,7 +27971,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27721,7 +27988,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27737,7 +28005,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27753,7 +28022,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27769,7 +28039,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27785,7 +28056,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27801,7 +28073,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27817,7 +28090,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27833,7 +28107,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27849,7 +28124,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27865,7 +28141,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27881,7 +28158,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27897,7 +28175,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27913,7 +28192,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27929,7 +28209,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27945,7 +28226,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27961,7 +28243,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27977,7 +28260,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -27993,7 +28277,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28009,7 +28294,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28025,7 +28311,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28041,7 +28328,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28057,7 +28345,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28073,7 +28362,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28089,7 +28379,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28105,7 +28396,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28121,7 +28413,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28137,7 +28430,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28153,7 +28447,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28169,7 +28464,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28185,7 +28481,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28201,7 +28498,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28217,7 +28515,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28233,7 +28532,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28249,7 +28549,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28265,7 +28566,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28281,7 +28583,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28297,7 +28600,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28313,7 +28617,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28329,7 +28634,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28345,7 +28651,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28361,7 +28668,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28377,7 +28685,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28393,7 +28702,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28409,7 +28719,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28425,7 +28736,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28441,7 +28753,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28457,7 +28770,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28473,7 +28787,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28489,7 +28804,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28505,7 +28821,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28521,7 +28838,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28537,7 +28855,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28553,7 +28872,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28569,7 +28889,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28585,7 +28906,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28601,7 +28923,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28617,7 +28940,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28633,7 +28957,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28649,7 +28974,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28665,7 +28991,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28681,7 +29008,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28697,7 +29025,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28713,7 +29042,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28729,7 +29059,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28745,7 +29076,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28761,7 +29093,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28777,7 +29110,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28793,7 +29127,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28809,7 +29144,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28825,7 +29161,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28841,7 +29178,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28857,7 +29195,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28873,7 +29212,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28889,7 +29229,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28905,7 +29246,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28921,7 +29263,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28937,7 +29280,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28953,7 +29297,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28969,7 +29314,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -28985,7 +29331,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29001,7 +29348,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29017,7 +29365,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29033,7 +29382,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29049,7 +29399,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29065,7 +29416,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29081,7 +29433,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29097,7 +29450,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29113,7 +29467,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29129,7 +29484,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29145,7 +29501,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29161,7 +29518,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29177,7 +29535,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29193,7 +29552,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29209,7 +29569,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29225,7 +29586,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29241,7 +29603,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29257,7 +29620,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29273,7 +29637,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29289,7 +29654,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29305,7 +29671,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29321,7 +29688,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29337,7 +29705,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29353,7 +29722,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29369,7 +29739,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29385,7 +29756,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29401,7 +29773,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29417,7 +29790,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29433,7 +29807,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29449,7 +29824,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29465,7 +29841,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29481,7 +29858,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29497,7 +29875,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29513,7 +29892,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29529,7 +29909,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29545,7 +29926,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29561,7 +29943,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29577,7 +29960,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29593,7 +29977,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29609,7 +29994,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29625,7 +30011,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29641,7 +30028,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29657,7 +30045,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29673,7 +30062,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29689,7 +30079,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29705,7 +30096,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29721,7 +30113,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29737,7 +30130,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29753,7 +30147,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29769,7 +30164,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29785,7 +30181,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29801,7 +30198,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29817,7 +30215,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29833,7 +30232,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29849,7 +30249,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29865,7 +30266,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29881,7 +30283,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29897,7 +30300,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29913,7 +30317,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29929,7 +30334,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29945,7 +30351,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29961,7 +30368,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29977,7 +30385,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -29993,7 +30402,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30009,7 +30419,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30025,7 +30436,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30041,7 +30453,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30057,7 +30470,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30073,7 +30487,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30089,7 +30504,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30105,7 +30521,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30121,7 +30538,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30137,7 +30555,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30153,7 +30572,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30169,7 +30589,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30185,7 +30606,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30201,7 +30623,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30217,7 +30640,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30233,7 +30657,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30249,7 +30674,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30265,7 +30691,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30281,7 +30708,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30297,7 +30725,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30313,7 +30742,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30329,7 +30759,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30345,7 +30776,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30361,7 +30793,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30377,7 +30810,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30393,7 +30827,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30409,7 +30844,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30425,7 +30861,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30441,7 +30878,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30457,7 +30895,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30473,7 +30912,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30489,7 +30929,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30505,7 +30946,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30521,7 +30963,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30537,7 +30980,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30553,7 +30997,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30569,7 +31014,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30585,7 +31031,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30601,7 +31048,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30617,7 +31065,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30633,7 +31082,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30649,7 +31099,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30665,7 +31116,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30681,7 +31133,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30697,7 +31150,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30713,7 +31167,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30729,7 +31184,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30745,7 +31201,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30761,7 +31218,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30777,7 +31235,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30793,7 +31252,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30809,7 +31269,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30825,7 +31286,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30841,7 +31303,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30857,7 +31320,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30873,7 +31337,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30889,7 +31354,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30905,7 +31371,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30921,7 +31388,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30937,7 +31405,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30953,7 +31422,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30969,7 +31439,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -30985,7 +31456,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31001,7 +31473,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31017,7 +31490,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31033,7 +31507,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31049,7 +31524,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31065,7 +31541,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31081,7 +31558,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31097,7 +31575,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31113,7 +31592,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31129,7 +31609,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31145,7 +31626,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31161,7 +31643,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31177,7 +31660,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31193,7 +31677,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31209,7 +31694,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31225,7 +31711,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31241,7 +31728,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31257,7 +31745,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31273,7 +31762,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31289,7 +31779,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31305,7 +31796,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31321,7 +31813,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31337,7 +31830,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31353,7 +31847,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31369,7 +31864,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31385,7 +31881,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31401,7 +31898,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31417,7 +31915,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31433,7 +31932,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31449,7 +31949,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31465,7 +31966,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31481,7 +31983,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31497,7 +32000,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31513,7 +32017,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31529,7 +32034,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31545,7 +32051,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31561,7 +32068,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31577,7 +32085,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31593,7 +32102,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31609,7 +32119,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31625,7 +32136,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31641,7 +32153,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31657,7 +32170,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31673,7 +32187,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31689,7 +32204,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31705,7 +32221,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31721,7 +32238,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31737,7 +32255,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31753,7 +32272,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31769,7 +32289,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31785,7 +32306,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31801,7 +32323,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31817,7 +32340,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31833,7 +32357,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31849,7 +32374,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31865,7 +32391,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31881,7 +32408,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31897,7 +32425,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31913,7 +32442,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31929,7 +32459,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31945,7 +32476,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31961,7 +32493,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31977,7 +32510,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -31993,7 +32527,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32009,7 +32544,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32025,7 +32561,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32041,7 +32578,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32057,7 +32595,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32073,7 +32612,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32089,7 +32629,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32105,7 +32646,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32121,7 +32663,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32137,7 +32680,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32153,7 +32697,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32169,7 +32714,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32185,7 +32731,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32201,7 +32748,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32217,7 +32765,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32233,7 +32782,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32249,7 +32799,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32265,7 +32816,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32281,7 +32833,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32297,7 +32850,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32313,7 +32867,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32329,7 +32884,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32345,7 +32901,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32361,7 +32918,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32377,7 +32935,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32393,7 +32952,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32409,7 +32969,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32425,7 +32986,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32441,7 +33003,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32457,7 +33020,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32473,7 +33037,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32489,7 +33054,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32505,7 +33071,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32521,7 +33088,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32537,7 +33105,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32553,7 +33122,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32569,7 +33139,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32585,7 +33156,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32601,7 +33173,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32617,7 +33190,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32633,7 +33207,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32649,7 +33224,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32665,7 +33241,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32681,7 +33258,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32697,7 +33275,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32713,7 +33292,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32729,7 +33309,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32745,7 +33326,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32761,7 +33343,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32777,7 +33360,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32793,7 +33377,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32809,7 +33394,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32825,7 +33411,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32841,7 +33428,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32857,7 +33445,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32873,7 +33462,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32889,7 +33479,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32905,7 +33496,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32921,7 +33513,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32937,7 +33530,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32953,7 +33547,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32969,7 +33564,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -32985,7 +33581,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33001,7 +33598,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33017,7 +33615,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33033,7 +33632,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33049,7 +33649,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33065,7 +33666,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33081,7 +33683,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33097,7 +33700,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33113,7 +33717,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33129,7 +33734,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33145,7 +33751,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33161,7 +33768,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33177,7 +33785,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33193,7 +33802,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33209,7 +33819,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33225,7 +33836,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33241,7 +33853,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33257,7 +33870,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33273,7 +33887,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33289,7 +33904,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33305,7 +33921,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33321,7 +33938,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33337,7 +33955,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33353,7 +33972,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33369,7 +33989,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33385,7 +34006,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33401,7 +34023,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33417,7 +34040,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33433,7 +34057,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33449,7 +34074,8 @@
"name": "api_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33465,7 +34091,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33481,7 +34108,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33497,7 +34125,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33513,7 +34142,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33529,7 +34159,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33545,7 +34176,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33561,7 +34193,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33577,7 +34210,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33593,7 +34227,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33609,7 +34244,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33625,7 +34261,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33641,7 +34278,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33657,7 +34295,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33673,7 +34312,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33689,7 +34329,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33705,7 +34346,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33721,7 +34363,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33737,7 +34380,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33753,7 +34397,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33769,7 +34414,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33785,7 +34431,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33801,7 +34448,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33817,7 +34465,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33833,7 +34482,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33849,7 +34499,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33865,7 +34516,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33881,7 +34533,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33897,7 +34550,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33913,7 +34567,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33929,7 +34584,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33945,7 +34601,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33961,7 +34618,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33977,7 +34635,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -33993,7 +34652,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34009,7 +34669,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34025,7 +34686,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34041,7 +34703,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34057,7 +34720,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34073,7 +34737,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34089,7 +34754,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34105,7 +34771,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34121,7 +34788,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34137,7 +34805,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34153,7 +34822,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34169,7 +34839,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34185,7 +34856,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34201,7 +34873,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34217,7 +34890,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34233,7 +34907,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34249,7 +34924,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34265,7 +34941,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34281,7 +34958,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34297,7 +34975,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34313,7 +34992,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34329,7 +35009,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34345,7 +35026,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34361,7 +35043,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34377,7 +35060,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34393,7 +35077,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34409,7 +35094,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34425,7 +35111,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34441,7 +35128,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34457,7 +35145,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34473,7 +35162,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34489,7 +35179,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34505,7 +35196,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34521,7 +35213,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34537,7 +35230,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34553,7 +35247,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34569,7 +35264,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34585,7 +35281,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34601,7 +35298,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34617,7 +35315,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34633,7 +35332,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34649,7 +35349,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34665,7 +35366,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34681,7 +35383,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34697,7 +35400,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34713,7 +35417,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34729,7 +35434,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34745,7 +35451,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34761,7 +35468,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34777,7 +35485,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34793,7 +35502,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34809,7 +35519,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34825,7 +35536,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34841,7 +35553,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34857,7 +35570,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34873,7 +35587,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34889,7 +35604,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34905,7 +35621,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34921,7 +35638,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34937,7 +35655,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34953,7 +35672,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34969,7 +35689,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -34985,7 +35706,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35001,7 +35723,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35017,7 +35740,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35033,7 +35757,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35049,7 +35774,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35065,7 +35791,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35081,7 +35808,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35097,7 +35825,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35113,7 +35842,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35129,7 +35859,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35145,7 +35876,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35161,7 +35893,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35177,7 +35910,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35193,7 +35927,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35209,7 +35944,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35225,7 +35961,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35241,7 +35978,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35257,7 +35995,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35273,7 +36012,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35289,7 +36029,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35305,7 +36046,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35321,7 +36063,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35337,7 +36080,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35353,7 +36097,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35369,7 +36114,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35385,7 +36131,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35401,7 +36148,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35417,7 +36165,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35433,7 +36182,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35449,7 +36199,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35465,7 +36216,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35481,7 +36233,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35497,7 +36250,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35513,7 +36267,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35529,7 +36284,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35545,7 +36301,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35561,7 +36318,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35577,7 +36335,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35593,7 +36352,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35609,7 +36369,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35625,7 +36386,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35641,7 +36403,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35657,7 +36420,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35673,7 +36437,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35689,7 +36454,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35705,7 +36471,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35721,7 +36488,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35737,7 +36505,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35753,7 +36522,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35769,7 +36539,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35785,7 +36556,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35801,7 +36573,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35817,7 +36590,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35833,7 +36607,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35849,7 +36624,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35865,7 +36641,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35881,7 +36658,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35897,7 +36675,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35913,7 +36692,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35929,7 +36709,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35945,7 +36726,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35961,7 +36743,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35977,7 +36760,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -35993,7 +36777,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36009,7 +36794,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36025,7 +36811,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36041,7 +36828,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36057,7 +36845,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36073,7 +36862,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36089,7 +36879,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36105,7 +36896,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36121,7 +36913,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36137,7 +36930,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36153,7 +36947,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36169,7 +36964,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36185,7 +36981,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36201,7 +36998,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36217,7 +37015,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36233,7 +37032,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36249,7 +37049,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36265,7 +37066,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36281,7 +37083,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36297,7 +37100,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36313,7 +37117,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36329,7 +37134,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36345,7 +37151,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36361,7 +37168,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36377,7 +37185,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36393,7 +37202,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36409,7 +37219,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36425,7 +37236,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36441,7 +37253,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36457,7 +37270,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36473,7 +37287,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36489,7 +37304,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36505,7 +37321,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36521,7 +37338,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36537,7 +37355,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36553,7 +37372,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36569,7 +37389,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36585,7 +37406,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36601,7 +37423,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36617,7 +37440,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36633,7 +37457,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36649,7 +37474,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36665,7 +37491,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36681,7 +37508,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36697,7 +37525,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36713,7 +37542,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36729,7 +37559,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36745,7 +37576,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36761,7 +37593,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36777,7 +37610,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36793,7 +37627,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36809,7 +37644,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36825,7 +37661,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36841,7 +37678,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36857,7 +37695,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36873,7 +37712,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36889,7 +37729,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36905,7 +37746,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36921,7 +37763,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36937,7 +37780,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36953,7 +37797,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36969,7 +37814,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -36985,7 +37831,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37001,7 +37848,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37017,7 +37865,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37033,7 +37882,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37049,7 +37899,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37065,7 +37916,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37081,7 +37933,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37097,7 +37950,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37113,7 +37967,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37129,7 +37984,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37145,7 +38001,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37161,7 +38018,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37177,7 +38035,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37193,7 +38052,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37209,7 +38069,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37225,7 +38086,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37241,7 +38103,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37257,7 +38120,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37273,7 +38137,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37289,7 +38154,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37305,7 +38171,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37321,7 +38188,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37337,7 +38205,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37353,7 +38222,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37369,7 +38239,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37385,7 +38256,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37401,7 +38273,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37417,7 +38290,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37433,7 +38307,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37449,7 +38324,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37465,7 +38341,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37481,7 +38358,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37497,7 +38375,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37513,7 +38392,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37529,7 +38409,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37545,7 +38426,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37561,7 +38443,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37577,7 +38460,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37593,7 +38477,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37609,7 +38494,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37625,7 +38511,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37641,7 +38528,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37657,7 +38545,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37673,7 +38562,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37689,7 +38579,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37705,7 +38596,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37721,7 +38613,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37737,7 +38630,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37753,7 +38647,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37769,7 +38664,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37785,7 +38681,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37801,7 +38698,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37817,7 +38715,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37833,7 +38732,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37849,7 +38749,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37865,7 +38766,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37881,7 +38783,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37897,7 +38800,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37913,7 +38817,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37929,7 +38834,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37945,7 +38851,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37961,7 +38868,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37977,7 +38885,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -37993,7 +38902,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38009,7 +38919,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38025,7 +38936,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38041,7 +38953,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38057,7 +38970,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38073,7 +38987,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38089,7 +39004,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38105,7 +39021,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38121,7 +39038,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38137,7 +39055,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38153,7 +39072,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38169,7 +39089,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38185,7 +39106,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38201,7 +39123,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38217,7 +39140,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38233,7 +39157,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38249,7 +39174,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38265,7 +39191,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38281,7 +39208,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38297,7 +39225,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38313,7 +39242,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38329,7 +39259,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38345,7 +39276,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38361,7 +39293,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38377,7 +39310,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38393,7 +39327,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38409,7 +39344,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38425,7 +39361,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38441,7 +39378,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38457,7 +39395,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38473,7 +39412,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38489,7 +39429,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38505,7 +39446,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38521,7 +39463,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38537,7 +39480,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38553,7 +39497,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38569,7 +39514,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38585,7 +39531,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38601,7 +39548,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38617,7 +39565,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38633,7 +39582,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38649,7 +39599,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38665,7 +39616,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38681,7 +39633,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38697,7 +39650,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38713,7 +39667,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38729,7 +39684,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38745,7 +39701,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38761,7 +39718,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38777,7 +39735,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38793,7 +39752,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38809,7 +39769,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38825,7 +39786,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38841,7 +39803,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38857,7 +39820,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38873,7 +39837,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38889,7 +39854,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38905,7 +39871,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38921,7 +39888,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38937,7 +39905,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38953,7 +39922,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38969,7 +39939,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -38985,7 +39956,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39001,7 +39973,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39017,7 +39990,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39033,7 +40007,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39049,7 +40024,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39065,7 +40041,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39081,7 +40058,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39097,7 +40075,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39113,7 +40092,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39129,7 +40109,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39145,7 +40126,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39161,7 +40143,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39177,7 +40160,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39193,7 +40177,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39209,7 +40194,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39225,7 +40211,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39241,7 +40228,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39257,7 +40245,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39273,7 +40262,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39289,7 +40279,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39305,7 +40296,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39321,7 +40313,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39337,7 +40330,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39353,7 +40347,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39369,7 +40364,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39385,7 +40381,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39401,7 +40398,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39417,7 +40415,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39433,7 +40432,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39449,7 +40449,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39465,7 +40466,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39481,7 +40483,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39497,7 +40500,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39513,7 +40517,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39529,7 +40534,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39545,7 +40551,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39561,7 +40568,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39577,7 +40585,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39593,7 +40602,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39609,7 +40619,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39625,7 +40636,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39641,7 +40653,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39657,7 +40670,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39673,7 +40687,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39689,7 +40704,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39705,7 +40721,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39721,7 +40738,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39737,7 +40755,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39753,7 +40772,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39769,7 +40789,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39785,7 +40806,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39801,7 +40823,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39817,7 +40840,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39833,7 +40857,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39849,7 +40874,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39865,7 +40891,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39881,7 +40908,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39897,7 +40925,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39913,7 +40942,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39929,7 +40959,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39945,7 +40976,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39961,7 +40993,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39977,7 +41010,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -39993,7 +41027,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40009,7 +41044,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40025,7 +41061,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40041,7 +41078,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40057,7 +41095,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40073,7 +41112,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40089,7 +41129,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40105,7 +41146,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40121,7 +41163,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40137,7 +41180,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40153,7 +41197,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40169,7 +41214,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40185,7 +41231,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40201,7 +41248,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40217,7 +41265,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40233,7 +41282,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40249,7 +41299,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40265,7 +41316,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40281,7 +41333,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40297,7 +41350,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40313,7 +41367,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40329,7 +41384,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40345,7 +41401,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40361,7 +41418,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40377,7 +41435,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40393,7 +41452,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40409,7 +41469,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40425,7 +41486,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40441,7 +41503,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40457,7 +41520,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40473,7 +41537,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40489,7 +41554,8 @@
"name": "client_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40505,7 +41571,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40521,7 +41588,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40537,7 +41605,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40553,7 +41622,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40569,7 +41639,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40585,7 +41656,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40601,7 +41673,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40617,7 +41690,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40633,7 +41707,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40649,7 +41724,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40665,7 +41741,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40681,7 +41758,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40697,7 +41775,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40713,7 +41792,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40729,7 +41809,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40745,7 +41826,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40761,7 +41843,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40777,7 +41860,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40793,7 +41877,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40809,7 +41894,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40825,7 +41911,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40841,7 +41928,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40857,7 +41945,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40873,7 +41962,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40889,7 +41979,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40905,7 +41996,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40921,7 +42013,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40937,7 +42030,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40953,7 +42047,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40969,7 +42064,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -40985,7 +42081,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41001,7 +42098,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41017,7 +42115,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41033,7 +42132,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41049,7 +42149,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41065,7 +42166,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41081,7 +42183,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41097,7 +42200,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41113,7 +42217,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41129,7 +42234,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41145,7 +42251,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41161,7 +42268,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41177,7 +42285,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41193,7 +42302,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41209,7 +42319,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41225,7 +42336,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41241,7 +42353,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41257,7 +42370,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41273,7 +42387,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41289,7 +42404,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41305,7 +42421,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41321,7 +42438,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41337,7 +42455,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41353,7 +42472,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41369,7 +42489,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41385,7 +42506,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41401,7 +42523,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41417,7 +42540,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41433,7 +42557,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41449,7 +42574,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41465,7 +42591,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41481,7 +42608,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41497,7 +42625,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41513,7 +42642,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41529,7 +42659,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41545,7 +42676,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41561,7 +42693,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41577,7 +42710,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41593,7 +42727,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41609,7 +42744,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41625,7 +42761,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41641,7 +42778,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41657,7 +42795,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41673,7 +42812,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41689,7 +42829,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41705,7 +42846,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41721,7 +42863,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41737,7 +42880,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41753,7 +42897,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41769,7 +42914,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41785,7 +42931,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41801,7 +42948,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41817,7 +42965,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41833,7 +42982,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41849,7 +42999,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41865,7 +43016,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41881,7 +43033,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41897,7 +43050,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41913,7 +43067,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41929,7 +43084,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41945,7 +43101,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41961,7 +43118,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41977,7 +43135,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -41993,7 +43152,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42009,7 +43169,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42025,7 +43186,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42041,7 +43203,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42057,7 +43220,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42073,7 +43237,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42089,7 +43254,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42105,7 +43271,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42121,7 +43288,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42137,7 +43305,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42153,7 +43322,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42169,7 +43339,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42185,7 +43356,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42201,7 +43373,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42217,7 +43390,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42233,7 +43407,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42249,7 +43424,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42265,7 +43441,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42281,7 +43458,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42297,7 +43475,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42313,7 +43492,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42329,7 +43509,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42345,7 +43526,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42361,7 +43543,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42377,7 +43560,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42393,7 +43577,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42409,7 +43594,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42425,7 +43611,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42441,7 +43628,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42457,7 +43645,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42473,7 +43662,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42489,7 +43679,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42505,7 +43696,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42521,7 +43713,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42537,7 +43730,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42553,7 +43747,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42569,7 +43764,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42585,7 +43781,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42601,7 +43798,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42617,7 +43815,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42633,7 +43832,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42649,7 +43849,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42665,7 +43866,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42681,7 +43883,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42697,7 +43900,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42713,7 +43917,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42729,7 +43934,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42745,7 +43951,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42761,7 +43968,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42777,7 +43985,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42793,7 +44002,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42809,7 +44019,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42825,7 +44036,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42841,7 +44053,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42857,7 +44070,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42873,7 +44087,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42889,7 +44104,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42905,7 +44121,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42921,7 +44138,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42937,7 +44155,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42953,7 +44172,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42969,7 +44189,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -42985,7 +44206,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43001,7 +44223,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43017,7 +44240,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43033,7 +44257,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43049,7 +44274,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43065,7 +44291,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43081,7 +44308,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43097,7 +44325,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43113,7 +44342,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43129,7 +44359,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43145,7 +44376,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43161,7 +44393,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43177,7 +44410,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43193,7 +44427,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43209,7 +44444,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43225,7 +44461,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43241,7 +44478,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43257,7 +44495,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43273,7 +44512,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43289,7 +44529,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43305,7 +44546,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43321,7 +44563,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43337,7 +44580,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43353,7 +44597,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43369,7 +44614,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43385,7 +44631,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43401,7 +44648,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43417,7 +44665,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43433,7 +44682,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43449,7 +44699,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43465,7 +44716,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43481,7 +44733,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43497,7 +44750,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43513,7 +44767,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43529,7 +44784,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43545,7 +44801,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43561,7 +44818,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43577,7 +44835,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43593,7 +44852,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43609,7 +44869,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43625,7 +44886,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43641,7 +44903,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43657,7 +44920,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43673,7 +44937,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43689,7 +44954,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43705,7 +44971,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43721,7 +44988,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43737,7 +45005,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43753,7 +45022,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43769,7 +45039,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43785,7 +45056,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43801,7 +45073,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43817,7 +45090,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43833,7 +45107,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43849,7 +45124,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43865,7 +45141,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43881,7 +45158,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43897,7 +45175,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43913,7 +45192,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43929,7 +45209,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43945,7 +45226,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43961,7 +45243,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43977,7 +45260,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -43993,7 +45277,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44009,7 +45294,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44025,7 +45311,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44041,7 +45328,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44057,7 +45345,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44073,7 +45362,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44089,7 +45379,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44105,7 +45396,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44121,7 +45413,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44137,7 +45430,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44153,7 +45447,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44169,7 +45464,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44185,7 +45481,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44201,7 +45498,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44217,7 +45515,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44233,7 +45532,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44249,7 +45549,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44265,7 +45566,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44281,7 +45583,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44297,7 +45600,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44313,7 +45617,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44329,7 +45634,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44345,7 +45651,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44361,7 +45668,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44377,7 +45685,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44393,7 +45702,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44409,7 +45719,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44425,7 +45736,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44441,7 +45753,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44457,7 +45770,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44473,7 +45787,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44489,7 +45804,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44505,7 +45821,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44521,7 +45838,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44537,7 +45855,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44553,7 +45872,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44569,7 +45889,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44585,7 +45906,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44601,7 +45923,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44617,7 +45940,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44633,7 +45957,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44649,7 +45974,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44665,7 +45991,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44681,7 +46008,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44697,7 +46025,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44713,7 +46042,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44729,7 +46059,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44745,7 +46076,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44761,7 +46093,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44777,7 +46110,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44793,7 +46127,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44809,7 +46144,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44825,7 +46161,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44841,7 +46178,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44857,7 +46195,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44873,7 +46212,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44889,7 +46229,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44905,7 +46246,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44921,7 +46263,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44937,7 +46280,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44953,7 +46297,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44969,7 +46314,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -44985,7 +46331,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45001,7 +46348,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45017,7 +46365,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45033,7 +46382,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45049,7 +46399,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45065,7 +46416,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45081,7 +46433,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45097,7 +46450,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45113,7 +46467,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45129,7 +46484,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45145,7 +46501,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45161,7 +46518,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45177,7 +46535,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45193,7 +46552,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45209,7 +46569,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45225,7 +46586,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45241,7 +46603,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45257,7 +46620,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45273,7 +46637,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45289,7 +46654,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45305,7 +46671,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45321,7 +46688,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45337,7 +46705,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45353,7 +46722,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45369,7 +46739,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45385,7 +46756,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45401,7 +46773,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45417,7 +46790,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45433,7 +46807,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45449,7 +46824,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45465,7 +46841,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45481,7 +46858,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45497,7 +46875,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45513,7 +46892,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45529,7 +46909,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45545,7 +46926,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45561,7 +46943,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45577,7 +46960,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45593,7 +46977,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45609,7 +46994,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45625,7 +47011,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45641,7 +47028,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45657,7 +47045,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45673,7 +47062,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45689,7 +47079,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45705,7 +47096,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45721,7 +47113,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45737,7 +47130,8 @@
"name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45753,7 +47147,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45769,7 +47164,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45785,7 +47181,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45801,7 +47198,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45817,7 +47215,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45833,7 +47232,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45849,7 +47249,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45865,7 +47266,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45881,7 +47283,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45897,7 +47300,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45913,7 +47317,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45929,7 +47334,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45945,7 +47351,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45961,7 +47368,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45977,7 +47385,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -45993,7 +47402,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46009,7 +47419,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46025,7 +47436,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46041,7 +47453,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46057,7 +47470,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46073,7 +47487,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46089,7 +47504,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46105,7 +47521,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46121,7 +47538,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46137,7 +47555,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46153,7 +47572,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46169,7 +47589,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46185,7 +47606,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46201,7 +47623,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46217,7 +47640,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46233,7 +47657,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46249,7 +47674,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46265,7 +47691,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46281,7 +47708,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46297,7 +47725,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46313,7 +47742,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46329,7 +47759,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46345,7 +47776,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46361,7 +47793,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46377,7 +47810,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46393,7 +47827,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46409,7 +47844,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46425,7 +47861,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46441,7 +47878,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46457,7 +47895,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46473,7 +47912,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46489,7 +47929,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46505,7 +47946,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46521,7 +47963,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46537,7 +47980,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46553,7 +47997,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46569,7 +48014,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46585,7 +48031,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46601,7 +48048,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46617,7 +48065,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46633,7 +48082,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46649,7 +48099,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46665,7 +48116,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46681,7 +48133,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46697,7 +48150,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46713,7 +48167,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46729,7 +48184,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46745,7 +48201,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46761,7 +48218,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46777,7 +48235,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46793,7 +48252,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46809,7 +48269,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46825,7 +48286,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46841,7 +48303,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46857,7 +48320,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46873,7 +48337,8 @@
"name": "http_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46889,7 +48354,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46905,7 +48371,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46921,7 +48388,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46937,7 +48405,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46953,7 +48422,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46969,7 +48439,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -46985,7 +48456,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47001,7 +48473,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47017,7 +48490,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47033,7 +48507,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47049,7 +48524,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47065,7 +48541,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47081,7 +48558,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47097,7 +48575,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47113,7 +48592,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47129,7 +48609,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47145,7 +48626,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47161,7 +48643,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47177,7 +48660,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47193,7 +48677,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47209,7 +48694,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47225,7 +48711,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47241,7 +48728,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47257,7 +48745,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47273,7 +48762,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47289,7 +48779,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47305,7 +48796,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47321,7 +48813,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47337,7 +48830,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47353,7 +48847,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47369,7 +48864,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47385,7 +48881,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47401,7 +48898,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47417,7 +48915,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47433,7 +48932,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47449,7 +48949,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47465,7 +48966,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47481,7 +48983,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47497,7 +49000,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47513,7 +49017,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47529,7 +49034,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47545,7 +49051,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47561,7 +49068,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47577,7 +49085,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47593,7 +49102,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47609,7 +49119,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47625,7 +49136,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47641,7 +49153,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47657,7 +49170,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47673,7 +49187,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47689,7 +49204,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47705,7 +49221,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47721,7 +49238,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47737,7 +49255,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47753,7 +49272,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47769,7 +49289,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47785,7 +49306,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47801,7 +49323,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47817,7 +49340,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47833,7 +49357,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47849,7 +49374,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47865,7 +49391,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47881,7 +49408,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47897,7 +49425,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47913,7 +49442,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47929,7 +49459,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47945,7 +49476,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47961,7 +49493,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47977,7 +49510,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -47993,7 +49527,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48009,7 +49544,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48025,7 +49561,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48041,7 +49578,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48057,7 +49595,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48073,7 +49612,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48089,7 +49629,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48105,7 +49646,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48121,7 +49663,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48137,7 +49680,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48153,7 +49697,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48169,7 +49714,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48185,7 +49731,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48201,7 +49748,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48217,7 +49765,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48233,7 +49782,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48249,7 +49799,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48265,7 +49816,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48281,7 +49833,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48297,7 +49850,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48313,7 +49867,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48329,7 +49884,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48345,7 +49901,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48361,7 +49918,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48377,7 +49935,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48393,7 +49952,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48409,7 +49969,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48425,7 +49986,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48441,7 +50003,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48457,7 +50020,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48473,7 +50037,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48489,7 +50054,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48505,7 +50071,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48521,7 +50088,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48537,7 +50105,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48553,7 +50122,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48569,7 +50139,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48585,7 +50156,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48601,7 +50173,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48617,7 +50190,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48633,7 +50207,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48649,7 +50224,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48665,7 +50241,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48681,7 +50258,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48697,7 +50275,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48713,7 +50292,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48729,7 +50309,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48745,7 +50326,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48761,7 +50343,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48777,7 +50360,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48793,7 +50377,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48809,7 +50394,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48825,7 +50411,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48841,7 +50428,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48857,7 +50445,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48873,7 +50462,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48889,7 +50479,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48905,7 +50496,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48921,7 +50513,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48937,7 +50530,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48953,7 +50547,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48969,7 +50564,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -48985,7 +50581,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49001,7 +50598,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49017,7 +50615,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49033,7 +50632,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49049,7 +50649,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49065,7 +50666,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49081,7 +50683,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49097,7 +50700,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49113,7 +50717,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49129,7 +50734,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49145,7 +50751,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49161,7 +50768,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49177,7 +50785,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49193,7 +50802,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49209,7 +50819,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49225,7 +50836,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49241,7 +50853,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49257,7 +50870,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49273,7 +50887,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49289,7 +50904,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49305,7 +50921,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49321,7 +50938,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49337,7 +50955,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49353,7 +50972,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49369,7 +50989,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49385,7 +51006,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49401,7 +51023,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49417,7 +51040,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49433,7 +51057,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49449,7 +51074,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49465,7 +51091,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49481,7 +51108,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49497,7 +51125,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49513,7 +51142,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49529,7 +51159,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49545,7 +51176,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49561,7 +51193,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49577,7 +51210,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49593,7 +51227,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49609,7 +51244,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49625,7 +51261,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49641,7 +51278,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49657,7 +51295,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49673,7 +51312,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49689,7 +51329,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49705,7 +51346,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49721,7 +51363,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49737,7 +51380,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49753,7 +51397,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49769,7 +51414,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49785,7 +51431,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49801,7 +51448,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49817,7 +51465,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49833,7 +51482,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49849,7 +51499,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49865,7 +51516,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49881,7 +51533,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49897,7 +51550,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49913,7 +51567,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49929,7 +51584,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49945,7 +51601,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49961,7 +51618,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49977,7 +51635,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -49993,7 +51652,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50009,7 +51669,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50025,7 +51686,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50041,7 +51703,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50057,7 +51720,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50073,7 +51737,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50089,7 +51754,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50105,7 +51771,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50121,7 +51788,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50137,7 +51805,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50153,7 +51822,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50169,7 +51839,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50185,7 +51856,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50201,7 +51873,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50217,7 +51890,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50233,7 +51907,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50249,7 +51924,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50265,7 +51941,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50281,7 +51958,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50297,7 +51975,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50313,7 +51992,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50329,7 +52009,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50345,7 +52026,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50361,7 +52043,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50377,7 +52060,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50393,7 +52077,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50409,7 +52094,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50425,7 +52111,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50441,7 +52128,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50457,7 +52145,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50473,7 +52162,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50489,7 +52179,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50505,7 +52196,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50521,7 +52213,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50537,7 +52230,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50553,7 +52247,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50569,7 +52264,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50585,7 +52281,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50601,7 +52298,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50617,7 +52315,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50633,7 +52332,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50649,7 +52349,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50665,7 +52366,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50681,7 +52383,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50697,7 +52400,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50713,7 +52417,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50729,7 +52434,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50745,7 +52451,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50761,7 +52468,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50777,7 +52485,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50793,7 +52502,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50809,7 +52519,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50825,7 +52536,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50841,7 +52553,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50857,7 +52570,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50873,7 +52587,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50889,7 +52604,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50905,7 +52621,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50921,7 +52638,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50937,7 +52655,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50953,7 +52672,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50969,7 +52689,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -50985,7 +52706,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51001,7 +52723,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51017,7 +52740,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51033,7 +52757,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51049,7 +52774,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51065,7 +52791,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51081,7 +52808,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51097,7 +52825,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51113,7 +52842,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51129,7 +52859,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51145,7 +52876,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51161,7 +52893,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51177,7 +52910,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51193,7 +52927,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51209,7 +52944,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51225,7 +52961,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51241,7 +52978,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51257,7 +52995,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51273,7 +53012,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51289,7 +53029,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51305,7 +53046,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51321,7 +53063,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51337,7 +53080,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51353,7 +53097,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51369,7 +53114,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51385,7 +53131,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51401,7 +53148,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51417,7 +53165,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51433,7 +53182,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51449,7 +53199,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51465,7 +53216,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51481,7 +53233,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51497,7 +53250,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51513,7 +53267,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51529,7 +53284,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51545,7 +53301,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51561,7 +53318,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51577,7 +53335,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51593,7 +53352,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51609,7 +53369,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51625,7 +53386,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51641,7 +53403,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51657,7 +53420,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51673,7 +53437,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51689,7 +53454,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51705,7 +53471,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51721,7 +53488,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51737,7 +53505,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51753,7 +53522,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51769,7 +53539,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51785,7 +53556,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51801,7 +53573,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51817,7 +53590,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51833,7 +53607,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51849,7 +53624,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51865,7 +53641,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51881,7 +53658,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51897,7 +53675,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51913,7 +53692,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51929,7 +53709,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51945,7 +53726,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51961,7 +53743,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51977,7 +53760,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -51993,7 +53777,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52009,7 +53794,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52025,7 +53811,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52041,7 +53828,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52057,7 +53845,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52073,7 +53862,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52089,7 +53879,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52105,7 +53896,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52121,7 +53913,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52137,7 +53930,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52153,7 +53947,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52169,7 +53964,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52185,7 +53981,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52201,7 +53998,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52217,7 +54015,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52233,7 +54032,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52249,7 +54049,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52265,7 +54066,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52281,7 +54083,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52297,7 +54100,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52313,7 +54117,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52329,7 +54134,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52345,7 +54151,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52361,7 +54168,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52377,7 +54185,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52393,7 +54202,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52409,7 +54219,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52425,7 +54236,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52441,7 +54253,8 @@
"name": "json_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52457,7 +54270,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52473,7 +54287,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52489,7 +54304,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52505,7 +54321,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52521,7 +54338,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52537,7 +54355,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52553,7 +54372,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52569,7 +54389,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52585,7 +54406,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52601,7 +54423,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52617,7 +54440,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52633,7 +54457,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52649,7 +54474,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52665,7 +54491,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52681,7 +54508,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52697,7 +54525,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52713,7 +54542,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52729,7 +54559,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52745,7 +54576,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52761,7 +54593,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52777,7 +54610,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52793,7 +54627,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52809,7 +54644,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52825,7 +54661,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52841,7 +54678,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52857,7 +54695,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52873,7 +54712,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52889,7 +54729,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52905,7 +54746,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52921,7 +54763,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52937,7 +54780,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52953,7 +54797,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52969,7 +54814,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -52985,7 +54831,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53001,7 +54848,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53017,7 +54865,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53033,7 +54882,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53049,7 +54899,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53065,7 +54916,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53081,7 +54933,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53097,7 +54950,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53113,7 +54967,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53129,7 +54984,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53145,7 +55001,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53161,7 +55018,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53177,7 +55035,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53193,7 +55052,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53209,7 +55069,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53225,7 +55086,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53241,7 +55103,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53257,7 +55120,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53273,7 +55137,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53289,7 +55154,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53305,7 +55171,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53321,7 +55188,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53337,7 +55205,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53353,7 +55222,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53369,7 +55239,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53385,7 +55256,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53401,7 +55273,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53417,7 +55290,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53433,7 +55307,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53449,7 +55324,8 @@
"name": "nanopb_fuzzer_response_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53465,7 +55341,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53481,7 +55358,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53497,7 +55375,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53513,7 +55392,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53529,7 +55409,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53545,7 +55426,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53561,7 +55443,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53577,7 +55460,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53593,7 +55477,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53609,7 +55494,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53625,7 +55511,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53641,7 +55528,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53657,7 +55545,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53673,7 +55562,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53689,7 +55579,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53705,7 +55596,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53721,7 +55613,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53737,7 +55630,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53753,7 +55647,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53769,7 +55664,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53785,7 +55681,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53801,7 +55698,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53817,7 +55715,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53833,7 +55732,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53849,7 +55749,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53865,7 +55766,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53881,7 +55783,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53897,7 +55800,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53913,7 +55817,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53929,7 +55834,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53945,7 +55851,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53961,7 +55868,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53977,7 +55885,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -53993,7 +55902,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54009,7 +55919,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54025,7 +55936,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54041,7 +55953,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54057,7 +55970,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54073,7 +55987,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54089,7 +56004,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54105,7 +56021,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54121,7 +56038,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54137,7 +56055,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54153,7 +56072,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54169,7 +56089,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54185,7 +56106,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54201,7 +56123,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54217,7 +56140,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54233,7 +56157,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54249,7 +56174,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54265,7 +56191,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54281,7 +56208,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54297,7 +56225,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54313,7 +56242,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54329,7 +56259,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54345,7 +56276,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54361,7 +56293,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54377,7 +56310,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54393,7 +56327,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54409,7 +56344,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54425,7 +56361,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54441,7 +56378,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54457,7 +56395,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54473,7 +56412,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54489,7 +56429,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54505,7 +56446,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54521,7 +56463,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54537,7 +56480,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54553,7 +56497,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54569,7 +56514,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54585,7 +56531,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54601,7 +56548,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54617,7 +56565,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54633,7 +56582,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54649,7 +56599,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54665,7 +56616,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54681,7 +56633,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54697,7 +56650,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54713,7 +56667,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54729,7 +56684,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54745,7 +56701,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54761,7 +56718,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54777,7 +56735,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54793,7 +56752,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54809,7 +56769,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54825,7 +56786,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54841,7 +56803,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54857,7 +56820,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54873,7 +56837,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54889,7 +56854,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54905,7 +56871,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54921,7 +56888,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54937,7 +56905,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54953,7 +56922,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54969,7 +56939,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -54985,7 +56956,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55001,7 +56973,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55017,7 +56990,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55033,7 +57007,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55049,7 +57024,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55065,7 +57041,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55081,7 +57058,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55097,7 +57075,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55113,7 +57092,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55129,7 +57109,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55145,7 +57126,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55161,7 +57143,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55177,7 +57160,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55193,7 +57177,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55209,7 +57194,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55225,7 +57211,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55241,7 +57228,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55257,7 +57245,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55273,7 +57262,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55289,7 +57279,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55305,7 +57296,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55321,7 +57313,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55337,7 +57330,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55353,7 +57347,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55369,7 +57364,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55385,7 +57381,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55401,7 +57398,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55417,7 +57415,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55433,7 +57432,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55449,7 +57449,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55465,7 +57466,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55481,7 +57483,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55497,7 +57500,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55513,7 +57517,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55529,7 +57534,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55545,7 +57551,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55561,7 +57568,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55577,7 +57585,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55593,7 +57602,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55609,7 +57619,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55625,7 +57636,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55641,7 +57653,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55657,7 +57670,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55673,7 +57687,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55689,7 +57704,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55705,7 +57721,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55721,7 +57738,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55737,7 +57755,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55753,7 +57772,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55769,7 +57789,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55785,7 +57806,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55801,7 +57823,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55817,7 +57840,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55833,7 +57857,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55849,7 +57874,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55865,7 +57891,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55881,7 +57908,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55897,7 +57925,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55913,7 +57942,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55929,7 +57959,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55945,7 +57976,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55961,7 +57993,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55977,7 +58010,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -55993,7 +58027,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56009,7 +58044,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56025,7 +58061,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56041,7 +58078,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56057,7 +58095,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56073,7 +58112,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56089,7 +58129,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56105,7 +58146,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56121,7 +58163,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56137,7 +58180,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56153,7 +58197,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56169,7 +58214,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56185,7 +58231,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56201,7 +58248,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56217,7 +58265,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56233,7 +58282,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56249,7 +58299,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56265,7 +58316,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56281,7 +58333,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56297,7 +58350,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56313,7 +58367,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56329,7 +58384,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56345,7 +58401,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56361,7 +58418,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56377,7 +58435,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56393,7 +58452,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56409,7 +58469,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56425,7 +58486,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56441,7 +58503,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56457,7 +58520,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56473,7 +58537,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56489,7 +58554,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56505,7 +58571,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56521,7 +58588,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56537,7 +58605,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56553,7 +58622,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56569,7 +58639,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56585,7 +58656,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56601,7 +58673,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56617,7 +58690,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56633,7 +58707,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56649,7 +58724,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56665,7 +58741,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56681,7 +58758,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56697,7 +58775,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56713,7 +58792,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56729,7 +58809,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56745,7 +58826,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56761,7 +58843,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56777,7 +58860,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56793,7 +58877,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56809,7 +58894,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56825,7 +58911,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56841,7 +58928,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56857,7 +58945,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56873,7 +58962,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56889,7 +58979,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56905,7 +58996,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56921,7 +59013,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56937,7 +59030,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56953,7 +59047,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56969,7 +59064,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -56985,7 +59081,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57001,7 +59098,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57017,7 +59115,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57033,7 +59132,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57049,7 +59149,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57065,7 +59166,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57081,7 +59183,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57097,7 +59200,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57113,7 +59217,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57129,7 +59234,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57145,7 +59251,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57161,7 +59268,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57177,7 +59285,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57193,7 +59302,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57209,7 +59319,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57225,7 +59336,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57241,7 +59353,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57257,7 +59370,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57273,7 +59387,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57289,7 +59404,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57305,7 +59421,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57321,7 +59438,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57337,7 +59455,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57353,7 +59472,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57369,7 +59489,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57385,7 +59506,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57401,7 +59523,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57417,7 +59540,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57433,7 +59557,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57449,7 +59574,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57465,7 +59591,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57481,7 +59608,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57497,7 +59625,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57513,7 +59642,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57529,7 +59659,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57545,7 +59676,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57561,7 +59693,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57577,7 +59710,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57593,7 +59727,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57609,7 +59744,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57625,7 +59761,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57641,7 +59778,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57657,7 +59795,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57673,7 +59812,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57689,7 +59829,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57705,7 +59846,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57721,7 +59863,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57737,7 +59880,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57753,7 +59897,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57769,7 +59914,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57785,7 +59931,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57801,7 +59948,8 @@
"name": "nanopb_fuzzer_serverlist_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57817,7 +59965,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57833,7 +59982,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57849,7 +59999,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57865,7 +60016,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57881,7 +60033,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57897,7 +60050,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57913,7 +60067,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57929,7 +60084,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57945,7 +60101,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57961,7 +60118,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57977,7 +60135,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -57993,7 +60152,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58009,7 +60169,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58025,7 +60186,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58041,7 +60203,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58057,7 +60220,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58073,7 +60237,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58089,7 +60254,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58105,7 +60271,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58121,7 +60288,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58137,7 +60305,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58153,7 +60322,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58169,7 +60339,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58185,7 +60356,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58201,7 +60373,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58217,7 +60390,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58233,7 +60407,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58249,7 +60424,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58265,7 +60441,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58281,7 +60458,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58297,7 +60475,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58313,7 +60492,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58329,7 +60509,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58345,7 +60526,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58361,7 +60543,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58377,7 +60560,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58393,7 +60577,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58409,7 +60594,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58425,7 +60611,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58441,7 +60628,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58457,7 +60645,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58473,7 +60662,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58489,7 +60679,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58505,7 +60696,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58521,7 +60713,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58537,7 +60730,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58553,7 +60747,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58569,7 +60764,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58585,7 +60781,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58601,7 +60798,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58617,7 +60815,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58633,7 +60832,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58649,7 +60849,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58665,7 +60866,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58681,7 +60883,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58697,7 +60900,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58713,7 +60917,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58729,7 +60934,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58745,7 +60951,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58761,7 +60968,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58777,7 +60985,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58793,7 +61002,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58809,7 +61019,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58825,7 +61036,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58841,7 +61053,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58857,7 +61070,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58873,7 +61087,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58889,7 +61104,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58905,7 +61121,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58921,7 +61138,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58937,7 +61155,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58953,7 +61172,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58969,7 +61189,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -58985,7 +61206,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59001,7 +61223,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59017,7 +61240,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59033,7 +61257,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59049,7 +61274,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59065,7 +61291,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59081,7 +61308,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59097,7 +61325,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59113,7 +61342,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59129,7 +61359,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59145,7 +61376,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59161,7 +61393,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59177,7 +61410,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59193,7 +61427,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59209,7 +61444,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59225,7 +61461,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59241,7 +61478,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59257,7 +61495,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59273,7 +61512,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59289,7 +61529,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59305,7 +61546,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59321,7 +61563,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59337,7 +61580,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59353,7 +61597,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59369,7 +61614,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59385,7 +61631,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59401,7 +61648,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59417,7 +61665,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59433,7 +61682,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59449,7 +61699,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59465,7 +61716,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59481,7 +61733,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59497,7 +61750,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59513,7 +61767,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59529,7 +61784,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59545,7 +61801,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59561,7 +61818,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59577,7 +61835,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59593,7 +61852,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59609,7 +61869,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59625,7 +61886,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59641,7 +61903,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59657,7 +61920,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59673,7 +61937,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59689,7 +61954,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59705,7 +61971,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59721,7 +61988,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59737,7 +62005,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59753,7 +62022,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59769,7 +62039,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59785,7 +62056,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59801,7 +62073,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59817,7 +62090,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59833,7 +62107,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59849,7 +62124,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59865,7 +62141,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59881,7 +62158,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59897,7 +62175,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59913,7 +62192,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59929,7 +62209,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59945,7 +62226,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59961,7 +62243,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59977,7 +62260,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -59993,7 +62277,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60009,7 +62294,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60025,7 +62311,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60041,7 +62328,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60057,7 +62345,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60073,7 +62362,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60089,7 +62379,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60105,7 +62396,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60121,7 +62413,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60137,7 +62430,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60153,7 +62447,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60169,7 +62464,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60185,7 +62481,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60201,7 +62498,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60217,7 +62515,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60233,7 +62532,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60249,7 +62549,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60265,7 +62566,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60281,7 +62583,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60297,7 +62600,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60313,7 +62617,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60329,7 +62634,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60345,7 +62651,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60361,7 +62668,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60377,7 +62685,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60393,7 +62702,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60409,7 +62719,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60425,7 +62736,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60441,7 +62753,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60457,7 +62770,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60473,7 +62787,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60489,7 +62804,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60505,7 +62821,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60521,7 +62838,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60537,7 +62855,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60553,7 +62872,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60569,7 +62889,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60585,7 +62906,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60601,7 +62923,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60617,7 +62940,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60633,7 +62957,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60649,7 +62974,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60665,7 +62991,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60681,7 +63008,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60697,7 +63025,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60713,7 +63042,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60729,7 +63059,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60745,7 +63076,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60761,7 +63093,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60777,7 +63110,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60793,7 +63127,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60809,7 +63144,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60825,7 +63161,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60841,7 +63178,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60857,7 +63195,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60873,7 +63212,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60889,7 +63229,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60905,7 +63246,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60921,7 +63263,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60937,7 +63280,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60953,7 +63297,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60969,7 +63314,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -60985,7 +63331,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61001,7 +63348,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61017,7 +63365,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61033,7 +63382,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61049,7 +63399,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61065,7 +63416,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61081,7 +63433,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61097,7 +63450,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61113,7 +63467,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61129,7 +63484,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61145,7 +63501,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61161,7 +63518,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61177,7 +63535,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61193,7 +63552,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61209,7 +63569,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61225,7 +63586,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61241,7 +63603,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61257,7 +63620,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61273,7 +63637,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61289,7 +63654,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61305,7 +63671,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61321,7 +63688,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61337,7 +63705,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61353,7 +63722,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61369,7 +63739,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61385,7 +63756,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61401,7 +63773,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61417,7 +63790,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61433,7 +63807,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61449,7 +63824,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61465,7 +63841,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61481,7 +63858,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61497,7 +63875,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61513,7 +63892,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61529,7 +63909,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61545,7 +63926,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61561,7 +63943,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61577,7 +63960,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61593,7 +63977,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61609,7 +63994,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61625,7 +64011,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61641,7 +64028,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61657,7 +64045,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61673,7 +64062,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61689,7 +64079,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61705,7 +64096,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61721,7 +64113,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61737,7 +64130,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61753,7 +64147,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61769,7 +64164,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61785,7 +64181,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61801,7 +64198,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61817,7 +64215,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61833,7 +64232,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61849,7 +64249,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61865,7 +64266,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61881,7 +64283,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61897,7 +64300,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61913,7 +64317,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61929,7 +64334,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61945,7 +64351,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61961,7 +64368,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61977,7 +64385,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -61993,7 +64402,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62009,7 +64419,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62025,7 +64436,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62041,7 +64453,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62057,7 +64470,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62073,7 +64487,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62089,7 +64504,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62105,7 +64521,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62121,7 +64538,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62137,7 +64555,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62153,7 +64572,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62169,7 +64589,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62185,7 +64606,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62201,7 +64623,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62217,7 +64640,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62233,7 +64657,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62249,7 +64674,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62265,7 +64691,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62281,7 +64708,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62297,7 +64725,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62313,7 +64742,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62329,7 +64759,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62345,7 +64776,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62361,7 +64793,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62377,7 +64810,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62393,7 +64827,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62409,7 +64844,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62425,7 +64861,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62441,7 +64878,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62457,7 +64895,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62473,7 +64912,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62489,7 +64929,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62505,7 +64946,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62521,7 +64963,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62537,7 +64980,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62553,7 +64997,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62569,7 +65014,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62585,7 +65031,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62601,7 +65048,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62617,7 +65065,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62633,7 +65082,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62649,7 +65099,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62665,7 +65116,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62681,7 +65133,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62697,7 +65150,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62713,7 +65167,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62729,7 +65184,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62745,7 +65201,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62761,7 +65218,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62777,7 +65235,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62793,7 +65252,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62809,7 +65269,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62825,7 +65286,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62841,7 +65303,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62857,7 +65320,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62873,7 +65337,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62889,7 +65354,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62905,7 +65371,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62921,7 +65388,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62937,7 +65405,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62953,7 +65422,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62969,7 +65439,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -62985,7 +65456,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63001,7 +65473,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63017,7 +65490,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63033,7 +65507,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63049,7 +65524,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63065,7 +65541,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63081,7 +65558,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63097,7 +65575,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63113,7 +65592,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63129,7 +65609,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63145,7 +65626,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63161,7 +65643,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63177,7 +65660,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63193,7 +65677,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63209,7 +65694,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63225,7 +65711,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63241,7 +65728,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63257,7 +65745,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63273,7 +65762,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63289,7 +65779,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63305,7 +65796,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63321,7 +65813,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63337,7 +65830,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63353,7 +65847,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63369,7 +65864,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63385,7 +65881,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63401,7 +65898,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63417,7 +65915,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63433,7 +65932,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63449,7 +65949,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63465,7 +65966,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63481,7 +65983,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63497,7 +66000,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63513,7 +66017,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63529,7 +66034,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63545,7 +66051,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63561,7 +66068,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63577,7 +66085,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63593,7 +66102,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63609,7 +66119,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63625,7 +66136,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63641,7 +66153,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63657,7 +66170,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63673,7 +66187,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63689,7 +66204,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63705,7 +66221,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63721,7 +66238,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63737,7 +66255,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63753,7 +66272,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63769,7 +66289,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63785,7 +66306,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63801,7 +66323,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63817,7 +66340,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63833,7 +66357,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63849,7 +66374,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63865,7 +66391,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63881,7 +66408,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63897,7 +66425,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63913,7 +66442,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63929,7 +66459,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63945,7 +66476,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63961,7 +66493,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63977,7 +66510,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -63993,7 +66527,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64009,7 +66544,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64025,7 +66561,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64041,7 +66578,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64057,7 +66595,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64073,7 +66612,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64089,7 +66629,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64105,7 +66646,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64121,7 +66663,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64137,7 +66680,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64153,7 +66697,8 @@
"name": "server_fuzzer_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64169,7 +66714,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64185,7 +66731,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64201,7 +66748,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64217,7 +66765,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64233,7 +66782,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64249,7 +66799,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64265,7 +66816,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64281,7 +66833,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64297,7 +66850,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64313,7 +66867,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64329,7 +66884,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64345,7 +66901,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64361,7 +66918,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64377,7 +66935,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64393,7 +66952,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64409,7 +66969,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64425,7 +66986,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64441,7 +67003,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64457,7 +67020,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64473,7 +67037,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64489,7 +67054,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64505,7 +67071,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64521,7 +67088,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64537,7 +67105,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64553,7 +67122,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64569,7 +67139,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64585,7 +67156,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64601,7 +67173,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64617,7 +67190,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64633,7 +67207,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64649,7 +67224,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64665,7 +67241,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64681,7 +67258,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64697,7 +67275,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64713,7 +67292,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64729,7 +67309,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64745,7 +67326,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64761,7 +67343,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64777,7 +67360,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64793,7 +67377,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64809,7 +67394,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64825,7 +67411,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64841,7 +67428,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64857,7 +67445,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64873,7 +67462,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64889,7 +67479,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64905,7 +67496,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64921,7 +67513,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64937,7 +67530,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64953,7 +67547,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64969,7 +67564,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -64985,7 +67581,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -65001,7 +67598,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -65017,7 +67615,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -65033,7 +67632,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -65049,7 +67649,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -65065,7 +67666,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -65081,7 +67683,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -65097,7 +67700,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -65113,7 +67717,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -65129,7 +67734,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -65145,7 +67751,8 @@
"name": "uri_fuzzer_test_one_entry",
"platforms": [
"linux"
- ]
+ ],
+ "uses_polling": false
},
{
"args": [
@@ -65161,6 +67768,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 6a2843e37c..a20d386fa3 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" />
@@ -422,6 +424,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" />
@@ -474,6 +477,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">
@@ -728,6 +733,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 7d53be719c..d5465176a2 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>
@@ -439,6 +442,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>
@@ -576,6 +588,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>
@@ -641,6 +656,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>
@@ -959,6 +977,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>
@@ -1091,6 +1112,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>
@@ -1133,6 +1166,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>