diff --git a/.gitignore b/.gitignore index 502483f45698907f47c72722070a33c58475f39b..ca61bda124c993a79f8f6f67b1c37e730337f7a6 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,7 @@ dist/ *.egg # Node installation output -node_modules/ +^node_modules src/node/extension_binary/ # gcov coverage data diff --git a/BUILD b/BUILD index ea4bab757c301f150a1e41e30d85da3ece31f554..d9dec753b6c3a68522dcedca711da5a29a43b9f3 100644 --- a/BUILD +++ b/BUILD @@ -84,6 +84,7 @@ cc_library( "src/core/lib/support/stack_lockfree.c", "src/core/lib/support/string.c", "src/core/lib/support/string_posix.c", + "src/core/lib/support/string_util_win32.c", "src/core/lib/support/string_win32.c", "src/core/lib/support/subprocess_posix.c", "src/core/lib/support/subprocess_windows.c", @@ -98,6 +99,7 @@ cc_library( "src/core/lib/support/time_precise.c", "src/core/lib/support/time_win32.c", "src/core/lib/support/tls_pthread.c", + "src/core/lib/support/tmpfile_msys.c", "src/core/lib/support/tmpfile_posix.c", "src/core/lib/support/tmpfile_win32.c", "src/core/lib/support/wrap_memcpy.c", @@ -1140,6 +1142,8 @@ cc_library( "src/compiler/csharp_generator.h", "src/compiler/csharp_generator_helpers.h", "src/compiler/generator_helpers.h", + "src/compiler/node_generator.h", + "src/compiler/node_generator_helpers.h", "src/compiler/objective_c_generator.h", "src/compiler/objective_c_generator_helpers.h", "src/compiler/python_generator.h", @@ -1149,6 +1153,7 @@ cc_library( "src/compiler/ruby_generator_string-inl.h", "src/compiler/cpp_generator.cc", "src/compiler/csharp_generator.cc", + "src/compiler/node_generator.cc", "src/compiler/objective_c_generator.cc", "src/compiler/python_generator.cc", "src/compiler/ruby_generator.cc", @@ -1220,6 +1225,7 @@ objc_library( "src/core/lib/support/stack_lockfree.c", "src/core/lib/support/string.c", "src/core/lib/support/string_posix.c", + "src/core/lib/support/string_util_win32.c", "src/core/lib/support/string_win32.c", "src/core/lib/support/subprocess_posix.c", "src/core/lib/support/subprocess_windows.c", @@ -1234,6 +1240,7 @@ objc_library( "src/core/lib/support/time_precise.c", "src/core/lib/support/time_win32.c", "src/core/lib/support/tls_pthread.c", + "src/core/lib/support/tmpfile_msys.c", "src/core/lib/support/tmpfile_posix.c", "src/core/lib/support/tmpfile_win32.c", "src/core/lib/support/wrap_memcpy.c", @@ -1672,6 +1679,18 @@ cc_binary( ) +cc_binary( + name = "grpc_node_plugin", + srcs = [ + "src/compiler/node_plugin.cc", + ], + deps = [ + "//external:protobuf_compiler", + ":grpc_plugin_support", + ], +) + + cc_binary( name = "grpc_objective_c_plugin", srcs = [ diff --git a/Makefile b/Makefile index 380f684ef16575bae5bef3535d7b2f4620f77241..fae2680c4157484aba230b3a2667433b555da108 100644 --- a/Makefile +++ b/Makefile @@ -779,7 +779,7 @@ endif .SECONDARY = %.pb.h %.pb.cc -PROTOC_PLUGINS = $(BINDIR)/$(CONFIG)/grpc_cpp_plugin $(BINDIR)/$(CONFIG)/grpc_csharp_plugin $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin $(BINDIR)/$(CONFIG)/grpc_python_plugin $(BINDIR)/$(CONFIG)/grpc_ruby_plugin +PROTOC_PLUGINS = $(BINDIR)/$(CONFIG)/grpc_cpp_plugin $(BINDIR)/$(CONFIG)/grpc_csharp_plugin $(BINDIR)/$(CONFIG)/grpc_node_plugin $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin $(BINDIR)/$(CONFIG)/grpc_python_plugin $(BINDIR)/$(CONFIG)/grpc_ruby_plugin ifeq ($(DEP_MISSING),) all: static shared plugins dep_error: @@ -1010,9 +1010,11 @@ cxx_time_test: $(BINDIR)/$(CONFIG)/cxx_time_test end2end_test: $(BINDIR)/$(CONFIG)/end2end_test generic_async_streaming_ping_pong_test: $(BINDIR)/$(CONFIG)/generic_async_streaming_ping_pong_test generic_end2end_test: $(BINDIR)/$(CONFIG)/generic_end2end_test +golden_file_test: $(BINDIR)/$(CONFIG)/golden_file_test grpc_cli: $(BINDIR)/$(CONFIG)/grpc_cli grpc_cpp_plugin: $(BINDIR)/$(CONFIG)/grpc_cpp_plugin grpc_csharp_plugin: $(BINDIR)/$(CONFIG)/grpc_csharp_plugin +grpc_node_plugin: $(BINDIR)/$(CONFIG)/grpc_node_plugin grpc_objective_c_plugin: $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin grpc_python_plugin: $(BINDIR)/$(CONFIG)/grpc_python_plugin grpc_ruby_plugin: $(BINDIR)/$(CONFIG)/grpc_ruby_plugin @@ -1380,6 +1382,7 @@ buildtests_cxx: buildtests_zookeeper privatelibs_cxx \ $(BINDIR)/$(CONFIG)/end2end_test \ $(BINDIR)/$(CONFIG)/generic_async_streaming_ping_pong_test \ $(BINDIR)/$(CONFIG)/generic_end2end_test \ + $(BINDIR)/$(CONFIG)/golden_file_test \ $(BINDIR)/$(CONFIG)/grpc_cli \ $(BINDIR)/$(CONFIG)/grpclb_api_test \ $(BINDIR)/$(CONFIG)/hybrid_end2end_test \ @@ -1711,6 +1714,8 @@ test_cxx: test_zookeeper buildtests_cxx $(Q) $(BINDIR)/$(CONFIG)/generic_async_streaming_ping_pong_test || ( echo test generic_async_streaming_ping_pong_test failed ; exit 1 ) $(E) "[RUN] Testing generic_end2end_test" $(Q) $(BINDIR)/$(CONFIG)/generic_end2end_test || ( echo test generic_end2end_test failed ; exit 1 ) + $(E) "[RUN] Testing golden_file_test" + $(Q) $(BINDIR)/$(CONFIG)/golden_file_test || ( echo test golden_file_test failed ; exit 1 ) $(E) "[RUN] Testing grpclb_api_test" $(Q) $(BINDIR)/$(CONFIG)/grpclb_api_test || ( echo test grpclb_api_test failed ; exit 1 ) $(E) "[RUN] Testing hybrid_end2end_test" @@ -1879,6 +1884,21 @@ $(GENDIR)/src/proto/grpc/lb/v0/load_balancer.grpc.pb.cc: src/proto/grpc/lb/v0/lo $(Q) $(PROTOC) --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(BINDIR)/$(CONFIG)/grpc_cpp_plugin $< endif +ifeq ($(NO_PROTOC),true) +$(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc: protoc_dep_error +else +$(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc: src/proto/grpc/testing/compiler_test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[PROTOC] Generating protobuf CC file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< + +$(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc: src/proto/grpc/testing/compiler_test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(BINDIR)/$(CONFIG)/grpc_cpp_plugin $< +endif + ifeq ($(NO_PROTOC),true) $(GENDIR)/src/proto/grpc/testing/control.pb.cc: protoc_dep_error $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc: protoc_dep_error @@ -2245,6 +2265,8 @@ else $(Q) $(INSTALL) -d $(prefix)/bin $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_csharp_plugin $(prefix)/bin/grpc_csharp_plugin $(Q) $(INSTALL) -d $(prefix)/bin + $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_node_plugin $(prefix)/bin/grpc_node_plugin + $(Q) $(INSTALL) -d $(prefix)/bin $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin $(prefix)/bin/grpc_objective_c_plugin $(Q) $(INSTALL) -d $(prefix)/bin $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_python_plugin $(prefix)/bin/grpc_python_plugin @@ -2328,6 +2350,7 @@ LIBGPR_SRC = \ src/core/lib/support/stack_lockfree.c \ src/core/lib/support/string.c \ src/core/lib/support/string_posix.c \ + src/core/lib/support/string_util_win32.c \ src/core/lib/support/string_win32.c \ src/core/lib/support/subprocess_posix.c \ src/core/lib/support/subprocess_windows.c \ @@ -2342,6 +2365,7 @@ LIBGPR_SRC = \ src/core/lib/support/time_precise.c \ src/core/lib/support/time_win32.c \ src/core/lib/support/tls_pthread.c \ + src/core/lib/support/tmpfile_msys.c \ src/core/lib/support/tmpfile_posix.c \ src/core/lib/support/tmpfile_win32.c \ src/core/lib/support/wrap_memcpy.c \ @@ -3613,6 +3637,7 @@ endif LIBGRPC_PLUGIN_SUPPORT_SRC = \ src/compiler/cpp_generator.cc \ src/compiler/csharp_generator.cc \ + src/compiler/node_generator.cc \ src/compiler/objective_c_generator.cc \ src/compiler/python_generator.cc \ src/compiler/ruby_generator.cc \ @@ -10442,6 +10467,53 @@ endif endif +GOLDEN_FILE_TEST_SRC = \ + $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc \ + test/cpp/codegen/golden_file_test.cc \ + +GOLDEN_FILE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GOLDEN_FILE_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/golden_file_test: openssl_dep_error + +else + + + + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/golden_file_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/golden_file_test: $(PROTOBUF_DEP) $(GOLDEN_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(GOLDEN_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/golden_file_test + +endif + +endif + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/compiler_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/test/cpp/codegen/golden_file_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_golden_file_test: $(GOLDEN_FILE_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(GOLDEN_FILE_TEST_OBJS:.o=.dep) +endif +endif +$(OBJDIR)/$(CONFIG)/test/cpp/codegen/golden_file_test.o: $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc + + GRPC_CLI_SRC = \ test/cpp/util/grpc_cli.cc \ @@ -10547,6 +10619,37 @@ ifneq ($(NO_DEPS),true) endif +GRPC_NODE_PLUGIN_SRC = \ + src/compiler/node_plugin.cc \ + +GRPC_NODE_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_NODE_PLUGIN_SRC)))) + + + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/grpc_node_plugin: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/grpc_node_plugin: $(PROTOBUF_DEP) $(GRPC_NODE_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_NODE_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_node_plugin + +endif + +$(OBJDIR)/$(CONFIG)/src/compiler/node_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + +deps_grpc_node_plugin: $(GRPC_NODE_PLUGIN_OBJS:.o=.dep) + +ifneq ($(NO_DEPS),true) +-include $(GRPC_NODE_PLUGIN_OBJS:.o=.dep) +endif + + GRPC_OBJECTIVE_C_PLUGIN_SRC = \ src/compiler/objective_c_plugin.cc \ diff --git a/binding.gyp b/binding.gyp index 21a23d60df430bdfb8afaf698926f1f46873e445..72446bb41ac0526cf47ccdb9dba3117874bfc921 100644 --- a/binding.gyp +++ b/binding.gyp @@ -522,6 +522,7 @@ 'src/core/lib/support/stack_lockfree.c', 'src/core/lib/support/string.c', 'src/core/lib/support/string_posix.c', + 'src/core/lib/support/string_util_win32.c', 'src/core/lib/support/string_win32.c', 'src/core/lib/support/subprocess_posix.c', 'src/core/lib/support/subprocess_windows.c', @@ -536,6 +537,7 @@ 'src/core/lib/support/time_precise.c', 'src/core/lib/support/time_win32.c', 'src/core/lib/support/tls_pthread.c', + 'src/core/lib/support/tmpfile_msys.c', 'src/core/lib/support/tmpfile_posix.c', 'src/core/lib/support/tmpfile_win32.c', 'src/core/lib/support/wrap_memcpy.c', diff --git a/build.yaml b/build.yaml index 444cc8885b2b18dd857b162de1fbf347d04cf808..9990b337ef94c4fae65a45145818aab8477b8bea 100644 --- a/build.yaml +++ b/build.yaml @@ -103,6 +103,7 @@ filegroups: - src/core/lib/support/stack_lockfree.c - src/core/lib/support/string.c - src/core/lib/support/string_posix.c + - src/core/lib/support/string_util_win32.c - src/core/lib/support/string_win32.c - src/core/lib/support/subprocess_posix.c - src/core/lib/support/subprocess_windows.c @@ -117,6 +118,7 @@ filegroups: - src/core/lib/support/time_precise.c - src/core/lib/support/time_win32.c - src/core/lib/support/tls_pthread.c + - src/core/lib/support/tmpfile_msys.c - src/core/lib/support/tmpfile_posix.c - src/core/lib/support/tmpfile_win32.c - src/core/lib/support/wrap_memcpy.c @@ -940,6 +942,8 @@ libs: - src/compiler/csharp_generator.h - src/compiler/csharp_generator_helpers.h - src/compiler/generator_helpers.h + - src/compiler/node_generator.h + - src/compiler/node_generator_helpers.h - src/compiler/objective_c_generator.h - src/compiler/objective_c_generator_helpers.h - src/compiler/python_generator.h @@ -950,6 +954,7 @@ libs: src: - src/compiler/cpp_generator.cc - src/compiler/csharp_generator.cc + - src/compiler/node_generator.cc - src/compiler/objective_c_generator.cc - src/compiler/python_generator.cc - src/compiler/ruby_generator.cc @@ -2550,6 +2555,17 @@ targets: - grpc - gpr_test_util - gpr +- name: golden_file_test + gtest: true + build: test + language: c++ + src: + - src/proto/grpc/testing/compiler_test.proto + - test/cpp/codegen/golden_file_test.cc + deps: + - grpc++ + - grpc + - gpr - name: grpc_cli build: test run: false @@ -2584,6 +2600,15 @@ targets: secure: false vs_config_type: Application vs_project_guid: '{3C813052-A49A-4662-B90A-1ADBEC7EE453}' +- name: grpc_node_plugin + build: protoc + language: c++ + src: + - src/compiler/node_plugin.cc + deps: + - grpc_plugin_support + secure: false + vs_config_type: Application - name: grpc_objective_c_plugin build: protoc language: c++ diff --git a/config.m4 b/config.m4 index 8764ae973404fec2eee0c9a5cdd8743963bdad99..a1f30a9191f46cfc4957e72750ff45e1b20c6d02 100644 --- a/config.m4 +++ b/config.m4 @@ -63,6 +63,7 @@ if test "$PHP_GRPC" != "no"; then src/core/lib/support/stack_lockfree.c \ src/core/lib/support/string.c \ src/core/lib/support/string_posix.c \ + src/core/lib/support/string_util_win32.c \ src/core/lib/support/string_win32.c \ src/core/lib/support/subprocess_posix.c \ src/core/lib/support/subprocess_windows.c \ @@ -77,6 +78,7 @@ if test "$PHP_GRPC" != "no"; then src/core/lib/support/time_precise.c \ src/core/lib/support/time_win32.c \ src/core/lib/support/tls_pthread.c \ + src/core/lib/support/tmpfile_msys.c \ src/core/lib/support/tmpfile_posix.c \ src/core/lib/support/tmpfile_win32.c \ src/core/lib/support/wrap_memcpy.c \ diff --git a/doc/fail_fast.md b/doc/fail_fast.md new file mode 100644 index 0000000000000000000000000000000000000000..3ed4297194b408a5c4bb0b0a047105d767cf3d86 --- /dev/null +++ b/doc/fail_fast.md @@ -0,0 +1,15 @@ +gRPC Fail Fast Semantics +======================== + +Fail fast requests allow terminating requests (with status UNAVAILABLE) prior +to the deadline of the request being met. + +gRPC implementations of fail fast can terminate requests whenever a channel is +in the TRANSIENT_FAILURE or SHUTDOWN states. If the channel is in any other +state (CONNECTING, READY, or IDLE) the request should not be terminated. + +Fail fast SHOULD be the default for gRPC implementations, with an option to +switch to non fail fast. + +The opposite of fail fast is 'ignore connectivity'. + diff --git a/examples/cpp/helloworld/Makefile b/examples/cpp/helloworld/Makefile index 4b1867e2920545c15571839fd9ff355be6e51e62..470b83573e48f7b4ff018285b3a8b0a699cf40ba 100644 --- a/examples/cpp/helloworld/Makefile +++ b/examples/cpp/helloworld/Makefile @@ -32,7 +32,7 @@ CXX = g++ CPPFLAGS += -I/usr/local/include -pthread CXXFLAGS += -std=c++11 -LDFLAGS += -L/usr/local/lib -lgrpc++_unsecure -lgrpc -lprotobuf -lpthread -ldl +LDFLAGS += -L/usr/local/lib `pkg-config --libs grpc++` -lprotobuf -lpthread -ldl PROTOC = protoc GRPC_CPP_PLUGIN = grpc_cpp_plugin GRPC_CPP_PLUGIN_PATH ?= `which $(GRPC_CPP_PLUGIN)` diff --git a/examples/cpp/route_guide/Makefile b/examples/cpp/route_guide/Makefile index 0fbb0a89298d249a359a4a15b312aee4af215e81..11f2a00cc8909b2d4701bdd62e647f81e08cb280 100644 --- a/examples/cpp/route_guide/Makefile +++ b/examples/cpp/route_guide/Makefile @@ -32,7 +32,7 @@ CXX = g++ CPPFLAGS += -I/usr/local/include -pthread CXXFLAGS += -std=c++11 -LDFLAGS += -L/usr/local/lib -lgrpc++_unsecure -lgrpc -lprotobuf -lpthread -ldl +LDFLAGS += -L/usr/local/lib `pkg-config --libs grpc++` -lprotobuf -lpthread -ldl PROTOC = protoc GRPC_CPP_PLUGIN = grpc_cpp_plugin GRPC_CPP_PLUGIN_PATH ?= `which $(GRPC_CPP_PLUGIN)` diff --git a/examples/python/README.md b/examples/python/README.md index b57da8f6428846027b455e842828c792f0bd7852..9992baa84217a3dd7d9f7c42ccad40df56a2bb97 100644 --- a/examples/python/README.md +++ b/examples/python/README.md @@ -8,12 +8,19 @@ For this sample, we've already generated the server and client stubs from Install gRPC: - ```sh +```sh $ pip install grpcio ``` Or, to install it system wide: ```sh - $ sudo pip install grpcio + $ sudo pip install grpcio +``` + +If you're on Windows, make sure you installed the `pip.exe` component when you +installed Python. Invoke as above but with `pip.exe` instead of `pip` (you may +also need to invoke from a `cmd.exe` ran as administrator): +```sh + $ pip.exe install grpcio ``` Download the example diff --git a/gRPC.podspec b/gRPC.podspec index 7becccebb4ac150520063cbd28cb39108c300c30..b5e8eb5b13ae19c7101c636d3c86c5e8bd914fa4 100644 --- a/gRPC.podspec +++ b/gRPC.podspec @@ -144,6 +144,7 @@ Pod::Spec.new do |s| 'src/core/lib/support/stack_lockfree.c', 'src/core/lib/support/string.c', 'src/core/lib/support/string_posix.c', + 'src/core/lib/support/string_util_win32.c', 'src/core/lib/support/string_win32.c', 'src/core/lib/support/subprocess_posix.c', 'src/core/lib/support/subprocess_windows.c', @@ -158,6 +159,7 @@ Pod::Spec.new do |s| 'src/core/lib/support/time_precise.c', 'src/core/lib/support/time_win32.c', 'src/core/lib/support/tls_pthread.c', + 'src/core/lib/support/tmpfile_msys.c', 'src/core/lib/support/tmpfile_posix.c', 'src/core/lib/support/tmpfile_win32.c', 'src/core/lib/support/wrap_memcpy.c', diff --git a/grpc.def b/grpc.def index 6542c06a4baf7ddedda65d138846a41e7f208afd..61948ed1b8945fc2ea2fcd87e2fa47f9c8cc1a5d 100644 --- a/grpc.def +++ b/grpc.def @@ -86,6 +86,7 @@ EXPORTS grpc_header_key_is_legal grpc_header_nonbin_value_is_legal grpc_is_binary_header + grpc_call_error_to_string grpc_auth_property_iterator_next grpc_auth_context_property_iterator grpc_auth_context_peer_identity diff --git a/grpc.gemspec b/grpc.gemspec index d1db8e99a9f52e1e5a80cb026929d85db7fa10c4..368e01ac6384579f904eb9175580f60a58ba634a 100755 --- a/grpc.gemspec +++ b/grpc.gemspec @@ -24,10 +24,6 @@ Gem::Specification.new do |s| s.files += Dir.glob('include/grpc/**/*') s.test_files = Dir.glob('src/ruby/spec/**/*') s.bindir = 'src/ruby/bin' - %w(math noproto).each do |b| - s.executables += ["#{b}_client.rb", "#{b}_server.rb"] - end - s.executables += %w(grpc_ruby_interop_client grpc_ruby_interop_server) s.require_paths = %w( src/ruby/bin src/ruby/lib src/ruby/pb ) s.platform = Gem::Platform::RUBY @@ -128,6 +124,7 @@ Gem::Specification.new do |s| s.files += %w( src/core/lib/support/stack_lockfree.c ) s.files += %w( src/core/lib/support/string.c ) s.files += %w( src/core/lib/support/string_posix.c ) + s.files += %w( src/core/lib/support/string_util_win32.c ) s.files += %w( src/core/lib/support/string_win32.c ) s.files += %w( src/core/lib/support/subprocess_posix.c ) s.files += %w( src/core/lib/support/subprocess_windows.c ) @@ -142,6 +139,7 @@ Gem::Specification.new do |s| s.files += %w( src/core/lib/support/time_precise.c ) s.files += %w( src/core/lib/support/time_win32.c ) s.files += %w( src/core/lib/support/tls_pthread.c ) + s.files += %w( src/core/lib/support/tmpfile_msys.c ) s.files += %w( src/core/lib/support/tmpfile_posix.c ) s.files += %w( src/core/lib/support/tmpfile_win32.c ) s.files += %w( src/core/lib/support/wrap_memcpy.c ) diff --git a/include/grpc++/impl/codegen/call.h b/include/grpc++/impl/codegen/call.h index aea1a6acec7b5e0cafc6357aa165b4a7cd6ce58e..d081b7d9c5963c9af9119f8fa539204cb542134a 100644 --- a/include/grpc++/impl/codegen/call.h +++ b/include/grpc++/impl/codegen/call.h @@ -281,10 +281,9 @@ class CallOpRecvMessage { if (message_ == nullptr) return; if (recv_buf_) { if (*status) { - got_message = true; - *status = SerializationTraits<R>::Deserialize(recv_buf_, message_, - max_message_size) - .ok(); + got_message = *status = SerializationTraits<R>::Deserialize( + recv_buf_, message_, max_message_size) + .ok(); } else { got_message = false; g_core_codegen_interface->grpc_byte_buffer_destroy(recv_buf_); diff --git a/include/grpc/grpc.h b/include/grpc/grpc.h index 5c868aece372b14658bf07f5aa38aa04d2114819..0ca28c0fef1824980707ba64afac4b68ac50465b 100644 --- a/include/grpc/grpc.h +++ b/include/grpc/grpc.h @@ -384,6 +384,9 @@ GRPCAPI int grpc_header_nonbin_value_is_legal(const char *value, size_t length); /** Check whether a metadata key corresponds to a binary value */ GRPCAPI int grpc_is_binary_header(const char *key, size_t length); +/** Convert grpc_call_error values to a string */ +GRPCAPI const char *grpc_call_error_to_string(grpc_call_error error); + #ifdef __cplusplus } #endif diff --git a/include/grpc/impl/codegen/port_platform.h b/include/grpc/impl/codegen/port_platform.h index 3242f07599be6f1cda6752011fe5551e123d0fe1..1229d488edbdfe94579b1cc4d5b50a7b4d0df1bd 100644 --- a/include/grpc/impl/codegen/port_platform.h +++ b/include/grpc/impl/codegen/port_platform.h @@ -82,28 +82,31 @@ things. */ #if !defined(GPR_NO_AUTODETECT_PLATFORM) +#if defined(_WIN64) || defined(WIN64) || defined(_WIN32) || defined(WIN32) #if defined(_WIN64) || defined(WIN64) -#define GPR_PLATFORM_STRING "windows" -#define GPR_WIN32 1 #define GPR_ARCH_64 1 -#define GPR_GETPID_IN_PROCESS_H 1 -#define GPR_WINSOCK_SOCKET 1 -#define GPR_WINDOWS_SUBPROCESS 1 -#ifdef __GNUC__ -#define GPR_GCC_ATOMIC 1 -#define GPR_GCC_TLS 1 #else -#define GPR_WIN32_ATOMIC 1 -#define GPR_MSVC_TLS 1 +#define GPR_ARCH_32 1 #endif -#define GPR_WINDOWS_CRASH_HANDLER 1 -#elif defined(_WIN32) || defined(WIN32) #define GPR_PLATFORM_STRING "windows" -#define GPR_ARCH_32 1 #define GPR_WIN32 1 -#define GPR_GETPID_IN_PROCESS_H 1 #define GPR_WINSOCK_SOCKET 1 #define GPR_WINDOWS_SUBPROCESS 1 +#define GPR_WIN32_ENV +#ifdef __MSYS__ +#define GPR_GETPID_IN_UNISTD_H 1 +#define GPR_MSYS_TMPFILE +#define GPR_POSIX_LOG +#define GPR_POSIX_STRING +#define GPR_POSIX_TIME +#else +#define GPR_GETPID_IN_PROCESS_H 1 +#define GPR_WIN32_TMPFILE +#define GPR_WIN32_LOG +#define GPR_WINDOWS_CRASH_HANDLER 1 +#define GPR_WIN32_STRING +#define GPR_WIN32_TIME +#endif #ifdef __GNUC__ #define GPR_GCC_ATOMIC 1 #define GPR_GCC_TLS 1 @@ -111,7 +114,6 @@ #define GPR_WIN32_ATOMIC 1 #define GPR_MSVC_TLS 1 #endif -#define GPR_WINDOWS_CRASH_HANDLER 1 #elif defined(ANDROID) || defined(__ANDROID__) #define GPR_PLATFORM_STRING "android" #define GPR_ANDROID 1 @@ -127,6 +129,8 @@ #define GPR_POSIX_SOCKETUTILS 1 #define GPR_POSIX_ENV 1 #define GPR_POSIX_FILE 1 +#define GPR_POSIX_TMPFILE 1 +#define GPR_POSIX_LOG #define GPR_POSIX_STRING 1 #define GPR_POSIX_SUBPROCESS 1 #define GPR_POSIX_SYNC 1 @@ -153,6 +157,7 @@ #define GPR_GCC_ATOMIC 1 #define GPR_GCC_TLS 1 #define GPR_LINUX 1 +#define GPR_LINUX_LOG #define GPR_LINUX_MULTIPOLL_WITH_EPOLL 1 #define GPR_POSIX_WAKEUP_FD 1 #define GPR_POSIX_SOCKET 1 @@ -176,6 +181,7 @@ #define GPR_POSIX_SOCKETUTILS #endif #define GPR_POSIX_FILE 1 +#define GPR_POSIX_TMPFILE 1 #define GPR_POSIX_STRING 1 #define GPR_POSIX_SUBPROCESS 1 #define GPR_POSIX_SYNC 1 @@ -214,6 +220,7 @@ #define GPR_POSIX_SOCKETUTILS 1 #define GPR_POSIX_ENV 1 #define GPR_POSIX_FILE 1 +#define GPR_POSIX_TMPFILE 1 #define GPR_POSIX_STRING 1 #define GPR_POSIX_SUBPROCESS 1 #define GPR_POSIX_SYNC 1 @@ -244,6 +251,7 @@ #define GPR_POSIX_SOCKETUTILS 1 #define GPR_POSIX_ENV 1 #define GPR_POSIX_FILE 1 +#define GPR_POSIX_TMPFILE 1 #define GPR_POSIX_STRING 1 #define GPR_POSIX_SUBPROCESS 1 #define GPR_POSIX_SYNC 1 @@ -281,6 +289,7 @@ #define GPR_POSIX_SOCKETUTILS 1 #define GPR_POSIX_ENV 1 #define GPR_POSIX_FILE 1 +#define GPR_POSIX_TMPFILE 1 #define GPR_POSIX_STRING 1 #define GPR_POSIX_SUBPROCESS 1 #define GPR_POSIX_SYNC 1 diff --git a/package.json b/package.json index 72731c02450a4d8d74e5a546907e2f56df58b473..5ed7f363d37f9a1760afaab81a324a854a4c257a 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "lib": "src/node/src" }, "scripts": { - "lint": "node ./node_modules/jshint/bin/jshint src/node/src src/node/test src/node/interop src/node/index.js", + "lint": "node ./node_modules/jshint/bin/jshint src/node/src src/node/test src/node/interop src/node/index.js --exclude-path=src/node/.jshintignore", "test": "./node_modules/.bin/mocha src/node/test && npm run-script lint", "gen_docs": "./node_modules/.bin/jsdoc -c src/node/jsdoc_conf.json", "coverage": "./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha src/node/test", @@ -35,6 +35,7 @@ "devDependencies": { "async": "^1.5.0", "google-auth-library": "^0.9.2", + "google-protobuf": "^3.0.0-alpha.5", "istanbul": "^0.3.21", "jsdoc": "^3.3.2", "jshint": "^2.5.0", @@ -72,5 +73,25 @@ "binding.gyp" ], "main": "src/node/index.js", - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "jshintConfig" : { + "bitwise": true, + "curly": true, + "eqeqeq": true, + "esnext": true, + "freeze": true, + "immed": true, + "indent": 2, + "latedef": "nofunc", + "maxlen": 80, + "mocha": true, + "newcap": true, + "node": true, + "noarg": true, + "quotmark": "single", + "strict": true, + "trailing": true, + "undef": true, + "unused": "vars" + } } diff --git a/package.xml b/package.xml index 38bd84b7d5d4fd7d2c42c52ea8b0a88f3dde8e7e..c4e09da3f113ccfd1bf489051f436f2ea077a47b 100644 --- a/package.xml +++ b/package.xml @@ -10,7 +10,7 @@ <email>grpc-packages@google.com</email> <active>yes</active> </lead> - <date>2016-03-01</date> + <date>2016-04-19</date> <time>16:06:07</time> <version> <release>0.14.0</release> @@ -22,7 +22,7 @@ </stability> <license>BSD</license> <notes> -- Increase unit test code coverage #5225 +- destroy grpc_byte_buffer after startBatch #6096 </notes> <contents> <dir baseinstalldir="/" name="/"> @@ -131,6 +131,7 @@ <file baseinstalldir="/" name="src/core/lib/support/stack_lockfree.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/support/string.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/support/string_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/lib/support/string_util_win32.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/support/string_win32.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/support/subprocess_posix.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/support/subprocess_windows.c" role="src" /> @@ -145,6 +146,7 @@ <file baseinstalldir="/" name="src/core/lib/support/time_precise.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/support/time_win32.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/support/tls_pthread.c" role="src" /> + <file baseinstalldir="/" name="src/core/lib/support/tmpfile_msys.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/support/tmpfile_posix.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/support/tmpfile_win32.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/support/wrap_memcpy.c" role="src" /> @@ -998,8 +1000,8 @@ Update to wrap gRPC C Core version 0.10.0 </release> <release> <version> - <release>0.14.0</release> - <api>0.14.0</api> + <release>0.8.1</release> + <api>0.8.1</api> </version> <stability> <release>beta</release> @@ -1011,5 +1013,20 @@ Update to wrap gRPC C Core version 0.10.0 - Increase unit test code coverage #5225 </notes> </release> + <release> + <version> + <release>0.14.0</release> + <api>0.14.0</api> + </version> + <stability> + <release>beta</release> + <api>beta</api> + </stability> + <date>2016-04-19</date> + <license>BSD</license> + <notes> +- destroy grpc_byte_buffer after startBatch #6096 + </notes> + </release> </changelog> </package> diff --git a/requirements.txt b/requirements.txt index e3208e6355646ea0748dcb11f23ae240086202c8..0ec0e75b762de9d07bb3256492f40a6d569a9cef 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,8 @@ # GRPC Python setup requirements +coverage>=4.0 +cython>=0.23 enum34>=1.0.4 futures>=2.2.0 -cython>=0.23 -coverage>=4.0 +protobuf>=3.0.0a3 six>=1.10 -wheel>=0.29 +wheel>=0.29 \ No newline at end of file diff --git a/src/compiler/config.h b/src/compiler/config.h index fea976c31818407a203c0b4b530e6206ae7c1dc1..d8b95818dbb5f36fabf9a2bdfa1d577e0372a8d7 100644 --- a/src/compiler/config.h +++ b/src/compiler/config.h @@ -42,8 +42,10 @@ #include <google/protobuf/descriptor.pb.h> #define GRPC_CUSTOM_DESCRIPTOR ::google::protobuf::Descriptor #define GRPC_CUSTOM_FILEDESCRIPTOR ::google::protobuf::FileDescriptor +#define GRPC_CUSTOM_FILEDESCRIPTORPROTO ::google::protobuf::FileDescriptorProto #define GRPC_CUSTOM_METHODDESCRIPTOR ::google::protobuf::MethodDescriptor #define GRPC_CUSTOM_SERVICEDESCRIPTOR ::google::protobuf::ServiceDescriptor +#define GRPC_CUSTOM_SOURCELOCATION ::google::protobuf::SourceLocation #endif #ifndef GRPC_CUSTOM_CODEGENERATOR @@ -68,12 +70,19 @@ #define GRPC_CUSTOM_PLUGINMAIN ::google::protobuf::compiler::PluginMain #endif +#ifndef GRPC_CUSTOM_PARSEGENERATORPARAMETER +#include <google/protobuf/compiler/code_generator.h> +#define GRPC_CUSTOM_PARSEGENERATORPARAMETER ::google::protobuf::compiler::ParseGeneratorParameter +#endif + namespace grpc { namespace protobuf { typedef GRPC_CUSTOM_DESCRIPTOR Descriptor; typedef GRPC_CUSTOM_FILEDESCRIPTOR FileDescriptor; +typedef GRPC_CUSTOM_FILEDESCRIPTORPROTO FileDescriptorProto; typedef GRPC_CUSTOM_METHODDESCRIPTOR MethodDescriptor; typedef GRPC_CUSTOM_SERVICEDESCRIPTOR ServiceDescriptor; +typedef GRPC_CUSTOM_SOURCELOCATION SourceLocation; namespace compiler { typedef GRPC_CUSTOM_CODEGENERATOR CodeGenerator; typedef GRPC_CUSTOM_GENERATORCONTEXT GeneratorContext; @@ -81,6 +90,11 @@ static inline int PluginMain(int argc, char* argv[], const CodeGenerator* generator) { return GRPC_CUSTOM_PLUGINMAIN(argc, argv, generator); } +static inline void ParseGeneratorParameter(const string& parameter, + std::vector<std::pair<string, string> >* options) { + GRPC_CUSTOM_PARSEGENERATORPARAMETER(parameter, options); +} + } // namespace compiler namespace io { typedef GRPC_CUSTOM_PRINTER Printer; diff --git a/src/compiler/cpp_generator.cc b/src/compiler/cpp_generator.cc index b1336993067d0b7eb11fe834fa7d8ac4ad1187d6..e2f127094add748983f06d3e03c7a3491ca0c155 100644 --- a/src/compiler/cpp_generator.cc +++ b/src/compiler/cpp_generator.cc @@ -86,7 +86,7 @@ void PrintIncludes(Printer *printer, const std::vector<grpc::string>& headers, c } } -grpc::string GetHeaderPrologue(File *file, const Parameters ¶ms) { +grpc::string GetHeaderPrologue(File *file, const Parameters & /*params*/) { grpc::string output; { // Scope the output stream so it closes and finalizes output to the string. @@ -96,15 +96,21 @@ grpc::string GetHeaderPrologue(File *file, const Parameters ¶ms) { vars["filename"] = file->filename(); vars["filename_identifier"] = FilenameIdentifier(file->filename()); vars["filename_base"] = file->filename_without_ext(); + vars["message_header_ext"] = file->message_header_ext(); printer->Print(vars, "// Generated by the gRPC protobuf plugin.\n"); printer->Print(vars, "// If you make any local change, they will be lost.\n"); printer->Print(vars, "// source: $filename$\n"); + grpc::string leading_comments = file->GetLeadingComments(); + if (!leading_comments.empty()) { + printer->Print(vars, "// Original file comments:\n"); + printer->Print(leading_comments.c_str()); + } printer->Print(vars, "#ifndef GRPC_$filename_identifier$__INCLUDED\n"); printer->Print(vars, "#define GRPC_$filename_identifier$__INCLUDED\n"); printer->Print(vars, "\n"); - printer->Print(vars, "#include \"$filename_base$.pb.h\"\n"); + printer->Print(vars, "#include \"$filename_base$$message_header_ext$\"\n"); printer->Print(vars, "\n"); } return output; @@ -455,6 +461,7 @@ void PrintHeaderServerMethodSync(Printer *printer, const Method *method, (*vars)["Method"] = method->name(); (*vars)["Request"] = method->input_type_name(); (*vars)["Response"] = method->output_type_name(); + printer->Print(method->GetLeadingComments().c_str()); if (method->NoStreaming()) { printer->Print(*vars, "virtual ::grpc::Status $Method$(" @@ -479,6 +486,7 @@ void PrintHeaderServerMethodSync(Printer *printer, const Method *method, "::grpc::ServerReaderWriter< $Response$, $Request$>* stream);" "\n"); } + printer->Print(method->GetTrailingComments().c_str()); } void PrintHeaderServerMethodAsync( @@ -673,6 +681,7 @@ void PrintHeaderService(Printer *printer, std::map<grpc::string, grpc::string> *vars) { (*vars)["Service"] = service->name(); + printer->Print(service->GetLeadingComments().c_str()); printer->Print(*vars, "class $Service$ GRPC_FINAL {\n" " public:\n"); @@ -685,7 +694,9 @@ void PrintHeaderService(Printer *printer, printer->Indent(); printer->Print("virtual ~StubInterface() {}\n"); for (int i = 0; i < service->method_count(); ++i) { + printer->Print(service->method(i)->GetLeadingComments().c_str()); PrintHeaderClientMethodInterfaces(printer, service->method(i).get(), vars, true); + printer->Print(service->method(i)->GetTrailingComments().c_str()); } printer->Outdent(); printer->Print("private:\n"); @@ -761,6 +772,7 @@ void PrintHeaderService(Printer *printer, printer->Outdent(); printer->Print("};\n"); + printer->Print(service->GetTrailingComments().c_str()); } grpc::string GetHeaderServices(File *file, @@ -794,8 +806,7 @@ grpc::string GetHeaderServices(File *file, return output; } -grpc::string GetHeaderEpilogue(File *file, - const Parameters ¶ms) { +grpc::string GetHeaderEpilogue(File *file, const Parameters & /*params*/) { grpc::string output; { // Scope the output stream so it closes and finalizes output to the string. @@ -817,12 +828,13 @@ grpc::string GetHeaderEpilogue(File *file, printer->Print(vars, "\n"); printer->Print(vars, "#endif // GRPC_$filename_identifier$__INCLUDED\n"); + + printer->Print(file->GetTrailingComments().c_str()); } return output; } -grpc::string GetSourcePrologue(File *file, - const Parameters ¶ms) { +grpc::string GetSourcePrologue(File *file, const Parameters & /*params*/) { grpc::string output; { // Scope the output stream so it closes and finalizes output to the string. @@ -831,13 +843,17 @@ grpc::string GetSourcePrologue(File *file, vars["filename"] = file->filename(); vars["filename_base"] = file->filename_without_ext(); + vars["message_header_ext"] = file->message_header_ext(); + vars["service_header_ext"] = file->service_header_ext(); printer->Print(vars, "// Generated by the gRPC protobuf plugin.\n"); printer->Print(vars, "// If you make any local change, they will be lost.\n"); printer->Print(vars, "// source: $filename$\n\n"); - printer->Print(vars, "#include \"$filename_base$.pb.h\"\n"); - printer->Print(vars, "#include \"$filename_base$.grpc.pb.h\"\n"); + + printer->Print(vars, "#include \"$filename_base$$message_header_ext$\"\n"); + printer->Print(vars, "#include \"$filename_base$$service_header_ext$\"\n"); + printer->Print(vars, file->additional_headers().c_str()); printer->Print(vars, "\n"); } return output; @@ -1180,8 +1196,7 @@ grpc::string GetSourceServices(File *file, return output; } -grpc::string GetSourceEpilogue(File *file, - const Parameters ¶ms) { +grpc::string GetSourceEpilogue(File *file, const Parameters & /*params*/) { grpc::string temp; if (!file->package().empty()) { diff --git a/src/compiler/cpp_generator.h b/src/compiler/cpp_generator.h index 99a60a2eaec6828a64f8659f11cf36694745041b..2a003b106959d05ed27ec5199e5be6cd88f41404 100644 --- a/src/compiler/cpp_generator.h +++ b/src/compiler/cpp_generator.h @@ -64,8 +64,16 @@ struct Parameters { grpc::string grpc_search_path; }; +// A common interface for objects having comments in the source. +// Return formatted comments to be inserted in generated code. +struct CommentHolder { + virtual ~CommentHolder() {} + virtual grpc::string GetLeadingComments() const = 0; + virtual grpc::string GetTrailingComments() const = 0; +}; + // An abstract interface representing a method. -struct Method { +struct Method : public CommentHolder { virtual ~Method() {} virtual grpc::string name() const = 0; @@ -80,7 +88,7 @@ struct Method { }; // An abstract interface representing a service. -struct Service { +struct Service : public CommentHolder { virtual ~Service() {} virtual grpc::string name() const = 0; @@ -101,13 +109,16 @@ struct Printer { // An interface that allows the source generated to be output using various // libraries/idls/serializers. -struct File { +struct File : public CommentHolder { virtual ~File() {} virtual grpc::string filename() const = 0; virtual grpc::string filename_without_ext() const = 0; + virtual grpc::string message_header_ext() const = 0; + virtual grpc::string service_header_ext() const = 0; virtual grpc::string package() const = 0; virtual std::vector<grpc::string> package_parts() const = 0; + virtual grpc::string additional_headers() const = 0; virtual int service_count() const = 0; virtual std::unique_ptr<const Service> service(int i) const = 0; diff --git a/src/compiler/cpp_plugin.cc b/src/compiler/cpp_plugin.cc index f703c6453d5f6d8c54d9c47a11b2a176c98a8102..0ec183e474e593ff4ecb79929987af3c10bb5789 100644 --- a/src/compiler/cpp_plugin.cc +++ b/src/compiler/cpp_plugin.cc @@ -35,11 +35,15 @@ // #include <memory> +#include <sstream> #include "src/compiler/config.h" #include "src/compiler/cpp_generator.h" #include "src/compiler/cpp_generator_helpers.h" +#include "src/compiler/generator_helpers.h" + +using grpc_generator::GetCppComments; class ProtoBufMethod : public grpc_cpp_generator::Method { public: @@ -71,6 +75,14 @@ class ProtoBufMethod : public grpc_cpp_generator::Method { return method_->client_streaming() && method_->server_streaming(); } + grpc::string GetLeadingComments() const { + return GetCppComments(method_, true); + } + + grpc::string GetTrailingComments() const { + return GetCppComments(method_, false); + } + private: const grpc::protobuf::MethodDescriptor *method_; }; @@ -88,6 +100,14 @@ class ProtoBufService : public grpc_cpp_generator::Service { new ProtoBufMethod(service_->method(i))); }; + grpc::string GetLeadingComments() const { + return GetCppComments(service_, true); + } + + grpc::string GetTrailingComments() const { + return GetCppComments(service_, false); + } + private: const grpc::protobuf::ServiceDescriptor *service_; }; @@ -120,11 +140,16 @@ class ProtoBufFile : public grpc_cpp_generator::File { return grpc_generator::StripProto(filename()); } + grpc::string message_header_ext() const { return ".pb.h"; } + grpc::string service_header_ext() const { return ".grpc.pb.h"; } + grpc::string package() const { return file_->package(); } std::vector<grpc::string> package_parts() const { return grpc_generator::tokenize(package(), "."); } + grpc::string additional_headers() const { return ""; } + int service_count() const { return file_->service_count(); }; std::unique_ptr<const grpc_cpp_generator::Service> service(int i) const { return std::unique_ptr<const grpc_cpp_generator::Service> ( @@ -136,6 +161,14 @@ class ProtoBufFile : public grpc_cpp_generator::File { new ProtoBufPrinter(str)); } + grpc::string GetLeadingComments() const { + return GetCppComments(file_, true); + } + + grpc::string GetTrailingComments() const { + return GetCppComments(file_, false); + } + private: const grpc::protobuf::FileDescriptor *file_; }; diff --git a/src/compiler/csharp_generator.cc b/src/compiler/csharp_generator.cc index 69e2738d53d30bd50aecbfdf03c58611e2548683..ac0fee1ec4ddac289bbd126019e6be52de744054 100644 --- a/src/compiler/csharp_generator.cc +++ b/src/compiler/csharp_generator.cc @@ -52,6 +52,7 @@ using grpc::protobuf::MethodDescriptor; using grpc::protobuf::io::Printer; using grpc::protobuf::io::StringOutputStream; using grpc_generator::MethodType; +using grpc_generator::GetCppComments; using grpc_generator::GetMethodType; using grpc_generator::METHODTYPE_NO_STREAMING; using grpc_generator::METHODTYPE_CLIENT_STREAMING; @@ -65,6 +66,56 @@ using std::vector; namespace grpc_csharp_generator { namespace { +// This function is a massaged version of +// https://github.com/google/protobuf/blob/master/src/google/protobuf/compiler/csharp/csharp_doc_comment.cc +// Currently, we cannot easily reuse the functionality as +// google/protobuf/compiler/csharp/csharp_doc_comment.h is not a public header. +// TODO(jtattermusch): reuse the functionality from google/protobuf. +void GenerateDocCommentBodyImpl(grpc::protobuf::io::Printer* printer, grpc::protobuf::SourceLocation location) { + grpc::string comments = location.leading_comments.empty() ? + location.trailing_comments : location.leading_comments; + if (comments.empty()) { + return; + } + // XML escaping... no need for apostrophes etc as the whole text is going to be a child + // node of a summary element, not part of an attribute. + comments = grpc_generator::StringReplace(comments, "&", "&", true); + comments = grpc_generator::StringReplace(comments, "<", "<", true); + + std::vector<grpc::string> lines; + grpc_generator::Split(comments, '\n', &lines); + // TODO: We really should work out which part to put in the summary and which to put in the remarks... + // but that needs to be part of a bigger effort to understand the markdown better anyway. + printer->Print("/// <summary>\n"); + bool last_was_empty = false; + // We squash multiple blank lines down to one, and remove any trailing blank lines. We need + // to preserve the blank lines themselves, as this is relevant in the markdown. + // Note that we can't remove leading or trailing whitespace as *that's* relevant in markdown too. + // (We don't skip "just whitespace" lines, either.) + for (std::vector<grpc::string>::iterator it = lines.begin(); it != lines.end(); ++it) { + grpc::string line = *it; + if (line.empty()) { + last_was_empty = true; + } else { + if (last_was_empty) { + printer->Print("///\n"); + } + last_was_empty = false; + printer->Print("/// $line$\n", "line", *it); + } + } + printer->Print("/// </summary>\n"); +} + +template <typename DescriptorType> +void GenerateDocCommentBody( + grpc::protobuf::io::Printer* printer, const DescriptorType* descriptor) { + grpc::protobuf::SourceLocation location; + if (descriptor->GetSourceLocation(&location)) { + GenerateDocCommentBodyImpl(printer, location); + } +} + std::string GetServiceClassName(const ServiceDescriptor* service) { return service->name(); } @@ -123,6 +174,10 @@ std::string GetMethodRequestParamMaybe(const MethodDescriptor *method, return GetClassName(method->input_type()) + " request, "; } +std::string GetAccessLevel(bool internal_access) { + return internal_access ? "internal" : "public"; +} + std::string GetMethodReturnTypeClient(const MethodDescriptor *method) { switch (GetMethodType(method)) { case METHODTYPE_NO_STREAMING: @@ -238,7 +293,7 @@ void GenerateStaticMethodField(Printer* out, const MethodDescriptor *method) { void GenerateServiceDescriptorProperty(Printer* out, const ServiceDescriptor *service) { std::ostringstream index; index << service->index(); - out->Print("// service descriptor\n"); + out->Print("/// <summary>Service descriptor</summary>\n"); out->Print("public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor\n"); out->Print("{\n"); out->Print(" get { return $umbrella$.Descriptor.Services[$index$]; }\n", @@ -249,7 +304,8 @@ void GenerateServiceDescriptorProperty(Printer* out, const ServiceDescriptor *se } void GenerateClientInterface(Printer* out, const ServiceDescriptor *service) { - out->Print("// client interface\n"); + out->Print("/// <summary>Client for $servicename$</summary>\n", + "servicename", GetServiceClassName(service)); out->Print("[System.Obsolete(\"Client side interfaced will be removed " "in the next release. Use client class directly.\")]\n"); out->Print("public interface $name$\n", "name", @@ -262,6 +318,7 @@ void GenerateClientInterface(Printer* out, const ServiceDescriptor *service) { if (method_type == METHODTYPE_NO_STREAMING) { // unary calls have an extra synchronous stub method + GenerateDocCommentBody(out, method); out->Print( "$response$ $methodname$($request$ request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken));\n", "methodname", method->name(), "request", @@ -269,6 +326,7 @@ void GenerateClientInterface(Printer* out, const ServiceDescriptor *service) { GetClassName(method->output_type())); // overload taking CallOptions as a param + GenerateDocCommentBody(out, method); out->Print( "$response$ $methodname$($request$ request, CallOptions options);\n", "methodname", method->name(), "request", @@ -280,6 +338,7 @@ void GenerateClientInterface(Printer* out, const ServiceDescriptor *service) { if (method_type == METHODTYPE_NO_STREAMING) { method_name += "Async"; // prevent name clash with synchronous method. } + GenerateDocCommentBody(out, method); out->Print( "$returntype$ $methodname$($request_maybe$Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken));\n", "methodname", method_name, "request_maybe", @@ -287,6 +346,7 @@ void GenerateClientInterface(Printer* out, const ServiceDescriptor *service) { GetMethodReturnTypeClient(method)); // overload taking CallOptions as a param + GenerateDocCommentBody(out, method); out->Print( "$returntype$ $methodname$($request_maybe$CallOptions options);\n", "methodname", method_name, "request_maybe", @@ -299,7 +359,8 @@ void GenerateClientInterface(Printer* out, const ServiceDescriptor *service) { } void GenerateServerInterface(Printer* out, const ServiceDescriptor *service) { - out->Print("// server-side interface\n"); + out->Print("/// <summary>Interface of server-side implementations of $servicename$</summary>\n", + "servicename", GetServiceClassName(service)); out->Print("[System.Obsolete(\"Service implementations should inherit" " from the generated abstract base class instead.\")]\n"); out->Print("public interface $name$\n", "name", @@ -308,6 +369,7 @@ void GenerateServerInterface(Printer* out, const ServiceDescriptor *service) { out->Indent(); for (int i = 0; i < service->method_count(); i++) { const MethodDescriptor *method = service->method(i); + GenerateDocCommentBody(out, method); out->Print( "$returntype$ $methodname$($request$$response_stream_maybe$, " "ServerCallContext context);\n", @@ -322,13 +384,15 @@ void GenerateServerInterface(Printer* out, const ServiceDescriptor *service) { } void GenerateServerClass(Printer* out, const ServiceDescriptor *service) { - out->Print("// server-side abstract class\n"); + out->Print("/// <summary>Base class for server-side implementations of $servicename$</summary>\n", + "servicename", GetServiceClassName(service)); out->Print("public abstract class $name$\n", "name", GetServerClassName(service)); out->Print("{\n"); out->Indent(); for (int i = 0; i < service->method_count(); i++) { const MethodDescriptor *method = service->method(i); + GenerateDocCommentBody(out, method); out->Print( "public virtual $returntype$ $methodname$($request$$response_stream_maybe$, " "ServerCallContext context)\n", @@ -349,11 +413,14 @@ void GenerateServerClass(Printer* out, const ServiceDescriptor *service) { } void GenerateClientStub(Printer* out, const ServiceDescriptor *service) { - out->Print("// client stub\n"); + out->Print("/// <summary>Client for $servicename$</summary>\n", + "servicename", GetServiceClassName(service)); + out->Print("#pragma warning disable 0618\n"); out->Print( "public class $name$ : ClientBase<$name$>, $interface$\n", "name", GetClientClassName(service), "interface", GetClientInterfaceName(service)); + out->Print("#pragma warning restore 0618\n"); out->Print("{\n"); out->Indent(); @@ -386,6 +453,7 @@ void GenerateClientStub(Printer* out, const ServiceDescriptor *service) { if (method_type == METHODTYPE_NO_STREAMING) { // unary calls have an extra synchronous stub method + GenerateDocCommentBody(out, method); out->Print("public virtual $response$ $methodname$($request$ request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))\n", "methodname", method->name(), "request", GetClassName(method->input_type()), "response", @@ -398,6 +466,7 @@ void GenerateClientStub(Printer* out, const ServiceDescriptor *service) { out->Print("}\n"); // overload taking CallOptions as a param + GenerateDocCommentBody(out, method); out->Print("public virtual $response$ $methodname$($request$ request, CallOptions options)\n", "methodname", method->name(), "request", GetClassName(method->input_type()), "response", @@ -414,6 +483,7 @@ void GenerateClientStub(Printer* out, const ServiceDescriptor *service) { if (method_type == METHODTYPE_NO_STREAMING) { method_name += "Async"; // prevent name clash with synchronous method. } + GenerateDocCommentBody(out, method); out->Print( "public virtual $returntype$ $methodname$($request_maybe$Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))\n", "methodname", method_name, "request_maybe", @@ -429,6 +499,7 @@ void GenerateClientStub(Printer* out, const ServiceDescriptor *service) { out->Print("}\n"); // overload taking CallOptions as a param + GenerateDocCommentBody(out, method); out->Print( "public virtual $returntype$ $methodname$($request_maybe$CallOptions options)\n", "methodname", method_name, "request_maybe", @@ -479,11 +550,13 @@ void GenerateClientStub(Printer* out, const ServiceDescriptor *service) { void GenerateBindServiceMethod(Printer* out, const ServiceDescriptor *service, bool use_server_class) { out->Print( - "// creates service definition that can be registered with a server\n"); + "/// <summary>Creates service definition that can be registered with a server</summary>\n"); + out->Print("#pragma warning disable 0618\n"); out->Print( "public static ServerServiceDefinition BindService($interface$ serviceImpl)\n", "interface", use_server_class ? GetServerClassName(service) : GetServerInterfaceName(service)); + out->Print("#pragma warning restore 0618\n"); out->Print("{\n"); out->Indent(); @@ -511,7 +584,8 @@ void GenerateBindServiceMethod(Printer* out, const ServiceDescriptor *service, } void GenerateNewStubMethods(Printer* out, const ServiceDescriptor *service) { - out->Print("// creates a new client\n"); + out->Print("/// <summary>Creates a new client for $servicename$</summary>\n", + "servicename", GetServiceClassName(service)); out->Print("public static $classname$ NewClient(Channel channel)\n", "classname", GetClientClassName(service)); out->Print("{\n"); @@ -523,8 +597,12 @@ void GenerateNewStubMethods(Printer* out, const ServiceDescriptor *service) { out->Print("\n"); } -void GenerateService(Printer* out, const ServiceDescriptor *service) { - out->Print("public static class $classname$\n", "classname", +void GenerateService(Printer* out, const ServiceDescriptor *service, + bool generate_client, bool generate_server, + bool internal_access) { + GenerateDocCommentBody(out, service); + out->Print("$access_level$ static class $classname$\n", "access_level", + GetAccessLevel(internal_access), "classname", GetServiceClassName(service)); out->Print("{\n"); out->Indent(); @@ -538,13 +616,22 @@ void GenerateService(Printer* out, const ServiceDescriptor *service) { GenerateStaticMethodField(out, service->method(i)); } GenerateServiceDescriptorProperty(out, service); - GenerateClientInterface(out, service); - GenerateServerInterface(out, service); - GenerateServerClass(out, service); - GenerateClientStub(out, service); - GenerateBindServiceMethod(out, service, false); - GenerateBindServiceMethod(out, service, true); - GenerateNewStubMethods(out, service); + + if (generate_client) { + GenerateClientInterface(out, service); + } + if (generate_server) { + GenerateServerInterface(out, service); + GenerateServerClass(out, service); + } + if (generate_client) { + GenerateClientStub(out, service); + GenerateNewStubMethods(out, service); + } + if (generate_server) { + GenerateBindServiceMethod(out, service, false); + GenerateBindServiceMethod(out, service, true); + } out->Outdent(); out->Print("}\n"); @@ -552,7 +639,8 @@ void GenerateService(Printer* out, const ServiceDescriptor *service) { } // anonymous namespace -grpc::string GetServices(const FileDescriptor *file) { +grpc::string GetServices(const FileDescriptor *file, bool generate_client, + bool generate_server, bool internal_access) { grpc::string output; { // Scope the output stream so it closes and finalizes output to the string. @@ -569,6 +657,14 @@ grpc::string GetServices(const FileDescriptor *file) { // Write out a file header. out.Print("// Generated by the protocol buffer compiler. DO NOT EDIT!\n"); out.Print("// source: $filename$\n", "filename", file->name()); + + // use C++ style as there are no file-level XML comments in .NET + grpc::string leading_comments = GetCppComments(file, true); + if (!leading_comments.empty()) { + out.Print("// Original file comments:\n"); + out.Print(leading_comments.c_str()); + } + out.Print("#region Designer generated code\n"); out.Print("\n"); out.Print("using System;\n"); @@ -580,7 +676,8 @@ grpc::string GetServices(const FileDescriptor *file) { out.Print("namespace $namespace$ {\n", "namespace", GetFileNamespace(file)); out.Indent(); for (int i = 0; i < file->service_count(); i++) { - GenerateService(&out, file->service(i)); + GenerateService(&out, file->service(i), generate_client, generate_server, + internal_access); } out.Outdent(); out.Print("}\n"); diff --git a/src/compiler/csharp_generator.h b/src/compiler/csharp_generator.h index 90eb7e298466d3eda10adb1d912d82045dbcfb36..f0585af4fd7d2552e81d863636e2fce6393c70ca 100644 --- a/src/compiler/csharp_generator.h +++ b/src/compiler/csharp_generator.h @@ -40,7 +40,9 @@ namespace grpc_csharp_generator { -grpc::string GetServices(const grpc::protobuf::FileDescriptor *file); +grpc::string GetServices(const grpc::protobuf::FileDescriptor *file, + bool generate_client, bool generate_server, + bool internal_access); } // namespace grpc_csharp_generator diff --git a/src/compiler/csharp_plugin.cc b/src/compiler/csharp_plugin.cc index 8b9395f9e2b21af8c5af6e255e27724d14bbbff0..5350e73f10893c64a227681d999ef1d3ce641d21 100644 --- a/src/compiler/csharp_plugin.cc +++ b/src/compiler/csharp_plugin.cc @@ -48,7 +48,29 @@ class CSharpGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { const grpc::string ¶meter, grpc::protobuf::compiler::GeneratorContext *context, grpc::string *error) const { - grpc::string code = grpc_csharp_generator::GetServices(file); + std::vector<std::pair<grpc::string, grpc::string> > options; + grpc::protobuf::compiler::ParseGeneratorParameter(parameter, &options); + + bool generate_client = true; + bool generate_server = true; + bool internal_access = false; + for (size_t i = 0; i < options.size(); i++) { + if (options[i].first == "no_client") { + generate_client = false; + } else if (options[i].first == "no_server") { + generate_server = false; + } else if (options[i].first == "internal_access") { + internal_access = true; + } else { + *error = "Unknown generator option: " + options[i].first; + return false; + } + } + + grpc::string code = grpc_csharp_generator::GetServices(file, + generate_client, + generate_server, + internal_access); if (code.size() == 0) { return true; // don't generate a file if there are no services } diff --git a/src/compiler/generator_helpers.h b/src/compiler/generator_helpers.h index e1bb66a8753b0c2f75bde5be0decc9895243c82e..bd077cf7983d957887a794110f2a7fb05a2af2ca 100644 --- a/src/compiler/generator_helpers.h +++ b/src/compiler/generator_helpers.h @@ -34,7 +34,11 @@ #ifndef GRPC_INTERNAL_COMPILER_GENERATOR_HELPERS_H #define GRPC_INTERNAL_COMPILER_GENERATOR_HELPERS_H +#include <iostream> #include <map> +#include <sstream> +#include <string> +#include <vector> #include "src/compiler/config.h" @@ -52,6 +56,16 @@ inline bool StripSuffix(grpc::string *filename, const grpc::string &suffix) { return false; } +inline bool StripPrefix(grpc::string *name, const grpc::string &prefix) { + if (name->length() >= prefix.length()) { + if (name->substr(0, prefix.size()) == prefix) { + *name = name->substr(prefix.size()); + return true; + } + } + return false; +} + inline grpc::string StripProto(grpc::string filename) { if (!StripSuffix(&filename, ".protodevel")) { StripSuffix(&filename, ".proto"); @@ -165,6 +179,111 @@ inline MethodType GetMethodType(const grpc::protobuf::MethodDescriptor *method) } } +inline void Split(const grpc::string &s, char delim, + std::vector<grpc::string> *append_to) { + std::istringstream iss(s); + grpc::string piece; + while (std::getline(iss, piece)) { + append_to->push_back(piece); + } +} + +enum CommentType { + COMMENTTYPE_LEADING, + COMMENTTYPE_TRAILING, + COMMENTTYPE_LEADING_DETACHED +}; + +// Get all the raw comments and append each line without newline to out. +template <typename DescriptorType> +inline void GetComment(const DescriptorType *desc, CommentType type, + std::vector<grpc::string> *out) { + grpc::protobuf::SourceLocation location; + if (!desc->GetSourceLocation(&location)) { + return; + } + if (type == COMMENTTYPE_LEADING || type == COMMENTTYPE_TRAILING) { + const grpc::string &comments = type == COMMENTTYPE_LEADING + ? location.leading_comments + : location.trailing_comments; + Split(comments, '\n', out); + } else if (type == COMMENTTYPE_LEADING_DETACHED) { + for (unsigned int i = 0; i < location.leading_detached_comments.size(); + i++) { + Split(location.leading_detached_comments[i], '\n', out); + out->push_back(""); + } + } else { + std::cerr << "Unknown comment type " << type << std::endl; + abort(); + } +} + +// Each raw comment line without newline is appended to out. +// For file level leading and detached leading comments, we return comments +// above syntax line. Return nothing for trailing comments. +template <> +inline void GetComment(const grpc::protobuf::FileDescriptor *desc, + CommentType type, std::vector<grpc::string> *out) { + if (type == COMMENTTYPE_TRAILING) { + return; + } + grpc::protobuf::SourceLocation location; + std::vector<int> path; + path.push_back(grpc::protobuf::FileDescriptorProto::kSyntaxFieldNumber); + if (!desc->GetSourceLocation(path, &location)) { + return; + } + if (type == COMMENTTYPE_LEADING) { + Split(location.leading_comments, '\n', out); + } else if (type == COMMENTTYPE_LEADING_DETACHED) { + for (unsigned int i = 0; i < location.leading_detached_comments.size(); + i++) { + Split(location.leading_detached_comments[i], '\n', out); + out->push_back(""); + } + } else { + std::cerr << "Unknown comment type " << type << std::endl; + abort(); + } +} + +// Add prefix and newline to each comment line and concatenate them together. +// Make sure there is a space after the prefix unless the line is empty. +inline grpc::string GenerateCommentsWithPrefix( + const std::vector<grpc::string> &in, const grpc::string &prefix) { + std::ostringstream oss; + for (const grpc::string &elem : in) { + if (elem.empty()) { + oss << prefix << "\n"; + } else if (elem[0] == ' ') { + oss << prefix << elem << "\n"; + } else { + oss << prefix << " " << elem << "\n"; + } + } + return oss.str(); +} + +// Get leading or trailing comments in a string. Comment lines start with "// ". +// Leading detached comments are put in in front of leading comments. +template <typename DescriptorType> +inline grpc::string GetCppComments(const DescriptorType *desc, bool leading) { + std::vector<grpc::string> out; + if (leading) { + grpc_generator::GetComment( + desc, grpc_generator::COMMENTTYPE_LEADING_DETACHED, &out); + std::vector<grpc::string> leading; + grpc_generator::GetComment(desc, grpc_generator::COMMENTTYPE_LEADING, + &leading); + out.insert(out.end(), leading.begin(), leading.end()); + } else { + grpc_generator::GetComment(desc, grpc_generator::COMMENTTYPE_TRAILING, + &out); + } + return GenerateCommentsWithPrefix(out, "//"); +} + } // namespace grpc_generator #endif // GRPC_INTERNAL_COMPILER_GENERATOR_HELPERS_H diff --git a/src/compiler/node_generator.cc b/src/compiler/node_generator.cc new file mode 100644 index 0000000000000000000000000000000000000000..822622cccf9c553adbc6bd846f85691b0ed91f80 --- /dev/null +++ b/src/compiler/node_generator.cc @@ -0,0 +1,277 @@ +/* + * + * 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 <map> + +#include "src/compiler/config.h" +#include "src/compiler/generator_helpers.h" +#include "src/compiler/node_generator_helpers.h" + +using grpc::protobuf::FileDescriptor; +using grpc::protobuf::ServiceDescriptor; +using grpc::protobuf::MethodDescriptor; +using grpc::protobuf::Descriptor; +using grpc::protobuf::io::Printer; +using grpc::protobuf::io::StringOutputStream; +using std::map; + +namespace grpc_node_generator { +namespace { + +// Returns the alias we assign to the module of the given .proto filename +// when importing. Copied entirely from +// github:google/protobuf/src/google/protobuf/compiler/js/js_generator.cc#L154 +grpc::string ModuleAlias(const grpc::string filename) { + // This scheme could technically cause problems if a file includes any 2 of: + // foo/bar_baz.proto + // foo_bar_baz.proto + // foo_bar/baz.proto + // + // We'll worry about this problem if/when we actually see it. This name isn't + // exposed to users so we can change it later if we need to. + grpc::string basename = grpc_generator::StripProto(filename); + basename = grpc_generator::StringReplace(basename, "-", "$"); + basename = grpc_generator::StringReplace(basename, "/", "_"); + return basename + "_pb"; +} + +// Given a filename like foo/bar/baz.proto, returns the corresponding JavaScript +// message file foo/bar/baz.js +grpc::string GetJSMessageFilename(const grpc::string& filename) { + grpc::string name = filename; + return grpc_generator::StripProto(name) + "_pb.js"; +} + +// Given a filename like foo/bar/baz.proto, returns the root directory +// path ../../ +grpc::string GetRootPath(const grpc::string& filename) { + size_t slashes = std::count(filename.begin(), filename.end(), '/'); + if (slashes == 0) { + return "./"; + } + grpc::string result = ""; + for (size_t i = 0; i < slashes; i++) { + result += "../"; + } + return result; +} + +// Return the relative path to load to_file from the directory containing +// from_file, assuming that both paths are relative to the same directory +grpc::string GetRelativePath(const grpc::string& from_file, + const grpc::string& to_file) { + return GetRootPath(from_file) + to_file; +} + +/* Finds all message types used in all services in the file, and returns them + * as a map of fully qualified message type name to message descriptor */ +map<grpc::string, const Descriptor*> GetAllMessages(const FileDescriptor *file) { + map<grpc::string, const Descriptor*> message_types; + for (int service_num = 0; service_num < file->service_count(); service_num++) { + const ServiceDescriptor* service = file->service(service_num); + for (int method_num = 0; method_num < service->method_count(); method_num++) { + const MethodDescriptor* method = service->method(method_num); + const Descriptor* input_type = method->input_type(); + const Descriptor* output_type = method->output_type(); + message_types[input_type->name()] = input_type; + message_types[output_type->name()] = output_type; + } + } + return message_types; +} + +grpc::string MessageIdentifierName(const grpc::string& name) { + return grpc_generator::StringReplace(name, ".", "_"); +} + +grpc::string NodeObjectPath(const Descriptor *descriptor) { + grpc::string module_alias = ModuleAlias(descriptor->file()->name()); + grpc::string name = descriptor->name(); + grpc_generator::StripPrefix(&name, descriptor->file()->package() + "."); + return module_alias + "." + name; +} + +// Prints out the message serializer and deserializer functions +void PrintMessageTransformer(const Descriptor *descriptor, Printer *out) { + map<grpc::string, grpc::string> template_vars; + template_vars["identifier_name"] = MessageIdentifierName(descriptor->name()); + template_vars["name"] = descriptor->name(); + template_vars["node_name"] = NodeObjectPath(descriptor); + // Print the serializer + out->Print(template_vars, "function serialize_$identifier_name$(arg) {\n"); + out->Indent(); + out->Print(template_vars, "if (!(arg instanceof $node_name$)) {\n"); + out->Indent(); + out->Print(template_vars, + "throw new Error('Expected argument of type $name$');\n"); + out->Outdent(); + out->Print("}\n"); + out->Print("return new Buffer(arg.serializeBinary());\n"); + out->Outdent(); + out->Print("}\n\n"); + + // Print the deserializer + out->Print(template_vars, + "function deserialize_$identifier_name$(buffer_arg) {\n"); + out->Indent(); + out->Print( + template_vars, + "return $node_name$.deserializeBinary(new Uint8Array(buffer_arg));\n"); + out->Outdent(); + out->Print("}\n\n"); +} + +void PrintMethod(const MethodDescriptor *method, Printer *out) { + const Descriptor *input_type = method->input_type(); + const Descriptor *output_type = method->output_type(); + map<grpc::string, grpc::string> vars; + vars["service_name"] = method->service()->full_name(); + vars["name"] = method->name(); + vars["input_type"] = NodeObjectPath(input_type); + vars["input_type_id"] = MessageIdentifierName(input_type->name()); + vars["output_type"] = NodeObjectPath(output_type); + vars["output_type_id"] = MessageIdentifierName(output_type->name()); + vars["client_stream"] = method->client_streaming() ? "true" : "false"; + vars["server_stream"] = method->server_streaming() ? "true" : "false"; + out->Print("{\n"); + out->Indent(); + out->Print(vars, "path: '/$service_name$/$name$',\n"); + out->Print(vars, "requestStream: $client_stream$,\n"); + out->Print(vars, "responseStream: $server_stream$,\n"); + out->Print(vars, "requestType: $input_type$,\n"); + out->Print(vars, "responseType: $output_type$,\n"); + out->Print(vars, "requestSerialize: serialize_$input_type_id$,\n"); + out->Print(vars, "requestDeserialize: deserialize_$input_type_id$,\n"); + out->Print(vars, "responseSerialize: serialize_$output_type_id$,\n"); + out->Print(vars, "responseDeserialize: deserialize_$output_type_id$,\n"); + out->Outdent(); + out->Print("}"); +} + +// Prints out the service descriptor object +void PrintService(const ServiceDescriptor *service, Printer *out) { + map<grpc::string, grpc::string> template_vars; + template_vars["name"] = service->name(); + out->Print(template_vars, "var $name$Service = exports.$name$Service = {\n"); + out->Indent(); + for (int i = 0; i < service->method_count(); i++) { + grpc::string method_name = grpc_generator::LowercaseFirstLetter( + service->method(i)->name()); + out->Print("$method_name$: ", + "method_name", method_name); + PrintMethod(service->method(i), out); + out->Print(",\n"); + } + out->Outdent(); + out->Print("};\n\n"); + out->Print(template_vars, "exports.$name$Client = " + "grpc.makeGenericClientConstructor($name$Service);\n"); +} + +} + +grpc::string GetImports(const FileDescriptor *file) { + grpc::string output; + { + StringOutputStream output_stream(&output); + Printer out(&output_stream, '$'); + + if (file->service_count() == 0) { + return output; + } + + out.Print("// GENERATED CODE -- DO NOT EDIT!\n\n"); + + out.Print("'use strict';\n"); + + out.Print("var grpc = require('grpc');\n"); + if (file->message_type_count() > 0) { + grpc::string file_path = GetRelativePath(file->name(), + GetJSMessageFilename( + file->name())); + out.Print("var $module_alias$ = require('$file_path$');\n", + "module_alias", ModuleAlias(file->name()), + "file_path", file_path); + } + + for (int i = 0; i < file->dependency_count(); i++) { + grpc::string file_path = GetRelativePath( + file->name(), GetJSMessageFilename(file->dependency(i)->name())); + out.Print("var $module_alias$ = require('$file_path$');\n", + "module_alias", ModuleAlias(file->dependency(i)->name()), + "file_path", file_path); + } + out.Print("\n"); + } + return output; +} + +grpc::string GetTransformers(const FileDescriptor *file) { + grpc::string output; + { + StringOutputStream output_stream(&output); + Printer out(&output_stream, '$'); + + if (file->service_count() == 0) { + return output; + } + + map<grpc::string, const Descriptor*> messages = GetAllMessages(file); + for (std::map<grpc::string, const Descriptor*>::iterator it = + messages.begin(); + it != messages.end(); it++) { + PrintMessageTransformer(it->second, &out); + } + out.Print("\n"); + } + return output; +} + +grpc::string GetServices(const FileDescriptor *file) { + grpc::string output; + { + StringOutputStream output_stream(&output); + Printer out(&output_stream, '$'); + + if (file->service_count() == 0) { + return output; + } + + for (int i = 0; i < file->service_count(); i++) { + PrintService(file->service(i), &out); + } + } + return output; +} + +} // namespace grpc_node_generator diff --git a/src/compiler/node_generator.h b/src/compiler/node_generator.h new file mode 100644 index 0000000000000000000000000000000000000000..249a0d011f88bac53353e8297ec8b7fed8470f67 --- /dev/null +++ b/src/compiler/node_generator.h @@ -0,0 +1,49 @@ +/* + * + * 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_INTERNAL_COMPILER_NODE_GENERATOR_H +#define GRPC_INTERNAL_COMPILER_NODE_GENERATOR_H + +#include "src/compiler/config.h" + +namespace grpc_node_generator { + +grpc::string GetImports(const grpc::protobuf::FileDescriptor *file); + +grpc::string GetTransformers(const grpc::protobuf::FileDescriptor *file); + +grpc::string GetServices(const grpc::protobuf::FileDescriptor *file); + +} // namespace grpc_node_generator + +#endif // GRPC_INTERNAL_COMPILER_NODE_GENERATOR_H diff --git a/src/compiler/node_generator_helpers.h b/src/compiler/node_generator_helpers.h new file mode 100644 index 0000000000000000000000000000000000000000..f41a2bcf59a7afcd76b3c74f4cbd8604c190793f --- /dev/null +++ b/src/compiler/node_generator_helpers.h @@ -0,0 +1,50 @@ +/* + * + * 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_INTERNAL_COMPILER_NODE_GENERATOR_HELPERS_H +#define GRPC_INTERNAL_COMPILER_NODE_GENERATOR_HELPERS_H + +#include <algorithm> + +#include "src/compiler/config.h" +#include "src/compiler/generator_helpers.h" + +namespace grpc_node_generator { + +inline grpc::string GetJSServiceFilename(const grpc::string& filename) { + return grpc_generator::StripProto(filename) + "_grpc_pb.js"; +} + +} // namespace grpc_node_generator + +#endif // GRPC_INTERNAL_COMPILER_NODE_GENERATOR_HELPERS_H diff --git a/src/compiler/node_plugin.cc b/src/compiler/node_plugin.cc new file mode 100644 index 0000000000000000000000000000000000000000..ac5ced35589bf557cf2e360ad0315c89c2b20bfa --- /dev/null +++ b/src/compiler/node_plugin.cc @@ -0,0 +1,77 @@ +/* + * + * 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. + * + */ + +// Generates Node gRPC service interface out of Protobuf IDL. + +#include <memory> + +#include "src/compiler/config.h" +#include "src/compiler/node_generator.h" +#include "src/compiler/node_generator_helpers.h" + +using grpc_node_generator::GetImports; +using grpc_node_generator::GetJSServiceFilename; +using grpc_node_generator::GetServices; +using grpc_node_generator::GetTransformers; + +class NodeGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { + public: + NodeGrpcGenerator() {} + ~NodeGrpcGenerator() {} + + bool Generate(const grpc::protobuf::FileDescriptor *file, + const grpc::string ¶meter, + grpc::protobuf::compiler::GeneratorContext *context, + grpc::string *error) const { + grpc::string code = GetImports(file) + + GetTransformers(file) + + GetServices(file); + if (code.size() == 0) { + return true; + } + + // Get output file name + grpc::string file_name = GetJSServiceFilename(file->name()); + + std::unique_ptr<grpc::protobuf::io::ZeroCopyOutputStream> output( + context->Open(file_name)); + grpc::protobuf::io::CodedOutputStream coded_out(output.get()); + coded_out.WriteRaw(code.data(), code.size()); + return true; + } +}; + +int main(int argc, char *argv[]) { + NodeGrpcGenerator generator; + return grpc::protobuf::compiler::PluginMain(argc, argv, &generator); +} diff --git a/src/compiler/objective_c_generator.cc b/src/compiler/objective_c_generator.cc index ff092053ad09386f695387a3cdd232b81e96da7d..465491e385f4b8dfd70b968da881f9a76d1eae09 100644 --- a/src/compiler/objective_c_generator.cc +++ b/src/compiler/objective_c_generator.cc @@ -75,11 +75,11 @@ void PrintMethodSignature(Printer *printer, const MethodDescriptor *method, if (method->server_streaming()) { printer->Print(vars, " eventHandler:(void(^)(BOOL done, " - "$response_class$ *response, NSError *error))eventHandler"); + "$response_class$ *_Nullable response, NSError *_Nullable error))eventHandler"); } else { printer->Print(vars, - " handler:(void(^)($response_class$ *response, " - "NSError *error))handler"); + " handler:(void(^)($response_class$ *_Nullable response, " + "NSError *_Nullable error))handler"); } } diff --git a/src/compiler/objective_c_plugin.cc b/src/compiler/objective_c_plugin.cc index 17440358bb837edb9eb15b3d6dc5a3540867f299..3ccfd5b037c54d9e5cb78090465b749254cfb51a 100644 --- a/src/compiler/objective_c_plugin.cc +++ b/src/compiler/objective_c_plugin.cc @@ -81,8 +81,12 @@ class ObjectiveCGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { declarations += grpc_objective_c_generator::GetHeader(service); } + static const ::grpc::string kNonNullBegin = "\nNS_ASSUME_NONNULL_BEGIN\n\n"; + static const ::grpc::string kNonNullEnd = "\nNS_ASSUME_NONNULL_END\n"; + Write(context, file_name + ".pbrpc.h", - imports + '\n' + proto_imports + '\n' + declarations); + imports + '\n' + proto_imports + '\n' + kNonNullBegin + + declarations + kNonNullEnd); } { diff --git a/src/compiler/python_generator.cc b/src/compiler/python_generator.cc index 02c032800b1bd4068f02e8b98bccc0af6dea2f41..59137e1c9233c65a7441fdeb8b6fcca99e2bb746 100644 --- a/src/compiler/python_generator.cc +++ b/src/compiler/python_generator.cc @@ -190,7 +190,7 @@ bool PrintBetaServicer(const ServiceDescriptor* service, "Documentation", doc, }); out->Print("\n"); - out->Print(dict, "class Beta$Service$Servicer(six.with_metaclass(abc.ABCMeta, object)):\n"); + out->Print(dict, "class Beta$Service$Servicer(object):\n"); { IndentScope raii_class_indent(out); out->Print(dict, "\"\"\"$Documentation$\"\"\"\n"); @@ -198,12 +198,11 @@ bool PrintBetaServicer(const ServiceDescriptor* service, auto meth = service->method(i); grpc::string arg_name = meth->client_streaming() ? "request_iterator" : "request"; - out->Print("@abc.abstractmethod\n"); out->Print("def $Method$(self, $ArgName$, context):\n", "Method", meth->name(), "ArgName", arg_name); { IndentScope raii_method_indent(out); - out->Print("raise NotImplementedError()\n"); + out->Print("context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)\n"); } } } @@ -218,7 +217,7 @@ bool PrintBetaStub(const ServiceDescriptor* service, "Documentation", doc, }); out->Print("\n"); - out->Print(dict, "class Beta$Service$Stub(six.with_metaclass(abc.ABCMeta, object)):\n"); + out->Print(dict, "class Beta$Service$Stub(object):\n"); { IndentScope raii_class_indent(out); out->Print(dict, "\"\"\"$Documentation$\"\"\"\n"); @@ -227,7 +226,6 @@ 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("@abc.abstractmethod\n"); out->Print(methdict, "def $Method$(self, $ArgName$, timeout):\n"); { IndentScope raii_method_indent(out); @@ -450,6 +448,8 @@ bool PrintPreamble(const FileDescriptor* file, 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", + "Package", config.beta_package_root); out->Print("from grpc.framework.common import cardinality\n"); out->Print("from grpc.framework.interfaces.face import utilities as face_utilities\n"); return true; diff --git a/src/core/ext/census/grpc_filter.c b/src/core/ext/census/grpc_filter.c index abfb3bb5f0e16699efbc3a0253d0dda4798d12ed..5e278ef127e5520565381f9bd8c4dac03d31bbe5 100644 --- a/src/core/ext/census/grpc_filter.c +++ b/src/core/ext/census/grpc_filter.c @@ -134,7 +134,7 @@ static void client_init_call_elem(grpc_exec_ctx *exec_ctx, } static void client_destroy_call_elem(grpc_exec_ctx *exec_ctx, - grpc_call_element *elem) { + grpc_call_element *elem, void *ignored) { call_data *d = elem->call_data; GPR_ASSERT(d != NULL); /* TODO(hongyu): record rpc client stats and census_rpc_end_op here */ @@ -152,7 +152,7 @@ static void server_init_call_elem(grpc_exec_ctx *exec_ctx, } static void server_destroy_call_elem(grpc_exec_ctx *exec_ctx, - grpc_call_element *elem) { + grpc_call_element *elem, void *ignored) { call_data *d = elem->call_data; GPR_ASSERT(d != NULL); /* TODO(hongyu): record rpc server stats and census_tracing_end_op here */ diff --git a/src/core/ext/client_config/client_channel.c b/src/core/ext/client_config/client_channel.c index 8a98a6bcbeec94f84284c06dc33064f108d9e32d..9b5a078aece23254929ab4db1d118ab146b13af1 100644 --- a/src/core/ext/client_config/client_channel.c +++ b/src/core/ext/client_config/client_channel.c @@ -415,9 +415,10 @@ static void init_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, } /* Destructor for call_data */ -static void destroy_call_elem(grpc_exec_ctx *exec_ctx, - grpc_call_element *elem) { +static void destroy_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, + void *and_free_memory) { grpc_subchannel_call_holder_destroy(exec_ctx, elem->call_data); + gpr_free(and_free_memory); } /* Constructor for channel_data */ diff --git a/src/core/ext/client_config/subchannel.c b/src/core/ext/client_config/subchannel.c index c925c28c67b8b602ae4e8e251b006ac6d446db1d..bd45d3825cc5527c84ac923809b05541ee90fd84 100644 --- a/src/core/ext/client_config/subchannel.c +++ b/src/core/ext/client_config/subchannel.c @@ -268,7 +268,7 @@ static void disconnect(grpc_exec_ctx *exec_ctx, grpc_subchannel *c) { con = GET_CONNECTED_SUBCHANNEL(c, no_barrier); if (con != NULL) { GRPC_CONNECTED_SUBCHANNEL_UNREF(exec_ctx, con, "connection"); - gpr_atm_no_barrier_store(&c->connected_subchannel, 0xdeadbeef); + gpr_atm_no_barrier_store(&c->connected_subchannel, (gpr_atm)0xdeadbeef); } gpr_mu_unlock(&c->mu); } @@ -644,9 +644,9 @@ static void subchannel_call_destroy(grpc_exec_ctx *exec_ctx, void *call, bool success) { grpc_subchannel_call *c = call; GPR_TIMER_BEGIN("grpc_subchannel_call_unref.destroy", 0); - grpc_call_stack_destroy(exec_ctx, SUBCHANNEL_CALL_TO_CALL_STACK(c)); - GRPC_CONNECTED_SUBCHANNEL_UNREF(exec_ctx, c->connection, "subchannel_call"); - gpr_free(c); + grpc_connected_subchannel *connection = c->connection; + grpc_call_stack_destroy(exec_ctx, SUBCHANNEL_CALL_TO_CALL_STACK(c), c); + GRPC_CONNECTED_SUBCHANNEL_UNREF(exec_ctx, connection, "subchannel_call"); GPR_TIMER_END("grpc_subchannel_call_unref.destroy", 0); } diff --git a/src/core/ext/transport/chttp2/transport/chttp2_transport.c b/src/core/ext/transport/chttp2/transport/chttp2_transport.c index 01507f5ca6f6c0e906fee1c27422bdd58df3d37a..8c8593748dd4d619b992abbbcc8a1d369bbd47af 100644 --- a/src/core/ext/transport/chttp2/transport/chttp2_transport.c +++ b/src/core/ext/transport/chttp2/transport/chttp2_transport.c @@ -81,27 +81,25 @@ int grpc_flowctl_trace = 0; static const grpc_transport_vtable vtable; -static void lock(grpc_chttp2_transport *t); -static void unlock(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t); - /* forward declarations of various callbacks that we'll build closures around */ static void writing_action(grpc_exec_ctx *exec_ctx, void *t, bool iomgr_success_ignored); +static void reading_action(grpc_exec_ctx *exec_ctx, void *t, + bool iomgr_success_ignored); +static void parsing_action(grpc_exec_ctx *exec_ctx, void *t, + bool iomgr_success_ignored); /** Set a transport level setting, and push it to our peer */ static void push_setting(grpc_chttp2_transport *t, grpc_chttp2_setting_id id, uint32_t value); -/** Endpoint callback to process incoming data */ -static void recv_data(grpc_exec_ctx *exec_ctx, void *tp, bool success); - /** Start disconnection chain */ static void drop_connection(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t); /** Perform a transport_op */ -static void perform_stream_op_locked( - grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_global *transport_global, - grpc_chttp2_stream_global *stream_global, grpc_transport_stream_op *op); +static void perform_stream_op_locked(grpc_exec_ctx *exec_ctx, + grpc_chttp2_transport *t, + grpc_chttp2_stream *s, void *transport_op); /** Cancel a stream: coming from the transport API */ static void cancel_from_api(grpc_exec_ctx *exec_ctx, @@ -118,15 +116,19 @@ static void close_from_api(grpc_exec_ctx *exec_ctx, /** Add endpoint from this transport to pollset */ static void add_to_pollset_locked(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, - grpc_pollset *pollset); + grpc_chttp2_stream *s_ignored, void *pollset); static void add_to_pollset_set_locked(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, - grpc_pollset_set *pollset_set); + grpc_chttp2_stream *s_ignored, + void *pollset_set); /** Start new streams that have been created if we can */ static void maybe_start_some_streams( grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_global *transport_global); +static void finish_global_actions(grpc_exec_ctx *exec_ctx, + grpc_chttp2_transport *t); + static void connectivity_state_set( grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_global *transport_global, grpc_connectivity_state state, const char *reason); @@ -138,7 +140,10 @@ static void incoming_byte_stream_update_flow_control( grpc_chttp2_transport_global *transport_global, grpc_chttp2_stream_global *stream_global, size_t max_size_hint, size_t have_already); - +static void incoming_byte_stream_destroy_locked(grpc_exec_ctx *exec_ctx, + grpc_chttp2_transport *t, + grpc_chttp2_stream *s, + void *byte_stream); static void fail_pending_writes(grpc_exec_ctx *exec_ctx, grpc_chttp2_stream_global *stream_global); @@ -150,7 +155,7 @@ static void destruct_transport(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t) { size_t i; - gpr_mu_lock(&t->mu); + gpr_mu_lock(&t->executor.mu); GPR_ASSERT(t->ep == NULL); @@ -176,8 +181,8 @@ static void destruct_transport(grpc_exec_ctx *exec_ctx, grpc_chttp2_stream_map_destroy(&t->new_stream_map); grpc_connectivity_state_destroy(exec_ctx, &t->channel_callback.state_tracker); - gpr_mu_unlock(&t->mu); - gpr_mu_destroy(&t->mu); + gpr_mu_unlock(&t->executor.mu); + gpr_mu_destroy(&t->executor.mu); /* callback remaining pings: they're not allowed to call into the transpot, and maybe they hold resources that need to be freed */ @@ -238,7 +243,7 @@ static void init_transport(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, gpr_ref_init(&t->refs, 2); /* ref is dropped at transport close() */ gpr_ref_init(&t->shutdown_ep_refs, 1); - gpr_mu_init(&t->mu); + gpr_mu_init(&t->executor.mu); t->peer_string = grpc_endpoint_get_peer(ep); t->endpoint_reading = 1; t->global.next_stream_id = is_client ? 1 : 2; @@ -262,6 +267,8 @@ static void init_transport(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, gpr_slice_buffer_init(&t->writing.outbuf); grpc_chttp2_hpack_compressor_init(&t->writing.hpack_compressor); grpc_closure_init(&t->writing_action, writing_action, t); + grpc_closure_init(&t->reading_action, reading_action, t); + grpc_closure_init(&t->parsing_action, parsing_action, t); gpr_slice_buffer_init(&t->parsing.qbuf); grpc_chttp2_goaway_parser_init(&t->parsing.goaway_parser); @@ -269,7 +276,6 @@ static void init_transport(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, grpc_closure_init(&t->writing.done_cb, grpc_chttp2_terminate_writing, &t->writing); - grpc_closure_init(&t->recv_data, recv_data, t); gpr_slice_buffer_init(&t->read_buffer); if (is_client) { @@ -377,14 +383,18 @@ static void init_transport(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, } } -static void destroy_transport(grpc_exec_ctx *exec_ctx, grpc_transport *gt) { - grpc_chttp2_transport *t = (grpc_chttp2_transport *)gt; - - lock(t); +static void destroy_transport_locked(grpc_exec_ctx *exec_ctx, + grpc_chttp2_transport *t, + grpc_chttp2_stream *s_ignored, + void *arg_ignored) { t->destroying = 1; drop_connection(exec_ctx, t); - unlock(exec_ctx, t); +} +static void destroy_transport(grpc_exec_ctx *exec_ctx, grpc_transport *gt) { + grpc_chttp2_transport *t = (grpc_chttp2_transport *)gt; + grpc_chttp2_run_with_global_lock(exec_ctx, t, NULL, destroy_transport_locked, + NULL, 0); UNREF_TRANSPORT(exec_ctx, t, "destroy"); } @@ -404,17 +414,6 @@ static void allow_endpoint_shutdown_locked(grpc_exec_ctx *exec_ctx, } } -static void allow_endpoint_shutdown_unlocked(grpc_exec_ctx *exec_ctx, - grpc_chttp2_transport *t) { - if (gpr_unref(&t->shutdown_ep_refs)) { - gpr_mu_lock(&t->mu); - if (t->ep) { - grpc_endpoint_shutdown(exec_ctx, t->ep); - } - gpr_mu_unlock(&t->mu); - } -} - static void destroy_endpoint(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t) { grpc_endpoint_destroy(exec_ctx, t->ep); @@ -424,7 +423,9 @@ static void destroy_endpoint(grpc_exec_ctx *exec_ctx, } static void close_transport_locked(grpc_exec_ctx *exec_ctx, - grpc_chttp2_transport *t) { + grpc_chttp2_transport *t, + grpc_chttp2_stream *s_ignored, + void *arg_ignored) { if (!t->closed) { t->closed = 1; connectivity_state_set(exec_ctx, &t->global, GRPC_CHANNEL_FATAL_FAILURE, @@ -464,6 +465,13 @@ void grpc_chttp2_stream_unref(grpc_exec_ctx *exec_ctx, } #endif +static void finish_init_stream_locked(grpc_exec_ctx *exec_ctx, + grpc_chttp2_transport *t, + grpc_chttp2_stream *s, + void *arg_ignored) { + grpc_chttp2_register_stream(t, s); +} + static int init_stream(grpc_exec_ctx *exec_ctx, grpc_transport *gt, grpc_stream *gs, grpc_stream_refcount *refcount, const void *server_data) { @@ -473,6 +481,10 @@ static int init_stream(grpc_exec_ctx *exec_ctx, grpc_transport *gt, memset(s, 0, sizeof(*s)); s->refcount = refcount; + /* We reserve one 'active stream' that's dropped when the stream is + read-closed. The others are for incoming_byte_streams that are actively + reading */ + gpr_ref_init(&s->global.active_streams, 1); GRPC_CHTTP2_STREAM_REF(&s->global, "chttp2"); grpc_chttp2_incoming_metadata_buffer_init(&s->parsing.metadata_buffer[0]); @@ -486,10 +498,8 @@ static int init_stream(grpc_exec_ctx *exec_ctx, grpc_transport *gt, REF_TRANSPORT(t, "stream"); - lock(t); - grpc_chttp2_register_stream(t, s); if (server_data) { - GPR_ASSERT(t->parsing_active); + GPR_ASSERT(t->executor.parsing_active); s->global.id = (uint32_t)(uintptr_t)server_data; s->parsing.id = s->global.id; s->global.outgoing_window = @@ -502,40 +512,42 @@ static int init_stream(grpc_exec_ctx *exec_ctx, grpc_transport *gt, grpc_chttp2_stream_map_add(&t->parsing_stream_map, s->global.id, s); s->global.in_stream_map = 1; } - unlock(exec_ctx, t); + + grpc_chttp2_run_with_global_lock(exec_ctx, t, s, finish_init_stream_locked, + NULL, 0); return 0; } -static void destroy_stream(grpc_exec_ctx *exec_ctx, grpc_transport *gt, - grpc_stream *gs) { - grpc_chttp2_transport *t = (grpc_chttp2_transport *)gt; - grpc_chttp2_stream *s = (grpc_chttp2_stream *)gs; - int i; +static void destroy_stream_locked(grpc_exec_ctx *exec_ctx, + grpc_chttp2_transport *t, + grpc_chttp2_stream *s, void *arg) { grpc_byte_stream *bs; GPR_TIMER_BEGIN("destroy_stream", 0); - gpr_mu_lock(&t->mu); - GPR_ASSERT((s->global.write_closed && s->global.read_closed) || s->global.id == 0); GPR_ASSERT(!s->global.in_stream_map); if (grpc_chttp2_unregister_stream(t, s) && t->global.sent_goaway) { - close_transport_locked(exec_ctx, t); + close_transport_locked(exec_ctx, t, NULL, NULL); } - if (!t->parsing_active && s->global.id) { + if (!t->executor.parsing_active && s->global.id) { GPR_ASSERT(grpc_chttp2_stream_map_find(&t->parsing_stream_map, s->global.id) == NULL); } + while ( + (bs = grpc_chttp2_incoming_frame_queue_pop(&s->global.incoming_frames))) { + incoming_byte_stream_destroy_locked(exec_ctx, NULL, NULL, bs); + } + grpc_chttp2_list_remove_unannounced_incoming_window_available(&t->global, &s->global); grpc_chttp2_list_remove_stalled_by_transport(&t->global, &s->global); + grpc_chttp2_list_remove_check_read_ops(&t->global, &s->global); - gpr_mu_unlock(&t->mu); - - for (i = 0; i < STREAM_LIST_COUNT; i++) { + for (int i = 0; i < STREAM_LIST_COUNT; i++) { if (s->included[i]) { gpr_log(GPR_ERROR, "%s stream %d still included in list %d", t->global.is_client ? "client" : "server", s->global.id, i); @@ -543,11 +555,6 @@ static void destroy_stream(grpc_exec_ctx *exec_ctx, grpc_transport *gt, } } - while ( - (bs = grpc_chttp2_incoming_frame_queue_pop(&s->global.incoming_frames))) { - grpc_byte_stream_destroy(exec_ctx, bs); - } - GPR_ASSERT(s->global.send_initial_metadata_finished == NULL); GPR_ASSERT(s->global.send_message_finished == NULL); GPR_ASSERT(s->global.send_trailing_metadata_finished == NULL); @@ -566,6 +573,17 @@ static void destroy_stream(grpc_exec_ctx *exec_ctx, grpc_transport *gt, UNREF_TRANSPORT(exec_ctx, t, "stream"); GPR_TIMER_END("destroy_stream", 0); + + gpr_free(arg); +} + +static void destroy_stream(grpc_exec_ctx *exec_ctx, grpc_transport *gt, + grpc_stream *gs, void *and_free_memory) { + grpc_chttp2_transport *t = (grpc_chttp2_transport *)gt; + grpc_chttp2_stream *s = (grpc_chttp2_stream *)gs; + + grpc_chttp2_run_with_global_lock(exec_ctx, t, s, destroy_stream_locked, + and_free_memory, 0); } grpc_chttp2_stream_parsing *grpc_chttp2_parsing_lookup_stream( @@ -594,28 +612,96 @@ grpc_chttp2_stream_parsing *grpc_chttp2_parsing_accept_stream( * LOCK MANAGEMENT */ -/* We take a grpc_chttp2_transport-global lock in response to calls coming in - from above, - and in response to data being received from below. New data to be written - is always queued, as are callbacks to process data. During unlock() we - check our todo lists and initiate callbacks and flush writes. */ - -static void lock(grpc_chttp2_transport *t) { gpr_mu_lock(&t->mu); } - -static void unlock(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t) { - GPR_TIMER_BEGIN("unlock", 0); - if (!t->writing_active && !t->closed && - grpc_chttp2_unlocking_check_writes(exec_ctx, &t->global, &t->writing, - t->parsing_active)) { - t->writing_active = 1; - REF_TRANSPORT(t, "writing"); - grpc_exec_ctx_enqueue(exec_ctx, &t->writing_action, true, NULL); - prevent_endpoint_shutdown(t); +static void finish_global_actions(grpc_exec_ctx *exec_ctx, + grpc_chttp2_transport *t) { + grpc_chttp2_executor_action_header *hdr; + grpc_chttp2_executor_action_header *next; + + for (;;) { + if (!t->executor.writing_active && !t->closed && + grpc_chttp2_unlocking_check_writes(exec_ctx, &t->global, &t->writing, + t->executor.parsing_active)) { + t->executor.writing_active = 1; + REF_TRANSPORT(t, "writing"); + prevent_endpoint_shutdown(t); + grpc_exec_ctx_enqueue(exec_ctx, &t->writing_action, true, NULL); + } + check_read_ops(exec_ctx, &t->global); + + gpr_mu_lock(&t->executor.mu); + if (t->executor.pending_actions_head != NULL) { + hdr = t->executor.pending_actions_head; + t->executor.pending_actions_head = t->executor.pending_actions_tail = + NULL; + gpr_mu_unlock(&t->executor.mu); + while (hdr != NULL) { + hdr->action(exec_ctx, t, hdr->stream, hdr->arg); + next = hdr->next; + gpr_free(hdr); + UNREF_TRANSPORT(exec_ctx, t, "pending_action"); + hdr = next; + } + continue; + } else { + t->executor.global_active = false; + } + gpr_mu_unlock(&t->executor.mu); + break; + } +} + +void grpc_chttp2_run_with_global_lock(grpc_exec_ctx *exec_ctx, + grpc_chttp2_transport *t, + grpc_chttp2_stream *optional_stream, + grpc_chttp2_locked_action action, + void *arg, size_t sizeof_arg) { + grpc_chttp2_executor_action_header *hdr; + + REF_TRANSPORT(t, "run_global"); + gpr_mu_lock(&t->executor.mu); + + for (;;) { + if (!t->executor.global_active) { + t->executor.global_active = 1; + gpr_mu_unlock(&t->executor.mu); + + action(exec_ctx, t, optional_stream, arg); + + finish_global_actions(exec_ctx, t); + } else { + gpr_mu_unlock(&t->executor.mu); + + hdr = gpr_malloc(sizeof(*hdr) + sizeof_arg); + hdr->stream = optional_stream; + hdr->action = action; + if (sizeof_arg == 0) { + hdr->arg = arg; + } else { + hdr->arg = hdr + 1; + memcpy(hdr->arg, arg, sizeof_arg); + } + + gpr_mu_lock(&t->executor.mu); + if (!t->executor.global_active) { + /* global lock was released while allocating memory: release & retry */ + gpr_free(hdr); + continue; + } + hdr->next = NULL; + if (t->executor.pending_actions_head != NULL) { + t->executor.pending_actions_tail = + t->executor.pending_actions_tail->next = hdr; + } else { + t->executor.pending_actions_tail = t->executor.pending_actions_head = + hdr; + } + REF_TRANSPORT(t, "pending_action"); + gpr_mu_unlock(&t->executor.mu); + } + break; } - check_read_ops(exec_ctx, &t->global); - gpr_mu_unlock(&t->mu); - GPR_TIMER_END("unlock", 0); + UNREF_TRANSPORT(exec_ctx, t, "run_global"); } /******************************************************************************* @@ -645,15 +731,11 @@ static void push_setting(grpc_chttp2_transport *t, grpc_chttp2_setting_id id, } } -void grpc_chttp2_terminate_writing(grpc_exec_ctx *exec_ctx, - void *transport_writing_ptr, bool success) { - grpc_chttp2_transport_writing *transport_writing = transport_writing_ptr; - grpc_chttp2_transport *t = TRANSPORT_FROM_WRITING(transport_writing); - grpc_chttp2_stream_global *stream_global; - - GPR_TIMER_BEGIN("grpc_chttp2_terminate_writing", 0); - - lock(t); +static void terminate_writing_with_lock(grpc_exec_ctx *exec_ctx, + grpc_chttp2_transport *t, + grpc_chttp2_stream *s_ignored, + void *a) { + bool success = (bool)(uintptr_t)a; allow_endpoint_shutdown_locked(exec_ctx, t); @@ -663,24 +745,30 @@ void grpc_chttp2_terminate_writing(grpc_exec_ctx *exec_ctx, grpc_chttp2_cleanup_writing(exec_ctx, &t->global, &t->writing); + grpc_chttp2_stream_global *stream_global; while (grpc_chttp2_list_pop_closed_waiting_for_writing(&t->global, &stream_global)) { fail_pending_writes(exec_ctx, stream_global); GRPC_CHTTP2_STREAM_UNREF(exec_ctx, stream_global, "finish_writes"); } - /* leave the writing flag up on shutdown to prevent further writes in unlock() + /* leave the writing flag up on shutdown to prevent further writes in + unlock() from starting */ - t->writing_active = 0; + t->executor.writing_active = 0; if (t->ep && !t->endpoint_reading) { destroy_endpoint(exec_ctx, t); } - unlock(exec_ctx, t); - UNREF_TRANSPORT(exec_ctx, t, "writing"); +} - GPR_TIMER_END("grpc_chttp2_terminate_writing", 0); +void grpc_chttp2_terminate_writing(grpc_exec_ctx *exec_ctx, + void *transport_writing, bool success) { + grpc_chttp2_transport *t = TRANSPORT_FROM_WRITING(transport_writing); + grpc_chttp2_run_with_global_lock(exec_ctx, t, NULL, + terminate_writing_with_lock, + (void *)(uintptr_t)success, 0); } static void writing_action(grpc_exec_ctx *exec_ctx, void *gt, @@ -806,14 +894,16 @@ static int contains_non_ok_status( static void do_nothing(grpc_exec_ctx *exec_ctx, void *arg, bool success) {} -static void perform_stream_op_locked( - grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_global *transport_global, - grpc_chttp2_stream_global *stream_global, grpc_transport_stream_op *op) { - grpc_closure *on_complete; - +static void perform_stream_op_locked(grpc_exec_ctx *exec_ctx, + grpc_chttp2_transport *t, + grpc_chttp2_stream *s, void *stream_op) { GPR_TIMER_BEGIN("perform_stream_op_locked", 0); - on_complete = op->on_complete; + grpc_transport_stream_op *op = stream_op; + grpc_chttp2_transport_global *transport_global = &t->global; + grpc_chttp2_stream_global *stream_global = &s->global; + + grpc_closure *on_complete = op->on_complete; if (on_complete == NULL) { on_complete = grpc_closure_create(do_nothing, NULL); } @@ -938,10 +1028,8 @@ static void perform_stream_op(grpc_exec_ctx *exec_ctx, grpc_transport *gt, grpc_stream *gs, grpc_transport_stream_op *op) { grpc_chttp2_transport *t = (grpc_chttp2_transport *)gt; grpc_chttp2_stream *s = (grpc_chttp2_stream *)gs; - - lock(t); - perform_stream_op_locked(exec_ctx, &t->global, &s->global, op); - unlock(exec_ctx, t); + grpc_chttp2_run_with_global_lock(exec_ctx, t, s, perform_stream_op_locked, op, + sizeof(*op)); } static void send_ping_locked(grpc_chttp2_transport *t, grpc_closure *on_recv) { @@ -961,13 +1049,10 @@ static void send_ping_locked(grpc_chttp2_transport *t, grpc_closure *on_recv) { gpr_slice_buffer_add(&t->global.qbuf, grpc_chttp2_ping_create(0, p->id)); } -void grpc_chttp2_ack_ping(grpc_exec_ctx *exec_ctx, - grpc_chttp2_transport_parsing *transport_parsing, - const uint8_t *opaque_8bytes) { +static void ack_ping_locked(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, + grpc_chttp2_stream *s, void *opaque_8bytes) { grpc_chttp2_outstanding_ping *ping; - grpc_chttp2_transport *t = TRANSPORT_FROM_PARSING(transport_parsing); grpc_chttp2_transport_global *transport_global = &t->global; - lock(t); for (ping = transport_global->pings.next; ping != &transport_global->pings; ping = ping->next) { if (0 == memcmp(opaque_8bytes, ping->id, 8)) { @@ -978,13 +1063,31 @@ void grpc_chttp2_ack_ping(grpc_exec_ctx *exec_ctx, break; } } - unlock(exec_ctx, t); +} + +void grpc_chttp2_ack_ping(grpc_exec_ctx *exec_ctx, + grpc_chttp2_transport_parsing *transport_parsing, + const uint8_t *opaque_8bytes) { + grpc_chttp2_run_with_global_lock( + exec_ctx, TRANSPORT_FROM_PARSING(transport_parsing), NULL, + ack_ping_locked, (void *)opaque_8bytes, 8); } static void perform_transport_op_locked(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, - grpc_transport_op *op) { - bool close_transport = false; + grpc_chttp2_stream *s_unused, + void *stream_op) { + grpc_transport_op *op = stream_op; + bool close_transport = op->disconnect; + + /* If there's a set_accept_stream ensure that we're not parsing + to avoid changing things out from underneath */ + if (t->executor.parsing_active && op->set_accept_stream) { + GPR_ASSERT(t->post_parsing_op == NULL); + t->post_parsing_op = gpr_malloc(sizeof(*op)); + memcpy(t->post_parsing_op, op, sizeof(*op)); + return; + } grpc_exec_ctx_enqueue(exec_ctx, op->on_consumed, true, NULL); @@ -1010,47 +1113,31 @@ static void perform_transport_op_locked(grpc_exec_ctx *exec_ctx, } if (op->bind_pollset) { - add_to_pollset_locked(exec_ctx, t, op->bind_pollset); + add_to_pollset_locked(exec_ctx, t, NULL, op->bind_pollset); } if (op->bind_pollset_set) { - add_to_pollset_set_locked(exec_ctx, t, op->bind_pollset_set); + add_to_pollset_set_locked(exec_ctx, t, NULL, op->bind_pollset_set); } if (op->send_ping) { send_ping_locked(t, op->send_ping); } - if (op->disconnect) { - close_transport_locked(exec_ctx, t); - } - if (close_transport) { - close_transport_locked(exec_ctx, t); + close_transport_locked(exec_ctx, t, NULL, NULL); } } static void perform_transport_op(grpc_exec_ctx *exec_ctx, grpc_transport *gt, grpc_transport_op *op) { grpc_chttp2_transport *t = (grpc_chttp2_transport *)gt; - - lock(t); - - /* If there's a set_accept_stream ensure that we're not parsing - to avoid changing things out from underneath */ - if (t->parsing_active && op->set_accept_stream) { - GPR_ASSERT(t->post_parsing_op == NULL); - t->post_parsing_op = gpr_malloc(sizeof(*op)); - memcpy(t->post_parsing_op, op, sizeof(*op)); - } else { - perform_transport_op_locked(exec_ctx, t, op); - } - - unlock(exec_ctx, t); + grpc_chttp2_run_with_global_lock( + exec_ctx, t, NULL, perform_transport_op_locked, op, sizeof(*op)); } /******************************************************************************* - * INPUT PROCESSING + * INPUT PROCESSING - GENERAL */ static void check_read_ops(grpc_exec_ctx *exec_ctx, @@ -1072,7 +1159,7 @@ static void check_read_ops(grpc_exec_ctx *exec_ctx, while (stream_global->seen_error && (bs = grpc_chttp2_incoming_frame_queue_pop( &stream_global->incoming_frames)) != NULL) { - grpc_byte_stream_destroy(exec_ctx, bs); + incoming_byte_stream_destroy_locked(exec_ctx, NULL, NULL, bs); } if (stream_global->incoming_frames.head != NULL) { *stream_global->recv_message = grpc_chttp2_incoming_frame_queue_pop( @@ -1093,9 +1180,9 @@ static void check_read_ops(grpc_exec_ctx *exec_ctx, while (stream_global->seen_error && (bs = grpc_chttp2_incoming_frame_queue_pop( &stream_global->incoming_frames)) != NULL) { - grpc_byte_stream_destroy(exec_ctx, bs); + incoming_byte_stream_destroy_locked(exec_ctx, NULL, NULL, bs); } - if (stream_global->incoming_frames.head == NULL) { + if (stream_global->all_incoming_byte_streams_finished) { grpc_chttp2_incoming_metadata_buffer_publish( &stream_global->received_trailing_metadata, stream_global->recv_trailing_metadata); @@ -1107,6 +1194,15 @@ static void check_read_ops(grpc_exec_ctx *exec_ctx, } } +static void decrement_active_streams_locked( + grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_global *transport_global, + grpc_chttp2_stream_global *stream_global) { + if ((stream_global->all_incoming_byte_streams_finished = + gpr_unref(&stream_global->active_streams))) { + grpc_chttp2_list_add_check_read_ops(transport_global, stream_global); + } +} + static void remove_stream(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, uint32_t id) { size_t new_stream_count; @@ -1128,7 +1224,7 @@ static void remove_stream(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, } if (grpc_chttp2_unregister_stream(t, s) && t->global.sent_goaway) { - close_transport_locked(exec_ctx, t); + close_transport_locked(exec_ctx, t, NULL, NULL); } if (grpc_chttp2_list_remove_writable_stream(&t->global, &s->global)) { GRPC_CHTTP2_STREAM_UNREF(exec_ctx, &s->global, "chttp2_writing"); @@ -1229,10 +1325,11 @@ void grpc_chttp2_mark_stream_closed( stream_global->read_closed = 1; stream_global->published_initial_metadata = 1; stream_global->published_trailing_metadata = 1; + decrement_active_streams_locked(exec_ctx, transport_global, stream_global); } if (close_writes && !stream_global->write_closed) { stream_global->write_closed = 1; - if (TRANSPORT_FROM_GLOBAL(transport_global)->writing_active) { + if (TRANSPORT_FROM_GLOBAL(transport_global)->executor.writing_active) { GRPC_CHTTP2_STREAM_REF(stream_global, "finish_writes"); grpc_chttp2_list_add_closed_waiting_for_writing(transport_global, stream_global); @@ -1242,7 +1339,7 @@ void grpc_chttp2_mark_stream_closed( } if (stream_global->read_closed && stream_global->write_closed) { if (stream_global->id != 0 && - TRANSPORT_FROM_GLOBAL(transport_global)->parsing_active) { + TRANSPORT_FROM_GLOBAL(transport_global)->executor.parsing_active) { grpc_chttp2_list_add_closed_waiting_for_parsing(transport_global, stream_global); } else { @@ -1374,7 +1471,7 @@ static void end_all_the_calls(grpc_exec_ctx *exec_ctx, } static void drop_connection(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t) { - close_transport_locked(exec_ctx, t); + close_transport_locked(exec_ctx, t, NULL, NULL); end_all_the_calls(exec_ctx, t); } @@ -1398,102 +1495,136 @@ static void update_global_window(void *args, uint32_t id, void *stream) { } } -static void read_error_locked(grpc_exec_ctx *exec_ctx, - grpc_chttp2_transport *t) { - t->endpoint_reading = 0; - if (!t->writing_active && t->ep) { - destroy_endpoint(exec_ctx, t); - } -} +/******************************************************************************* + * INPUT PROCESSING - PARSING + */ -/* tcp read callback */ -static void recv_data(grpc_exec_ctx *exec_ctx, void *tp, bool success) { - size_t i; - int keep_reading = 0; - grpc_chttp2_transport *t = tp; +static void reading_action_locked(grpc_exec_ctx *exec_ctx, + grpc_chttp2_transport *t, + grpc_chttp2_stream *s_unused, void *arg); +static void parsing_action(grpc_exec_ctx *exec_ctx, void *arg, bool success); +static void post_reading_action_locked(grpc_exec_ctx *exec_ctx, + grpc_chttp2_transport *t, + grpc_chttp2_stream *s_unused, void *arg); +static void post_parse_locked(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, + grpc_chttp2_stream *s_unused, void *arg); + +static void reading_action(grpc_exec_ctx *exec_ctx, void *tp, bool success) { + /* Control flow: + reading_action_locked -> + (parse_unlocked -> post_parse_locked)? -> + post_reading_action_locked */ + grpc_chttp2_run_with_global_lock(exec_ctx, tp, NULL, reading_action_locked, + (void *)(uintptr_t)success, 0); +} + +static void reading_action_locked(grpc_exec_ctx *exec_ctx, + grpc_chttp2_transport *t, + grpc_chttp2_stream *s_unused, void *arg) { grpc_chttp2_transport_global *transport_global = &t->global; grpc_chttp2_transport_parsing *transport_parsing = &t->parsing; - grpc_chttp2_stream_global *stream_global; + bool success = (bool)(uintptr_t)arg; - GPR_TIMER_BEGIN("recv_data", 0); - - lock(t); - i = 0; - GPR_ASSERT(!t->parsing_active); + GPR_ASSERT(!t->executor.parsing_active); if (!t->closed) { - t->parsing_active = 1; + t->executor.parsing_active = 1; /* merge stream lists */ grpc_chttp2_stream_map_move_into(&t->new_stream_map, &t->parsing_stream_map); grpc_chttp2_prepare_to_read(transport_global, transport_parsing); - gpr_mu_unlock(&t->mu); - GPR_TIMER_BEGIN("recv_data.parse", 0); - for (; i < t->read_buffer.count && - grpc_chttp2_perform_read(exec_ctx, transport_parsing, - t->read_buffer.slices[i]); - i++) - ; - GPR_TIMER_END("recv_data.parse", 0); - gpr_mu_lock(&t->mu); - /* copy parsing qbuf to global qbuf */ - gpr_slice_buffer_move_into(&t->parsing.qbuf, &t->global.qbuf); - if (i != t->read_buffer.count) { - unlock(exec_ctx, t); - lock(t); - drop_connection(exec_ctx, t); - } - /* merge stream lists */ - grpc_chttp2_stream_map_move_into(&t->new_stream_map, - &t->parsing_stream_map); - transport_global->concurrent_stream_count = - (uint32_t)grpc_chttp2_stream_map_size(&t->parsing_stream_map); - if (transport_parsing->initial_window_update != 0) { - grpc_chttp2_stream_map_for_each(&t->parsing_stream_map, - update_global_window, t); - transport_parsing->initial_window_update = 0; - } - /* handle higher level things */ - grpc_chttp2_publish_reads(exec_ctx, transport_global, transport_parsing); - t->parsing_active = 0; - /* handle delayed transport ops (if there is one) */ - if (t->post_parsing_op) { - grpc_transport_op *op = t->post_parsing_op; - t->post_parsing_op = NULL; - perform_transport_op_locked(exec_ctx, t, op); - gpr_free(op); - } - /* if a stream is in the stream map, and gets cancelled, we need to ensure - * we are not parsing before continuing the cancellation to keep things in - * a sane state */ - while (grpc_chttp2_list_pop_closed_waiting_for_parsing(transport_global, - &stream_global)) { - GPR_ASSERT(stream_global->in_stream_map); - GPR_ASSERT(stream_global->write_closed); - GPR_ASSERT(stream_global->read_closed); - remove_stream(exec_ctx, t, stream_global->id); - GRPC_CHTTP2_STREAM_UNREF(exec_ctx, stream_global, "chttp2"); - } + grpc_exec_ctx_enqueue(exec_ctx, &t->parsing_action, success, NULL); + } else { + post_reading_action_locked(exec_ctx, t, s_unused, arg); + } +} + +static void parsing_action(grpc_exec_ctx *exec_ctx, void *arg, bool success) { + grpc_chttp2_transport *t = arg; + GPR_TIMER_BEGIN("reading_action.parse", 0); + size_t i = 0; + for (; i < t->read_buffer.count && + grpc_chttp2_perform_read(exec_ctx, &t->parsing, + t->read_buffer.slices[i]); + i++) + ; + if (i != t->read_buffer.count) { + success = false; } - if (!success || i != t->read_buffer.count || t->closed) { + GPR_TIMER_END("reading_action.parse", 0); + grpc_chttp2_run_with_global_lock(exec_ctx, t, NULL, post_parse_locked, + (void *)(uintptr_t)success, 0); +} + +static void post_parse_locked(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, + grpc_chttp2_stream *s_unused, void *arg) { + grpc_chttp2_transport_global *transport_global = &t->global; + grpc_chttp2_transport_parsing *transport_parsing = &t->parsing; + /* copy parsing qbuf to global qbuf */ + gpr_slice_buffer_move_into(&t->parsing.qbuf, &t->global.qbuf); + /* merge stream lists */ + grpc_chttp2_stream_map_move_into(&t->new_stream_map, &t->parsing_stream_map); + transport_global->concurrent_stream_count = + (uint32_t)grpc_chttp2_stream_map_size(&t->parsing_stream_map); + if (transport_parsing->initial_window_update != 0) { + grpc_chttp2_stream_map_for_each(&t->parsing_stream_map, + update_global_window, t); + transport_parsing->initial_window_update = 0; + } + /* handle higher level things */ + grpc_chttp2_publish_reads(exec_ctx, transport_global, transport_parsing); + t->executor.parsing_active = 0; + /* handle delayed transport ops (if there is one) */ + if (t->post_parsing_op) { + grpc_transport_op *op = t->post_parsing_op; + t->post_parsing_op = NULL; + perform_transport_op_locked(exec_ctx, t, NULL, op); + gpr_free(op); + } + /* if a stream is in the stream map, and gets cancelled, we need to + * ensure we are not parsing before continuing the cancellation to keep + * things in a sane state */ + grpc_chttp2_stream_global *stream_global; + while (grpc_chttp2_list_pop_closed_waiting_for_parsing(transport_global, + &stream_global)) { + GPR_ASSERT(stream_global->in_stream_map); + GPR_ASSERT(stream_global->write_closed); + GPR_ASSERT(stream_global->read_closed); + remove_stream(exec_ctx, t, stream_global->id); + GRPC_CHTTP2_STREAM_UNREF(exec_ctx, stream_global, "chttp2"); + } + + post_reading_action_locked(exec_ctx, t, s_unused, arg); +} + +static void post_reading_action_locked(grpc_exec_ctx *exec_ctx, + grpc_chttp2_transport *t, + grpc_chttp2_stream *s_unused, + void *arg) { + bool success = (bool)(uintptr_t)arg; + bool keep_reading = false; + if (!success || t->closed) { drop_connection(exec_ctx, t); - read_error_locked(exec_ctx, t); + t->endpoint_reading = 0; + if (!t->executor.writing_active && t->ep) { + grpc_endpoint_destroy(exec_ctx, t->ep); + t->ep = NULL; + /* safe as we still have a ref for read */ + UNREF_TRANSPORT(exec_ctx, t, "disconnect"); + } } else if (!t->closed) { - keep_reading = 1; + keep_reading = true; REF_TRANSPORT(t, "keep_reading"); prevent_endpoint_shutdown(t); } gpr_slice_buffer_reset_and_unref(&t->read_buffer); - unlock(exec_ctx, t); if (keep_reading) { - grpc_endpoint_read(exec_ctx, t->ep, &t->read_buffer, &t->recv_data); - allow_endpoint_shutdown_unlocked(exec_ctx, t); + grpc_endpoint_read(exec_ctx, t->ep, &t->read_buffer, &t->reading_action); + allow_endpoint_shutdown_locked(exec_ctx, t); UNREF_TRANSPORT(exec_ctx, t, "keep_reading"); } else { - UNREF_TRANSPORT(exec_ctx, t, "recv_data"); + UNREF_TRANSPORT(exec_ctx, t, "reading_action"); } - - GPR_TIMER_END("recv_data", 0); } /******************************************************************************* @@ -1517,7 +1648,7 @@ static void connectivity_state_set( static void add_to_pollset_locked(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, - grpc_pollset *pollset) { + grpc_chttp2_stream *s_unused, void *pollset) { if (t->ep) { grpc_endpoint_add_to_pollset(exec_ctx, t->ep, pollset); } @@ -1525,7 +1656,8 @@ static void add_to_pollset_locked(grpc_exec_ctx *exec_ctx, static void add_to_pollset_set_locked(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, - grpc_pollset_set *pollset_set) { + grpc_chttp2_stream *s_unused, + void *pollset_set) { if (t->ep) { grpc_endpoint_add_to_pollset_set(exec_ctx, t->ep, pollset_set); } @@ -1533,16 +1665,24 @@ static void add_to_pollset_set_locked(grpc_exec_ctx *exec_ctx, static void set_pollset(grpc_exec_ctx *exec_ctx, grpc_transport *gt, grpc_stream *gs, grpc_pollset *pollset) { - grpc_chttp2_transport *t = (grpc_chttp2_transport *)gt; - lock(t); - add_to_pollset_locked(exec_ctx, t, pollset); - unlock(exec_ctx, t); + /* TODO(ctiller): keep pollset alive */ + grpc_chttp2_run_with_global_lock(exec_ctx, (grpc_chttp2_transport *)gt, + (grpc_chttp2_stream *)gs, + add_to_pollset_locked, pollset, 0); } /******************************************************************************* * BYTE STREAM */ +static void incoming_byte_stream_unref(grpc_exec_ctx *exec_ctx, + grpc_chttp2_incoming_byte_stream *bs) { + if (gpr_unref(&bs->refs)) { + gpr_slice_buffer_destroy(&bs->slices); + gpr_free(bs); + } +} + static void incoming_byte_stream_update_flow_control( grpc_chttp2_transport_global *transport_global, grpc_chttp2_stream_global *stream_global, size_t max_size_hint, @@ -1583,87 +1723,146 @@ static void incoming_byte_stream_update_flow_control( } } -static int incoming_byte_stream_next(grpc_exec_ctx *exec_ctx, - grpc_byte_stream *byte_stream, - gpr_slice *slice, size_t max_size_hint, - grpc_closure *on_complete) { +typedef struct { + grpc_chttp2_incoming_byte_stream *byte_stream; + gpr_slice *slice; + size_t max_size_hint; + grpc_closure *on_complete; +} incoming_byte_stream_next_arg; + +static void incoming_byte_stream_next_locked(grpc_exec_ctx *exec_ctx, + grpc_chttp2_transport *t, + grpc_chttp2_stream *s, + void *argp) { + incoming_byte_stream_next_arg *arg = argp; grpc_chttp2_incoming_byte_stream *bs = - (grpc_chttp2_incoming_byte_stream *)byte_stream; + (grpc_chttp2_incoming_byte_stream *)arg->byte_stream; grpc_chttp2_transport_global *transport_global = &bs->transport->global; grpc_chttp2_stream_global *stream_global = &bs->stream->global; - lock(bs->transport); if (bs->is_tail) { - incoming_byte_stream_update_flow_control(transport_global, stream_global, - max_size_hint, bs->slices.length); + incoming_byte_stream_update_flow_control( + transport_global, stream_global, arg->max_size_hint, bs->slices.length); } if (bs->slices.count > 0) { - *slice = gpr_slice_buffer_take_first(&bs->slices); - unlock(exec_ctx, bs->transport); - return 1; + *arg->slice = gpr_slice_buffer_take_first(&bs->slices); + grpc_exec_ctx_enqueue(exec_ctx, arg->on_complete, true, NULL); } else if (bs->failed) { - grpc_exec_ctx_enqueue(exec_ctx, on_complete, false, NULL); - unlock(exec_ctx, bs->transport); - return 0; + grpc_exec_ctx_enqueue(exec_ctx, arg->on_complete, false, NULL); } else { - bs->on_next = on_complete; - bs->next = slice; - unlock(exec_ctx, bs->transport); - return 0; + bs->on_next = arg->on_complete; + bs->next = arg->slice; } + incoming_byte_stream_unref(exec_ctx, bs); } -static void incoming_byte_stream_unref(grpc_chttp2_incoming_byte_stream *bs) { - if (gpr_unref(&bs->refs)) { - gpr_slice_buffer_destroy(&bs->slices); - gpr_free(bs); - } +static int incoming_byte_stream_next(grpc_exec_ctx *exec_ctx, + grpc_byte_stream *byte_stream, + gpr_slice *slice, size_t max_size_hint, + grpc_closure *on_complete) { + grpc_chttp2_incoming_byte_stream *bs = + (grpc_chttp2_incoming_byte_stream *)byte_stream; + incoming_byte_stream_next_arg arg = {bs, slice, max_size_hint, on_complete}; + gpr_ref(&bs->refs); + grpc_chttp2_run_with_global_lock(exec_ctx, bs->transport, bs->stream, + incoming_byte_stream_next_locked, &arg, + sizeof(arg)); + return 0; +} + +static void incoming_byte_stream_destroy(grpc_exec_ctx *exec_ctx, + grpc_byte_stream *byte_stream); + +static void incoming_byte_stream_destroy_locked(grpc_exec_ctx *exec_ctx, + grpc_chttp2_transport *t, + grpc_chttp2_stream *s, + void *byte_stream) { + grpc_chttp2_incoming_byte_stream *bs = byte_stream; + GPR_ASSERT(bs->base.destroy == incoming_byte_stream_destroy); + decrement_active_streams_locked(exec_ctx, &bs->transport->global, + &bs->stream->global); + incoming_byte_stream_unref(exec_ctx, bs); } static void incoming_byte_stream_destroy(grpc_exec_ctx *exec_ctx, grpc_byte_stream *byte_stream) { - incoming_byte_stream_unref((grpc_chttp2_incoming_byte_stream *)byte_stream); + grpc_chttp2_incoming_byte_stream *bs = + (grpc_chttp2_incoming_byte_stream *)byte_stream; + grpc_chttp2_run_with_global_lock(exec_ctx, bs->transport, bs->stream, + incoming_byte_stream_destroy_locked, bs, 0); } -void grpc_chttp2_incoming_byte_stream_push(grpc_exec_ctx *exec_ctx, - grpc_chttp2_incoming_byte_stream *bs, - gpr_slice slice) { - gpr_mu_lock(&bs->transport->mu); +typedef struct { + grpc_chttp2_incoming_byte_stream *byte_stream; + gpr_slice slice; +} incoming_byte_stream_push_arg; + +static void incoming_byte_stream_push_locked(grpc_exec_ctx *exec_ctx, + grpc_chttp2_transport *t, + grpc_chttp2_stream *s, + void *argp) { + incoming_byte_stream_push_arg *arg = argp; + grpc_chttp2_incoming_byte_stream *bs = arg->byte_stream; if (bs->on_next != NULL) { - *bs->next = slice; + *bs->next = arg->slice; grpc_exec_ctx_enqueue(exec_ctx, bs->on_next, true, NULL); bs->on_next = NULL; } else { - gpr_slice_buffer_add(&bs->slices, slice); + gpr_slice_buffer_add(&bs->slices, arg->slice); } - gpr_mu_unlock(&bs->transport->mu); + incoming_byte_stream_unref(exec_ctx, bs); +} + +void grpc_chttp2_incoming_byte_stream_push(grpc_exec_ctx *exec_ctx, + grpc_chttp2_incoming_byte_stream *bs, + gpr_slice slice) { + incoming_byte_stream_push_arg arg = {bs, slice}; + gpr_ref(&bs->refs); + grpc_chttp2_run_with_global_lock(exec_ctx, bs->transport, bs->stream, + incoming_byte_stream_push_locked, &arg, + sizeof(arg)); +} + +static void incoming_byte_stream_finished_failed_locked( + grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, grpc_chttp2_stream *s, + void *argp) { + grpc_chttp2_incoming_byte_stream *bs = argp; + grpc_exec_ctx_enqueue(exec_ctx, bs->on_next, false, NULL); + bs->on_next = NULL; + bs->failed = 1; + incoming_byte_stream_unref(exec_ctx, bs); +} + +static void incoming_byte_stream_finished_ok_locked(grpc_exec_ctx *exec_ctx, + grpc_chttp2_transport *t, + grpc_chttp2_stream *s, + void *argp) { + grpc_chttp2_incoming_byte_stream *bs = argp; + incoming_byte_stream_unref(exec_ctx, bs); } void grpc_chttp2_incoming_byte_stream_finished( grpc_exec_ctx *exec_ctx, grpc_chttp2_incoming_byte_stream *bs, int success, int from_parsing_thread) { - if (!success) { - if (from_parsing_thread) { - gpr_mu_lock(&bs->transport->mu); - } - grpc_exec_ctx_enqueue(exec_ctx, bs->on_next, false, NULL); - bs->on_next = NULL; - bs->failed = 1; - if (from_parsing_thread) { - gpr_mu_unlock(&bs->transport->mu); + if (from_parsing_thread) { + if (success) { + grpc_chttp2_run_with_global_lock(exec_ctx, bs->transport, bs->stream, + incoming_byte_stream_finished_ok_locked, + bs, 0); + } else { + incoming_byte_stream_finished_ok_locked(exec_ctx, bs->transport, + bs->stream, bs); } } else { -#ifndef NDEBUG - if (from_parsing_thread) { - gpr_mu_lock(&bs->transport->mu); - } - GPR_ASSERT(bs->on_next == NULL); - if (from_parsing_thread) { - gpr_mu_unlock(&bs->transport->mu); + if (success) { + grpc_chttp2_run_with_global_lock( + exec_ctx, bs->transport, bs->stream, + incoming_byte_stream_finished_failed_locked, bs, 0); + } else { + incoming_byte_stream_finished_failed_locked(exec_ctx, bs->transport, + bs->stream, bs); } -#endif } - incoming_byte_stream_unref(bs); } grpc_chttp2_incoming_byte_stream *grpc_chttp2_incoming_byte_stream_create( @@ -1680,6 +1879,7 @@ grpc_chttp2_incoming_byte_stream *grpc_chttp2_incoming_byte_stream_create( incoming_byte_stream->next_message = NULL; incoming_byte_stream->transport = TRANSPORT_FROM_PARSING(transport_parsing); incoming_byte_stream->stream = STREAM_FROM_PARSING(stream_parsing); + gpr_ref(&incoming_byte_stream->stream->global.active_streams); gpr_slice_buffer_init(&incoming_byte_stream->slices); incoming_byte_stream->on_next = NULL; incoming_byte_stream->is_tail = 1; @@ -1810,7 +2010,7 @@ void grpc_chttp2_transport_start_reading(grpc_exec_ctx *exec_ctx, grpc_transport *transport, gpr_slice *slices, size_t nslices) { grpc_chttp2_transport *t = (grpc_chttp2_transport *)transport; - REF_TRANSPORT(t, "recv_data"); /* matches unref inside recv_data */ + REF_TRANSPORT(t, "reading_action"); /* matches unref inside reading_action */ gpr_slice_buffer_addn(&t->read_buffer, slices, nslices); - recv_data(exec_ctx, t, 1); + reading_action(exec_ctx, t, 1); } diff --git a/src/core/ext/transport/chttp2/transport/internal.h b/src/core/ext/transport/chttp2/transport/internal.h index 98cd38abd43c2c2b681c2cf803e28af595100938..8c4fa2d34aca70d9b889673720cecf4daa9e0dd5 100644 --- a/src/core/ext/transport/chttp2/transport/internal.h +++ b/src/core/ext/transport/chttp2/transport/internal.h @@ -236,9 +236,6 @@ struct grpc_chttp2_transport_parsing { /** was a goaway frame received? */ uint8_t goaway_received; - /** the last sent max_table_size setting */ - uint32_t last_sent_max_table_size; - /** initial window change */ int64_t initial_window_update; @@ -272,6 +269,9 @@ struct grpc_chttp2_transport_parsing { uint32_t incoming_frame_size; uint32_t incoming_stream_id; + /* current max frame size */ + uint32_t max_frame_size; + /* active parser */ void *parser_data; grpc_chttp2_stream_parsing *incoming_stream; @@ -282,6 +282,8 @@ struct grpc_chttp2_transport_parsing { /* received settings */ uint32_t settings[GRPC_CHTTP2_NUM_SETTINGS]; + /* last settings that were sent */ + uint32_t last_sent_settings[GRPC_CHTTP2_NUM_SETTINGS]; /* goaway data */ grpc_status_code goaway_error; @@ -291,27 +293,45 @@ struct grpc_chttp2_transport_parsing { int64_t outgoing_window; }; +typedef void (*grpc_chttp2_locked_action)(grpc_exec_ctx *ctx, + grpc_chttp2_transport *t, + grpc_chttp2_stream *s, void *arg); + +typedef struct grpc_chttp2_executor_action_header { + grpc_chttp2_stream *stream; + grpc_chttp2_locked_action action; + struct grpc_chttp2_executor_action_header *next; + void *arg; +} grpc_chttp2_executor_action_header; + struct grpc_chttp2_transport { grpc_transport base; /* must be first */ - grpc_endpoint *ep; gpr_refcount refs; + grpc_endpoint *ep; char *peer_string; /** when this drops to zero it's safe to shutdown the endpoint */ gpr_refcount shutdown_ep_refs; - gpr_mu mu; + struct { + gpr_mu mu; + + /** is a thread currently in the global lock */ + bool global_active; + /** is a thread currently writing */ + bool writing_active; + /** is a thread currently parsing */ + bool parsing_active; + + grpc_chttp2_executor_action_header *pending_actions_head; + grpc_chttp2_executor_action_header *pending_actions_tail; + } executor; /** is the transport destroying itself? */ uint8_t destroying; /** has the upper layer closed the transport? */ uint8_t closed; - /** is a thread currently writing */ - uint8_t writing_active; - /** is a thread currently parsing */ - uint8_t parsing_active; - /** is there a read request to the endpoint outstanding? */ uint8_t endpoint_reading; @@ -338,8 +358,10 @@ struct grpc_chttp2_transport { /** closure to execute writing */ grpc_closure writing_action; - /** closure to finish reading from the endpoint */ - grpc_closure recv_data; + /** closure to start reading from the endpoint */ + grpc_closure reading_action; + /** closure to actually do parsing */ + grpc_closure parsing_action; /** incoming read bytes */ gpr_slice_buffer read_buffer; @@ -397,21 +419,26 @@ typedef struct { grpc_transport_stream_stats *collecting_stats; grpc_transport_stream_stats stats; + /** number of streams that are currently being read */ + gpr_refcount active_streams; + /** when the application requests writes be closed, the write_closed is 'queued'; when the close is flow controlled into the send path, we are 'sending' it; when the write has been performed it is 'sent' */ - uint8_t write_closed; + bool write_closed; /** is this stream reading half-closed (boolean) */ - uint8_t read_closed; + bool read_closed; + /** are all published incoming byte streams closed */ + bool all_incoming_byte_streams_finished; /** is this stream in the stream map? (boolean) */ - uint8_t in_stream_map; + bool in_stream_map; /** has this stream seen an error? if 1, then pending incoming frames can be thrown away */ - uint8_t seen_error; + bool seen_error; - uint8_t published_initial_metadata; - uint8_t published_trailing_metadata; - uint8_t faked_trailing_metadata; + bool published_initial_metadata; + bool published_trailing_metadata; + bool faked_trailing_metadata; grpc_chttp2_incoming_metadata_buffer received_initial_metadata; grpc_chttp2_incoming_metadata_buffer received_trailing_metadata; @@ -570,6 +597,9 @@ int grpc_chttp2_list_pop_waiting_for_concurrency( void grpc_chttp2_list_add_check_read_ops( grpc_chttp2_transport_global *transport_global, grpc_chttp2_stream_global *stream_global); +bool grpc_chttp2_list_remove_check_read_ops( + grpc_chttp2_transport_global *transport_global, + grpc_chttp2_stream_global *stream_global); int grpc_chttp2_list_pop_check_read_ops( grpc_chttp2_transport_global *transport_global, grpc_chttp2_stream_global **stream_global); @@ -645,6 +675,12 @@ void grpc_chttp2_complete_closure_step(grpc_exec_ctx *exec_ctx, grpc_chttp2_stream_global *stream_global, grpc_closure **pclosure, int success); +void grpc_chttp2_run_with_global_lock(grpc_exec_ctx *exec_ctx, + grpc_chttp2_transport *transport, + grpc_chttp2_stream *optional_stream, + grpc_chttp2_locked_action action, + void *arg, size_t sizeof_arg); + #define GRPC_CHTTP2_CLIENT_CONNECT_STRING "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" #define GRPC_CHTTP2_CLIENT_CONNECT_STRLEN \ (sizeof(GRPC_CHTTP2_CLIENT_CONNECT_STRING) - 1) diff --git a/src/core/ext/transport/chttp2/transport/parsing.c b/src/core/ext/transport/chttp2/transport/parsing.c index e827a43f7a4ff474809eaf56c02d5c91e385ea4f..2995066e5192610c38c86d5360a6ff568253d5d2 100644 --- a/src/core/ext/transport/chttp2/transport/parsing.c +++ b/src/core/ext/transport/chttp2/transport/parsing.c @@ -79,9 +79,12 @@ void grpc_chttp2_prepare_to_read( GPR_TIMER_BEGIN("grpc_chttp2_prepare_to_read", 0); transport_parsing->next_stream_id = transport_global->next_stream_id; - transport_parsing->last_sent_max_table_size = - transport_global->settings[GRPC_SENT_SETTINGS] - [GRPC_CHTTP2_SETTINGS_HEADER_TABLE_SIZE]; + memcpy(transport_parsing->last_sent_settings, + transport_global->settings[GRPC_SENT_SETTINGS], + sizeof(transport_parsing->last_sent_settings)); + transport_parsing->max_frame_size = + transport_global->settings[GRPC_ACKED_SETTINGS] + [GRPC_CHTTP2_SETTINGS_MAX_FRAME_SIZE]; /* update the parsing view of incoming window */ while (grpc_chttp2_list_pop_unannounced_incoming_window_available( @@ -388,6 +391,12 @@ int grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx, return 1; } goto dts_fh_0; /* loop */ + } else if (transport_parsing->incoming_frame_size > + transport_parsing->max_frame_size) { + gpr_log(GPR_DEBUG, "Frame size %d is larger than max frame size %d", + transport_parsing->incoming_frame_size, + transport_parsing->max_frame_size); + return 0; } if (++cur == end) { return 1; @@ -840,7 +849,11 @@ static int init_settings_frame_parser( transport_parsing->settings_ack_received = 1; grpc_chttp2_hptbl_set_max_bytes( &transport_parsing->hpack_parser.table, - transport_parsing->last_sent_max_table_size); + transport_parsing + ->last_sent_settings[GRPC_CHTTP2_SETTINGS_HEADER_TABLE_SIZE]); + transport_parsing->max_frame_size = + transport_parsing + ->last_sent_settings[GRPC_CHTTP2_SETTINGS_MAX_FRAME_SIZE]; } transport_parsing->parser = grpc_chttp2_settings_parser_parse; transport_parsing->parser_data = &transport_parsing->simple.settings; diff --git a/src/core/ext/transport/chttp2/transport/stream_lists.c b/src/core/ext/transport/chttp2/transport/stream_lists.c index e5b35aadca032d766f37d75257931a74ed7de326..8f3ab00e6df8bfe7f61ac58d9d35136f7a29731a 100644 --- a/src/core/ext/transport/chttp2/transport/stream_lists.c +++ b/src/core/ext/transport/chttp2/transport/stream_lists.c @@ -305,6 +305,14 @@ void grpc_chttp2_list_add_check_read_ops( GRPC_CHTTP2_LIST_CHECK_READ_OPS); } +bool grpc_chttp2_list_remove_check_read_ops( + grpc_chttp2_transport_global *transport_global, + grpc_chttp2_stream_global *stream_global) { + return stream_list_maybe_remove(TRANSPORT_FROM_GLOBAL(transport_global), + STREAM_FROM_GLOBAL(stream_global), + GRPC_CHTTP2_LIST_CHECK_READ_OPS); +} + int grpc_chttp2_list_pop_check_read_ops( grpc_chttp2_transport_global *transport_global, grpc_chttp2_stream_global **stream_global) { diff --git a/src/core/lib/channel/channel_stack.c b/src/core/lib/channel/channel_stack.c index e36066d8639d653a79705f5b16d80915109d9f56..ad182d1f69f9f1bc59404c77d2884db77ada52d3 100644 --- a/src/core/lib/channel/channel_stack.c +++ b/src/core/lib/channel/channel_stack.c @@ -213,14 +213,16 @@ void grpc_call_stack_ignore_set_pollset(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, grpc_pollset *pollset) {} -void grpc_call_stack_destroy(grpc_exec_ctx *exec_ctx, grpc_call_stack *stack) { +void grpc_call_stack_destroy(grpc_exec_ctx *exec_ctx, grpc_call_stack *stack, + void *and_free_memory) { grpc_call_element *elems = CALL_ELEMS_FROM_STACK(stack); size_t count = stack->count; size_t i; /* destroy per-filter data */ for (i = 0; i < count; i++) { - elems[i].filter->destroy_call_elem(exec_ctx, &elems[i]); + elems[i].filter->destroy_call_elem(exec_ctx, &elems[i], + i == count - 1 ? and_free_memory : NULL); } } diff --git a/src/core/lib/channel/channel_stack.h b/src/core/lib/channel/channel_stack.h index 9e3a25a152d6408bb759a69ff7a41ba5ea986384..36c17cb467fcdf0a1aae09791494c66c5bb2c556 100644 --- a/src/core/lib/channel/channel_stack.h +++ b/src/core/lib/channel/channel_stack.h @@ -104,8 +104,12 @@ typedef struct { void (*set_pollset)(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, grpc_pollset *pollset); /* Destroy per call data. - The filter does not need to do any chaining */ - void (*destroy_call_elem)(grpc_exec_ctx *exec_ctx, grpc_call_element *elem); + The filter does not need to do any chaining. + The bottom filter of a stack will be passed a non-NULL pointer to + \a and_free_memory that should be passed to gpr_free when destruction + is complete. */ + void (*destroy_call_elem)(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, + void *and_free_memory); /* sizeof(per channel data) */ size_t sizeof_channel_data; @@ -223,7 +227,8 @@ void grpc_call_stack_set_pollset(grpc_exec_ctx *exec_ctx, #endif /* Destroy a call stack */ -void grpc_call_stack_destroy(grpc_exec_ctx *exec_ctx, grpc_call_stack *stack); +void grpc_call_stack_destroy(grpc_exec_ctx *exec_ctx, grpc_call_stack *stack, + void *and_free_memory); /* Ignore set pollset - used by filters to implement the set_pollset method if they don't care about pollsets at all. Does nothing. */ diff --git a/src/core/lib/channel/compress_filter.c b/src/core/lib/channel/compress_filter.c index 3d42d0e616187b0d5ca9475a0301f4327b75d0cb..5510c79b183d9838d51b24c9d72b345b0b0407cc 100644 --- a/src/core/lib/channel/compress_filter.c +++ b/src/core/lib/channel/compress_filter.c @@ -47,6 +47,8 @@ #include "src/core/lib/support/string.h" #include "src/core/lib/transport/static_metadata.h" +int grpc_compress_filter_trace = 0; + typedef struct call_data { gpr_slice_buffer slices; /**< Buffers up input slices to be compressed */ grpc_linked_mdelem compression_algorithm_storage; @@ -169,9 +171,29 @@ static void finish_send_message(grpc_exec_ctx *exec_ctx, did_compress = grpc_msg_compress(calld->compression_algorithm, &calld->slices, &tmp); if (did_compress) { + if (grpc_compress_filter_trace) { + char *algo_name; + const size_t before_size = calld->slices.length; + const size_t after_size = tmp.length; + const float savings_ratio = 1.0f - (float)after_size / (float)before_size; + GPR_ASSERT(grpc_compression_algorithm_name(calld->compression_algorithm, + &algo_name)); + gpr_log(GPR_DEBUG, + "Compressed[%s] %d bytes vs. %d bytes (%.2f%% savings)", + algo_name, before_size, after_size, 100 * savings_ratio); + } gpr_slice_buffer_swap(&calld->slices, &tmp); calld->send_flags |= GRPC_WRITE_INTERNAL_COMPRESS; + } else { + if (grpc_compress_filter_trace) { + char *algo_name; + GPR_ASSERT(grpc_compression_algorithm_name(calld->compression_algorithm, + &algo_name)); + gpr_log(GPR_DEBUG, "Algorithm '%s' enabled but decided not to compress.", + algo_name); + } } + gpr_slice_buffer_destroy(&tmp); grpc_slice_buffer_stream_init(&calld->replacement_stream, &calld->slices, @@ -246,8 +268,8 @@ static void init_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, } /* Destructor for call_data */ -static void destroy_call_elem(grpc_exec_ctx *exec_ctx, - grpc_call_element *elem) { +static void destroy_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, + void *ignored) { /* grab pointers to our data from the call element */ call_data *calld = elem->call_data; gpr_slice_buffer_destroy(&calld->slices); diff --git a/src/core/lib/channel/compress_filter.h b/src/core/lib/channel/compress_filter.h index 0d973329c441d7234d09ca5390e237341320ac7c..cf5879d82ef3fcad2f47b3706b70a0430b3f5925 100644 --- a/src/core/lib/channel/compress_filter.h +++ b/src/core/lib/channel/compress_filter.h @@ -38,6 +38,8 @@ #define GRPC_COMPRESS_REQUEST_ALGORITHM_KEY "grpc-internal-encoding-request" +extern int grpc_compress_filter_trace; + /** Compression filter for outgoing data. * * See <grpc/compression.h> for the available compression settings. diff --git a/src/core/lib/channel/connected_channel.c b/src/core/lib/channel/connected_channel.c index c1debab4c620f370c0770f1a912bf97cd96f7d44..68a3a7d6fdfc610ab472e88e6520b05afe0c27b5 100644 --- a/src/core/lib/channel/connected_channel.c +++ b/src/core/lib/channel/connected_channel.c @@ -102,12 +102,13 @@ static void set_pollset(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, } /* Destructor for call_data */ -static void destroy_call_elem(grpc_exec_ctx *exec_ctx, - grpc_call_element *elem) { +static void destroy_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, + void *and_free_memory) { call_data *calld = elem->call_data; channel_data *chand = elem->channel_data; grpc_transport_destroy_stream(exec_ctx, chand->transport, - TRANSPORT_STREAM_FROM_CALL_DATA(calld)); + TRANSPORT_STREAM_FROM_CALL_DATA(calld), + and_free_memory); } /* Constructor for channel_data */ diff --git a/src/core/lib/channel/http_client_filter.c b/src/core/lib/channel/http_client_filter.c index 211f537c6919b6e69da003c2dfb341d149079167..516e708d1f039509ffe5d26acbbb9c154c7e61d4 100644 --- a/src/core/lib/channel/http_client_filter.c +++ b/src/core/lib/channel/http_client_filter.c @@ -155,8 +155,8 @@ static void init_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, } /* Destructor for call_data */ -static void destroy_call_elem(grpc_exec_ctx *exec_ctx, - grpc_call_element *elem) {} +static void destroy_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, + void *ignored) {} static grpc_mdelem *scheme_from_args(const grpc_channel_args *args) { unsigned i; diff --git a/src/core/lib/channel/http_server_filter.c b/src/core/lib/channel/http_server_filter.c index c140c61b8f3307dc062ff5534eac04877592091d..ba865416decdce1cc8fa864819568f22b9e9ef64 100644 --- a/src/core/lib/channel/http_server_filter.c +++ b/src/core/lib/channel/http_server_filter.c @@ -39,6 +39,9 @@ #include "src/core/lib/profiling/timers.h" #include "src/core/lib/transport/static_metadata.h" +#define EXPECTED_CONTENT_TYPE "application/grpc" +#define EXPECTED_CONTENT_TYPE_LENGTH sizeof(EXPECTED_CONTENT_TYPE) - 1 + typedef struct call_data { uint8_t seen_path; uint8_t seen_method; @@ -92,8 +95,11 @@ static grpc_mdelem *server_filter(void *user_data, grpc_mdelem *md) { require */ return NULL; } else if (md->key == GRPC_MDSTR_CONTENT_TYPE) { - if (strncmp(grpc_mdstr_as_c_string(md->value), "application/grpc+", 17) == - 0) { + const char *value_str = grpc_mdstr_as_c_string(md->value); + if (strncmp(value_str, EXPECTED_CONTENT_TYPE, + EXPECTED_CONTENT_TYPE_LENGTH) == 0 && + (value_str[EXPECTED_CONTENT_TYPE_LENGTH] == '+' || + value_str[EXPECTED_CONTENT_TYPE_LENGTH] == ';')) { /* Although the C implementation doesn't (currently) generate them, any custom +-suffix is explicitly valid. */ /* TODO(klempner): We should consider preallocating common values such @@ -102,8 +108,7 @@ static grpc_mdelem *server_filter(void *user_data, grpc_mdelem *md) { } else { /* TODO(klempner): We're currently allowing this, but we shouldn't see it without a proxy so log for now. */ - gpr_log(GPR_INFO, "Unexpected content-type %s", - grpc_mdstr_as_c_string(md->value)); + gpr_log(GPR_INFO, "Unexpected content-type %s", value_str); } return NULL; } else if (md->key == GRPC_MDSTR_TE || md->key == GRPC_MDSTR_METHOD || @@ -220,8 +225,8 @@ static void init_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, } /* Destructor for call_data */ -static void destroy_call_elem(grpc_exec_ctx *exec_ctx, - grpc_call_element *elem) {} +static void destroy_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, + void *ignored) {} /* Constructor for channel_data */ static void init_channel_elem(grpc_exec_ctx *exec_ctx, diff --git a/src/core/lib/http/parser.c b/src/core/lib/http/parser.c index 921c772453482794e1af35be7f15b34f61721bf2..a7efb5e73ead4434b0102103960674c32b532b7f 100644 --- a/src/core/lib/http/parser.c +++ b/src/core/lib/http/parser.c @@ -172,8 +172,8 @@ static int add_header(grpc_http_parser *parser) { while (cur != end && (*cur == ' ' || *cur == '\t')) { cur++; } - GPR_ASSERT(end - cur >= 2); - hdr.value = buf2str(cur, (size_t)(end - cur) - 2); + GPR_ASSERT((size_t)(end - cur) >= parser->cur_line_end_length); + hdr.value = buf2str(cur, (size_t)(end - cur) - parser->cur_line_end_length); if (parser->type == GRPC_HTTP_RESPONSE) { hdr_count = &parser->http.response.hdr_count; @@ -208,7 +208,7 @@ static int finish_line(grpc_http_parser *parser) { parser->state = GRPC_HTTP_HEADERS; break; case GRPC_HTTP_HEADERS: - if (parser->cur_line_length == 2) { + if (parser->cur_line_length == parser->cur_line_end_length) { parser->state = GRPC_HTTP_BODY; break; } @@ -248,6 +248,30 @@ static int addbyte_body(grpc_http_parser *parser, uint8_t byte) { return 1; } +static int check_line(grpc_http_parser *parser) { + if (parser->cur_line_length >= 2 && + parser->cur_line[parser->cur_line_length - 2] == '\r' && + parser->cur_line[parser->cur_line_length - 1] == '\n') { + return 1; + } + + // HTTP request with \n\r line termiantors. + else if (parser->cur_line_length >= 2 && + parser->cur_line[parser->cur_line_length - 2] == '\n' && + parser->cur_line[parser->cur_line_length - 1] == '\r') { + return 1; + } + + // HTTP request with only \n line terminators. + else if (parser->cur_line_length >= 1 && + parser->cur_line[parser->cur_line_length - 1] == '\n') { + parser->cur_line_end_length = 1; + return 1; + } + + return 0; +} + static int addbyte(grpc_http_parser *parser, uint8_t byte) { switch (parser->state) { case GRPC_HTTP_FIRST_LINE: @@ -260,9 +284,7 @@ static int addbyte(grpc_http_parser *parser, uint8_t byte) { } parser->cur_line[parser->cur_line_length] = byte; parser->cur_line_length++; - if (parser->cur_line_length >= 2 && - parser->cur_line[parser->cur_line_length - 2] == '\r' && - parser->cur_line[parser->cur_line_length - 1] == '\n') { + if (check_line(parser)) { return finish_line(parser); } else { return 1; @@ -278,6 +300,7 @@ void grpc_http_parser_init(grpc_http_parser *parser) { memset(parser, 0, sizeof(*parser)); parser->state = GRPC_HTTP_FIRST_LINE; parser->type = GRPC_HTTP_UNKNOWN; + parser->cur_line_end_length = 2; } void grpc_http_parser_destroy(grpc_http_parser *parser) { diff --git a/src/core/lib/http/parser.h b/src/core/lib/http/parser.h index 42fa5181b8019fd81d4b5b17ae3ac5330c58c67b..536637e9a2d99f52eafbb80ca252afb6b488c6c8 100644 --- a/src/core/lib/http/parser.h +++ b/src/core/lib/http/parser.h @@ -105,6 +105,7 @@ typedef struct { uint8_t cur_line[GRPC_HTTP_PARSER_MAX_HEADER_LENGTH]; size_t cur_line_length; + size_t cur_line_end_length; } grpc_http_parser; void grpc_http_parser_init(grpc_http_parser *parser); diff --git a/src/core/lib/iomgr/ev_posix.c b/src/core/lib/iomgr/ev_posix.c index 0eb95a2e091a02e38e9d9ffa3a7ffb655416482b..7df175135206f54c871ef1652247d78ddaa89a40 100644 --- a/src/core/lib/iomgr/ev_posix.c +++ b/src/core/lib/iomgr/ev_posix.c @@ -44,7 +44,6 @@ static const grpc_event_engine_vtable *g_event_engine; grpc_poll_function_type grpc_poll_function = poll; -grpc_wakeup_fd grpc_global_wakeup_fd; void grpc_event_engine_init(void) { if ((g_event_engine = grpc_init_poll_and_epoll_posix())) { diff --git a/src/core/lib/iomgr/iomgr.c b/src/core/lib/iomgr/iomgr.c index 146663984d624e738cfb32fba6df5d400d82c1ad..60cef8ba77703f3de1e4a3a29842377f63b0c43c 100644 --- a/src/core/lib/iomgr/iomgr.c +++ b/src/core/lib/iomgr/iomgr.c @@ -166,8 +166,10 @@ bool grpc_iomgr_abort_on_leaks(void) { if (env == NULL) return false; static const char *truthy[] = {"yes", "Yes", "YES", "true", "True", "TRUE", "1"}; + bool should_we = false; for (size_t i = 0; i < GPR_ARRAY_SIZE(truthy); i++) { - if (0 == strcmp(env, truthy[i])) return true; + if (0 == strcmp(env, truthy[i])) should_we = true; } - return false; + gpr_free(env); + return should_we; } diff --git a/src/core/lib/iomgr/resolve_address_windows.c b/src/core/lib/iomgr/resolve_address_windows.c index a65089c0171245deb6cb195c066c3be0a786f521..914736234da874cb6e11c6acbcdf00260ac95097 100644 --- a/src/core/lib/iomgr/resolve_address_windows.c +++ b/src/core/lib/iomgr/resolve_address_windows.c @@ -167,8 +167,8 @@ static void resolve_address_impl(grpc_exec_ctx *exec_ctx, const char *name, grpc_executor_enqueue(&r->request_closure, 1); } -void (*grpc_resolved_address)(grpc_exec_ctx *exec_ctx, const char *name, - const char *default_port, grpc_resolve_cb cb, - void *arg) = resolve_address_impl; +void (*grpc_resolve_address)(grpc_exec_ctx *exec_ctx, const char *name, + const char *default_port, grpc_resolve_cb cb, + void *arg) = resolve_address_impl; #endif diff --git a/src/core/lib/iomgr/tcp_client_windows.c b/src/core/lib/iomgr/tcp_client_windows.c index 7d78beb15ade9b17072c63922051460a6424a9c6..66f9ff7a4657aa408980934dc341dfebce6179ec 100644 --- a/src/core/lib/iomgr/tcp_client_windows.c +++ b/src/core/lib/iomgr/tcp_client_windows.c @@ -63,39 +63,45 @@ typedef struct { grpc_endpoint **endpoint; } async_connect; -static void async_connect_unlock_and_cleanup(async_connect *ac) { +static void async_connect_unlock_and_cleanup(async_connect *ac, + grpc_winsocket *socket) { int done = (--ac->refs == 0); gpr_mu_unlock(&ac->mu); if (done) { - if (ac->socket != NULL) grpc_winsocket_destroy(ac->socket); gpr_mu_destroy(&ac->mu); gpr_free(ac->addr_name); gpr_free(ac); } + if (socket != NULL) grpc_winsocket_destroy(socket); } static void on_alarm(grpc_exec_ctx *exec_ctx, void *acp, bool occured) { async_connect *ac = acp; gpr_mu_lock(&ac->mu); - /* If the alarm didn't occur, it got cancelled. */ - if (ac->socket != NULL && occured) { + if (ac->socket != NULL) { grpc_winsocket_shutdown(ac->socket); } - async_connect_unlock_and_cleanup(ac); + async_connect_unlock_and_cleanup(ac, ac->socket); } static void on_connect(grpc_exec_ctx *exec_ctx, void *acp, bool from_iocp) { async_connect *ac = acp; SOCKET sock = ac->socket->socket; grpc_endpoint **ep = ac->endpoint; + GPR_ASSERT(*ep == NULL); grpc_winsocket_callback_info *info = &ac->socket->write_info; grpc_closure *on_done = ac->on_done; + gpr_mu_lock(&ac->mu); + grpc_winsocket *socket = ac->socket; + ac->socket = NULL; + gpr_mu_unlock(&ac->mu); + grpc_timer_cancel(exec_ctx, &ac->alarm); gpr_mu_lock(&ac->mu); - if (from_iocp) { + if (from_iocp && socket != NULL) { DWORD transfered_bytes = 0; DWORD flags; BOOL wsa_success = WSAGetOverlappedResult(sock, &info->overlapped, @@ -107,12 +113,12 @@ static void on_connect(grpc_exec_ctx *exec_ctx, void *acp, bool from_iocp) { ac->addr_name, utf8_message); gpr_free(utf8_message); } else { - *ep = grpc_tcp_create(ac->socket, ac->addr_name); - ac->socket = NULL; + *ep = grpc_tcp_create(socket, ac->addr_name); + socket = NULL; } } - async_connect_unlock_and_cleanup(ac); + async_connect_unlock_and_cleanup(ac, socket); /* If the connection was aborted, the callback was already called when the deadline was met. */ on_done->cb(exec_ctx, on_done->cb_arg, *ep != NULL); @@ -138,6 +144,7 @@ void grpc_tcp_client_connect(grpc_exec_ctx *exec_ctx, grpc_closure *on_done, const char *message = NULL; char *utf8_message; grpc_winsocket_callback_info *info; + int last_error; *endpoint = NULL; @@ -208,8 +215,10 @@ void grpc_tcp_client_connect(grpc_exec_ctx *exec_ctx, grpc_closure *on_done, return; failure: - utf8_message = gpr_format_message(WSAGetLastError()); + last_error = WSAGetLastError(); + utf8_message = gpr_format_message(last_error); gpr_log(GPR_ERROR, message, utf8_message); + gpr_log(GPR_ERROR, "last error = %d", last_error); gpr_free(utf8_message); if (socket != NULL) { grpc_winsocket_destroy(socket); diff --git a/src/core/lib/iomgr/tcp_server_windows.c b/src/core/lib/iomgr/tcp_server_windows.c index 6940dec7b02201d2cbf07dbe591fd05bee488321..125f521d87e556b50a400d0cfdc943221d97242c 100644 --- a/src/core/lib/iomgr/tcp_server_windows.c +++ b/src/core/lib/iomgr/tcp_server_windows.c @@ -508,34 +508,6 @@ int grpc_tcp_server_add_port(grpc_tcp_server *s, const void *addr, } } -unsigned grpc_tcp_server_port_fd_count(grpc_tcp_server *s, - unsigned port_index) { - grpc_tcp_listener *sp; - for (sp = s->head; sp && port_index != 0; sp = sp->next, --port_index) - ; - if (sp) { - return 1; - } else { - return 0; - } -} - -int grpc_tcp_server_port_fd(grpc_tcp_server *s, unsigned port_index, - unsigned fd_index) { - grpc_tcp_listener *sp; - if (fd_index != 0) { - /* Windows implementation has only one fd per port_index. */ - return -1; - } - for (sp = s->head; sp && port_index != 0; sp = sp->next, --port_index) - ; - if (sp) { - return _open_osfhandle((intptr_t)sp->socket->socket, 0); - } else { - return -1; - } -} - void grpc_tcp_server_start(grpc_exec_ctx *exec_ctx, grpc_tcp_server *s, grpc_pollset **pollset, size_t pollset_count, grpc_tcp_server_cb on_accept_cb, diff --git a/src/core/lib/iomgr/tcp_windows.c b/src/core/lib/iomgr/tcp_windows.c index 7ee689a7e46ea395dfb1f34b20d9427d95169d93..551149e1a62cd4d6b324811aa6648c8f6d563634 100644 --- a/src/core/lib/iomgr/tcp_windows.c +++ b/src/core/lib/iomgr/tcp_windows.c @@ -35,6 +35,8 @@ #ifdef GPR_WINSOCK_SOCKET +#include <limits.h> + #include "src/core/lib/iomgr/sockaddr_win32.h" #include <grpc/support/alloc.h> @@ -51,12 +53,20 @@ #include "src/core/lib/iomgr/tcp_client.h" #include "src/core/lib/iomgr/timer.h" +#if defined(__MSYS__) && defined(GPR_ARCH_64) +/* Nasty workaround for nasty bug when using the 64 bits msys compiler + in conjunction with Microsoft Windows headers. */ +#define GRPC_FIONBIO _IOW('f', 126, uint32_t) +#else +#define GRPC_FIONBIO FIONBIO +#endif + static int set_non_block(SOCKET sock) { int status; - unsigned long param = 1; + uint32_t param = 1; DWORD ret; - status = - WSAIoctl(sock, FIONBIO, ¶m, sizeof(param), NULL, 0, &ret, NULL, NULL); + status = WSAIoctl(sock, GRPC_FIONBIO, ¶m, sizeof(param), NULL, 0, &ret, + NULL, NULL); return status == 0; } diff --git a/src/core/lib/security/client_auth_filter.c b/src/core/lib/security/client_auth_filter.c index 943b1da85c60dc0c22714d5b2122ddbe59452435..8b58cb86bf92f8e0cb436a0f65303b3457da8a63 100644 --- a/src/core/lib/security/client_auth_filter.c +++ b/src/core/lib/security/client_auth_filter.c @@ -277,8 +277,8 @@ static void set_pollset(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, } /* Destructor for call_data */ -static void destroy_call_elem(grpc_exec_ctx *exec_ctx, - grpc_call_element *elem) { +static void destroy_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, + void *ignored) { call_data *calld = elem->call_data; grpc_call_credentials_unref(calld->creds); if (calld->host != NULL) { diff --git a/src/core/lib/security/server_auth_filter.c b/src/core/lib/security/server_auth_filter.c index 7844dc87cb58853fd2c2c42be3d4505329d65dc9..3320497d21484bb5382dc0a8f80fdcf04d5a5caf 100644 --- a/src/core/lib/security/server_auth_filter.c +++ b/src/core/lib/security/server_auth_filter.c @@ -224,8 +224,8 @@ static void set_pollset(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, grpc_pollset *pollset) {} /* Destructor for call_data */ -static void destroy_call_elem(grpc_exec_ctx *exec_ctx, - grpc_call_element *elem) {} +static void destroy_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, + void *ignored) {} /* Constructor for channel_data */ static void init_channel_elem(grpc_exec_ctx *exec_ctx, diff --git a/src/core/lib/support/env_win32.c b/src/core/lib/support/env_win32.c index ef84c941df659196ea82f58b6311334d5128bc0a..e670e1e8d03f77a8d3c11bdb6950ee1df41c42be 100644 --- a/src/core/lib/support/env_win32.c +++ b/src/core/lib/support/env_win32.c @@ -33,41 +33,47 @@ #include <grpc/support/port_platform.h> -#ifdef GPR_WIN32 +#ifdef GPR_WIN32_ENV + +#include <windows.h> #include "src/core/lib/support/env.h" #include "src/core/lib/support/string.h" - -#ifdef __MINGW32__ -errno_t getenv_s(size_t *size_needed, char *buffer, size_t size, - const char *varname); -#else -#include <stdlib.h> -#endif +#include "src/core/lib/support/string_win32.h" #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> char *gpr_getenv(const char *name) { - size_t size; char *result = NULL; - errno_t err; + DWORD size; + LPTSTR tresult = NULL; + LPTSTR tname = gpr_char_to_tchar(name); + DWORD ret; - err = getenv_s(&size, NULL, 0, name); - if (err || (size == 0)) return NULL; - result = gpr_malloc(size); - err = getenv_s(&size, result, size, name); - if (err) { - gpr_free(result); + ret = GetEnvironmentVariable(tname, NULL, 0); + if (ret == 0) return NULL; + size = ret * (DWORD)sizeof(TCHAR); + tresult = gpr_malloc(size); + ret = GetEnvironmentVariable(tname, tresult, size); + gpr_free(tname); + if (ret == 0) { + gpr_free(tresult); return NULL; } + result = gpr_tchar_to_char(tresult); + gpr_free(tresult); return result; } void gpr_setenv(const char *name, const char *value) { - errno_t res = _putenv_s(name, value); - GPR_ASSERT(res == 0); + LPTSTR tname = gpr_char_to_tchar(name); + LPTSTR tvalue = gpr_char_to_tchar(value); + BOOL res = SetEnvironmentVariable(tname, tvalue); + gpr_free(tname); + gpr_free(tvalue); + GPR_ASSERT(res); } -#endif /* GPR_WIN32 */ +#endif /* GPR_WIN32_ENV */ diff --git a/src/core/lib/support/log_linux.c b/src/core/lib/support/log_linux.c index ff3febb38eb142a42d5e330374eb5e3913f5ee9a..ca04c022e3fd9b81aa0d880ddce2e415c5f0580f 100644 --- a/src/core/lib/support/log_linux.c +++ b/src/core/lib/support/log_linux.c @@ -41,7 +41,7 @@ #include <grpc/support/port_platform.h> -#ifdef GPR_LINUX +#ifdef GPR_LINUX_LOG #include <grpc/support/alloc.h> #include <grpc/support/log.h> @@ -103,4 +103,4 @@ void gpr_default_log(gpr_log_func_args *args) { gpr_free(prefix); } -#endif +#endif /* GPR_LINUX_LOG */ diff --git a/src/core/lib/support/log_win32.c b/src/core/lib/support/log_win32.c index ba78497a0a46884bca2be0e76a398988bac11fdd..29735bd18c77f182b9b98f015cb511b7b44d1d1e 100644 --- a/src/core/lib/support/log_win32.c +++ b/src/core/lib/support/log_win32.c @@ -33,7 +33,7 @@ #include <grpc/support/port_platform.h> -#ifdef GPR_WIN32 +#ifdef GPR_WIN32_LOG #include <stdarg.h> #include <stdio.h> @@ -109,18 +109,4 @@ void gpr_default_log(gpr_log_func_args *args) { fflush(stderr); } -char *gpr_format_message(int messageid) { - LPTSTR tmessage; - char *message; - DWORD status = FormatMessage( - FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, (DWORD)messageid, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR)(&tmessage), 0, NULL); - if (status == 0) return gpr_strdup("Unable to retrieve error string"); - message = gpr_tchar_to_char(tmessage); - LocalFree(tmessage); - return message; -} - -#endif /* GPR_WIN32 */ +#endif /* GPR_WIN32_LOG */ diff --git a/src/core/lib/support/string_util_win32.c b/src/core/lib/support/string_util_win32.c new file mode 100644 index 0000000000000000000000000000000000000000..f3cb0c050f91dab88d6be0b8049b7555ca812ac0 --- /dev/null +++ b/src/core/lib/support/string_util_win32.c @@ -0,0 +1,94 @@ +/* + * + * 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. + * + */ + +/* Posix code for gpr snprintf support. */ + +#include <grpc/support/port_platform.h> + +#ifdef GPR_WIN32 + +/* Some platforms (namely msys) need wchar to be included BEFORE + anything else, especially strsafe.h. */ +#include <wchar.h> + +#include <stdarg.h> +#include <stdio.h> +#include <string.h> +#include <strsafe.h> + +#include <grpc/support/alloc.h> +#include <grpc/support/string_util.h> + +#include "src/core/lib/support/string.h" + +#if defined UNICODE || defined _UNICODE +LPTSTR +gpr_char_to_tchar(LPCSTR input) { + LPTSTR ret; + int needed = MultiByteToWideChar(CP_UTF8, 0, input, -1, NULL, 0); + if (needed <= 0) return NULL; + ret = gpr_malloc((unsigned)needed * sizeof(TCHAR)); + MultiByteToWideChar(CP_UTF8, 0, input, -1, ret, needed); + return ret; +} + +LPSTR +gpr_tchar_to_char(LPCTSTR input) { + LPSTR ret; + int needed = WideCharToMultiByte(CP_UTF8, 0, input, -1, NULL, 0, NULL, NULL); + if (needed <= 0) return NULL; + ret = gpr_malloc((unsigned)needed); + WideCharToMultiByte(CP_UTF8, 0, input, -1, ret, needed, NULL, NULL); + return ret; +} +#else +char *gpr_tchar_to_char(LPTSTR input) { return gpr_strdup(input); } + +char *gpr_char_to_tchar(LPTSTR input) { return gpr_strdup(input); } +#endif + +char *gpr_format_message(int messageid) { + LPTSTR tmessage; + char *message; + DWORD status = FormatMessage( + FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, (DWORD)messageid, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPTSTR)(&tmessage), 0, NULL); + if (status == 0) return gpr_strdup("Unable to retrieve error string"); + message = gpr_tchar_to_char(tmessage); + LocalFree(tmessage); + return message; +} + +#endif /* GPR_WIN32 */ diff --git a/src/core/lib/support/string_win32.c b/src/core/lib/support/string_win32.c index a2f9857356a3413ca25518ada04cf9671aef91c0..6b92f792534abba74cf0fe47f571bbd608387686 100644 --- a/src/core/lib/support/string_win32.c +++ b/src/core/lib/support/string_win32.c @@ -31,11 +31,11 @@ * */ -/* Posix code for gpr snprintf support. */ +/* Windows code for gpr snprintf support. */ #include <grpc/support/port_platform.h> -#ifdef GPR_WIN32 +#ifdef GPR_WIN32_STRING #include <stdarg.h> #include <stdio.h> @@ -80,30 +80,4 @@ int gpr_asprintf(char **strp, const char *format, ...) { return -1; } -#if defined UNICODE || defined _UNICODE -LPTSTR -gpr_char_to_tchar(LPCSTR input) { - LPTSTR ret; - int needed = MultiByteToWideChar(CP_UTF8, 0, input, -1, NULL, 0); - if (needed <= 0) return NULL; - ret = gpr_malloc((unsigned)needed * sizeof(TCHAR)); - MultiByteToWideChar(CP_UTF8, 0, input, -1, ret, needed); - return ret; -} - -LPSTR -gpr_tchar_to_char(LPCTSTR input) { - LPSTR ret; - int needed = WideCharToMultiByte(CP_UTF8, 0, input, -1, NULL, 0, NULL, NULL); - if (needed <= 0) return NULL; - ret = gpr_malloc((unsigned)needed); - WideCharToMultiByte(CP_UTF8, 0, input, -1, ret, needed, NULL, NULL); - return ret; -} -#else -char *gpr_tchar_to_char(LPTSTR input) { return gpr_strdup(input); } - -char *gpr_char_to_tchar(LPTSTR input) { return gpr_strdup(input); } -#endif - -#endif /* GPR_WIN32 */ +#endif /* GPR_WIN32_STRING */ diff --git a/src/core/lib/support/time_win32.c b/src/core/lib/support/time_win32.c index f7acbd14a676b2935a1be201263a6597e3004e91..9e924ab3f4a38d137065dba8e9d9189c26bdc0d9 100644 --- a/src/core/lib/support/time_win32.c +++ b/src/core/lib/support/time_win32.c @@ -35,7 +35,7 @@ #include <grpc/support/port_platform.h> -#ifdef GPR_WIN32 +#ifdef GPR_WIN32_TIME #include <grpc/support/log.h> #include <grpc/support/time.h> @@ -107,4 +107,4 @@ void gpr_sleep_until(gpr_timespec until) { } } -#endif /* GPR_WIN32 */ +#endif /* GPR_WIN32_TIME */ diff --git a/src/core/lib/support/tmpfile_msys.c b/src/core/lib/support/tmpfile_msys.c new file mode 100644 index 0000000000000000000000000000000000000000..2fdc89a64f2f6193ca25f3f9219b1c4a8c180d24 --- /dev/null +++ b/src/core/lib/support/tmpfile_msys.c @@ -0,0 +1,73 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include <grpc/support/port_platform.h> + +#ifdef GPR_MSYS_TMPFILE + +#include <io.h> +#include <stdio.h> +#include <string.h> +#include <tchar.h> + +#include <grpc/support/alloc.h> +#include <grpc/support/log.h> +#include <grpc/support/string_util.h> + +#include "src/core/lib/support/string_win32.h" +#include "src/core/lib/support/tmpfile.h" + +FILE *gpr_tmpfile(const char *prefix, char **tmp_filename_out) { + FILE *result = NULL; + char tmp_filename[MAX_PATH]; + UINT success; + + if (tmp_filename_out != NULL) *tmp_filename_out = NULL; + + /* Generate a unique filename with our template + temporary path. */ + success = GetTempFileNameA(".", prefix, 0, tmp_filename); + fprintf(stderr, "success = %d\n", success); + + if (success) { + /* Open a file there. */ + result = fopen(tmp_filename, "wb+"); + fprintf(stderr, "result = %p\n", result); + } + if (result != NULL && tmp_filename_out) { + *tmp_filename_out = gpr_strdup(tmp_filename); + } + + return result; +} + +#endif /* GPR_MSYS_TMPFILE */ diff --git a/src/core/lib/support/tmpfile_posix.c b/src/core/lib/support/tmpfile_posix.c index 9e0e7ad80801d51ee6b28411cfae393c30d73994..0cd4bb6fc3cedcf2aad4548b10aa1c69627c65cd 100644 --- a/src/core/lib/support/tmpfile_posix.c +++ b/src/core/lib/support/tmpfile_posix.c @@ -33,7 +33,7 @@ #include <grpc/support/port_platform.h> -#ifdef GPR_POSIX_FILE +#ifdef GPR_POSIX_TMPFILE #include "src/core/lib/support/tmpfile.h" @@ -82,4 +82,4 @@ end: return result; } -#endif /* GPR_POSIX_FILE */ +#endif /* GPR_POSIX_TMPFILE */ diff --git a/src/core/lib/support/tmpfile_win32.c b/src/core/lib/support/tmpfile_win32.c index 0cb2904f8deccb799bfae1b7c3838bb414b80d22..9ac73128c39d16833820ff1ff25fc6fc3e94982d 100644 --- a/src/core/lib/support/tmpfile_win32.c +++ b/src/core/lib/support/tmpfile_win32.c @@ -33,7 +33,7 @@ #include <grpc/support/port_platform.h> -#ifdef GPR_WIN32 +#ifdef GPR_WIN32_TMPFILE #include <io.h> #include <stdio.h> @@ -81,4 +81,4 @@ end: return result; } -#endif /* GPR_WIN32 */ +#endif /* GPR_WIN32_TMPFILE */ diff --git a/src/core/lib/surface/call.c b/src/core/lib/surface/call.c index fa12b6ea612ef6b691c4ddb7ca4270d5b1370448..9b2b94eedf56fa513641983bfeffefab08f39bf3 100644 --- a/src/core/lib/surface/call.c +++ b/src/core/lib/surface/call.c @@ -373,8 +373,6 @@ static void destroy_call(grpc_exec_ctx *exec_ctx, void *call, bool success) { if (c->receiving_stream != NULL) { grpc_byte_stream_destroy(exec_ctx, c->receiving_stream); } - grpc_call_stack_destroy(exec_ctx, CALL_STACK_FROM_CALL(c)); - GRPC_CHANNEL_INTERNAL_UNREF(exec_ctx, c->channel, "call"); gpr_mu_destroy(&c->mu); for (i = 0; i < STATUS_SOURCE_COUNT; i++) { if (c->status[i].details) { @@ -392,7 +390,9 @@ static void destroy_call(grpc_exec_ctx *exec_ctx, void *call, bool success) { if (c->cq) { GRPC_CQ_INTERNAL_UNREF(c->cq, "bind"); } - gpr_free(c); + grpc_channel *channel = c->channel; + grpc_call_stack_destroy(exec_ctx, CALL_STACK_FROM_CALL(c), c); + GRPC_CHANNEL_INTERNAL_UNREF(exec_ctx, channel, "call"); GPR_TIMER_END("destroy_call", 0); } @@ -1517,3 +1517,39 @@ grpc_compression_algorithm grpc_call_compression_for_level( gpr_mu_unlock(&call->mu); return grpc_compression_algorithm_for_level(level, accepted_encodings); } + +const char *grpc_call_error_to_string(grpc_call_error error) { + switch (error) { + case GRPC_CALL_ERROR: + return "GRPC_CALL_ERROR"; + case GRPC_CALL_ERROR_ALREADY_ACCEPTED: + return "GRPC_CALL_ERROR_ALREADY_ACCEPTED"; + case GRPC_CALL_ERROR_ALREADY_FINISHED: + return "GRPC_CALL_ERROR_ALREADY_FINISHED"; + case GRPC_CALL_ERROR_ALREADY_INVOKED: + return "GRPC_CALL_ERROR_ALREADY_INVOKED"; + case GRPC_CALL_ERROR_BATCH_TOO_BIG: + return "GRPC_CALL_ERROR_BATCH_TOO_BIG"; + case GRPC_CALL_ERROR_INVALID_FLAGS: + return "GRPC_CALL_ERROR_INVALID_FLAGS"; + case GRPC_CALL_ERROR_INVALID_MESSAGE: + return "GRPC_CALL_ERROR_INVALID_MESSAGE"; + case GRPC_CALL_ERROR_INVALID_METADATA: + return "GRPC_CALL_ERROR_INVALID_METADATA"; + case GRPC_CALL_ERROR_NOT_INVOKED: + return "GRPC_CALL_ERROR_NOT_INVOKED"; + case GRPC_CALL_ERROR_NOT_ON_CLIENT: + return "GRPC_CALL_ERROR_NOT_ON_CLIENT"; + case GRPC_CALL_ERROR_NOT_ON_SERVER: + return "GRPC_CALL_ERROR_NOT_ON_SERVER"; + case GRPC_CALL_ERROR_NOT_SERVER_COMPLETION_QUEUE: + return "GRPC_CALL_ERROR_NOT_SERVER_COMPLETION_QUEUE"; + case GRPC_CALL_ERROR_PAYLOAD_TYPE_MISMATCH: + return "GRPC_CALL_ERROR_PAYLOAD_TYPE_MISMATCH"; + case GRPC_CALL_ERROR_TOO_MANY_OPERATIONS: + return "GRPC_CALL_ERROR_TOO_MANY_OPERATIONS"; + case GRPC_CALL_OK: + return "GRPC_CALL_OK"; + } + GPR_UNREACHABLE_CODE(return "GRPC_CALL_ERROR_UNKNOW"); +} diff --git a/src/core/lib/surface/completion_queue.c b/src/core/lib/surface/completion_queue.c index 5ec8808b508525a81ead9ca0c1072d1f098d3e71..1f82c3bad2e679165927c1ab59728231c737937a 100644 --- a/src/core/lib/surface/completion_queue.c +++ b/src/core/lib/surface/completion_queue.c @@ -227,6 +227,10 @@ void grpc_cq_end_op(grpc_exec_ctx *exec_ctx, grpc_completion_queue *cc, #endif GPR_TIMER_BEGIN("grpc_cq_end_op", 0); + GRPC_API_TRACE( + "grpc_cq_end_op(exec_ctx=%p, cc=%p, tag=%p, success=%d, done=%p, " + "done_arg=%p, storage=%p)", + 7, (exec_ctx, cc, tag, success, done, done_arg, storage)); storage->tag = tag; storage->done = done; diff --git a/src/core/lib/surface/init.c b/src/core/lib/surface/init.c index 03f379aba889ba3d66583f93dd22388605bdca16..57c6897626a909e9c2fc09400fe978b276d7715f 100644 --- a/src/core/lib/surface/init.c +++ b/src/core/lib/surface/init.c @@ -164,10 +164,10 @@ void grpc_init(void) { grpc_register_tracer("channel_stack_builder", &grpc_trace_channel_stack_builder); grpc_register_tracer("http1", &grpc_http1_trace); + grpc_register_tracer("compression", &grpc_compress_filter_trace); grpc_security_pre_init(); grpc_iomgr_init(); grpc_executor_init(); - grpc_tracer_init("GRPC_TRACE"); gpr_timers_global_init(); grpc_cq_global_init(); for (i = 0; i < g_number_of_plugins; i++) { @@ -179,6 +179,7 @@ void grpc_init(void) { * at the appropriate time */ grpc_register_security_filters(); register_builtin_channel_init(); + grpc_tracer_init("GRPC_TRACE"); /* no more changes to channel init pipelines */ grpc_channel_init_finalize(); } diff --git a/src/core/lib/surface/lame_client.c b/src/core/lib/surface/lame_client.c index 80bd95df68cd437fa1bae9a9b2e6b209d32001bf..f50ec54cea9d863f889a49b77675ed12915e58a3 100644 --- a/src/core/lib/surface/lame_client.c +++ b/src/core/lib/surface/lame_client.c @@ -107,8 +107,10 @@ static void lame_start_transport_op(grpc_exec_ctx *exec_ctx, static void init_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, grpc_call_element_args *args) {} -static void destroy_call_elem(grpc_exec_ctx *exec_ctx, - grpc_call_element *elem) {} +static void destroy_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, + void *and_free_memory) { + gpr_free(and_free_memory); +} static void init_channel_elem(grpc_exec_ctx *exec_ctx, grpc_channel_element *elem, diff --git a/src/core/lib/surface/server.c b/src/core/lib/surface/server.c index ad8ee8c7a99ef3dc90fad5866e0c55a18c8296d8..2db95b9cdfc1fd1ebbb852bd217edf92ad6d9a1c 100644 --- a/src/core/lib/surface/server.c +++ b/src/core/lib/surface/server.c @@ -820,8 +820,8 @@ static void init_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, server_ref(chand->server); } -static void destroy_call_elem(grpc_exec_ctx *exec_ctx, - grpc_call_element *elem) { +static void destroy_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, + void *ignored) { channel_data *chand = elem->channel_data; call_data *calld = elem->call_data; diff --git a/src/core/lib/transport/metadata.c b/src/core/lib/transport/metadata.c index 779efbb97d56e9ef200b31574acde24f438fc246..5847ec9053d6a24fbf801a1f420703f6b7de6e56 100644 --- a/src/core/lib/transport/metadata.c +++ b/src/core/lib/transport/metadata.c @@ -386,10 +386,18 @@ grpc_mdstr *grpc_mdstr_from_buffer(const uint8_t *buf, size_t length) { for (s = shard->strs[idx]; s; s = s->bucket_next) { if (s->hash == hash && GPR_SLICE_LENGTH(s->slice) == length && 0 == memcmp(buf, GPR_SLICE_START_PTR(s->slice), length)) { - GRPC_MDSTR_REF((grpc_mdstr *)s); - gpr_mu_unlock(&shard->mu); - GPR_TIMER_END("grpc_mdstr_from_buffer", 0); - return (grpc_mdstr *)s; + if (gpr_atm_full_fetch_add(&s->refcnt, 1) == 0) { + /* If we get here, we've added a ref to something that was about to + * die - drop it immediately. + * The *only* possible path here (given the shard mutex) should be to + * drop from one ref back to zero - assert that with a CAS */ + GPR_ASSERT(gpr_atm_rel_cas(&s->refcnt, 1, 0)); + /* and treat this as if we were never here... sshhh */ + } else { + gpr_mu_unlock(&shard->mu); + GPR_TIMER_END("grpc_mdstr_from_buffer", 0); + return (grpc_mdstr *)s; + } } } @@ -397,7 +405,7 @@ grpc_mdstr *grpc_mdstr_from_buffer(const uint8_t *buf, size_t length) { if (length + 1 < GPR_SLICE_INLINED_SIZE) { /* string data goes directly into the slice */ s = gpr_malloc(sizeof(internal_string)); - gpr_atm_rel_store(&s->refcnt, 2); + gpr_atm_rel_store(&s->refcnt, 1); s->slice.refcount = NULL; memcpy(s->slice.data.inlined.bytes, buf, length); s->slice.data.inlined.bytes[length] = 0; @@ -406,7 +414,7 @@ grpc_mdstr *grpc_mdstr_from_buffer(const uint8_t *buf, size_t length) { /* string data goes after the internal_string header, and we +1 for null terminator */ s = gpr_malloc(sizeof(internal_string) + length + 1); - gpr_atm_rel_store(&s->refcnt, 2); + gpr_atm_rel_store(&s->refcnt, 1); s->refcount.ref = slice_ref; s->refcount.unref = slice_unref; s->slice.refcount = &s->refcount; @@ -675,20 +683,19 @@ const char *grpc_mdstr_as_c_string(grpc_mdstr *s) { grpc_mdstr *grpc_mdstr_ref(grpc_mdstr *gs DEBUG_ARGS) { internal_string *s = (internal_string *)gs; if (is_mdstr_static(gs)) return gs; - GPR_ASSERT(gpr_atm_full_fetch_add(&s->refcnt, 1) != 0); + GPR_ASSERT(gpr_atm_full_fetch_add(&s->refcnt, 1) > 0); return gs; } void grpc_mdstr_unref(grpc_mdstr *gs DEBUG_ARGS) { internal_string *s = (internal_string *)gs; if (is_mdstr_static(gs)) return; - if (2 == gpr_atm_full_fetch_add(&s->refcnt, -1)) { + if (1 == gpr_atm_full_fetch_add(&s->refcnt, -1)) { strtab_shard *shard = &g_strtab_shard[SHARD_IDX(s->hash, LOG2_STRTAB_SHARD_COUNT)]; gpr_mu_lock(&shard->mu); - if (1 == gpr_atm_no_barrier_load(&s->refcnt)) { - internal_destroy_string(shard, s); - } + GPR_ASSERT(0 == gpr_atm_no_barrier_load(&s->refcnt)); + internal_destroy_string(shard, s); gpr_mu_unlock(&shard->mu); } } diff --git a/src/core/lib/transport/transport.c b/src/core/lib/transport/transport.c index 53c634adca679e7bdb48e5b0a966d4ae8bc9088e..e6d524abe68bb96a8b5e4e51d948135350af94d0 100644 --- a/src/core/lib/transport/transport.c +++ b/src/core/lib/transport/transport.c @@ -133,8 +133,9 @@ void grpc_transport_set_pollset(grpc_exec_ctx *exec_ctx, void grpc_transport_destroy_stream(grpc_exec_ctx *exec_ctx, grpc_transport *transport, - grpc_stream *stream) { - transport->vtable->destroy_stream(exec_ctx, transport, stream); + grpc_stream *stream, void *and_free_memory) { + transport->vtable->destroy_stream(exec_ctx, transport, stream, + and_free_memory); } char *grpc_transport_get_peer(grpc_exec_ctx *exec_ctx, diff --git a/src/core/lib/transport/transport.h b/src/core/lib/transport/transport.h index 1eb446312bfd8ccea2f03bdc8653a181f6b39dfb..482a9d1791b7534b1aecc23a369bdde30f361fb0 100644 --- a/src/core/lib/transport/transport.h +++ b/src/core/lib/transport/transport.h @@ -98,6 +98,11 @@ void grpc_transport_move_stats(grpc_transport_stream_stats *from, /* Transport stream op: a set of operations to perform on a transport against a single stream */ typedef struct grpc_transport_stream_op { + /** Should be enqueued when all requested operations (excluding recv_message + and recv_initial_metadata which have their own closures) in a given batch + have been completed. */ + grpc_closure *on_complete; + /** Send initial metadata to the peer, from the provided metadata batch. idempotent_request MUST be set if this is non-null */ grpc_metadata_batch *send_initial_metadata; @@ -129,11 +134,6 @@ typedef struct grpc_transport_stream_op { /** Collect any stats into provided buffer, zero internal stat counters */ grpc_transport_stream_stats *collect_stats; - /** Should be enqueued when all requested operations (excluding recv_message - and recv_initial_metadata which have their own closures) in a given batch - have been completed. */ - grpc_closure *on_complete; - /** If != GRPC_STATUS_OK, cancel this stream */ grpc_status_code cancel_with_status; @@ -213,7 +213,7 @@ void grpc_transport_set_pollset(grpc_exec_ctx *exec_ctx, caller, but any child memory must be cleaned up) */ void grpc_transport_destroy_stream(grpc_exec_ctx *exec_ctx, grpc_transport *transport, - grpc_stream *stream); + grpc_stream *stream, void *and_free_memory); void grpc_transport_stream_op_finish_with_failure(grpc_exec_ctx *exec_ctx, grpc_transport_stream_op *op); diff --git a/src/core/lib/transport/transport_impl.h b/src/core/lib/transport/transport_impl.h index 2ff67073aff1edefeb564323e58a4619c648348a..956155eec828367aed782244788b5eb4a7ce1460 100644 --- a/src/core/lib/transport/transport_impl.h +++ b/src/core/lib/transport/transport_impl.h @@ -63,7 +63,7 @@ typedef struct grpc_transport_vtable { /* implementation of grpc_transport_destroy_stream */ void (*destroy_stream)(grpc_exec_ctx *exec_ctx, grpc_transport *self, - grpc_stream *stream); + grpc_stream *stream, void *and_free_memory); /* implementation of grpc_transport_destroy */ void (*destroy)(grpc_exec_ctx *exec_ctx, grpc_transport *self); diff --git a/src/csharp/Grpc.Core.Tests/CallOptionsTest.cs b/src/csharp/Grpc.Core.Tests/CallOptionsTest.cs index a3a613be746adb990c7758a0006df364d06a5bb8..99a2d47e6e904f165ec658c4177654bee224a91a 100644 --- a/src/csharp/Grpc.Core.Tests/CallOptionsTest.cs +++ b/src/csharp/Grpc.Core.Tests/CallOptionsTest.cs @@ -54,10 +54,20 @@ namespace Grpc.Core.Tests var deadline = DateTime.UtcNow; Assert.AreEqual(deadline, options.WithDeadline(deadline).Deadline.Value); - var token = new CancellationTokenSource().Token; - Assert.AreEqual(token, options.WithCancellationToken(token).CancellationToken); + var cancellationToken = new CancellationTokenSource().Token; + Assert.AreEqual(cancellationToken, options.WithCancellationToken(cancellationToken).CancellationToken); + + var writeOptions = new WriteOptions(); + Assert.AreSame(writeOptions, options.WithWriteOptions(writeOptions).WriteOptions); + + var propagationToken = new ContextPropagationToken(CallSafeHandle.NullInstance, DateTime.UtcNow, + CancellationToken.None, ContextPropagationOptions.Default); + Assert.AreSame(propagationToken, options.WithPropagationToken(propagationToken).PropagationToken); + + var credentials = new FakeCallCredentials(); + Assert.AreSame(credentials, options.WithCredentials(credentials).Credentials); - // Change original instance is unchanged. + // Check that the original instance is unchanged. Assert.IsNull(options.Headers); Assert.IsNull(options.Deadline); Assert.AreEqual(CancellationToken.None, options.CancellationToken); diff --git a/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs index 60530d32508ffd404486a28b959e233ac1a2abb5..a678e4dafe1389cda713b265f5abb96acbcb5270 100644 --- a/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs +++ b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs @@ -64,28 +64,115 @@ namespace Grpc.Core.Internal.Tests } [Test] - public void AsyncUnary_CompletionSuccess() + public void AsyncUnary_CanBeStartedOnlyOnce() + { + asyncCall.UnaryCallAsync("request1"); + Assert.Throws(typeof(InvalidOperationException), + () => asyncCall.UnaryCallAsync("abc")); + } + + [Test] + public void AsyncUnary_StreamingOperationsNotAllowed() + { + asyncCall.UnaryCallAsync("request1"); + Assert.Throws(typeof(InvalidOperationException), + () => asyncCall.StartReadMessage((x,y) => {})); + Assert.Throws(typeof(InvalidOperationException), + () => asyncCall.StartSendMessage("abc", new WriteFlags(), (x,y) => {})); + } + + [Test] + public void AsyncUnary_Success() + { + var resultTask = asyncCall.UnaryCallAsync("request1"); + fakeCall.UnaryResponseClientHandler(true, + new ClientSideStatus(Status.DefaultSuccess, new Metadata()), + CreateResponsePayload(), + new Metadata()); + + AssertUnaryResponseSuccess(asyncCall, fakeCall, resultTask); + } + + [Test] + public void AsyncUnary_NonSuccessStatusCode() + { + var resultTask = asyncCall.UnaryCallAsync("request1"); + fakeCall.UnaryResponseClientHandler(true, + CreateClientSideStatus(StatusCode.InvalidArgument), + CreateResponsePayload(), + new Metadata()); + + AssertUnaryResponseError(asyncCall, fakeCall, resultTask, StatusCode.InvalidArgument); + } + + [Test] + public void AsyncUnary_NullResponsePayload() + { + var resultTask = asyncCall.UnaryCallAsync("request1"); + fakeCall.UnaryResponseClientHandler(true, + new ClientSideStatus(Status.DefaultSuccess, new Metadata()), + null, + new Metadata()); + + // failure to deserialize will result in InvalidArgument status. + AssertUnaryResponseError(asyncCall, fakeCall, resultTask, StatusCode.Internal); + } + + [Test] + public void ClientStreaming_NoRequest_Success() + { + var resultTask = asyncCall.ClientStreamingCallAsync(); + fakeCall.UnaryResponseClientHandler(true, + new ClientSideStatus(Status.DefaultSuccess, new Metadata()), + CreateResponsePayload(), + new Metadata()); + + AssertUnaryResponseSuccess(asyncCall, fakeCall, resultTask); + } + + [Test] + public void ClientStreaming_NoRequest_NonSuccessStatusCode() + { + var resultTask = asyncCall.ClientStreamingCallAsync(); + fakeCall.UnaryResponseClientHandler(true, + CreateClientSideStatus(StatusCode.InvalidArgument), + CreateResponsePayload(), + new Metadata()); + + AssertUnaryResponseError(asyncCall, fakeCall, resultTask, StatusCode.InvalidArgument); + } + + ClientSideStatus CreateClientSideStatus(StatusCode statusCode) + { + return new ClientSideStatus(new Status(statusCode, ""), new Metadata()); + } + + byte[] CreateResponsePayload() + { + return Marshallers.StringMarshaller.Serializer("response1"); + } + + static void AssertUnaryResponseSuccess(AsyncCall<string, string> asyncCall, FakeNativeCall fakeCall, Task<string> resultTask) { - var resultTask = asyncCall.UnaryCallAsync("abc"); - fakeCall.UnaryResponseClientHandler(true, new ClientSideStatus(Status.DefaultSuccess, new Metadata()), new byte[] { 1, 2, 3 }, new Metadata()); Assert.IsTrue(resultTask.IsCompleted); Assert.IsTrue(fakeCall.IsDisposed); + Assert.AreEqual(Status.DefaultSuccess, asyncCall.GetStatus()); + Assert.AreEqual(0, asyncCall.ResponseHeadersAsync.Result.Count); + Assert.AreEqual(0, asyncCall.GetTrailers().Count); + Assert.AreEqual("response1", resultTask.Result); } - [Test] - public void AsyncUnary_CompletionFailure() + static void AssertUnaryResponseError(AsyncCall<string, string> asyncCall, FakeNativeCall fakeCall, Task<string> resultTask, StatusCode expectedStatusCode) { - var resultTask = asyncCall.UnaryCallAsync("abc"); - fakeCall.UnaryResponseClientHandler(false, new ClientSideStatus(new Status(StatusCode.Internal, ""), null), new byte[] { 1, 2, 3 }, new Metadata()); - Assert.IsTrue(resultTask.IsCompleted); Assert.IsTrue(fakeCall.IsDisposed); - Assert.AreEqual(StatusCode.Internal, asyncCall.GetStatus().StatusCode); - Assert.IsNull(asyncCall.GetTrailers()); + Assert.AreEqual(expectedStatusCode, asyncCall.GetStatus().StatusCode); var ex = Assert.ThrowsAsync<RpcException>(async () => await resultTask); - Assert.AreEqual(StatusCode.Internal, ex.Status.StatusCode); + Assert.AreEqual(expectedStatusCode, ex.Status.StatusCode); + Assert.AreEqual(0, asyncCall.ResponseHeadersAsync.Result.Count); + Assert.AreEqual(0, asyncCall.GetTrailers().Count); } internal class FakeNativeCall : INativeCall diff --git a/src/csharp/Grpc.Core/CallOptions.cs b/src/csharp/Grpc.Core/CallOptions.cs index caf8210d917fd6bb14f089f3c99d7c52f2fd7374..9ca88849ee5ff3fa5db7cf1dc02b717eeee28f15 100644 --- a/src/csharp/Grpc.Core/CallOptions.cs +++ b/src/csharp/Grpc.Core/CallOptions.cs @@ -100,10 +100,7 @@ namespace Grpc.Core /// </summary> public WriteOptions WriteOptions { - get - { - return this.writeOptions; - } + get { return this.writeOptions; } } /// <summary> @@ -111,10 +108,7 @@ namespace Grpc.Core /// </summary> public ContextPropagationToken PropagationToken { - get - { - return this.propagationToken; - } + get { return this.propagationToken; } } /// <summary> @@ -122,10 +116,7 @@ namespace Grpc.Core /// </summary> public CallCredentials Credentials { - get - { - return this.credentials; - } + get { return this.credentials; } } /// <summary> @@ -164,6 +155,42 @@ namespace Grpc.Core return newOptions; } + /// <summary> + /// Returns new instance of <see cref="CallOptions"/> with + /// <c>WriteOptions</c> set to the value provided. Values of all other fields are preserved. + /// </summary> + /// <param name="writeOptions">The write options.</param> + public CallOptions WithWriteOptions(WriteOptions writeOptions) + { + var newOptions = this; + newOptions.writeOptions = writeOptions; + return newOptions; + } + + /// <summary> + /// Returns new instance of <see cref="CallOptions"/> with + /// <c>PropagationToken</c> set to the value provided. Values of all other fields are preserved. + /// </summary> + /// <param name="propagationToken">The context propagation token.</param> + public CallOptions WithPropagationToken(ContextPropagationToken propagationToken) + { + var newOptions = this; + newOptions.propagationToken = propagationToken; + return newOptions; + } + + /// <summary> + /// Returns new instance of <see cref="CallOptions"/> with + /// <c>Credentials</c> set to the value provided. Values of all other fields are preserved. + /// </summary> + /// <param name="credentials">The call credentials.</param> + public CallOptions WithCredentials(CallCredentials credentials) + { + var newOptions = this; + newOptions.credentials = credentials; + return newOptions; + } + /// <summary> /// Returns a new instance of <see cref="CallOptions"/> with /// all previously unset values set to their defaults and deadline and cancellation diff --git a/src/csharp/Grpc.Core/Internal/AsyncCall.cs b/src/csharp/Grpc.Core/Internal/AsyncCall.cs index 016e1b8587809db4f11a14a49d811748f8bd8e68..50ba617cdb1727524f6ed3727576cf6070a4697a 100644 --- a/src/csharp/Grpc.Core/Internal/AsyncCall.cs +++ b/src/csharp/Grpc.Core/Internal/AsyncCall.cs @@ -409,10 +409,13 @@ namespace Grpc.Core.Internal /// </summary> private void HandleUnaryResponse(bool success, ClientSideStatus receivedStatus, byte[] receivedMessage, Metadata responseHeaders) { + // NOTE: because this event is a result of batch containing GRPC_OP_RECV_STATUS_ON_CLIENT, + // success will be always set to true. + using (Profilers.ForCurrentThread().NewScope("AsyncCall.HandleUnaryResponse")) { TResponse msg = default(TResponse); - var deserializeException = success ? TryDeserialize(receivedMessage, out msg) : null; + var deserializeException = TryDeserialize(receivedMessage, out msg); lock (myLock) { @@ -425,14 +428,13 @@ namespace Grpc.Core.Internal finishedStatus = receivedStatus; ReleaseResourcesIfPossible(); - } responseHeadersTcs.SetResult(responseHeaders); var status = receivedStatus.Status; - if (!success || status.StatusCode != StatusCode.OK) + if (status.StatusCode != StatusCode.OK) { unaryResponseTcs.SetException(new RpcException(status)); return; @@ -447,6 +449,9 @@ namespace Grpc.Core.Internal /// </summary> private void HandleFinished(bool success, ClientSideStatus receivedStatus) { + // NOTE: because this event is a result of batch containing GRPC_OP_RECV_STATUS_ON_CLIENT, + // success will be always set to true. + lock (myLock) { finished = true; @@ -457,7 +462,7 @@ namespace Grpc.Core.Internal var status = receivedStatus.Status; - if (!success || status.StatusCode != StatusCode.OK) + if (status.StatusCode != StatusCode.OK) { streamingCallFinishedTcs.SetException(new RpcException(status)); return; diff --git a/src/csharp/Grpc.Core/Version.cs b/src/csharp/Grpc.Core/Version.cs index 8a26bd83623f72d2267e872d3abd942ce88b8381..f5c44fd09845f157707b1604a42e2a8d59ecca01 100644 --- a/src/csharp/Grpc.Core/Version.cs +++ b/src/csharp/Grpc.Core/Version.cs @@ -33,5 +33,6 @@ using System.Reflection; -// The current version of gRPC C#. [assembly: AssemblyVersion(Grpc.Core.VersionInfo.CurrentAssemblyVersion)] +[assembly: AssemblyFileVersion(Grpc.Core.VersionInfo.CurrentAssemblyFileVersion)] +[assembly: AssemblyInformationalVersion(Grpc.Core.VersionInfo.CurrentVersion)] diff --git a/src/csharp/Grpc.Core/VersionInfo.cs b/src/csharp/Grpc.Core/VersionInfo.cs index 9014a13f400d2190eb2388a1f26732709cf2f372..f7a9cb9c1cb66f36a1ffbaa2042d44ae418e02c0 100644 --- a/src/csharp/Grpc.Core/VersionInfo.cs +++ b/src/csharp/Grpc.Core/VersionInfo.cs @@ -35,13 +35,20 @@ namespace Grpc.Core { /// <summary> /// Provides info about current version of gRPC. + /// See https://codingforsmarties.wordpress.com/2016/01/21/how-to-version-assemblies-destined-for-nuget/ + /// for rationale about assembly versioning. /// </summary> public static class VersionInfo { /// <summary> - /// Current version of gRPC C# assemblies + /// Current <c>AssemblyVersion</c> attribute of gRPC C# assemblies /// </summary> - public const string CurrentAssemblyVersion = "0.14.0.0"; + public const string CurrentAssemblyVersion = "1.0.0.0"; + + /// <summary> + /// Current <c>AssemblyFileVersion</c> of gRPC C# assemblies + /// </summary> + public const string CurrentAssemblyFileVersion = "0.14.0.0"; /// <summary> /// Current version of gRPC C# diff --git a/src/csharp/Grpc.Examples/MathGrpc.cs b/src/csharp/Grpc.Examples/MathGrpc.cs index f3bb0d1cdcba5e355bba8e23eddf335f570d8f83..2d3034d28b5ffc76b15fbdae076836f25937e622 100644 --- a/src/csharp/Grpc.Examples/MathGrpc.cs +++ b/src/csharp/Grpc.Examples/MathGrpc.cs @@ -1,5 +1,35 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: math.proto +// Original file comments: +// 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. +// #region Designer generated code using System; @@ -45,56 +75,140 @@ namespace Math { __Marshaller_Num, __Marshaller_Num); - // service descriptor + /// <summary>Service descriptor</summary> public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor { get { return global::Math.MathReflection.Descriptor.Services[0]; } } - // client interface + /// <summary>Client for Math</summary> [System.Obsolete("Client side interfaced will be removed in the next release. Use client class directly.")] public interface IMathClient { + /// <summary> + /// Div divides args.dividend by args.divisor and returns the quotient and + /// remainder. + /// </summary> global::Math.DivReply Div(global::Math.DivArgs request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// Div divides args.dividend by args.divisor and returns the quotient and + /// remainder. + /// </summary> global::Math.DivReply Div(global::Math.DivArgs request, CallOptions options); + /// <summary> + /// Div divides args.dividend by args.divisor and returns the quotient and + /// remainder. + /// </summary> AsyncUnaryCall<global::Math.DivReply> DivAsync(global::Math.DivArgs request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// Div divides args.dividend by args.divisor and returns the quotient and + /// remainder. + /// </summary> AsyncUnaryCall<global::Math.DivReply> DivAsync(global::Math.DivArgs request, CallOptions options); + /// <summary> + /// DivMany accepts an arbitrary number of division args from the client stream + /// and sends back the results in the reply stream. The stream continues until + /// the client closes its end; the server does the same after sending all the + /// replies. The stream ends immediately if either end aborts. + /// </summary> AsyncDuplexStreamingCall<global::Math.DivArgs, global::Math.DivReply> DivMany(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// DivMany accepts an arbitrary number of division args from the client stream + /// and sends back the results in the reply stream. The stream continues until + /// the client closes its end; the server does the same after sending all the + /// replies. The stream ends immediately if either end aborts. + /// </summary> AsyncDuplexStreamingCall<global::Math.DivArgs, global::Math.DivReply> DivMany(CallOptions options); + /// <summary> + /// Fib generates numbers in the Fibonacci sequence. If args.limit > 0, Fib + /// generates up to limit numbers; otherwise it continues until the call is + /// canceled. Unlike Fib above, Fib has no final FibReply. + /// </summary> AsyncServerStreamingCall<global::Math.Num> Fib(global::Math.FibArgs request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// Fib generates numbers in the Fibonacci sequence. If args.limit > 0, Fib + /// generates up to limit numbers; otherwise it continues until the call is + /// canceled. Unlike Fib above, Fib has no final FibReply. + /// </summary> AsyncServerStreamingCall<global::Math.Num> Fib(global::Math.FibArgs request, CallOptions options); + /// <summary> + /// Sum sums a stream of numbers, returning the final result once the stream + /// is closed. + /// </summary> AsyncClientStreamingCall<global::Math.Num, global::Math.Num> Sum(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// Sum sums a stream of numbers, returning the final result once the stream + /// is closed. + /// </summary> AsyncClientStreamingCall<global::Math.Num, global::Math.Num> Sum(CallOptions options); } - // server-side interface + /// <summary>Interface of server-side implementations of Math</summary> [System.Obsolete("Service implementations should inherit from the generated abstract base class instead.")] public interface IMath { + /// <summary> + /// Div divides args.dividend by args.divisor and returns the quotient and + /// remainder. + /// </summary> Task<global::Math.DivReply> Div(global::Math.DivArgs request, ServerCallContext context); + /// <summary> + /// DivMany accepts an arbitrary number of division args from the client stream + /// and sends back the results in the reply stream. The stream continues until + /// the client closes its end; the server does the same after sending all the + /// replies. The stream ends immediately if either end aborts. + /// </summary> Task DivMany(IAsyncStreamReader<global::Math.DivArgs> requestStream, IServerStreamWriter<global::Math.DivReply> responseStream, ServerCallContext context); + /// <summary> + /// Fib generates numbers in the Fibonacci sequence. If args.limit > 0, Fib + /// generates up to limit numbers; otherwise it continues until the call is + /// canceled. Unlike Fib above, Fib has no final FibReply. + /// </summary> Task Fib(global::Math.FibArgs request, IServerStreamWriter<global::Math.Num> responseStream, ServerCallContext context); + /// <summary> + /// Sum sums a stream of numbers, returning the final result once the stream + /// is closed. + /// </summary> Task<global::Math.Num> Sum(IAsyncStreamReader<global::Math.Num> requestStream, ServerCallContext context); } - // server-side abstract class + /// <summary>Base class for server-side implementations of Math</summary> public abstract class MathBase { + /// <summary> + /// Div divides args.dividend by args.divisor and returns the quotient and + /// remainder. + /// </summary> public virtual Task<global::Math.DivReply> Div(global::Math.DivArgs request, ServerCallContext context) { throw new RpcException(new Status(StatusCode.Unimplemented, "")); } + /// <summary> + /// DivMany accepts an arbitrary number of division args from the client stream + /// and sends back the results in the reply stream. The stream continues until + /// the client closes its end; the server does the same after sending all the + /// replies. The stream ends immediately if either end aborts. + /// </summary> public virtual Task DivMany(IAsyncStreamReader<global::Math.DivArgs> requestStream, IServerStreamWriter<global::Math.DivReply> responseStream, ServerCallContext context) { throw new RpcException(new Status(StatusCode.Unimplemented, "")); } + /// <summary> + /// Fib generates numbers in the Fibonacci sequence. If args.limit > 0, Fib + /// generates up to limit numbers; otherwise it continues until the call is + /// canceled. Unlike Fib above, Fib has no final FibReply. + /// </summary> public virtual Task Fib(global::Math.FibArgs request, IServerStreamWriter<global::Math.Num> responseStream, ServerCallContext context) { throw new RpcException(new Status(StatusCode.Unimplemented, "")); } + /// <summary> + /// Sum sums a stream of numbers, returning the final result once the stream + /// is closed. + /// </summary> public virtual Task<global::Math.Num> Sum(IAsyncStreamReader<global::Math.Num> requestStream, ServerCallContext context) { throw new RpcException(new Status(StatusCode.Unimplemented, "")); @@ -102,8 +216,10 @@ namespace Math { } - // client stub + /// <summary>Client for Math</summary> + #pragma warning disable 0618 public class MathClient : ClientBase<MathClient>, IMathClient + #pragma warning restore 0618 { public MathClient(Channel channel) : base(channel) { @@ -120,42 +236,88 @@ namespace Math { { } + /// <summary> + /// Div divides args.dividend by args.divisor and returns the quotient and + /// remainder. + /// </summary> public virtual global::Math.DivReply Div(global::Math.DivArgs request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return Div(request, new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// Div divides args.dividend by args.divisor and returns the quotient and + /// remainder. + /// </summary> public virtual global::Math.DivReply Div(global::Math.DivArgs request, CallOptions options) { return CallInvoker.BlockingUnaryCall(__Method_Div, null, options, request); } + /// <summary> + /// Div divides args.dividend by args.divisor and returns the quotient and + /// remainder. + /// </summary> public virtual AsyncUnaryCall<global::Math.DivReply> DivAsync(global::Math.DivArgs request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return DivAsync(request, new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// Div divides args.dividend by args.divisor and returns the quotient and + /// remainder. + /// </summary> public virtual AsyncUnaryCall<global::Math.DivReply> DivAsync(global::Math.DivArgs request, CallOptions options) { return CallInvoker.AsyncUnaryCall(__Method_Div, null, options, request); } + /// <summary> + /// DivMany accepts an arbitrary number of division args from the client stream + /// and sends back the results in the reply stream. The stream continues until + /// the client closes its end; the server does the same after sending all the + /// replies. The stream ends immediately if either end aborts. + /// </summary> public virtual AsyncDuplexStreamingCall<global::Math.DivArgs, global::Math.DivReply> DivMany(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return DivMany(new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// DivMany accepts an arbitrary number of division args from the client stream + /// and sends back the results in the reply stream. The stream continues until + /// the client closes its end; the server does the same after sending all the + /// replies. The stream ends immediately if either end aborts. + /// </summary> public virtual AsyncDuplexStreamingCall<global::Math.DivArgs, global::Math.DivReply> DivMany(CallOptions options) { return CallInvoker.AsyncDuplexStreamingCall(__Method_DivMany, null, options); } + /// <summary> + /// Fib generates numbers in the Fibonacci sequence. If args.limit > 0, Fib + /// generates up to limit numbers; otherwise it continues until the call is + /// canceled. Unlike Fib above, Fib has no final FibReply. + /// </summary> public virtual AsyncServerStreamingCall<global::Math.Num> Fib(global::Math.FibArgs request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return Fib(request, new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// Fib generates numbers in the Fibonacci sequence. If args.limit > 0, Fib + /// generates up to limit numbers; otherwise it continues until the call is + /// canceled. Unlike Fib above, Fib has no final FibReply. + /// </summary> public virtual AsyncServerStreamingCall<global::Math.Num> Fib(global::Math.FibArgs request, CallOptions options) { return CallInvoker.AsyncServerStreamingCall(__Method_Fib, null, options, request); } + /// <summary> + /// Sum sums a stream of numbers, returning the final result once the stream + /// is closed. + /// </summary> public virtual AsyncClientStreamingCall<global::Math.Num, global::Math.Num> Sum(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return Sum(new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// Sum sums a stream of numbers, returning the final result once the stream + /// is closed. + /// </summary> public virtual AsyncClientStreamingCall<global::Math.Num, global::Math.Num> Sum(CallOptions options) { return CallInvoker.AsyncClientStreamingCall(__Method_Sum, null, options); @@ -166,8 +328,16 @@ namespace Math { } } - // creates service definition that can be registered with a server + /// <summary>Creates a new client for Math</summary> + public static MathClient NewClient(Channel channel) + { + return new MathClient(channel); + } + + /// <summary>Creates service definition that can be registered with a server</summary> + #pragma warning disable 0618 public static ServerServiceDefinition BindService(IMath serviceImpl) + #pragma warning restore 0618 { return ServerServiceDefinition.CreateBuilder(__ServiceName) .AddMethod(__Method_Div, serviceImpl.Div) @@ -176,8 +346,10 @@ namespace Math { .AddMethod(__Method_Sum, serviceImpl.Sum).Build(); } - // creates service definition that can be registered with a server + /// <summary>Creates service definition that can be registered with a server</summary> + #pragma warning disable 0618 public static ServerServiceDefinition BindService(MathBase serviceImpl) + #pragma warning restore 0618 { return ServerServiceDefinition.CreateBuilder(__ServiceName) .AddMethod(__Method_Div, serviceImpl.Div) @@ -186,12 +358,6 @@ namespace Math { .AddMethod(__Method_Sum, serviceImpl.Sum).Build(); } - // creates a new client - public static MathClient NewClient(Channel channel) - { - return new MathClient(channel); - } - } } #endregion diff --git a/src/csharp/Grpc.HealthCheck/HealthGrpc.cs b/src/csharp/Grpc.HealthCheck/HealthGrpc.cs index 72e11cca3a1d4b3709a500fa2320036a22ab5f78..967d1170bedfcdb2e8f0c9810fe640fd628eb2a9 100644 --- a/src/csharp/Grpc.HealthCheck/HealthGrpc.cs +++ b/src/csharp/Grpc.HealthCheck/HealthGrpc.cs @@ -1,5 +1,35 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: health.proto +// Original file comments: +// 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. +// #region Designer generated code using System; @@ -22,13 +52,13 @@ namespace Grpc.Health.V1 { __Marshaller_HealthCheckRequest, __Marshaller_HealthCheckResponse); - // service descriptor + /// <summary>Service descriptor</summary> public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor { get { return global::Grpc.Health.V1.HealthReflection.Descriptor.Services[0]; } } - // client interface + /// <summary>Client for Health</summary> [System.Obsolete("Client side interfaced will be removed in the next release. Use client class directly.")] public interface IHealthClient { @@ -38,14 +68,14 @@ namespace Grpc.Health.V1 { AsyncUnaryCall<global::Grpc.Health.V1.HealthCheckResponse> CheckAsync(global::Grpc.Health.V1.HealthCheckRequest request, CallOptions options); } - // server-side interface + /// <summary>Interface of server-side implementations of Health</summary> [System.Obsolete("Service implementations should inherit from the generated abstract base class instead.")] public interface IHealth { Task<global::Grpc.Health.V1.HealthCheckResponse> Check(global::Grpc.Health.V1.HealthCheckRequest request, ServerCallContext context); } - // server-side abstract class + /// <summary>Base class for server-side implementations of Health</summary> public abstract class HealthBase { public virtual Task<global::Grpc.Health.V1.HealthCheckResponse> Check(global::Grpc.Health.V1.HealthCheckRequest request, ServerCallContext context) @@ -55,8 +85,10 @@ namespace Grpc.Health.V1 { } - // client stub + /// <summary>Client for Health</summary> + #pragma warning disable 0618 public class HealthClient : ClientBase<HealthClient>, IHealthClient + #pragma warning restore 0618 { public HealthClient(Channel channel) : base(channel) { @@ -95,26 +127,30 @@ namespace Grpc.Health.V1 { } } - // creates service definition that can be registered with a server + /// <summary>Creates a new client for Health</summary> + public static HealthClient NewClient(Channel channel) + { + return new HealthClient(channel); + } + + /// <summary>Creates service definition that can be registered with a server</summary> + #pragma warning disable 0618 public static ServerServiceDefinition BindService(IHealth serviceImpl) + #pragma warning restore 0618 { return ServerServiceDefinition.CreateBuilder(__ServiceName) .AddMethod(__Method_Check, serviceImpl.Check).Build(); } - // creates service definition that can be registered with a server + /// <summary>Creates service definition that can be registered with a server</summary> + #pragma warning disable 0618 public static ServerServiceDefinition BindService(HealthBase serviceImpl) + #pragma warning restore 0618 { return ServerServiceDefinition.CreateBuilder(__ServiceName) .AddMethod(__Method_Check, serviceImpl.Check).Build(); } - // creates a new client - public static HealthClient NewClient(Channel channel) - { - return new HealthClient(channel); - } - } } #endregion diff --git a/src/csharp/Grpc.IntegrationTesting.StressClient/.gitignore b/src/csharp/Grpc.IntegrationTesting.StressClient/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..a382af2294f7a8b9d7789117aeeb80a0a56bc19b --- /dev/null +++ b/src/csharp/Grpc.IntegrationTesting.StressClient/.gitignore @@ -0,0 +1,3 @@ +bin +obj + diff --git a/src/csharp/Grpc.IntegrationTesting.StressClient/Grpc.IntegrationTesting.StressClient.csproj b/src/csharp/Grpc.IntegrationTesting.StressClient/Grpc.IntegrationTesting.StressClient.csproj new file mode 100644 index 0000000000000000000000000000000000000000..d6eba74289ef70ae1b14354c134fedce21d1af96 --- /dev/null +++ b/src/csharp/Grpc.IntegrationTesting.StressClient/Grpc.IntegrationTesting.StressClient.csproj @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{ADEBA147-80AE-4710-82E9-5B7F93690266}</ProjectGuid> + <OutputType>Exe</OutputType> + <RootNamespace>Grpc.IntegrationTesting.StressClient</RootNamespace> + <AssemblyName>Grpc.IntegrationTesting.StressClient</AssemblyName> + <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug</OutputPath> + <DefineConstants>DEBUG;</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <PlatformTarget>AnyCPU</PlatformTarget> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release</OutputPath> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <PlatformTarget>AnyCPU</PlatformTarget> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseSigned|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\ReleaseSigned</OutputPath> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <SignAssembly>True</SignAssembly> + <AssemblyOriginatorKeyFile>..\keys\Grpc.snk</AssemblyOriginatorKeyFile> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + </ItemGroup> + <ItemGroup> + <Compile Include="..\Grpc.Core\Version.cs"> + <Link>Version.cs</Link> + </Compile> + <Compile Include="Program.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <ItemGroup> + <ProjectReference Include="..\Grpc.Core\Grpc.Core.csproj"> + <Project>{CCC4440E-49F7-4790-B0AF-FEABB0837AE7}</Project> + <Name>Grpc.Core</Name> + </ProjectReference> + <ProjectReference Include="..\Grpc.IntegrationTesting\Grpc.IntegrationTesting.csproj"> + <Project>{C61154BA-DD4A-4838-8420-0162A28925E0}</Project> + <Name>Grpc.IntegrationTesting</Name> + </ProjectReference> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/src/python/grpcio/tests/interop/empty.proto b/src/csharp/Grpc.IntegrationTesting.StressClient/Program.cs similarity index 79% rename from src/python/grpcio/tests/interop/empty.proto rename to src/csharp/Grpc.IntegrationTesting.StressClient/Program.cs index 6d0eb937d674ca3ee9aaf9c2ed8313250cd76647..dffdf22fa5bf82751d037b8b32bb0023f4a517cd 100644 --- a/src/python/grpcio/tests/interop/empty.proto +++ b/src/csharp/Grpc.IntegrationTesting.StressClient/Program.cs @@ -1,5 +1,6 @@ +#region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -28,16 +29,17 @@ // (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"; +#endregion -package grpc.testing; +using System; -// An empty message that you can re-use to avoid defining duplicated empty -// messages in your project. A typical example is to use it as argument or the -// return value of a service API. For instance: -// -// service Foo { -// rpc Bar (grpc.testing.Empty) returns (grpc.testing.Empty) { }; -// }; -// -message Empty {} +namespace Grpc.IntegrationTesting.StressClient +{ + class MainClass + { + public static void Main(string[] args) + { + StressTestClient.Run(args); + } + } +} diff --git a/src/csharp/Grpc.IntegrationTesting.StressClient/Properties/AssemblyInfo.cs b/src/csharp/Grpc.IntegrationTesting.StressClient/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000000000000000000000000000000000..e845bbfb9e66fe4e044e9d48407be453cf419d6a --- /dev/null +++ b/src/csharp/Grpc.IntegrationTesting.StressClient/Properties/AssemblyInfo.cs @@ -0,0 +1,11 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +[assembly: AssemblyTitle("Grpc.IntegrationTesting.StressClient")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("Google Inc. All rights reserved.")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] diff --git a/src/csharp/Grpc.IntegrationTesting/Control.cs b/src/csharp/Grpc.IntegrationTesting/Control.cs index 003d2428fabdebc6abcbfaa99e90a44f398d65e3..3fa8d43f3811ee5768a1a18ea1313b4825f49945 100644 --- a/src/csharp/Grpc.IntegrationTesting/Control.cs +++ b/src/csharp/Grpc.IntegrationTesting/Control.cs @@ -31,7 +31,7 @@ namespace Grpc.Testing { "cnBjLnRlc3RpbmcuQ2xvc2VkTG9vcFBhcmFtc0gAEi4KB3BvaXNzb24YAiAB", "KAsyGy5ncnBjLnRlc3RpbmcuUG9pc3NvblBhcmFtc0gAQgYKBGxvYWQiQwoO", "U2VjdXJpdHlQYXJhbXMSEwoLdXNlX3Rlc3RfY2EYASABKAgSHAoUc2VydmVy", - "X2hvc3Rfb3ZlcnJpZGUYAiABKAki1gMKDENsaWVudENvbmZpZxIWCg5zZXJ2", + "X2hvc3Rfb3ZlcnJpZGUYAiABKAki8AMKDENsaWVudENvbmZpZxIWCg5zZXJ2", "ZXJfdGFyZ2V0cxgBIAMoCRItCgtjbGllbnRfdHlwZRgCIAEoDjIYLmdycGMu", "dGVzdGluZy5DbGllbnRUeXBlEjUKD3NlY3VyaXR5X3BhcmFtcxgDIAEoCzIc", "LmdycGMudGVzdGluZy5TZWN1cml0eVBhcmFtcxIkChxvdXRzdGFuZGluZ19y", @@ -41,46 +41,48 @@ namespace Grpc.Testing { "ASgLMhguZ3JwYy50ZXN0aW5nLkxvYWRQYXJhbXMSMwoOcGF5bG9hZF9jb25m", "aWcYCyABKAsyGy5ncnBjLnRlc3RpbmcuUGF5bG9hZENvbmZpZxI3ChBoaXN0", "b2dyYW1fcGFyYW1zGAwgASgLMh0uZ3JwYy50ZXN0aW5nLkhpc3RvZ3JhbVBh", - "cmFtcxIRCgljb3JlX2xpc3QYDSADKAUSEgoKY29yZV9saW1pdBgOIAEoBSI4", - "CgxDbGllbnRTdGF0dXMSKAoFc3RhdHMYASABKAsyGS5ncnBjLnRlc3Rpbmcu", - "Q2xpZW50U3RhdHMiFQoETWFyaxINCgVyZXNldBgBIAEoCCJoCgpDbGllbnRB", - "cmdzEisKBXNldHVwGAEgASgLMhouZ3JwYy50ZXN0aW5nLkNsaWVudENvbmZp", - "Z0gAEiIKBG1hcmsYAiABKAsyEi5ncnBjLnRlc3RpbmcuTWFya0gAQgkKB2Fy", - "Z3R5cGUi/AEKDFNlcnZlckNvbmZpZxItCgtzZXJ2ZXJfdHlwZRgBIAEoDjIY", - "LmdycGMudGVzdGluZy5TZXJ2ZXJUeXBlEjUKD3NlY3VyaXR5X3BhcmFtcxgC", - "IAEoCzIcLmdycGMudGVzdGluZy5TZWN1cml0eVBhcmFtcxIMCgRwb3J0GAQg", - "ASgFEhwKFGFzeW5jX3NlcnZlcl90aHJlYWRzGAcgASgFEhIKCmNvcmVfbGlt", - "aXQYCCABKAUSMwoOcGF5bG9hZF9jb25maWcYCSABKAsyGy5ncnBjLnRlc3Rp", - "bmcuUGF5bG9hZENvbmZpZxIRCgljb3JlX2xpc3QYCiADKAUiaAoKU2VydmVy", - "QXJncxIrCgVzZXR1cBgBIAEoCzIaLmdycGMudGVzdGluZy5TZXJ2ZXJDb25m", - "aWdIABIiCgRtYXJrGAIgASgLMhIuZ3JwYy50ZXN0aW5nLk1hcmtIAEIJCgdh", - "cmd0eXBlIlUKDFNlcnZlclN0YXR1cxIoCgVzdGF0cxgBIAEoCzIZLmdycGMu", - "dGVzdGluZy5TZXJ2ZXJTdGF0cxIMCgRwb3J0GAIgASgFEg0KBWNvcmVzGAMg", - "ASgFIg0KC0NvcmVSZXF1ZXN0Ih0KDENvcmVSZXNwb25zZRINCgVjb3JlcxgB", - "IAEoBSIGCgRWb2lkIv0BCghTY2VuYXJpbxIMCgRuYW1lGAEgASgJEjEKDWNs", - "aWVudF9jb25maWcYAiABKAsyGi5ncnBjLnRlc3RpbmcuQ2xpZW50Q29uZmln", - "EhMKC251bV9jbGllbnRzGAMgASgFEjEKDXNlcnZlcl9jb25maWcYBCABKAsy", - "Gi5ncnBjLnRlc3RpbmcuU2VydmVyQ29uZmlnEhMKC251bV9zZXJ2ZXJzGAUg", - "ASgFEhYKDndhcm11cF9zZWNvbmRzGAYgASgFEhkKEWJlbmNobWFya19zZWNv", - "bmRzGAcgASgFEiAKGHNwYXduX2xvY2FsX3dvcmtlcl9jb3VudBgIIAEoBSI2", - "CglTY2VuYXJpb3MSKQoJc2NlbmFyaW9zGAEgAygLMhYuZ3JwYy50ZXN0aW5n", - "LlNjZW5hcmlvIpICChVTY2VuYXJpb1Jlc3VsdFN1bW1hcnkSCwoDcXBzGAEg", - "ASgBEhsKE3Fwc19wZXJfc2VydmVyX2NvcmUYAiABKAESGgoSc2VydmVyX3N5", - "c3RlbV90aW1lGAMgASgBEhgKEHNlcnZlcl91c2VyX3RpbWUYBCABKAESGgoS", - "Y2xpZW50X3N5c3RlbV90aW1lGAUgASgBEhgKEGNsaWVudF91c2VyX3RpbWUY", - "BiABKAESEgoKbGF0ZW5jeV81MBgHIAEoARISCgpsYXRlbmN5XzkwGAggASgB", - "EhIKCmxhdGVuY3lfOTUYCSABKAESEgoKbGF0ZW5jeV85ORgKIAEoARITCgts", - "YXRlbmN5Xzk5ORgLIAEoASKYAgoOU2NlbmFyaW9SZXN1bHQSKAoIc2NlbmFy", - "aW8YASABKAsyFi5ncnBjLnRlc3RpbmcuU2NlbmFyaW8SLgoJbGF0ZW5jaWVz", - "GAIgASgLMhsuZ3JwYy50ZXN0aW5nLkhpc3RvZ3JhbURhdGESLwoMY2xpZW50", - "X3N0YXRzGAMgAygLMhkuZ3JwYy50ZXN0aW5nLkNsaWVudFN0YXRzEi8KDHNl", - "cnZlcl9zdGF0cxgEIAMoCzIZLmdycGMudGVzdGluZy5TZXJ2ZXJTdGF0cxIU", - "CgxzZXJ2ZXJfY29yZXMYBSADKAUSNAoHc3VtbWFyeRgGIAEoCzIjLmdycGMu", - "dGVzdGluZy5TY2VuYXJpb1Jlc3VsdFN1bW1hcnkqLwoKQ2xpZW50VHlwZRIP", - "CgtTWU5DX0NMSUVOVBAAEhAKDEFTWU5DX0NMSUVOVBABKkkKClNlcnZlclR5", - "cGUSDwoLU1lOQ19TRVJWRVIQABIQCgxBU1lOQ19TRVJWRVIQARIYChRBU1lO", - "Q19HRU5FUklDX1NFUlZFUhACKiMKB1JwY1R5cGUSCQoFVU5BUlkQABINCglT", - "VFJFQU1JTkcQAWIGcHJvdG8z")); + "cmFtcxIRCgljb3JlX2xpc3QYDSADKAUSEgoKY29yZV9saW1pdBgOIAEoBRIY", + "ChBvdGhlcl9jbGllbnRfYXBpGA8gASgJIjgKDENsaWVudFN0YXR1cxIoCgVz", + "dGF0cxgBIAEoCzIZLmdycGMudGVzdGluZy5DbGllbnRTdGF0cyIVCgRNYXJr", + "Eg0KBXJlc2V0GAEgASgIImgKCkNsaWVudEFyZ3MSKwoFc2V0dXAYASABKAsy", + "Gi5ncnBjLnRlc3RpbmcuQ2xpZW50Q29uZmlnSAASIgoEbWFyaxgCIAEoCzIS", + "LmdycGMudGVzdGluZy5NYXJrSABCCQoHYXJndHlwZSKWAgoMU2VydmVyQ29u", + "ZmlnEi0KC3NlcnZlcl90eXBlGAEgASgOMhguZ3JwYy50ZXN0aW5nLlNlcnZl", + "clR5cGUSNQoPc2VjdXJpdHlfcGFyYW1zGAIgASgLMhwuZ3JwYy50ZXN0aW5n", + "LlNlY3VyaXR5UGFyYW1zEgwKBHBvcnQYBCABKAUSHAoUYXN5bmNfc2VydmVy", + "X3RocmVhZHMYByABKAUSEgoKY29yZV9saW1pdBgIIAEoBRIzCg5wYXlsb2Fk", + "X2NvbmZpZxgJIAEoCzIbLmdycGMudGVzdGluZy5QYXlsb2FkQ29uZmlnEhEK", + "CWNvcmVfbGlzdBgKIAMoBRIYChBvdGhlcl9zZXJ2ZXJfYXBpGAsgASgJImgK", + "ClNlcnZlckFyZ3MSKwoFc2V0dXAYASABKAsyGi5ncnBjLnRlc3RpbmcuU2Vy", + "dmVyQ29uZmlnSAASIgoEbWFyaxgCIAEoCzISLmdycGMudGVzdGluZy5NYXJr", + "SABCCQoHYXJndHlwZSJVCgxTZXJ2ZXJTdGF0dXMSKAoFc3RhdHMYASABKAsy", + "GS5ncnBjLnRlc3RpbmcuU2VydmVyU3RhdHMSDAoEcG9ydBgCIAEoBRINCgVj", + "b3JlcxgDIAEoBSINCgtDb3JlUmVxdWVzdCIdCgxDb3JlUmVzcG9uc2USDQoF", + "Y29yZXMYASABKAUiBgoEVm9pZCL9AQoIU2NlbmFyaW8SDAoEbmFtZRgBIAEo", + "CRIxCg1jbGllbnRfY29uZmlnGAIgASgLMhouZ3JwYy50ZXN0aW5nLkNsaWVu", + "dENvbmZpZxITCgtudW1fY2xpZW50cxgDIAEoBRIxCg1zZXJ2ZXJfY29uZmln", + "GAQgASgLMhouZ3JwYy50ZXN0aW5nLlNlcnZlckNvbmZpZxITCgtudW1fc2Vy", + "dmVycxgFIAEoBRIWCg53YXJtdXBfc2Vjb25kcxgGIAEoBRIZChFiZW5jaG1h", + "cmtfc2Vjb25kcxgHIAEoBRIgChhzcGF3bl9sb2NhbF93b3JrZXJfY291bnQY", + "CCABKAUiNgoJU2NlbmFyaW9zEikKCXNjZW5hcmlvcxgBIAMoCzIWLmdycGMu", + "dGVzdGluZy5TY2VuYXJpbyKSAgoVU2NlbmFyaW9SZXN1bHRTdW1tYXJ5EgsK", + "A3FwcxgBIAEoARIbChNxcHNfcGVyX3NlcnZlcl9jb3JlGAIgASgBEhoKEnNl", + "cnZlcl9zeXN0ZW1fdGltZRgDIAEoARIYChBzZXJ2ZXJfdXNlcl90aW1lGAQg", + "ASgBEhoKEmNsaWVudF9zeXN0ZW1fdGltZRgFIAEoARIYChBjbGllbnRfdXNl", + "cl90aW1lGAYgASgBEhIKCmxhdGVuY3lfNTAYByABKAESEgoKbGF0ZW5jeV85", + "MBgIIAEoARISCgpsYXRlbmN5Xzk1GAkgASgBEhIKCmxhdGVuY3lfOTkYCiAB", + "KAESEwoLbGF0ZW5jeV85OTkYCyABKAEimAIKDlNjZW5hcmlvUmVzdWx0EigK", + "CHNjZW5hcmlvGAEgASgLMhYuZ3JwYy50ZXN0aW5nLlNjZW5hcmlvEi4KCWxh", + "dGVuY2llcxgCIAEoCzIbLmdycGMudGVzdGluZy5IaXN0b2dyYW1EYXRhEi8K", + "DGNsaWVudF9zdGF0cxgDIAMoCzIZLmdycGMudGVzdGluZy5DbGllbnRTdGF0", + "cxIvCgxzZXJ2ZXJfc3RhdHMYBCADKAsyGS5ncnBjLnRlc3RpbmcuU2VydmVy", + "U3RhdHMSFAoMc2VydmVyX2NvcmVzGAUgAygFEjQKB3N1bW1hcnkYBiABKAsy", + "Iy5ncnBjLnRlc3RpbmcuU2NlbmFyaW9SZXN1bHRTdW1tYXJ5KkEKCkNsaWVu", + "dFR5cGUSDwoLU1lOQ19DTElFTlQQABIQCgxBU1lOQ19DTElFTlQQARIQCgxP", + "VEhFUl9DTElFTlQQAipbCgpTZXJ2ZXJUeXBlEg8KC1NZTkNfU0VSVkVSEAAS", + "EAoMQVNZTkNfU0VSVkVSEAESGAoUQVNZTkNfR0VORVJJQ19TRVJWRVIQAhIQ", + "CgxPVEhFUl9TRVJWRVIQAyojCgdScGNUeXBlEgkKBVVOQVJZEAASDQoJU1RS", + "RUFNSU5HEAFiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Grpc.Testing.PayloadsReflection.Descriptor, global::Grpc.Testing.StatsReflection.Descriptor, }, new pbr::GeneratedCodeInfo(new[] {typeof(global::Grpc.Testing.ClientType), typeof(global::Grpc.Testing.ServerType), typeof(global::Grpc.Testing.RpcType), }, new pbr::GeneratedCodeInfo[] { @@ -88,11 +90,11 @@ namespace Grpc.Testing { new pbr::GeneratedCodeInfo(typeof(global::Grpc.Testing.ClosedLoopParams), global::Grpc.Testing.ClosedLoopParams.Parser, null, null, null, null), new pbr::GeneratedCodeInfo(typeof(global::Grpc.Testing.LoadParams), global::Grpc.Testing.LoadParams.Parser, new[]{ "ClosedLoop", "Poisson" }, new[]{ "Load" }, null, null), new pbr::GeneratedCodeInfo(typeof(global::Grpc.Testing.SecurityParams), global::Grpc.Testing.SecurityParams.Parser, new[]{ "UseTestCa", "ServerHostOverride" }, null, null, null), - new pbr::GeneratedCodeInfo(typeof(global::Grpc.Testing.ClientConfig), global::Grpc.Testing.ClientConfig.Parser, new[]{ "ServerTargets", "ClientType", "SecurityParams", "OutstandingRpcsPerChannel", "ClientChannels", "AsyncClientThreads", "RpcType", "LoadParams", "PayloadConfig", "HistogramParams", "CoreList", "CoreLimit" }, null, null, null), + new pbr::GeneratedCodeInfo(typeof(global::Grpc.Testing.ClientConfig), global::Grpc.Testing.ClientConfig.Parser, new[]{ "ServerTargets", "ClientType", "SecurityParams", "OutstandingRpcsPerChannel", "ClientChannels", "AsyncClientThreads", "RpcType", "LoadParams", "PayloadConfig", "HistogramParams", "CoreList", "CoreLimit", "OtherClientApi" }, null, null, null), new pbr::GeneratedCodeInfo(typeof(global::Grpc.Testing.ClientStatus), global::Grpc.Testing.ClientStatus.Parser, new[]{ "Stats" }, null, null, null), new pbr::GeneratedCodeInfo(typeof(global::Grpc.Testing.Mark), global::Grpc.Testing.Mark.Parser, new[]{ "Reset" }, null, null, null), new pbr::GeneratedCodeInfo(typeof(global::Grpc.Testing.ClientArgs), global::Grpc.Testing.ClientArgs.Parser, new[]{ "Setup", "Mark" }, new[]{ "Argtype" }, null, null), - new pbr::GeneratedCodeInfo(typeof(global::Grpc.Testing.ServerConfig), global::Grpc.Testing.ServerConfig.Parser, new[]{ "ServerType", "SecurityParams", "Port", "AsyncServerThreads", "CoreLimit", "PayloadConfig", "CoreList" }, null, null, null), + new pbr::GeneratedCodeInfo(typeof(global::Grpc.Testing.ServerConfig), global::Grpc.Testing.ServerConfig.Parser, new[]{ "ServerType", "SecurityParams", "Port", "AsyncServerThreads", "CoreLimit", "PayloadConfig", "CoreList", "OtherServerApi" }, null, null, null), new pbr::GeneratedCodeInfo(typeof(global::Grpc.Testing.ServerArgs), global::Grpc.Testing.ServerArgs.Parser, new[]{ "Setup", "Mark" }, new[]{ "Argtype" }, null, null), new pbr::GeneratedCodeInfo(typeof(global::Grpc.Testing.ServerStatus), global::Grpc.Testing.ServerStatus.Parser, new[]{ "Stats", "Port", "Cores" }, null, null, null), new pbr::GeneratedCodeInfo(typeof(global::Grpc.Testing.CoreRequest), global::Grpc.Testing.CoreRequest.Parser, null, null, null, null), @@ -109,14 +111,26 @@ namespace Grpc.Testing { } #region Enums public enum ClientType { + /// <summary> + /// Many languages support a basic distinction between using + /// sync or async client, and this allows the specification + /// </summary> SYNC_CLIENT = 0, ASYNC_CLIENT = 1, + /// <summary> + /// used for some language-specific variants + /// </summary> + OTHER_CLIENT = 2, } public enum ServerType { SYNC_SERVER = 0, ASYNC_SERVER = 1, ASYNC_GENERIC_SERVER = 2, + /// <summary> + /// used for some language-specific variants + /// </summary> + OTHER_SERVER = 3, } public enum RpcType { @@ -651,6 +665,7 @@ namespace Grpc.Testing { HistogramParams = other.histogramParams_ != null ? other.HistogramParams.Clone() : null; coreList_ = other.coreList_.Clone(); coreLimit_ = other.coreLimit_; + otherClientApi_ = other.otherClientApi_; } public ClientConfig Clone() { @@ -795,6 +810,19 @@ namespace Grpc.Testing { } } + /// <summary>Field number for the "other_client_api" field.</summary> + public const int OtherClientApiFieldNumber = 15; + private string otherClientApi_ = ""; + /// <summary> + /// If we use an OTHER_CLIENT client_type, this string gives more detail + /// </summary> + public string OtherClientApi { + get { return otherClientApi_; } + set { + otherClientApi_ = pb::Preconditions.CheckNotNull(value, "value"); + } + } + public override bool Equals(object other) { return Equals(other as ClientConfig); } @@ -818,6 +846,7 @@ namespace Grpc.Testing { if (!object.Equals(HistogramParams, other.HistogramParams)) return false; if(!coreList_.Equals(other.coreList_)) return false; if (CoreLimit != other.CoreLimit) return false; + if (OtherClientApi != other.OtherClientApi) return false; return true; } @@ -835,6 +864,7 @@ namespace Grpc.Testing { if (histogramParams_ != null) hash ^= HistogramParams.GetHashCode(); hash ^= coreList_.GetHashCode(); if (CoreLimit != 0) hash ^= CoreLimit.GetHashCode(); + if (OtherClientApi.Length != 0) hash ^= OtherClientApi.GetHashCode(); return hash; } @@ -885,6 +915,10 @@ namespace Grpc.Testing { output.WriteRawTag(112); output.WriteInt32(CoreLimit); } + if (OtherClientApi.Length != 0) { + output.WriteRawTag(122); + output.WriteString(OtherClientApi); + } } public int CalculateSize() { @@ -921,6 +955,9 @@ namespace Grpc.Testing { if (CoreLimit != 0) { size += 1 + pb::CodedOutputStream.ComputeInt32Size(CoreLimit); } + if (OtherClientApi.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(OtherClientApi); + } return size; } @@ -972,6 +1009,9 @@ namespace Grpc.Testing { if (other.CoreLimit != 0) { CoreLimit = other.CoreLimit; } + if (other.OtherClientApi.Length != 0) { + OtherClientApi = other.OtherClientApi; + } } public void MergeFrom(pb::CodedInputStream input) { @@ -1042,6 +1082,10 @@ namespace Grpc.Testing { CoreLimit = input.ReadInt32(); break; } + case 122: { + OtherClientApi = input.ReadString(); + break; + } } } } @@ -1462,6 +1506,7 @@ namespace Grpc.Testing { coreLimit_ = other.coreLimit_; PayloadConfig = other.payloadConfig_ != null ? other.PayloadConfig.Clone() : null; coreList_ = other.coreList_.Clone(); + otherServerApi_ = other.otherServerApi_; } public ServerConfig Clone() { @@ -1552,6 +1597,19 @@ namespace Grpc.Testing { get { return coreList_; } } + /// <summary>Field number for the "other_server_api" field.</summary> + public const int OtherServerApiFieldNumber = 11; + private string otherServerApi_ = ""; + /// <summary> + /// If we use an OTHER_SERVER client_type, this string gives more detail + /// </summary> + public string OtherServerApi { + get { return otherServerApi_; } + set { + otherServerApi_ = pb::Preconditions.CheckNotNull(value, "value"); + } + } + public override bool Equals(object other) { return Equals(other as ServerConfig); } @@ -1570,6 +1628,7 @@ namespace Grpc.Testing { if (CoreLimit != other.CoreLimit) return false; if (!object.Equals(PayloadConfig, other.PayloadConfig)) return false; if(!coreList_.Equals(other.coreList_)) return false; + if (OtherServerApi != other.OtherServerApi) return false; return true; } @@ -1582,6 +1641,7 @@ namespace Grpc.Testing { if (CoreLimit != 0) hash ^= CoreLimit.GetHashCode(); if (payloadConfig_ != null) hash ^= PayloadConfig.GetHashCode(); hash ^= coreList_.GetHashCode(); + if (OtherServerApi.Length != 0) hash ^= OtherServerApi.GetHashCode(); return hash; } @@ -1615,6 +1675,10 @@ namespace Grpc.Testing { output.WriteMessage(PayloadConfig); } coreList_.WriteTo(output, _repeated_coreList_codec); + if (OtherServerApi.Length != 0) { + output.WriteRawTag(90); + output.WriteString(OtherServerApi); + } } public int CalculateSize() { @@ -1638,6 +1702,9 @@ namespace Grpc.Testing { size += 1 + pb::CodedOutputStream.ComputeMessageSize(PayloadConfig); } size += coreList_.CalculateSize(_repeated_coreList_codec); + if (OtherServerApi.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(OtherServerApi); + } return size; } @@ -1670,6 +1737,9 @@ namespace Grpc.Testing { PayloadConfig.MergeFrom(other.PayloadConfig); } coreList_.Add(other.coreList_); + if (other.OtherServerApi.Length != 0) { + OtherServerApi = other.OtherServerApi; + } } public void MergeFrom(pb::CodedInputStream input) { @@ -1714,6 +1784,10 @@ namespace Grpc.Testing { coreList_.AddEntriesFrom(input, _repeated_coreList_codec); break; } + case 90: { + OtherServerApi = input.ReadString(); + break; + } } } } diff --git a/src/csharp/Grpc.IntegrationTesting/Grpc.IntegrationTesting.csproj b/src/csharp/Grpc.IntegrationTesting/Grpc.IntegrationTesting.csproj index c16d0e5c5d05b5dc1a832dec5a1cfe99d44d0865..9685cf18377234eb2aa2417259ef50e20be852e8 100644 --- a/src/csharp/Grpc.IntegrationTesting/Grpc.IntegrationTesting.csproj +++ b/src/csharp/Grpc.IntegrationTesting/Grpc.IntegrationTesting.csproj @@ -113,6 +113,9 @@ <Compile Include="GeneratedClientTest.cs" /> <Compile Include="InterarrivalTimers.cs" /> <Compile Include="NUnitMain.cs" /> + <Compile Include="StressTestClient.cs" /> + <Compile Include="Metrics.cs" /> + <Compile Include="MetricsGrpc.cs" /> </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <ItemGroup> diff --git a/src/csharp/Grpc.IntegrationTesting/InteropClient.cs b/src/csharp/Grpc.IntegrationTesting/InteropClient.cs index 543651796038ef41979c2850c4fc1bc1fe70d7bf..b3b1abf1bcaaa71a96d16fdced4b3acb75aaea44 100644 --- a/src/csharp/Grpc.IntegrationTesting/InteropClient.cs +++ b/src/csharp/Grpc.IntegrationTesting/InteropClient.cs @@ -494,7 +494,8 @@ namespace Grpc.IntegrationTesting } var ex = Assert.ThrowsAsync<RpcException>(async () => await call.ResponseStream.MoveNext()); - Assert.AreEqual(StatusCode.DeadlineExceeded, ex.Status.StatusCode); + // We can't guarantee the status code always DeadlineExceeded. See issue #2685. + Assert.Contains(ex.Status.StatusCode, new[] { StatusCode.DeadlineExceeded, StatusCode.Internal }); } Console.WriteLine("Passed!"); } diff --git a/src/csharp/Grpc.IntegrationTesting/Metrics.cs b/src/csharp/Grpc.IntegrationTesting/Metrics.cs new file mode 100644 index 0000000000000000000000000000000000000000..3163949d32b99c87dc4c13acc1e3858aa0188d83 --- /dev/null +++ b/src/csharp/Grpc.IntegrationTesting/Metrics.cs @@ -0,0 +1,452 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: src/proto/grpc/testing/metrics.proto +#pragma warning disable 1591, 0612, 3021 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +namespace Grpc.Testing { + + /// <summary>Holder for reflection information generated from src/proto/grpc/testing/metrics.proto</summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public static partial class MetricsReflection { + + #region Descriptor + /// <summary>File descriptor for src/proto/grpc/testing/metrics.proto</summary> + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static MetricsReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "CiRzcmMvcHJvdG8vZ3JwYy90ZXN0aW5nL21ldHJpY3MucHJvdG8SDGdycGMu", + "dGVzdGluZyJsCg1HYXVnZVJlc3BvbnNlEgwKBG5hbWUYASABKAkSFAoKbG9u", + "Z192YWx1ZRgCIAEoA0gAEhYKDGRvdWJsZV92YWx1ZRgDIAEoAUgAEhYKDHN0", + "cmluZ192YWx1ZRgEIAEoCUgAQgcKBXZhbHVlIhwKDEdhdWdlUmVxdWVzdBIM", + "CgRuYW1lGAEgASgJIg4KDEVtcHR5TWVzc2FnZTKgAQoOTWV0cmljc1NlcnZp", + "Y2USSQoMR2V0QWxsR2F1Z2VzEhouZ3JwYy50ZXN0aW5nLkVtcHR5TWVzc2Fn", + "ZRobLmdycGMudGVzdGluZy5HYXVnZVJlc3BvbnNlMAESQwoIR2V0R2F1Z2US", + "Gi5ncnBjLnRlc3RpbmcuR2F1Z2VSZXF1ZXN0GhsuZ3JwYy50ZXN0aW5nLkdh", + "dWdlUmVzcG9uc2ViBnByb3RvMw==")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedCodeInfo(null, new pbr::GeneratedCodeInfo[] { + new pbr::GeneratedCodeInfo(typeof(global::Grpc.Testing.GaugeResponse), global::Grpc.Testing.GaugeResponse.Parser, new[]{ "Name", "LongValue", "DoubleValue", "StringValue" }, new[]{ "Value" }, null, null), + new pbr::GeneratedCodeInfo(typeof(global::Grpc.Testing.GaugeRequest), global::Grpc.Testing.GaugeRequest.Parser, new[]{ "Name" }, null, null, null), + new pbr::GeneratedCodeInfo(typeof(global::Grpc.Testing.EmptyMessage), global::Grpc.Testing.EmptyMessage.Parser, null, null, null, null) + })); + } + #endregion + + } + #region Messages + /// <summary> + /// Reponse message containing the gauge name and value + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public sealed partial class GaugeResponse : pb::IMessage<GaugeResponse> { + private static readonly pb::MessageParser<GaugeResponse> _parser = new pb::MessageParser<GaugeResponse>(() => new GaugeResponse()); + public static pb::MessageParser<GaugeResponse> Parser { get { return _parser; } } + + public static pbr::MessageDescriptor Descriptor { + get { return global::Grpc.Testing.MetricsReflection.Descriptor.MessageTypes[0]; } + } + + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + public GaugeResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + public GaugeResponse(GaugeResponse other) : this() { + name_ = other.name_; + switch (other.ValueCase) { + case ValueOneofCase.LongValue: + LongValue = other.LongValue; + break; + case ValueOneofCase.DoubleValue: + DoubleValue = other.DoubleValue; + break; + case ValueOneofCase.StringValue: + StringValue = other.StringValue; + break; + } + + } + + public GaugeResponse Clone() { + return new GaugeResponse(this); + } + + /// <summary>Field number for the "name" field.</summary> + public const int NameFieldNumber = 1; + private string name_ = ""; + public string Name { + get { return name_; } + set { + name_ = pb::Preconditions.CheckNotNull(value, "value"); + } + } + + /// <summary>Field number for the "long_value" field.</summary> + public const int LongValueFieldNumber = 2; + public long LongValue { + get { return valueCase_ == ValueOneofCase.LongValue ? (long) value_ : 0L; } + set { + value_ = value; + valueCase_ = ValueOneofCase.LongValue; + } + } + + /// <summary>Field number for the "double_value" field.</summary> + public const int DoubleValueFieldNumber = 3; + public double DoubleValue { + get { return valueCase_ == ValueOneofCase.DoubleValue ? (double) value_ : 0D; } + set { + value_ = value; + valueCase_ = ValueOneofCase.DoubleValue; + } + } + + /// <summary>Field number for the "string_value" field.</summary> + public const int StringValueFieldNumber = 4; + public string StringValue { + get { return valueCase_ == ValueOneofCase.StringValue ? (string) value_ : ""; } + set { + value_ = pb::Preconditions.CheckNotNull(value, "value"); + valueCase_ = ValueOneofCase.StringValue; + } + } + + private object value_; + /// <summary>Enum of possible cases for the "value" oneof.</summary> + public enum ValueOneofCase { + None = 0, + LongValue = 2, + DoubleValue = 3, + StringValue = 4, + } + private ValueOneofCase valueCase_ = ValueOneofCase.None; + public ValueOneofCase ValueCase { + get { return valueCase_; } + } + + public void ClearValue() { + valueCase_ = ValueOneofCase.None; + value_ = null; + } + + public override bool Equals(object other) { + return Equals(other as GaugeResponse); + } + + public bool Equals(GaugeResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Name != other.Name) return false; + if (LongValue != other.LongValue) return false; + if (DoubleValue != other.DoubleValue) return false; + if (StringValue != other.StringValue) return false; + if (ValueCase != other.ValueCase) return false; + return true; + } + + public override int GetHashCode() { + int hash = 1; + if (Name.Length != 0) hash ^= Name.GetHashCode(); + if (valueCase_ == ValueOneofCase.LongValue) hash ^= LongValue.GetHashCode(); + if (valueCase_ == ValueOneofCase.DoubleValue) hash ^= DoubleValue.GetHashCode(); + if (valueCase_ == ValueOneofCase.StringValue) hash ^= StringValue.GetHashCode(); + hash ^= (int) valueCase_; + return hash; + } + + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + public void WriteTo(pb::CodedOutputStream output) { + if (Name.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Name); + } + if (valueCase_ == ValueOneofCase.LongValue) { + output.WriteRawTag(16); + output.WriteInt64(LongValue); + } + if (valueCase_ == ValueOneofCase.DoubleValue) { + output.WriteRawTag(25); + output.WriteDouble(DoubleValue); + } + if (valueCase_ == ValueOneofCase.StringValue) { + output.WriteRawTag(34); + output.WriteString(StringValue); + } + } + + public int CalculateSize() { + int size = 0; + if (Name.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); + } + if (valueCase_ == ValueOneofCase.LongValue) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(LongValue); + } + if (valueCase_ == ValueOneofCase.DoubleValue) { + size += 1 + 8; + } + if (valueCase_ == ValueOneofCase.StringValue) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(StringValue); + } + return size; + } + + public void MergeFrom(GaugeResponse other) { + if (other == null) { + return; + } + if (other.Name.Length != 0) { + Name = other.Name; + } + switch (other.ValueCase) { + case ValueOneofCase.LongValue: + LongValue = other.LongValue; + break; + case ValueOneofCase.DoubleValue: + DoubleValue = other.DoubleValue; + break; + case ValueOneofCase.StringValue: + StringValue = other.StringValue; + break; + } + + } + + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + input.SkipLastField(); + break; + case 10: { + Name = input.ReadString(); + break; + } + case 16: { + LongValue = input.ReadInt64(); + break; + } + case 25: { + DoubleValue = input.ReadDouble(); + break; + } + case 34: { + StringValue = input.ReadString(); + break; + } + } + } + } + + } + + /// <summary> + /// Request message containing the gauge name + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public sealed partial class GaugeRequest : pb::IMessage<GaugeRequest> { + private static readonly pb::MessageParser<GaugeRequest> _parser = new pb::MessageParser<GaugeRequest>(() => new GaugeRequest()); + public static pb::MessageParser<GaugeRequest> Parser { get { return _parser; } } + + public static pbr::MessageDescriptor Descriptor { + get { return global::Grpc.Testing.MetricsReflection.Descriptor.MessageTypes[1]; } + } + + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + public GaugeRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + public GaugeRequest(GaugeRequest other) : this() { + name_ = other.name_; + } + + public GaugeRequest Clone() { + return new GaugeRequest(this); + } + + /// <summary>Field number for the "name" field.</summary> + public const int NameFieldNumber = 1; + private string name_ = ""; + public string Name { + get { return name_; } + set { + name_ = pb::Preconditions.CheckNotNull(value, "value"); + } + } + + public override bool Equals(object other) { + return Equals(other as GaugeRequest); + } + + public bool Equals(GaugeRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Name != other.Name) return false; + return true; + } + + public override int GetHashCode() { + int hash = 1; + if (Name.Length != 0) hash ^= Name.GetHashCode(); + return hash; + } + + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + public void WriteTo(pb::CodedOutputStream output) { + if (Name.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Name); + } + } + + public int CalculateSize() { + int size = 0; + if (Name.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); + } + return size; + } + + public void MergeFrom(GaugeRequest other) { + if (other == null) { + return; + } + if (other.Name.Length != 0) { + Name = other.Name; + } + } + + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + input.SkipLastField(); + break; + case 10: { + Name = input.ReadString(); + break; + } + } + } + } + + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public sealed partial class EmptyMessage : pb::IMessage<EmptyMessage> { + private static readonly pb::MessageParser<EmptyMessage> _parser = new pb::MessageParser<EmptyMessage>(() => new EmptyMessage()); + public static pb::MessageParser<EmptyMessage> Parser { get { return _parser; } } + + public static pbr::MessageDescriptor Descriptor { + get { return global::Grpc.Testing.MetricsReflection.Descriptor.MessageTypes[2]; } + } + + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + public EmptyMessage() { + OnConstruction(); + } + + partial void OnConstruction(); + + public EmptyMessage(EmptyMessage other) : this() { + } + + public EmptyMessage Clone() { + return new EmptyMessage(this); + } + + public override bool Equals(object other) { + return Equals(other as EmptyMessage); + } + + public bool Equals(EmptyMessage other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return true; + } + + public override int GetHashCode() { + int hash = 1; + return hash; + } + + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + public void WriteTo(pb::CodedOutputStream output) { + } + + public int CalculateSize() { + int size = 0; + return size; + } + + public void MergeFrom(EmptyMessage other) { + if (other == null) { + return; + } + } + + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + input.SkipLastField(); + break; + } + } + } + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/src/csharp/Grpc.IntegrationTesting/MetricsGrpc.cs b/src/csharp/Grpc.IntegrationTesting/MetricsGrpc.cs new file mode 100644 index 0000000000000000000000000000000000000000..aa4f1c5c3ec5df3e27eae6edb89015bcb2107bae --- /dev/null +++ b/src/csharp/Grpc.IntegrationTesting/MetricsGrpc.cs @@ -0,0 +1,242 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: src/proto/grpc/testing/metrics.proto +// Original file comments: +// 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. +// +// Contains the definitions for a metrics service and the type of metrics +// exposed by the service. +// +// Currently, 'Gauge' (i.e a metric that represents the measured value of +// something at an instant of time) is the only metric type supported by the +// service. +#region Designer generated code + +using System; +using System.Threading; +using System.Threading.Tasks; +using Grpc.Core; + +namespace Grpc.Testing { + public static class MetricsService + { + static readonly string __ServiceName = "grpc.testing.MetricsService"; + + static readonly Marshaller<global::Grpc.Testing.EmptyMessage> __Marshaller_EmptyMessage = Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::Grpc.Testing.EmptyMessage.Parser.ParseFrom); + static readonly Marshaller<global::Grpc.Testing.GaugeResponse> __Marshaller_GaugeResponse = Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::Grpc.Testing.GaugeResponse.Parser.ParseFrom); + static readonly Marshaller<global::Grpc.Testing.GaugeRequest> __Marshaller_GaugeRequest = Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::Grpc.Testing.GaugeRequest.Parser.ParseFrom); + + static readonly Method<global::Grpc.Testing.EmptyMessage, global::Grpc.Testing.GaugeResponse> __Method_GetAllGauges = new Method<global::Grpc.Testing.EmptyMessage, global::Grpc.Testing.GaugeResponse>( + MethodType.ServerStreaming, + __ServiceName, + "GetAllGauges", + __Marshaller_EmptyMessage, + __Marshaller_GaugeResponse); + + static readonly Method<global::Grpc.Testing.GaugeRequest, global::Grpc.Testing.GaugeResponse> __Method_GetGauge = new Method<global::Grpc.Testing.GaugeRequest, global::Grpc.Testing.GaugeResponse>( + MethodType.Unary, + __ServiceName, + "GetGauge", + __Marshaller_GaugeRequest, + __Marshaller_GaugeResponse); + + /// <summary>Service descriptor</summary> + public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor + { + get { return global::Grpc.Testing.MetricsReflection.Descriptor.Services[0]; } + } + + /// <summary>Client for MetricsService</summary> + [System.Obsolete("Client side interfaced will be removed in the next release. Use client class directly.")] + public interface IMetricsServiceClient + { + /// <summary> + /// Returns the values of all the gauges that are currently being maintained by + /// the service + /// </summary> + AsyncServerStreamingCall<global::Grpc.Testing.GaugeResponse> GetAllGauges(global::Grpc.Testing.EmptyMessage request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// Returns the values of all the gauges that are currently being maintained by + /// the service + /// </summary> + AsyncServerStreamingCall<global::Grpc.Testing.GaugeResponse> GetAllGauges(global::Grpc.Testing.EmptyMessage request, CallOptions options); + /// <summary> + /// Returns the value of one gauge + /// </summary> + global::Grpc.Testing.GaugeResponse GetGauge(global::Grpc.Testing.GaugeRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// Returns the value of one gauge + /// </summary> + global::Grpc.Testing.GaugeResponse GetGauge(global::Grpc.Testing.GaugeRequest request, CallOptions options); + /// <summary> + /// Returns the value of one gauge + /// </summary> + AsyncUnaryCall<global::Grpc.Testing.GaugeResponse> GetGaugeAsync(global::Grpc.Testing.GaugeRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// Returns the value of one gauge + /// </summary> + AsyncUnaryCall<global::Grpc.Testing.GaugeResponse> GetGaugeAsync(global::Grpc.Testing.GaugeRequest request, CallOptions options); + } + + /// <summary>Interface of server-side implementations of MetricsService</summary> + [System.Obsolete("Service implementations should inherit from the generated abstract base class instead.")] + public interface IMetricsService + { + /// <summary> + /// Returns the values of all the gauges that are currently being maintained by + /// the service + /// </summary> + Task GetAllGauges(global::Grpc.Testing.EmptyMessage request, IServerStreamWriter<global::Grpc.Testing.GaugeResponse> responseStream, ServerCallContext context); + /// <summary> + /// Returns the value of one gauge + /// </summary> + Task<global::Grpc.Testing.GaugeResponse> GetGauge(global::Grpc.Testing.GaugeRequest request, ServerCallContext context); + } + + /// <summary>Base class for server-side implementations of MetricsService</summary> + public abstract class MetricsServiceBase + { + /// <summary> + /// Returns the values of all the gauges that are currently being maintained by + /// the service + /// </summary> + public virtual Task GetAllGauges(global::Grpc.Testing.EmptyMessage request, IServerStreamWriter<global::Grpc.Testing.GaugeResponse> responseStream, ServerCallContext context) + { + throw new RpcException(new Status(StatusCode.Unimplemented, "")); + } + + /// <summary> + /// Returns the value of one gauge + /// </summary> + public virtual Task<global::Grpc.Testing.GaugeResponse> GetGauge(global::Grpc.Testing.GaugeRequest request, ServerCallContext context) + { + throw new RpcException(new Status(StatusCode.Unimplemented, "")); + } + + } + + /// <summary>Client for MetricsService</summary> + #pragma warning disable 0618 + public class MetricsServiceClient : ClientBase<MetricsServiceClient>, IMetricsServiceClient + #pragma warning restore 0618 + { + public MetricsServiceClient(Channel channel) : base(channel) + { + } + public MetricsServiceClient(CallInvoker callInvoker) : base(callInvoker) + { + } + ///<summary>Protected parameterless constructor to allow creation of test doubles.</summary> + protected MetricsServiceClient() : base() + { + } + ///<summary>Protected constructor to allow creation of configured clients.</summary> + protected MetricsServiceClient(ClientBaseConfiguration configuration) : base(configuration) + { + } + + /// <summary> + /// Returns the values of all the gauges that are currently being maintained by + /// the service + /// </summary> + public virtual AsyncServerStreamingCall<global::Grpc.Testing.GaugeResponse> GetAllGauges(global::Grpc.Testing.EmptyMessage request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return GetAllGauges(request, new CallOptions(headers, deadline, cancellationToken)); + } + /// <summary> + /// Returns the values of all the gauges that are currently being maintained by + /// the service + /// </summary> + public virtual AsyncServerStreamingCall<global::Grpc.Testing.GaugeResponse> GetAllGauges(global::Grpc.Testing.EmptyMessage request, CallOptions options) + { + return CallInvoker.AsyncServerStreamingCall(__Method_GetAllGauges, null, options, request); + } + /// <summary> + /// Returns the value of one gauge + /// </summary> + public virtual global::Grpc.Testing.GaugeResponse GetGauge(global::Grpc.Testing.GaugeRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return GetGauge(request, new CallOptions(headers, deadline, cancellationToken)); + } + /// <summary> + /// Returns the value of one gauge + /// </summary> + public virtual global::Grpc.Testing.GaugeResponse GetGauge(global::Grpc.Testing.GaugeRequest request, CallOptions options) + { + return CallInvoker.BlockingUnaryCall(__Method_GetGauge, null, options, request); + } + /// <summary> + /// Returns the value of one gauge + /// </summary> + public virtual AsyncUnaryCall<global::Grpc.Testing.GaugeResponse> GetGaugeAsync(global::Grpc.Testing.GaugeRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return GetGaugeAsync(request, new CallOptions(headers, deadline, cancellationToken)); + } + /// <summary> + /// Returns the value of one gauge + /// </summary> + public virtual AsyncUnaryCall<global::Grpc.Testing.GaugeResponse> GetGaugeAsync(global::Grpc.Testing.GaugeRequest request, CallOptions options) + { + return CallInvoker.AsyncUnaryCall(__Method_GetGauge, null, options, request); + } + protected override MetricsServiceClient NewInstance(ClientBaseConfiguration configuration) + { + return new MetricsServiceClient(configuration); + } + } + + /// <summary>Creates a new client for MetricsService</summary> + public static MetricsServiceClient NewClient(Channel channel) + { + return new MetricsServiceClient(channel); + } + + /// <summary>Creates service definition that can be registered with a server</summary> + #pragma warning disable 0618 + public static ServerServiceDefinition BindService(IMetricsService serviceImpl) + #pragma warning restore 0618 + { + return ServerServiceDefinition.CreateBuilder(__ServiceName) + .AddMethod(__Method_GetAllGauges, serviceImpl.GetAllGauges) + .AddMethod(__Method_GetGauge, serviceImpl.GetGauge).Build(); + } + + /// <summary>Creates service definition that can be registered with a server</summary> + #pragma warning disable 0618 + public static ServerServiceDefinition BindService(MetricsServiceBase serviceImpl) + #pragma warning restore 0618 + { + return ServerServiceDefinition.CreateBuilder(__ServiceName) + .AddMethod(__Method_GetAllGauges, serviceImpl.GetAllGauges) + .AddMethod(__Method_GetGauge, serviceImpl.GetGauge).Build(); + } + + } +} +#endregion diff --git a/src/csharp/Grpc.IntegrationTesting/ServicesGrpc.cs b/src/csharp/Grpc.IntegrationTesting/ServicesGrpc.cs index 46b16cf202db82fd73f9df6ea455bcb0243dd55a..42bf5e0b58222e93fe32138e5e9f6e3bd96cd3a2 100644 --- a/src/csharp/Grpc.IntegrationTesting/ServicesGrpc.cs +++ b/src/csharp/Grpc.IntegrationTesting/ServicesGrpc.cs @@ -1,5 +1,37 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: src/proto/grpc/testing/services.proto +// Original file comments: +// Copyright 2015, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// An integration test service that covers all the method signature permutations +// of unary/streaming requests/responses. #region Designer generated code using System; @@ -29,40 +61,80 @@ namespace Grpc.Testing { __Marshaller_SimpleRequest, __Marshaller_SimpleResponse); - // service descriptor + /// <summary>Service descriptor</summary> public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor { get { return global::Grpc.Testing.ServicesReflection.Descriptor.Services[0]; } } - // client interface + /// <summary>Client for BenchmarkService</summary> [System.Obsolete("Client side interfaced will be removed in the next release. Use client class directly.")] public interface IBenchmarkServiceClient { + /// <summary> + /// One request followed by one response. + /// The server returns the client payload as-is. + /// </summary> global::Grpc.Testing.SimpleResponse UnaryCall(global::Grpc.Testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// One request followed by one response. + /// The server returns the client payload as-is. + /// </summary> global::Grpc.Testing.SimpleResponse UnaryCall(global::Grpc.Testing.SimpleRequest request, CallOptions options); + /// <summary> + /// One request followed by one response. + /// The server returns the client payload as-is. + /// </summary> AsyncUnaryCall<global::Grpc.Testing.SimpleResponse> UnaryCallAsync(global::Grpc.Testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// One request followed by one response. + /// The server returns the client payload as-is. + /// </summary> AsyncUnaryCall<global::Grpc.Testing.SimpleResponse> UnaryCallAsync(global::Grpc.Testing.SimpleRequest request, CallOptions options); + /// <summary> + /// One request followed by one response. + /// The server returns the client payload as-is. + /// </summary> AsyncDuplexStreamingCall<global::Grpc.Testing.SimpleRequest, global::Grpc.Testing.SimpleResponse> StreamingCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// One request followed by one response. + /// The server returns the client payload as-is. + /// </summary> AsyncDuplexStreamingCall<global::Grpc.Testing.SimpleRequest, global::Grpc.Testing.SimpleResponse> StreamingCall(CallOptions options); } - // server-side interface + /// <summary>Interface of server-side implementations of BenchmarkService</summary> [System.Obsolete("Service implementations should inherit from the generated abstract base class instead.")] public interface IBenchmarkService { + /// <summary> + /// One request followed by one response. + /// The server returns the client payload as-is. + /// </summary> Task<global::Grpc.Testing.SimpleResponse> UnaryCall(global::Grpc.Testing.SimpleRequest request, ServerCallContext context); + /// <summary> + /// One request followed by one response. + /// The server returns the client payload as-is. + /// </summary> Task StreamingCall(IAsyncStreamReader<global::Grpc.Testing.SimpleRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.SimpleResponse> responseStream, ServerCallContext context); } - // server-side abstract class + /// <summary>Base class for server-side implementations of BenchmarkService</summary> public abstract class BenchmarkServiceBase { + /// <summary> + /// One request followed by one response. + /// The server returns the client payload as-is. + /// </summary> public virtual Task<global::Grpc.Testing.SimpleResponse> UnaryCall(global::Grpc.Testing.SimpleRequest request, ServerCallContext context) { throw new RpcException(new Status(StatusCode.Unimplemented, "")); } + /// <summary> + /// One request followed by one response. + /// The server returns the client payload as-is. + /// </summary> public virtual Task StreamingCall(IAsyncStreamReader<global::Grpc.Testing.SimpleRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.SimpleResponse> responseStream, ServerCallContext context) { throw new RpcException(new Status(StatusCode.Unimplemented, "")); @@ -70,8 +142,10 @@ namespace Grpc.Testing { } - // client stub + /// <summary>Client for BenchmarkService</summary> + #pragma warning disable 0618 public class BenchmarkServiceClient : ClientBase<BenchmarkServiceClient>, IBenchmarkServiceClient + #pragma warning restore 0618 { public BenchmarkServiceClient(Channel channel) : base(channel) { @@ -88,26 +162,50 @@ namespace Grpc.Testing { { } + /// <summary> + /// One request followed by one response. + /// The server returns the client payload as-is. + /// </summary> public virtual global::Grpc.Testing.SimpleResponse UnaryCall(global::Grpc.Testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return UnaryCall(request, new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// One request followed by one response. + /// The server returns the client payload as-is. + /// </summary> public virtual global::Grpc.Testing.SimpleResponse UnaryCall(global::Grpc.Testing.SimpleRequest request, CallOptions options) { return CallInvoker.BlockingUnaryCall(__Method_UnaryCall, null, options, request); } + /// <summary> + /// One request followed by one response. + /// The server returns the client payload as-is. + /// </summary> public virtual AsyncUnaryCall<global::Grpc.Testing.SimpleResponse> UnaryCallAsync(global::Grpc.Testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return UnaryCallAsync(request, new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// One request followed by one response. + /// The server returns the client payload as-is. + /// </summary> public virtual AsyncUnaryCall<global::Grpc.Testing.SimpleResponse> UnaryCallAsync(global::Grpc.Testing.SimpleRequest request, CallOptions options) { return CallInvoker.AsyncUnaryCall(__Method_UnaryCall, null, options, request); } + /// <summary> + /// One request followed by one response. + /// The server returns the client payload as-is. + /// </summary> public virtual AsyncDuplexStreamingCall<global::Grpc.Testing.SimpleRequest, global::Grpc.Testing.SimpleResponse> StreamingCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return StreamingCall(new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// One request followed by one response. + /// The server returns the client payload as-is. + /// </summary> public virtual AsyncDuplexStreamingCall<global::Grpc.Testing.SimpleRequest, global::Grpc.Testing.SimpleResponse> StreamingCall(CallOptions options) { return CallInvoker.AsyncDuplexStreamingCall(__Method_StreamingCall, null, options); @@ -118,28 +216,32 @@ namespace Grpc.Testing { } } - // creates service definition that can be registered with a server + /// <summary>Creates a new client for BenchmarkService</summary> + public static BenchmarkServiceClient NewClient(Channel channel) + { + return new BenchmarkServiceClient(channel); + } + + /// <summary>Creates service definition that can be registered with a server</summary> + #pragma warning disable 0618 public static ServerServiceDefinition BindService(IBenchmarkService serviceImpl) + #pragma warning restore 0618 { return ServerServiceDefinition.CreateBuilder(__ServiceName) .AddMethod(__Method_UnaryCall, serviceImpl.UnaryCall) .AddMethod(__Method_StreamingCall, serviceImpl.StreamingCall).Build(); } - // creates service definition that can be registered with a server + /// <summary>Creates service definition that can be registered with a server</summary> + #pragma warning disable 0618 public static ServerServiceDefinition BindService(BenchmarkServiceBase serviceImpl) + #pragma warning restore 0618 { return ServerServiceDefinition.CreateBuilder(__ServiceName) .AddMethod(__Method_UnaryCall, serviceImpl.UnaryCall) .AddMethod(__Method_StreamingCall, serviceImpl.StreamingCall).Build(); } - // creates a new client - public static BenchmarkServiceClient NewClient(Channel channel) - { - return new BenchmarkServiceClient(channel); - } - } public static class WorkerService { @@ -181,58 +283,158 @@ namespace Grpc.Testing { __Marshaller_Void, __Marshaller_Void); - // service descriptor + /// <summary>Service descriptor</summary> public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor { get { return global::Grpc.Testing.ServicesReflection.Descriptor.Services[1]; } } - // client interface + /// <summary>Client for WorkerService</summary> [System.Obsolete("Client side interfaced will be removed in the next release. Use client class directly.")] public interface IWorkerServiceClient { + /// <summary> + /// Start server with specified workload. + /// First request sent specifies the ServerConfig followed by ServerStatus + /// response. After that, a "Mark" can be sent anytime to request the latest + /// stats. Closing the stream will initiate shutdown of the test server + /// and once the shutdown has finished, the OK status is sent to terminate + /// this RPC. + /// </summary> AsyncDuplexStreamingCall<global::Grpc.Testing.ServerArgs, global::Grpc.Testing.ServerStatus> RunServer(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// Start server with specified workload. + /// First request sent specifies the ServerConfig followed by ServerStatus + /// response. After that, a "Mark" can be sent anytime to request the latest + /// stats. Closing the stream will initiate shutdown of the test server + /// and once the shutdown has finished, the OK status is sent to terminate + /// this RPC. + /// </summary> AsyncDuplexStreamingCall<global::Grpc.Testing.ServerArgs, global::Grpc.Testing.ServerStatus> RunServer(CallOptions options); + /// <summary> + /// Start client with specified workload. + /// First request sent specifies the ClientConfig followed by ClientStatus + /// response. After that, a "Mark" can be sent anytime to request the latest + /// stats. Closing the stream will initiate shutdown of the test client + /// and once the shutdown has finished, the OK status is sent to terminate + /// this RPC. + /// </summary> AsyncDuplexStreamingCall<global::Grpc.Testing.ClientArgs, global::Grpc.Testing.ClientStatus> RunClient(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// Start client with specified workload. + /// First request sent specifies the ClientConfig followed by ClientStatus + /// response. After that, a "Mark" can be sent anytime to request the latest + /// stats. Closing the stream will initiate shutdown of the test client + /// and once the shutdown has finished, the OK status is sent to terminate + /// this RPC. + /// </summary> AsyncDuplexStreamingCall<global::Grpc.Testing.ClientArgs, global::Grpc.Testing.ClientStatus> RunClient(CallOptions options); + /// <summary> + /// Just return the core count - unary call + /// </summary> global::Grpc.Testing.CoreResponse CoreCount(global::Grpc.Testing.CoreRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// Just return the core count - unary call + /// </summary> global::Grpc.Testing.CoreResponse CoreCount(global::Grpc.Testing.CoreRequest request, CallOptions options); + /// <summary> + /// Just return the core count - unary call + /// </summary> AsyncUnaryCall<global::Grpc.Testing.CoreResponse> CoreCountAsync(global::Grpc.Testing.CoreRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// Just return the core count - unary call + /// </summary> AsyncUnaryCall<global::Grpc.Testing.CoreResponse> CoreCountAsync(global::Grpc.Testing.CoreRequest request, CallOptions options); + /// <summary> + /// Quit this worker + /// </summary> global::Grpc.Testing.Void QuitWorker(global::Grpc.Testing.Void request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// Quit this worker + /// </summary> global::Grpc.Testing.Void QuitWorker(global::Grpc.Testing.Void request, CallOptions options); + /// <summary> + /// Quit this worker + /// </summary> AsyncUnaryCall<global::Grpc.Testing.Void> QuitWorkerAsync(global::Grpc.Testing.Void request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// Quit this worker + /// </summary> AsyncUnaryCall<global::Grpc.Testing.Void> QuitWorkerAsync(global::Grpc.Testing.Void request, CallOptions options); } - // server-side interface + /// <summary>Interface of server-side implementations of WorkerService</summary> [System.Obsolete("Service implementations should inherit from the generated abstract base class instead.")] public interface IWorkerService { + /// <summary> + /// Start server with specified workload. + /// First request sent specifies the ServerConfig followed by ServerStatus + /// response. After that, a "Mark" can be sent anytime to request the latest + /// stats. Closing the stream will initiate shutdown of the test server + /// and once the shutdown has finished, the OK status is sent to terminate + /// this RPC. + /// </summary> Task RunServer(IAsyncStreamReader<global::Grpc.Testing.ServerArgs> requestStream, IServerStreamWriter<global::Grpc.Testing.ServerStatus> responseStream, ServerCallContext context); + /// <summary> + /// Start client with specified workload. + /// First request sent specifies the ClientConfig followed by ClientStatus + /// response. After that, a "Mark" can be sent anytime to request the latest + /// stats. Closing the stream will initiate shutdown of the test client + /// and once the shutdown has finished, the OK status is sent to terminate + /// this RPC. + /// </summary> Task RunClient(IAsyncStreamReader<global::Grpc.Testing.ClientArgs> requestStream, IServerStreamWriter<global::Grpc.Testing.ClientStatus> responseStream, ServerCallContext context); + /// <summary> + /// Just return the core count - unary call + /// </summary> Task<global::Grpc.Testing.CoreResponse> CoreCount(global::Grpc.Testing.CoreRequest request, ServerCallContext context); + /// <summary> + /// Quit this worker + /// </summary> Task<global::Grpc.Testing.Void> QuitWorker(global::Grpc.Testing.Void request, ServerCallContext context); } - // server-side abstract class + /// <summary>Base class for server-side implementations of WorkerService</summary> public abstract class WorkerServiceBase { + /// <summary> + /// Start server with specified workload. + /// First request sent specifies the ServerConfig followed by ServerStatus + /// response. After that, a "Mark" can be sent anytime to request the latest + /// stats. Closing the stream will initiate shutdown of the test server + /// and once the shutdown has finished, the OK status is sent to terminate + /// this RPC. + /// </summary> public virtual Task RunServer(IAsyncStreamReader<global::Grpc.Testing.ServerArgs> requestStream, IServerStreamWriter<global::Grpc.Testing.ServerStatus> responseStream, ServerCallContext context) { throw new RpcException(new Status(StatusCode.Unimplemented, "")); } + /// <summary> + /// Start client with specified workload. + /// First request sent specifies the ClientConfig followed by ClientStatus + /// response. After that, a "Mark" can be sent anytime to request the latest + /// stats. Closing the stream will initiate shutdown of the test client + /// and once the shutdown has finished, the OK status is sent to terminate + /// this RPC. + /// </summary> public virtual Task RunClient(IAsyncStreamReader<global::Grpc.Testing.ClientArgs> requestStream, IServerStreamWriter<global::Grpc.Testing.ClientStatus> responseStream, ServerCallContext context) { throw new RpcException(new Status(StatusCode.Unimplemented, "")); } + /// <summary> + /// Just return the core count - unary call + /// </summary> public virtual Task<global::Grpc.Testing.CoreResponse> CoreCount(global::Grpc.Testing.CoreRequest request, ServerCallContext context) { throw new RpcException(new Status(StatusCode.Unimplemented, "")); } + /// <summary> + /// Quit this worker + /// </summary> public virtual Task<global::Grpc.Testing.Void> QuitWorker(global::Grpc.Testing.Void request, ServerCallContext context) { throw new RpcException(new Status(StatusCode.Unimplemented, "")); @@ -240,8 +442,10 @@ namespace Grpc.Testing { } - // client stub + /// <summary>Client for WorkerService</summary> + #pragma warning disable 0618 public class WorkerServiceClient : ClientBase<WorkerServiceClient>, IWorkerServiceClient + #pragma warning restore 0618 { public WorkerServiceClient(Channel channel) : base(channel) { @@ -258,50 +462,106 @@ namespace Grpc.Testing { { } + /// <summary> + /// Start server with specified workload. + /// First request sent specifies the ServerConfig followed by ServerStatus + /// response. After that, a "Mark" can be sent anytime to request the latest + /// stats. Closing the stream will initiate shutdown of the test server + /// and once the shutdown has finished, the OK status is sent to terminate + /// this RPC. + /// </summary> public virtual AsyncDuplexStreamingCall<global::Grpc.Testing.ServerArgs, global::Grpc.Testing.ServerStatus> RunServer(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return RunServer(new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// Start server with specified workload. + /// First request sent specifies the ServerConfig followed by ServerStatus + /// response. After that, a "Mark" can be sent anytime to request the latest + /// stats. Closing the stream will initiate shutdown of the test server + /// and once the shutdown has finished, the OK status is sent to terminate + /// this RPC. + /// </summary> public virtual AsyncDuplexStreamingCall<global::Grpc.Testing.ServerArgs, global::Grpc.Testing.ServerStatus> RunServer(CallOptions options) { return CallInvoker.AsyncDuplexStreamingCall(__Method_RunServer, null, options); } + /// <summary> + /// Start client with specified workload. + /// First request sent specifies the ClientConfig followed by ClientStatus + /// response. After that, a "Mark" can be sent anytime to request the latest + /// stats. Closing the stream will initiate shutdown of the test client + /// and once the shutdown has finished, the OK status is sent to terminate + /// this RPC. + /// </summary> public virtual AsyncDuplexStreamingCall<global::Grpc.Testing.ClientArgs, global::Grpc.Testing.ClientStatus> RunClient(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return RunClient(new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// Start client with specified workload. + /// First request sent specifies the ClientConfig followed by ClientStatus + /// response. After that, a "Mark" can be sent anytime to request the latest + /// stats. Closing the stream will initiate shutdown of the test client + /// and once the shutdown has finished, the OK status is sent to terminate + /// this RPC. + /// </summary> public virtual AsyncDuplexStreamingCall<global::Grpc.Testing.ClientArgs, global::Grpc.Testing.ClientStatus> RunClient(CallOptions options) { return CallInvoker.AsyncDuplexStreamingCall(__Method_RunClient, null, options); } + /// <summary> + /// Just return the core count - unary call + /// </summary> public virtual global::Grpc.Testing.CoreResponse CoreCount(global::Grpc.Testing.CoreRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return CoreCount(request, new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// Just return the core count - unary call + /// </summary> public virtual global::Grpc.Testing.CoreResponse CoreCount(global::Grpc.Testing.CoreRequest request, CallOptions options) { return CallInvoker.BlockingUnaryCall(__Method_CoreCount, null, options, request); } + /// <summary> + /// Just return the core count - unary call + /// </summary> public virtual AsyncUnaryCall<global::Grpc.Testing.CoreResponse> CoreCountAsync(global::Grpc.Testing.CoreRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return CoreCountAsync(request, new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// Just return the core count - unary call + /// </summary> public virtual AsyncUnaryCall<global::Grpc.Testing.CoreResponse> CoreCountAsync(global::Grpc.Testing.CoreRequest request, CallOptions options) { return CallInvoker.AsyncUnaryCall(__Method_CoreCount, null, options, request); } + /// <summary> + /// Quit this worker + /// </summary> public virtual global::Grpc.Testing.Void QuitWorker(global::Grpc.Testing.Void request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return QuitWorker(request, new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// Quit this worker + /// </summary> public virtual global::Grpc.Testing.Void QuitWorker(global::Grpc.Testing.Void request, CallOptions options) { return CallInvoker.BlockingUnaryCall(__Method_QuitWorker, null, options, request); } + /// <summary> + /// Quit this worker + /// </summary> public virtual AsyncUnaryCall<global::Grpc.Testing.Void> QuitWorkerAsync(global::Grpc.Testing.Void request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return QuitWorkerAsync(request, new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// Quit this worker + /// </summary> public virtual AsyncUnaryCall<global::Grpc.Testing.Void> QuitWorkerAsync(global::Grpc.Testing.Void request, CallOptions options) { return CallInvoker.AsyncUnaryCall(__Method_QuitWorker, null, options, request); @@ -312,8 +572,16 @@ namespace Grpc.Testing { } } - // creates service definition that can be registered with a server + /// <summary>Creates a new client for WorkerService</summary> + public static WorkerServiceClient NewClient(Channel channel) + { + return new WorkerServiceClient(channel); + } + + /// <summary>Creates service definition that can be registered with a server</summary> + #pragma warning disable 0618 public static ServerServiceDefinition BindService(IWorkerService serviceImpl) + #pragma warning restore 0618 { return ServerServiceDefinition.CreateBuilder(__ServiceName) .AddMethod(__Method_RunServer, serviceImpl.RunServer) @@ -322,8 +590,10 @@ namespace Grpc.Testing { .AddMethod(__Method_QuitWorker, serviceImpl.QuitWorker).Build(); } - // creates service definition that can be registered with a server + /// <summary>Creates service definition that can be registered with a server</summary> + #pragma warning disable 0618 public static ServerServiceDefinition BindService(WorkerServiceBase serviceImpl) + #pragma warning restore 0618 { return ServerServiceDefinition.CreateBuilder(__ServiceName) .AddMethod(__Method_RunServer, serviceImpl.RunServer) @@ -332,12 +602,6 @@ namespace Grpc.Testing { .AddMethod(__Method_QuitWorker, serviceImpl.QuitWorker).Build(); } - // creates a new client - public static WorkerServiceClient NewClient(Channel channel) - { - return new WorkerServiceClient(channel); - } - } } #endregion diff --git a/src/csharp/Grpc.IntegrationTesting/StressTestClient.cs b/src/csharp/Grpc.IntegrationTesting/StressTestClient.cs new file mode 100644 index 0000000000000000000000000000000000000000..8db691cb048b1767542d18318c0705af4e414c25 --- /dev/null +++ b/src/csharp/Grpc.IntegrationTesting/StressTestClient.cs @@ -0,0 +1,318 @@ +#region Copyright notice and license + +// Copyright 2015-2016, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#endregion + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +using CommandLine; +using CommandLine.Text; +using Grpc.Core; +using Grpc.Core.Logging; +using Grpc.Core.Utils; +using Grpc.Testing; + +namespace Grpc.IntegrationTesting +{ + public class StressTestClient + { + static readonly ILogger Logger = GrpcEnvironment.Logger.ForType<StressTestClient>(); + const double SecondsToNanos = 1e9; + + private class ClientOptions + { + [Option("server_addresses", DefaultValue = "localhost:8080")] + public string ServerAddresses { get; set; } + + [Option("test_cases", DefaultValue = "large_unary:100")] + public string TestCases { get; set; } + + [Option("test_duration_secs", DefaultValue = -1)] + public int TestDurationSecs { get; set; } + + [Option("num_channels_per_server", DefaultValue = 1)] + public int NumChannelsPerServer { get; set; } + + [Option("num_stubs_per_channel", DefaultValue = 1)] + public int NumStubsPerChannel { get; set; } + + [Option("metrics_port", DefaultValue = 8081)] + public int MetricsPort { get; set; } + + [HelpOption] + public string GetUsage() + { + var help = new HelpText + { + Heading = "gRPC C# stress test client", + AddDashesToOption = true + }; + help.AddPreOptionsLine("Usage:"); + help.AddOptions(this); + return help; + } + } + + ClientOptions options; + List<string> serverAddresses; + Dictionary<string, int> weightedTestCases; + WeightedRandomGenerator testCaseGenerator; + + // cancellation will be emitted once test_duration_secs has elapsed. + CancellationTokenSource finishedTokenSource = new CancellationTokenSource(); + Histogram histogram = new Histogram(0.01, 60 * SecondsToNanos); + + private StressTestClient(ClientOptions options, List<string> serverAddresses, Dictionary<string, int> weightedTestCases) + { + this.options = options; + this.serverAddresses = serverAddresses; + this.weightedTestCases = weightedTestCases; + this.testCaseGenerator = new WeightedRandomGenerator(this.weightedTestCases); + } + + public static void Run(string[] args) + { + var options = new ClientOptions(); + if (!Parser.Default.ParseArguments(args, options)) + { + Environment.Exit(1); + } + + GrpcPreconditions.CheckArgument(options.NumChannelsPerServer > 0); + GrpcPreconditions.CheckArgument(options.NumStubsPerChannel > 0); + + var serverAddresses = options.ServerAddresses.Split(','); + GrpcPreconditions.CheckArgument(serverAddresses.Length > 0, "You need to provide at least one server address"); + + var testCases = ParseWeightedTestCases(options.TestCases); + GrpcPreconditions.CheckArgument(testCases.Count > 0, "You need to provide at least one test case"); + + var interopClient = new StressTestClient(options, serverAddresses.ToList(), testCases); + interopClient.Run().Wait(); + } + + async Task Run() + { + var metricsServer = new Server() + { + Services = { MetricsService.BindService(new MetricsServiceImpl(histogram)) }, + Ports = { { "[::]", options.MetricsPort, ServerCredentials.Insecure } } + }; + metricsServer.Start(); + + if (options.TestDurationSecs >= 0) + { + finishedTokenSource.CancelAfter(TimeSpan.FromSeconds(options.TestDurationSecs)); + } + + var tasks = new List<Task>(); + var channels = new List<Channel>(); + foreach (var serverAddress in serverAddresses) + { + for (int i = 0; i < options.NumChannelsPerServer; i++) + { + var channel = new Channel(serverAddress, ChannelCredentials.Insecure); + channels.Add(channel); + for (int j = 0; j < options.NumStubsPerChannel; j++) + { + var client = TestService.NewClient(channel); + var task = Task.Factory.StartNew(() => RunBodyAsync(client).GetAwaiter().GetResult(), + TaskCreationOptions.LongRunning); + tasks.Add(task); + } + } + } + await Task.WhenAll(tasks); + + foreach (var channel in channels) + { + await channel.ShutdownAsync(); + } + + await metricsServer.ShutdownAsync(); + } + + async Task RunBodyAsync(TestService.TestServiceClient client) + { + Logger.Info("Starting stress test client thread."); + while (!finishedTokenSource.Token.IsCancellationRequested) + { + var testCase = testCaseGenerator.GetNext(); + + var stopwatch = Stopwatch.StartNew(); + + await RunTestCaseAsync(client, testCase); + + stopwatch.Stop(); + histogram.AddObservation(stopwatch.Elapsed.TotalSeconds * SecondsToNanos); + } + Logger.Info("Stress test client thread finished."); + } + + async Task RunTestCaseAsync(TestService.TestServiceClient client, string testCase) + { + switch (testCase) + { + case "empty_unary": + InteropClient.RunEmptyUnary(client); + break; + case "large_unary": + InteropClient.RunLargeUnary(client); + break; + case "client_streaming": + await InteropClient.RunClientStreamingAsync(client); + break; + case "server_streaming": + await InteropClient.RunServerStreamingAsync(client); + break; + case "ping_pong": + await InteropClient.RunPingPongAsync(client); + break; + case "empty_stream": + await InteropClient.RunEmptyStreamAsync(client); + break; + case "cancel_after_begin": + await InteropClient.RunCancelAfterBeginAsync(client); + break; + case "cancel_after_first_response": + await InteropClient.RunCancelAfterFirstResponseAsync(client); + break; + case "timeout_on_sleeping_server": + await InteropClient.RunTimeoutOnSleepingServerAsync(client); + break; + case "custom_metadata": + await InteropClient.RunCustomMetadataAsync(client); + break; + case "status_code_and_message": + await InteropClient.RunStatusCodeAndMessageAsync(client); + break; + default: + throw new ArgumentException("Unsupported test case " + testCase); + } + } + + static Dictionary<string, int> ParseWeightedTestCases(string weightedTestCases) + { + var result = new Dictionary<string, int>(); + foreach (var weightedTestCase in weightedTestCases.Split(',')) + { + var parts = weightedTestCase.Split(new char[] {':'}, 2); + GrpcPreconditions.CheckArgument(parts.Length == 2, "Malformed test_cases option."); + result.Add(parts[0], int.Parse(parts[1])); + } + return result; + } + + class WeightedRandomGenerator + { + readonly Random random = new Random(); + readonly List<Tuple<int, string>> cumulativeSums; + readonly int weightSum; + + public WeightedRandomGenerator(Dictionary<string, int> weightedItems) + { + cumulativeSums = new List<Tuple<int, string>>(); + weightSum = 0; + foreach (var entry in weightedItems) + { + weightSum += entry.Value; + cumulativeSums.Add(Tuple.Create(weightSum, entry.Key)); + } + } + + public string GetNext() + { + int rand = random.Next(weightSum); + foreach (var entry in cumulativeSums) + { + if (rand < entry.Item1) + { + return entry.Item2; + } + } + throw new InvalidOperationException("GetNext() failed."); + } + } + + class MetricsServiceImpl : MetricsService.MetricsServiceBase + { + const string GaugeName = "csharp_overall_qps"; + + readonly Histogram histogram; + readonly WallClockStopwatch wallClockStopwatch = new WallClockStopwatch(); + + public MetricsServiceImpl(Histogram histogram) + { + this.histogram = histogram; + } + + public override Task<GaugeResponse> GetGauge(GaugeRequest request, ServerCallContext context) + { + if (request.Name == GaugeName) + { + long qps = GetQpsAndReset(); + + return Task.FromResult(new GaugeResponse + { + Name = GaugeName, + LongValue = qps + }); + } + throw new RpcException(new Status(StatusCode.InvalidArgument, "Gauge does not exist")); + } + + public override async Task GetAllGauges(EmptyMessage request, IServerStreamWriter<GaugeResponse> responseStream, ServerCallContext context) + { + long qps = GetQpsAndReset(); + + var response = new GaugeResponse + { + Name = GaugeName, + LongValue = qps + }; + await responseStream.WriteAsync(response); + } + + long GetQpsAndReset() + { + var snapshot = histogram.GetSnapshot(true); + var elapsedSnapshot = wallClockStopwatch.GetElapsedSnapshot(true); + + return (long) (snapshot.Count / elapsedSnapshot.Seconds); + } + } + } +} diff --git a/src/csharp/Grpc.IntegrationTesting/TestGrpc.cs b/src/csharp/Grpc.IntegrationTesting/TestGrpc.cs index 31746cbe715605364e31168ee2659998426240b1..f1878cbb556c778b8ed34a9942bc31984df91b3d 100644 --- a/src/csharp/Grpc.IntegrationTesting/TestGrpc.cs +++ b/src/csharp/Grpc.IntegrationTesting/TestGrpc.cs @@ -1,5 +1,38 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: src/proto/grpc/testing/test.proto +// Original file comments: +// 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. +// +// An integration test service that covers all the method signature permutations +// of unary/streaming requests/responses. +// #region Designer generated code using System; @@ -8,6 +41,10 @@ using System.Threading.Tasks; using Grpc.Core; namespace Grpc.Testing { + /// <summary> + /// A simple service to test the various types of RPCs and experiment with + /// performance with various types of payload. + /// </summary> public static class TestService { static readonly string __ServiceName = "grpc.testing.TestService"; @@ -62,74 +99,186 @@ namespace Grpc.Testing { __Marshaller_StreamingOutputCallRequest, __Marshaller_StreamingOutputCallResponse); - // service descriptor + /// <summary>Service descriptor</summary> public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor { get { return global::Grpc.Testing.TestReflection.Descriptor.Services[0]; } } - // client interface + /// <summary>Client for TestService</summary> [System.Obsolete("Client side interfaced will be removed in the next release. Use client class directly.")] public interface ITestServiceClient { + /// <summary> + /// One empty request followed by one empty response. + /// </summary> global::Grpc.Testing.Empty EmptyCall(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// One empty request followed by one empty response. + /// </summary> global::Grpc.Testing.Empty EmptyCall(global::Grpc.Testing.Empty request, CallOptions options); + /// <summary> + /// One empty request followed by one empty response. + /// </summary> AsyncUnaryCall<global::Grpc.Testing.Empty> EmptyCallAsync(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// One empty request followed by one empty response. + /// </summary> AsyncUnaryCall<global::Grpc.Testing.Empty> EmptyCallAsync(global::Grpc.Testing.Empty request, CallOptions options); + /// <summary> + /// One request followed by one response. + /// </summary> global::Grpc.Testing.SimpleResponse UnaryCall(global::Grpc.Testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// One request followed by one response. + /// </summary> global::Grpc.Testing.SimpleResponse UnaryCall(global::Grpc.Testing.SimpleRequest request, CallOptions options); + /// <summary> + /// One request followed by one response. + /// </summary> AsyncUnaryCall<global::Grpc.Testing.SimpleResponse> UnaryCallAsync(global::Grpc.Testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// One request followed by one response. + /// </summary> AsyncUnaryCall<global::Grpc.Testing.SimpleResponse> UnaryCallAsync(global::Grpc.Testing.SimpleRequest request, CallOptions options); + /// <summary> + /// One request followed by a sequence of responses (streamed download). + /// The server returns the payload with client desired type and sizes. + /// </summary> AsyncServerStreamingCall<global::Grpc.Testing.StreamingOutputCallResponse> StreamingOutputCall(global::Grpc.Testing.StreamingOutputCallRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// One request followed by a sequence of responses (streamed download). + /// The server returns the payload with client desired type and sizes. + /// </summary> AsyncServerStreamingCall<global::Grpc.Testing.StreamingOutputCallResponse> StreamingOutputCall(global::Grpc.Testing.StreamingOutputCallRequest request, CallOptions options); + /// <summary> + /// A sequence of requests followed by one response (streamed upload). + /// The server returns the aggregated size of client payload as the result. + /// </summary> AsyncClientStreamingCall<global::Grpc.Testing.StreamingInputCallRequest, global::Grpc.Testing.StreamingInputCallResponse> StreamingInputCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// A sequence of requests followed by one response (streamed upload). + /// The server returns the aggregated size of client payload as the result. + /// </summary> AsyncClientStreamingCall<global::Grpc.Testing.StreamingInputCallRequest, global::Grpc.Testing.StreamingInputCallResponse> StreamingInputCall(CallOptions options); + /// <summary> + /// A sequence of requests with each request served by the server immediately. + /// As one request could lead to multiple responses, this interface + /// demonstrates the idea of full duplexing. + /// </summary> AsyncDuplexStreamingCall<global::Grpc.Testing.StreamingOutputCallRequest, global::Grpc.Testing.StreamingOutputCallResponse> FullDuplexCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// A sequence of requests with each request served by the server immediately. + /// As one request could lead to multiple responses, this interface + /// demonstrates the idea of full duplexing. + /// </summary> AsyncDuplexStreamingCall<global::Grpc.Testing.StreamingOutputCallRequest, global::Grpc.Testing.StreamingOutputCallResponse> FullDuplexCall(CallOptions options); + /// <summary> + /// A sequence of requests followed by a sequence of responses. + /// The server buffers all the client requests and then serves them in order. A + /// stream of responses are returned to the client when the server starts with + /// first request. + /// </summary> AsyncDuplexStreamingCall<global::Grpc.Testing.StreamingOutputCallRequest, global::Grpc.Testing.StreamingOutputCallResponse> HalfDuplexCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// A sequence of requests followed by a sequence of responses. + /// The server buffers all the client requests and then serves them in order. A + /// stream of responses are returned to the client when the server starts with + /// first request. + /// </summary> AsyncDuplexStreamingCall<global::Grpc.Testing.StreamingOutputCallRequest, global::Grpc.Testing.StreamingOutputCallResponse> HalfDuplexCall(CallOptions options); } - // server-side interface + /// <summary>Interface of server-side implementations of TestService</summary> [System.Obsolete("Service implementations should inherit from the generated abstract base class instead.")] public interface ITestService { + /// <summary> + /// One empty request followed by one empty response. + /// </summary> Task<global::Grpc.Testing.Empty> EmptyCall(global::Grpc.Testing.Empty request, ServerCallContext context); + /// <summary> + /// One request followed by one response. + /// </summary> Task<global::Grpc.Testing.SimpleResponse> UnaryCall(global::Grpc.Testing.SimpleRequest request, ServerCallContext context); + /// <summary> + /// One request followed by a sequence of responses (streamed download). + /// The server returns the payload with client desired type and sizes. + /// </summary> Task StreamingOutputCall(global::Grpc.Testing.StreamingOutputCallRequest request, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context); + /// <summary> + /// A sequence of requests followed by one response (streamed upload). + /// The server returns the aggregated size of client payload as the result. + /// </summary> Task<global::Grpc.Testing.StreamingInputCallResponse> StreamingInputCall(IAsyncStreamReader<global::Grpc.Testing.StreamingInputCallRequest> requestStream, ServerCallContext context); + /// <summary> + /// A sequence of requests with each request served by the server immediately. + /// As one request could lead to multiple responses, this interface + /// demonstrates the idea of full duplexing. + /// </summary> Task FullDuplexCall(IAsyncStreamReader<global::Grpc.Testing.StreamingOutputCallRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context); + /// <summary> + /// A sequence of requests followed by a sequence of responses. + /// The server buffers all the client requests and then serves them in order. A + /// stream of responses are returned to the client when the server starts with + /// first request. + /// </summary> Task HalfDuplexCall(IAsyncStreamReader<global::Grpc.Testing.StreamingOutputCallRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context); } - // server-side abstract class + /// <summary>Base class for server-side implementations of TestService</summary> public abstract class TestServiceBase { + /// <summary> + /// One empty request followed by one empty response. + /// </summary> public virtual Task<global::Grpc.Testing.Empty> EmptyCall(global::Grpc.Testing.Empty request, ServerCallContext context) { throw new RpcException(new Status(StatusCode.Unimplemented, "")); } + /// <summary> + /// One request followed by one response. + /// </summary> public virtual Task<global::Grpc.Testing.SimpleResponse> UnaryCall(global::Grpc.Testing.SimpleRequest request, ServerCallContext context) { throw new RpcException(new Status(StatusCode.Unimplemented, "")); } + /// <summary> + /// One request followed by a sequence of responses (streamed download). + /// The server returns the payload with client desired type and sizes. + /// </summary> public virtual Task StreamingOutputCall(global::Grpc.Testing.StreamingOutputCallRequest request, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context) { throw new RpcException(new Status(StatusCode.Unimplemented, "")); } + /// <summary> + /// A sequence of requests followed by one response (streamed upload). + /// The server returns the aggregated size of client payload as the result. + /// </summary> public virtual Task<global::Grpc.Testing.StreamingInputCallResponse> StreamingInputCall(IAsyncStreamReader<global::Grpc.Testing.StreamingInputCallRequest> requestStream, ServerCallContext context) { throw new RpcException(new Status(StatusCode.Unimplemented, "")); } + /// <summary> + /// A sequence of requests with each request served by the server immediately. + /// As one request could lead to multiple responses, this interface + /// demonstrates the idea of full duplexing. + /// </summary> public virtual Task FullDuplexCall(IAsyncStreamReader<global::Grpc.Testing.StreamingOutputCallRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context) { throw new RpcException(new Status(StatusCode.Unimplemented, "")); } + /// <summary> + /// A sequence of requests followed by a sequence of responses. + /// The server buffers all the client requests and then serves them in order. A + /// stream of responses are returned to the client when the server starts with + /// first request. + /// </summary> public virtual Task HalfDuplexCall(IAsyncStreamReader<global::Grpc.Testing.StreamingOutputCallRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context) { throw new RpcException(new Status(StatusCode.Unimplemented, "")); @@ -137,8 +286,10 @@ namespace Grpc.Testing { } - // client stub + /// <summary>Client for TestService</summary> + #pragma warning disable 0618 public class TestServiceClient : ClientBase<TestServiceClient>, ITestServiceClient + #pragma warning restore 0618 { public TestServiceClient(Channel channel) : base(channel) { @@ -155,66 +306,128 @@ namespace Grpc.Testing { { } + /// <summary> + /// One empty request followed by one empty response. + /// </summary> public virtual global::Grpc.Testing.Empty EmptyCall(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return EmptyCall(request, new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// One empty request followed by one empty response. + /// </summary> public virtual global::Grpc.Testing.Empty EmptyCall(global::Grpc.Testing.Empty request, CallOptions options) { return CallInvoker.BlockingUnaryCall(__Method_EmptyCall, null, options, request); } + /// <summary> + /// One empty request followed by one empty response. + /// </summary> public virtual AsyncUnaryCall<global::Grpc.Testing.Empty> EmptyCallAsync(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return EmptyCallAsync(request, new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// One empty request followed by one empty response. + /// </summary> public virtual AsyncUnaryCall<global::Grpc.Testing.Empty> EmptyCallAsync(global::Grpc.Testing.Empty request, CallOptions options) { return CallInvoker.AsyncUnaryCall(__Method_EmptyCall, null, options, request); } + /// <summary> + /// One request followed by one response. + /// </summary> public virtual global::Grpc.Testing.SimpleResponse UnaryCall(global::Grpc.Testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return UnaryCall(request, new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// One request followed by one response. + /// </summary> public virtual global::Grpc.Testing.SimpleResponse UnaryCall(global::Grpc.Testing.SimpleRequest request, CallOptions options) { return CallInvoker.BlockingUnaryCall(__Method_UnaryCall, null, options, request); } + /// <summary> + /// One request followed by one response. + /// </summary> public virtual AsyncUnaryCall<global::Grpc.Testing.SimpleResponse> UnaryCallAsync(global::Grpc.Testing.SimpleRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return UnaryCallAsync(request, new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// One request followed by one response. + /// </summary> public virtual AsyncUnaryCall<global::Grpc.Testing.SimpleResponse> UnaryCallAsync(global::Grpc.Testing.SimpleRequest request, CallOptions options) { return CallInvoker.AsyncUnaryCall(__Method_UnaryCall, null, options, request); } + /// <summary> + /// One request followed by a sequence of responses (streamed download). + /// The server returns the payload with client desired type and sizes. + /// </summary> public virtual AsyncServerStreamingCall<global::Grpc.Testing.StreamingOutputCallResponse> StreamingOutputCall(global::Grpc.Testing.StreamingOutputCallRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return StreamingOutputCall(request, new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// One request followed by a sequence of responses (streamed download). + /// The server returns the payload with client desired type and sizes. + /// </summary> public virtual AsyncServerStreamingCall<global::Grpc.Testing.StreamingOutputCallResponse> StreamingOutputCall(global::Grpc.Testing.StreamingOutputCallRequest request, CallOptions options) { return CallInvoker.AsyncServerStreamingCall(__Method_StreamingOutputCall, null, options, request); } + /// <summary> + /// A sequence of requests followed by one response (streamed upload). + /// The server returns the aggregated size of client payload as the result. + /// </summary> public virtual AsyncClientStreamingCall<global::Grpc.Testing.StreamingInputCallRequest, global::Grpc.Testing.StreamingInputCallResponse> StreamingInputCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return StreamingInputCall(new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// A sequence of requests followed by one response (streamed upload). + /// The server returns the aggregated size of client payload as the result. + /// </summary> public virtual AsyncClientStreamingCall<global::Grpc.Testing.StreamingInputCallRequest, global::Grpc.Testing.StreamingInputCallResponse> StreamingInputCall(CallOptions options) { return CallInvoker.AsyncClientStreamingCall(__Method_StreamingInputCall, null, options); } + /// <summary> + /// A sequence of requests with each request served by the server immediately. + /// As one request could lead to multiple responses, this interface + /// demonstrates the idea of full duplexing. + /// </summary> public virtual AsyncDuplexStreamingCall<global::Grpc.Testing.StreamingOutputCallRequest, global::Grpc.Testing.StreamingOutputCallResponse> FullDuplexCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return FullDuplexCall(new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// A sequence of requests with each request served by the server immediately. + /// As one request could lead to multiple responses, this interface + /// demonstrates the idea of full duplexing. + /// </summary> public virtual AsyncDuplexStreamingCall<global::Grpc.Testing.StreamingOutputCallRequest, global::Grpc.Testing.StreamingOutputCallResponse> FullDuplexCall(CallOptions options) { return CallInvoker.AsyncDuplexStreamingCall(__Method_FullDuplexCall, null, options); } + /// <summary> + /// A sequence of requests followed by a sequence of responses. + /// The server buffers all the client requests and then serves them in order. A + /// stream of responses are returned to the client when the server starts with + /// first request. + /// </summary> public virtual AsyncDuplexStreamingCall<global::Grpc.Testing.StreamingOutputCallRequest, global::Grpc.Testing.StreamingOutputCallResponse> HalfDuplexCall(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return HalfDuplexCall(new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// A sequence of requests followed by a sequence of responses. + /// The server buffers all the client requests and then serves them in order. A + /// stream of responses are returned to the client when the server starts with + /// first request. + /// </summary> public virtual AsyncDuplexStreamingCall<global::Grpc.Testing.StreamingOutputCallRequest, global::Grpc.Testing.StreamingOutputCallResponse> HalfDuplexCall(CallOptions options) { return CallInvoker.AsyncDuplexStreamingCall(__Method_HalfDuplexCall, null, options); @@ -225,8 +438,16 @@ namespace Grpc.Testing { } } - // creates service definition that can be registered with a server + /// <summary>Creates a new client for TestService</summary> + public static TestServiceClient NewClient(Channel channel) + { + return new TestServiceClient(channel); + } + + /// <summary>Creates service definition that can be registered with a server</summary> + #pragma warning disable 0618 public static ServerServiceDefinition BindService(ITestService serviceImpl) + #pragma warning restore 0618 { return ServerServiceDefinition.CreateBuilder(__ServiceName) .AddMethod(__Method_EmptyCall, serviceImpl.EmptyCall) @@ -237,8 +458,10 @@ namespace Grpc.Testing { .AddMethod(__Method_HalfDuplexCall, serviceImpl.HalfDuplexCall).Build(); } - // creates service definition that can be registered with a server + /// <summary>Creates service definition that can be registered with a server</summary> + #pragma warning disable 0618 public static ServerServiceDefinition BindService(TestServiceBase serviceImpl) + #pragma warning restore 0618 { return ServerServiceDefinition.CreateBuilder(__ServiceName) .AddMethod(__Method_EmptyCall, serviceImpl.EmptyCall) @@ -249,13 +472,11 @@ namespace Grpc.Testing { .AddMethod(__Method_HalfDuplexCall, serviceImpl.HalfDuplexCall).Build(); } - // creates a new client - public static TestServiceClient NewClient(Channel channel) - { - return new TestServiceClient(channel); - } - } + /// <summary> + /// A simple service NOT implemented at servers so clients can test for + /// that case. + /// </summary> public static class UnimplementedService { static readonly string __ServiceName = "grpc.testing.UnimplementedService"; @@ -269,32 +490,50 @@ namespace Grpc.Testing { __Marshaller_Empty, __Marshaller_Empty); - // service descriptor + /// <summary>Service descriptor</summary> public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor { get { return global::Grpc.Testing.TestReflection.Descriptor.Services[1]; } } - // client interface + /// <summary>Client for UnimplementedService</summary> [System.Obsolete("Client side interfaced will be removed in the next release. Use client class directly.")] public interface IUnimplementedServiceClient { + /// <summary> + /// A call that no server should implement + /// </summary> global::Grpc.Testing.Empty UnimplementedCall(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// A call that no server should implement + /// </summary> global::Grpc.Testing.Empty UnimplementedCall(global::Grpc.Testing.Empty request, CallOptions options); + /// <summary> + /// A call that no server should implement + /// </summary> AsyncUnaryCall<global::Grpc.Testing.Empty> UnimplementedCallAsync(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)); + /// <summary> + /// A call that no server should implement + /// </summary> AsyncUnaryCall<global::Grpc.Testing.Empty> UnimplementedCallAsync(global::Grpc.Testing.Empty request, CallOptions options); } - // server-side interface + /// <summary>Interface of server-side implementations of UnimplementedService</summary> [System.Obsolete("Service implementations should inherit from the generated abstract base class instead.")] public interface IUnimplementedService { + /// <summary> + /// A call that no server should implement + /// </summary> Task<global::Grpc.Testing.Empty> UnimplementedCall(global::Grpc.Testing.Empty request, ServerCallContext context); } - // server-side abstract class + /// <summary>Base class for server-side implementations of UnimplementedService</summary> public abstract class UnimplementedServiceBase { + /// <summary> + /// A call that no server should implement + /// </summary> public virtual Task<global::Grpc.Testing.Empty> UnimplementedCall(global::Grpc.Testing.Empty request, ServerCallContext context) { throw new RpcException(new Status(StatusCode.Unimplemented, "")); @@ -302,8 +541,10 @@ namespace Grpc.Testing { } - // client stub + /// <summary>Client for UnimplementedService</summary> + #pragma warning disable 0618 public class UnimplementedServiceClient : ClientBase<UnimplementedServiceClient>, IUnimplementedServiceClient + #pragma warning restore 0618 { public UnimplementedServiceClient(Channel channel) : base(channel) { @@ -320,18 +561,30 @@ namespace Grpc.Testing { { } + /// <summary> + /// A call that no server should implement + /// </summary> public virtual global::Grpc.Testing.Empty UnimplementedCall(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return UnimplementedCall(request, new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// A call that no server should implement + /// </summary> public virtual global::Grpc.Testing.Empty UnimplementedCall(global::Grpc.Testing.Empty request, CallOptions options) { return CallInvoker.BlockingUnaryCall(__Method_UnimplementedCall, null, options, request); } + /// <summary> + /// A call that no server should implement + /// </summary> public virtual AsyncUnaryCall<global::Grpc.Testing.Empty> UnimplementedCallAsync(global::Grpc.Testing.Empty request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken)) { return UnimplementedCallAsync(request, new CallOptions(headers, deadline, cancellationToken)); } + /// <summary> + /// A call that no server should implement + /// </summary> public virtual AsyncUnaryCall<global::Grpc.Testing.Empty> UnimplementedCallAsync(global::Grpc.Testing.Empty request, CallOptions options) { return CallInvoker.AsyncUnaryCall(__Method_UnimplementedCall, null, options, request); @@ -342,27 +595,34 @@ namespace Grpc.Testing { } } - // creates service definition that can be registered with a server + /// <summary>Creates a new client for UnimplementedService</summary> + public static UnimplementedServiceClient NewClient(Channel channel) + { + return new UnimplementedServiceClient(channel); + } + + /// <summary>Creates service definition that can be registered with a server</summary> + #pragma warning disable 0618 public static ServerServiceDefinition BindService(IUnimplementedService serviceImpl) + #pragma warning restore 0618 { return ServerServiceDefinition.CreateBuilder(__ServiceName) .AddMethod(__Method_UnimplementedCall, serviceImpl.UnimplementedCall).Build(); } - // creates service definition that can be registered with a server + /// <summary>Creates service definition that can be registered with a server</summary> + #pragma warning disable 0618 public static ServerServiceDefinition BindService(UnimplementedServiceBase serviceImpl) + #pragma warning restore 0618 { return ServerServiceDefinition.CreateBuilder(__ServiceName) .AddMethod(__Method_UnimplementedCall, serviceImpl.UnimplementedCall).Build(); } - // creates a new client - public static UnimplementedServiceClient NewClient(Channel channel) - { - return new UnimplementedServiceClient(channel); - } - } + /// <summary> + /// A service used to control reconnect server. + /// </summary> public static class ReconnectService { static readonly string __ServiceName = "grpc.testing.ReconnectService"; @@ -385,13 +645,13 @@ namespace Grpc.Testing { __Marshaller_Empty, __Marshaller_ReconnectInfo); - // service descriptor + /// <summary>Service descriptor</summary> public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor { get { return global::Grpc.Testing.TestReflection.Descriptor.Services[2]; } } - // client interface + /// <summary>Client for ReconnectService</summary> [System.Obsolete("Client side interfaced will be removed in the next release. Use client class directly.")] public interface IReconnectServiceClient { @@ -405,7 +665,7 @@ namespace Grpc.Testing { AsyncUnaryCall<global::Grpc.Testing.ReconnectInfo> StopAsync(global::Grpc.Testing.Empty request, CallOptions options); } - // server-side interface + /// <summary>Interface of server-side implementations of ReconnectService</summary> [System.Obsolete("Service implementations should inherit from the generated abstract base class instead.")] public interface IReconnectService { @@ -413,7 +673,7 @@ namespace Grpc.Testing { Task<global::Grpc.Testing.ReconnectInfo> Stop(global::Grpc.Testing.Empty request, ServerCallContext context); } - // server-side abstract class + /// <summary>Base class for server-side implementations of ReconnectService</summary> public abstract class ReconnectServiceBase { public virtual Task<global::Grpc.Testing.Empty> Start(global::Grpc.Testing.ReconnectParams request, ServerCallContext context) @@ -428,8 +688,10 @@ namespace Grpc.Testing { } - // client stub + /// <summary>Client for ReconnectService</summary> + #pragma warning disable 0618 public class ReconnectServiceClient : ClientBase<ReconnectServiceClient>, IReconnectServiceClient + #pragma warning restore 0618 { public ReconnectServiceClient(Channel channel) : base(channel) { @@ -484,28 +746,32 @@ namespace Grpc.Testing { } } - // creates service definition that can be registered with a server + /// <summary>Creates a new client for ReconnectService</summary> + public static ReconnectServiceClient NewClient(Channel channel) + { + return new ReconnectServiceClient(channel); + } + + /// <summary>Creates service definition that can be registered with a server</summary> + #pragma warning disable 0618 public static ServerServiceDefinition BindService(IReconnectService serviceImpl) + #pragma warning restore 0618 { return ServerServiceDefinition.CreateBuilder(__ServiceName) .AddMethod(__Method_Start, serviceImpl.Start) .AddMethod(__Method_Stop, serviceImpl.Stop).Build(); } - // creates service definition that can be registered with a server + /// <summary>Creates service definition that can be registered with a server</summary> + #pragma warning disable 0618 public static ServerServiceDefinition BindService(ReconnectServiceBase serviceImpl) + #pragma warning restore 0618 { return ServerServiceDefinition.CreateBuilder(__ServiceName) .AddMethod(__Method_Start, serviceImpl.Start) .AddMethod(__Method_Stop, serviceImpl.Stop).Build(); } - // creates a new client - public static ReconnectServiceClient NewClient(Channel channel) - { - return new ReconnectServiceClient(channel); - } - } } #endregion diff --git a/src/csharp/Grpc.sln b/src/csharp/Grpc.sln index 8ff35e8c0d0193f35ad390314f467e16d8cec859..9be36c0caa44aeb999b57ce39aa18ee89b60f82a 100644 --- a/src/csharp/Grpc.sln +++ b/src/csharp/Grpc.sln @@ -34,6 +34,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Grpc.HealthCheck.Tests", "G EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Grpc.IntegrationTesting.QpsWorker", "Grpc.IntegrationTesting.QpsWorker\Grpc.IntegrationTesting.QpsWorker.csproj", "{B82B7DFE-7F7B-40EF-B3D6-064FF2B01294}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Grpc.IntegrationTesting.StressClient", "Grpc.IntegrationTesting.StressClient\Grpc.IntegrationTesting.StressClient.csproj", "{ADEBA147-80AE-4710-82E9-5B7F93690266}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -83,6 +85,12 @@ Global {AA5E328A-8835-49D7-98ED-C29F2B3049F0}.Release|Any CPU.Build.0 = Release|Any CPU {AA5E328A-8835-49D7-98ED-C29F2B3049F0}.ReleaseSigned|Any CPU.ActiveCfg = ReleaseSigned|Any CPU {AA5E328A-8835-49D7-98ED-C29F2B3049F0}.ReleaseSigned|Any CPU.Build.0 = ReleaseSigned|Any CPU + {ADEBA147-80AE-4710-82E9-5B7F93690266}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADEBA147-80AE-4710-82E9-5B7F93690266}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADEBA147-80AE-4710-82E9-5B7F93690266}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADEBA147-80AE-4710-82E9-5B7F93690266}.Release|Any CPU.Build.0 = Release|Any CPU + {ADEBA147-80AE-4710-82E9-5B7F93690266}.ReleaseSigned|Any CPU.ActiveCfg = Release|Any CPU + {ADEBA147-80AE-4710-82E9-5B7F93690266}.ReleaseSigned|Any CPU.Build.0 = Release|Any CPU {AE21D0EE-9A2C-4C15-AB7F-5224EED5B0EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AE21D0EE-9A2C-4C15-AB7F-5224EED5B0EA}.Debug|Any CPU.Build.0 = Debug|Any CPU {AE21D0EE-9A2C-4C15-AB7F-5224EED5B0EA}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/src/csharp/buildall.bat b/src/csharp/buildall.bat index fcc84426563ccb48661bc1082b488e65654523a1..f800756dfeca7d1bc17111ba9e00d00f08868c77 100644 --- a/src/csharp/buildall.bat +++ b/src/csharp/buildall.bat @@ -8,6 +8,12 @@ cd /d %~dp0 @rem Set VS variables (uses Visual Studio 2013) @call "%VS120COMNTOOLS%\..\..\vc\vcvarsall.bat" x86 +@rem Fetch all dependencies +nuget restore ..\..\vsprojects\grpc.sln || goto :error +nuget restore ..\..\vsprojects\grpc_csharp_ext.sln || goto :error +nuget restore ..\..\vsprojects\grpc_protoc_plugins.sln || goto :error +nuget restore Grpc.sln || goto :error + @rem Build the C# native extension msbuild ..\..\vsprojects\grpc_csharp_ext.sln /p:Configuration=Debug /p:PlatformToolset=v120 || goto :error msbuild ..\..\vsprojects\grpc_csharp_ext.sln /p:Configuration=Release /p:PlatformToolset=v120 || goto :error diff --git a/src/csharp/generate_proto_csharp.sh b/src/csharp/generate_proto_csharp.sh index 9ac770b79d774e491143127e9fdbb384106aee31..79488e02a53b4f19ebbebd0f54cb906fe220ea15 100755 --- a/src/csharp/generate_proto_csharp.sh +++ b/src/csharp/generate_proto_csharp.sh @@ -45,4 +45,4 @@ $PROTOC --plugin=$PLUGIN --csharp_out=$HEALTHCHECK_DIR --grpc_out=$HEALTHCHECK_D -I src/proto/grpc/health/v1 src/proto/grpc/health/v1/health.proto $PROTOC --plugin=$PLUGIN --csharp_out=$TESTING_DIR --grpc_out=$TESTING_DIR \ - -I . src/proto/grpc/testing/{control,empty,messages,payloads,services,stats,test}.proto + -I . src/proto/grpc/testing/{control,empty,messages,metrics,payloads,services,stats,test}.proto diff --git a/src/node/.gitignore b/src/node/.gitignore deleted file mode 100644 index e3fbd98336eafe421ba3caa25cf8dabdac70ca09..0000000000000000000000000000000000000000 --- a/src/node/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -build -node_modules diff --git a/src/node/.jshintignore b/src/node/.jshintignore new file mode 100644 index 0000000000000000000000000000000000000000..0a73e1e2b6b55dd3d4c5e681791d1720d201d89e --- /dev/null +++ b/src/node/.jshintignore @@ -0,0 +1 @@ +**/*_pb.js \ No newline at end of file diff --git a/src/node/.jshintrc b/src/node/.jshintrc deleted file mode 100644 index 8237e0d2b6430de7834f13db03a1fe2a01c76fa7..0000000000000000000000000000000000000000 --- a/src/node/.jshintrc +++ /dev/null @@ -1,28 +0,0 @@ -{ - "bitwise": true, - "curly": true, - "eqeqeq": true, - "esnext": true, - "freeze": true, - "immed": true, - "indent": 2, - "latedef": "nofunc", - "maxlen": 80, - "newcap": true, - "node": true, - "noarg": true, - "quotmark": "single", - "strict": true, - "trailing": true, - "undef": true, - "unused": "vars", - "globals": { - /* Mocha-provided globals */ - "describe": false, - "it": false, - "before": false, - "beforeEach": false, - "after": false, - "afterEach": false - } -} diff --git a/src/node/ext/node_grpc.cc b/src/node/ext/node_grpc.cc index b988f29878b02adb6c798bdc0d213972554f55bc..6b6e42737b5427658ebb21f587c8f20b059dedbe 100644 --- a/src/node/ext/node_grpc.cc +++ b/src/node/ext/node_grpc.cc @@ -35,6 +35,8 @@ #include <nan.h> #include <v8.h> #include "grpc/grpc.h" +#include "grpc/grpc_security.h" +#include "grpc/support/alloc.h" #include "call.h" #include "call_credentials.h" @@ -51,6 +53,8 @@ using v8::Object; using v8::Uint32; using v8::String; +static char *pem_root_certs = NULL; + void InitStatusConstants(Local<Object> exports) { Nan::HandleScope scope; Local<Object> status = Nan::New<Object>(); @@ -268,9 +272,36 @@ NAN_METHOD(MetadataKeyIsBinary) { grpc_is_binary_header(key_str, static_cast<size_t>(key->Length())))); } +static grpc_ssl_roots_override_result get_ssl_roots_override( + char **pem_root_certs_ptr) { + *pem_root_certs_ptr = pem_root_certs; + if (pem_root_certs == NULL) { + return GRPC_SSL_ROOTS_OVERRIDE_FAIL; + } else { + return GRPC_SSL_ROOTS_OVERRIDE_OK; + } +} + +/* This should only be called once, and only before creating any + *ServerCredentials */ +NAN_METHOD(SetDefaultRootsPem) { + if (!info[0]->IsString()) { + return Nan::ThrowTypeError( + "setDefaultRootsPem's argument must be a string"); + } + Nan::Utf8String utf8_roots(info[0]); + size_t length = static_cast<size_t>(utf8_roots.length()); + if (length > 0) { + const char *data = *utf8_roots; + pem_root_certs = (char *)gpr_malloc((length + 1) * sizeof(char)); + memcpy(pem_root_certs, data, length + 1); + } +} + void init(Local<Object> exports) { Nan::HandleScope scope; grpc_init(); + grpc_set_ssl_roots_override_callback(get_ssl_roots_override); InitStatusConstants(exports); InitCallErrorConstants(exports); InitOpTypeConstants(exports); @@ -298,6 +329,10 @@ void init(Local<Object> exports) { Nan::GetFunction( Nan::New<FunctionTemplate>(MetadataKeyIsBinary) ).ToLocalChecked()); + Nan::Set(exports, Nan::New("setDefaultRootsPem").ToLocalChecked(), + Nan::GetFunction( + Nan::New<FunctionTemplate>(SetDefaultRootsPem) + ).ToLocalChecked()); } NODE_MODULE(grpc_node, init) diff --git a/src/node/ext/server_credentials.cc b/src/node/ext/server_credentials.cc index cff821aafcd8481db65a543d736425bb89fb8b88..a817ade5183502368204957f889914743b4fee83 100644 --- a/src/node/ext/server_credentials.cc +++ b/src/node/ext/server_credentials.cc @@ -146,7 +146,9 @@ NAN_METHOD(ServerCredentials::CreateSsl) { "createSsl's second argument must be a list of objects"); } - grpc_ssl_client_certificate_request_type client_certificate_request; + // Default to not requesting the client certificate + grpc_ssl_client_certificate_request_type client_certificate_request = + GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE; if (info[2]->IsBoolean()) { client_certificate_request = Nan::To<bool>(info[2]).FromJust() diff --git a/src/node/index.js b/src/node/index.js index d345a5142d5381d9092bc2fa21a569ec88da81d9..66664d94b5a225b3fb90c802c07a35257d8ff71c 100644 --- a/src/node/index.js +++ b/src/node/index.js @@ -34,13 +34,10 @@ 'use strict'; var path = require('path'); +var fs = require('fs'); var SSL_ROOTS_PATH = path.resolve(__dirname, '..', '..', 'etc', 'roots.pem'); -if (!process.env.GRPC_DEFAULT_SSL_ROOTS_FILE_PATH) { - process.env.GRPC_DEFAULT_SSL_ROOTS_FILE_PATH = SSL_ROOTS_PATH; -} - var _ = require('lodash'); var ProtoBuf = require('protobufjs'); @@ -53,6 +50,8 @@ var Metadata = require('./src/metadata.js'); var grpc = require('./src/grpc_extension'); +grpc.setDefaultRootsPem(fs.readFileSync(SSL_ROOTS_PATH, 'ascii')); + /** * Load a gRPC object from an existing ProtoBuf.Reflect object. * @param {ProtoBuf.Reflect.Namespace} value The ProtoBuf object to load. diff --git a/src/node/src/client.js b/src/node/src/client.js index 5e07046fc61ad1c1bf909b26d18a963fd1ea1903..f75f951eb8dc79045f157ca38259ceb4038b9640 100644 --- a/src/node/src/client.js +++ b/src/node/src/client.js @@ -815,8 +815,7 @@ exports.waitForClientReady = function(client, deadline, callback) { * @return {function(string, Object)} New client constructor */ exports.makeProtobufClientConstructor = function(service, options) { - var method_attrs = common.getProtobufServiceAttrs(service, service.name, - options); + var method_attrs = common.getProtobufServiceAttrs(service, options); var deprecatedArgumentOrder = false; if (options) { deprecatedArgumentOrder = options.deprecatedArgumentOrder; diff --git a/src/node/src/server.js b/src/node/src/server.js index 22128343a9d6e74c44c14de42653a6d6baeee8e2..fd5153f1244c1a8092a841983de0c2597e2db61a 100644 --- a/src/node/src/server.js +++ b/src/node/src/server.js @@ -684,6 +684,26 @@ Server.prototype.register = function(name, handler, serialize, deserialize, return true; }; +var unimplementedStatusResponse = { + code: grpc.status.UNIMPLEMENTED, + details: 'The server does not implement this method' +}; + +var defaultHandler = { + unary: function(call, callback) { + callback(unimplementedStatusResponse); + }, + client_stream: function(call, callback) { + callback(unimplementedStatusResponse); + }, + server_stream: function(call) { + call.emit('error', unimplementedStatusResponse); + }, + bidi: function(call) { + call.emit('error', unimplementedStatusResponse); + } +}; + /** * Add a service to the server, with a corresponding implementation. If you are * generating this from a proto file, you should instead use @@ -713,16 +733,18 @@ Server.prototype.addService = function(service, implementation) { method_type = 'unary'; } } + var impl; if (implementation[name] === undefined) { - throw new Error('Method handler for ' + attrs.path + - ' not provided.'); + console.warn('Method handler for %s expected but not provided', + attrs.path); + impl = defaultHandler[method_type]; + } else { + impl = _.bind(implementation[name], implementation); } var serialize = attrs.responseSerialize; var deserialize = attrs.requestDeserialize; - var register_success = self.register(attrs.path, - _.bind(implementation[name], - implementation), - serialize, deserialize, method_type); + var register_success = self.register(attrs.path, impl, serialize, + deserialize, method_type); if (!register_success) { throw new Error('Method handler for ' + attrs.path + ' already provided.'); diff --git a/src/node/test/math/math_grpc_pb.js b/src/node/test/math/math_grpc_pb.js new file mode 100644 index 0000000000000000000000000000000000000000..083ed669137e436ad9d994f5107ba22d7400653e --- /dev/null +++ b/src/node/test/math/math_grpc_pb.js @@ -0,0 +1,99 @@ +// GENERATED CODE -- DO NOT EDIT! + +'use strict'; +var grpc = require('grpc'); +var math_pb = require('./math_pb.js'); + +function serialize_DivArgs(arg) { + if (!(arg instanceof math_pb.DivArgs)) { + throw new Error('Expected argument of type DivArgs'); + } + return new Buffer(arg.serializeBinary()); +} + +function deserialize_DivArgs(buffer_arg) { + return math_pb.DivArgs.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_DivReply(arg) { + if (!(arg instanceof math_pb.DivReply)) { + throw new Error('Expected argument of type DivReply'); + } + return new Buffer(arg.serializeBinary()); +} + +function deserialize_DivReply(buffer_arg) { + return math_pb.DivReply.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_FibArgs(arg) { + if (!(arg instanceof math_pb.FibArgs)) { + throw new Error('Expected argument of type FibArgs'); + } + return new Buffer(arg.serializeBinary()); +} + +function deserialize_FibArgs(buffer_arg) { + return math_pb.FibArgs.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_Num(arg) { + if (!(arg instanceof math_pb.Num)) { + throw new Error('Expected argument of type Num'); + } + return new Buffer(arg.serializeBinary()); +} + +function deserialize_Num(buffer_arg) { + return math_pb.Num.deserializeBinary(new Uint8Array(buffer_arg)); +} + + +var MathService = exports.MathService = { + div: { + path: '/math.Math/Div', + requestStream: false, + responseStream: false, + requestType: math_pb.DivArgs, + responseType: math_pb.DivReply, + requestSerialize: serialize_DivArgs, + requestDeserialize: deserialize_DivArgs, + responseSerialize: serialize_DivReply, + responseDeserialize: deserialize_DivReply, + }, + divMany: { + path: '/math.Math/DivMany', + requestStream: true, + responseStream: true, + requestType: math_pb.DivArgs, + responseType: math_pb.DivReply, + requestSerialize: serialize_DivArgs, + requestDeserialize: deserialize_DivArgs, + responseSerialize: serialize_DivReply, + responseDeserialize: deserialize_DivReply, + }, + fib: { + path: '/math.Math/Fib', + requestStream: false, + responseStream: true, + requestType: math_pb.FibArgs, + responseType: math_pb.Num, + requestSerialize: serialize_FibArgs, + requestDeserialize: deserialize_FibArgs, + responseSerialize: serialize_Num, + responseDeserialize: deserialize_Num, + }, + sum: { + path: '/math.Math/Sum', + requestStream: true, + responseStream: false, + requestType: math_pb.Num, + responseType: math_pb.Num, + requestSerialize: serialize_Num, + requestDeserialize: deserialize_Num, + responseSerialize: serialize_Num, + responseDeserialize: deserialize_Num, + }, +}; + +exports.MathClient = grpc.makeGenericClientConstructor(MathService); diff --git a/src/node/test/math/math_pb.js b/src/node/test/math/math_pb.js new file mode 100644 index 0000000000000000000000000000000000000000..3489143bec5f0324af61162fc2e5e3a2d8909c72 --- /dev/null +++ b/src/node/test/math/math_pb.js @@ -0,0 +1,866 @@ +/** + * @fileoverview + * @enhanceable + * @public + */ +// GENERATED CODE -- DO NOT EDIT! + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = Function('return this')(); + +goog.exportSymbol('proto.math.DivArgs', null, global); +goog.exportSymbol('proto.math.DivReply', null, global); +goog.exportSymbol('proto.math.FibArgs', null, global); +goog.exportSymbol('proto.math.FibReply', null, global); +goog.exportSymbol('proto.math.Num', 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.math.DivArgs = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.math.DivArgs, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.math.DivArgs.displayName = 'proto.math.DivArgs'; +} + + +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.math.DivArgs.prototype.toObject = function(opt_includeInstance) { + return proto.math.DivArgs.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.math.DivArgs} msg The msg instance to transform. + * @return {!Object} + */ +proto.math.DivArgs.toObject = function(includeInstance, msg) { + var f, obj = { + dividend: msg.getDividend(), + divisor: msg.getDivisor() + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.math.DivArgs} + */ +proto.math.DivArgs.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.math.DivArgs; + return proto.math.DivArgs.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.math.DivArgs} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.math.DivArgs} + */ +proto.math.DivArgs.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt64()); + msg.setDividend(value); + break; + case 2: + var value = /** @type {number} */ (reader.readInt64()); + msg.setDivisor(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.math.DivArgs} message + * @param {!jspb.BinaryWriter} writer + */ +proto.math.DivArgs.serializeBinaryToWriter = function(message, writer) { + message.serializeBinaryToWriter(writer); +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.math.DivArgs.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.math.DivArgs.prototype.serializeBinaryToWriter = function (writer) { + var f = undefined; + f = this.getDividend(); + if (f !== 0) { + writer.writeInt64( + 1, + f + ); + } + f = this.getDivisor(); + if (f !== 0) { + writer.writeInt64( + 2, + f + ); + } +}; + + +/** + * Creates a deep clone of this proto. No data is shared with the original. + * @return {!proto.math.DivArgs} The clone. + */ +proto.math.DivArgs.prototype.cloneMessage = function() { + return /** @type {!proto.math.DivArgs} */ (jspb.Message.cloneMessage(this)); +}; + + +/** + * optional int64 dividend = 1; + * @return {number} + */ +proto.math.DivArgs.prototype.getDividend = function() { + return /** @type {number} */ (jspb.Message.getFieldProto3(this, 1, 0)); +}; + + +/** @param {number} value */ +proto.math.DivArgs.prototype.setDividend = function(value) { + jspb.Message.setField(this, 1, value); +}; + + +/** + * optional int64 divisor = 2; + * @return {number} + */ +proto.math.DivArgs.prototype.getDivisor = function() { + return /** @type {number} */ (jspb.Message.getFieldProto3(this, 2, 0)); +}; + + +/** @param {number} value */ +proto.math.DivArgs.prototype.setDivisor = 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.math.DivReply = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.math.DivReply, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.math.DivReply.displayName = 'proto.math.DivReply'; +} + + +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.math.DivReply.prototype.toObject = function(opt_includeInstance) { + return proto.math.DivReply.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.math.DivReply} msg The msg instance to transform. + * @return {!Object} + */ +proto.math.DivReply.toObject = function(includeInstance, msg) { + var f, obj = { + quotient: msg.getQuotient(), + remainder: msg.getRemainder() + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.math.DivReply} + */ +proto.math.DivReply.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.math.DivReply; + return proto.math.DivReply.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.math.DivReply} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.math.DivReply} + */ +proto.math.DivReply.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt64()); + msg.setQuotient(value); + break; + case 2: + var value = /** @type {number} */ (reader.readInt64()); + msg.setRemainder(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.math.DivReply} message + * @param {!jspb.BinaryWriter} writer + */ +proto.math.DivReply.serializeBinaryToWriter = function(message, writer) { + message.serializeBinaryToWriter(writer); +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.math.DivReply.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.math.DivReply.prototype.serializeBinaryToWriter = function (writer) { + var f = undefined; + f = this.getQuotient(); + if (f !== 0) { + writer.writeInt64( + 1, + f + ); + } + f = this.getRemainder(); + if (f !== 0) { + writer.writeInt64( + 2, + f + ); + } +}; + + +/** + * Creates a deep clone of this proto. No data is shared with the original. + * @return {!proto.math.DivReply} The clone. + */ +proto.math.DivReply.prototype.cloneMessage = function() { + return /** @type {!proto.math.DivReply} */ (jspb.Message.cloneMessage(this)); +}; + + +/** + * optional int64 quotient = 1; + * @return {number} + */ +proto.math.DivReply.prototype.getQuotient = function() { + return /** @type {number} */ (jspb.Message.getFieldProto3(this, 1, 0)); +}; + + +/** @param {number} value */ +proto.math.DivReply.prototype.setQuotient = function(value) { + jspb.Message.setField(this, 1, value); +}; + + +/** + * optional int64 remainder = 2; + * @return {number} + */ +proto.math.DivReply.prototype.getRemainder = function() { + return /** @type {number} */ (jspb.Message.getFieldProto3(this, 2, 0)); +}; + + +/** @param {number} value */ +proto.math.DivReply.prototype.setRemainder = 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.math.FibArgs = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.math.FibArgs, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.math.FibArgs.displayName = 'proto.math.FibArgs'; +} + + +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.math.FibArgs.prototype.toObject = function(opt_includeInstance) { + return proto.math.FibArgs.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.math.FibArgs} msg The msg instance to transform. + * @return {!Object} + */ +proto.math.FibArgs.toObject = function(includeInstance, msg) { + var f, obj = { + limit: msg.getLimit() + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.math.FibArgs} + */ +proto.math.FibArgs.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.math.FibArgs; + return proto.math.FibArgs.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.math.FibArgs} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.math.FibArgs} + */ +proto.math.FibArgs.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt64()); + msg.setLimit(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.math.FibArgs} message + * @param {!jspb.BinaryWriter} writer + */ +proto.math.FibArgs.serializeBinaryToWriter = function(message, writer) { + message.serializeBinaryToWriter(writer); +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.math.FibArgs.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.math.FibArgs.prototype.serializeBinaryToWriter = function (writer) { + var f = undefined; + f = this.getLimit(); + if (f !== 0) { + writer.writeInt64( + 1, + f + ); + } +}; + + +/** + * Creates a deep clone of this proto. No data is shared with the original. + * @return {!proto.math.FibArgs} The clone. + */ +proto.math.FibArgs.prototype.cloneMessage = function() { + return /** @type {!proto.math.FibArgs} */ (jspb.Message.cloneMessage(this)); +}; + + +/** + * optional int64 limit = 1; + * @return {number} + */ +proto.math.FibArgs.prototype.getLimit = function() { + return /** @type {number} */ (jspb.Message.getFieldProto3(this, 1, 0)); +}; + + +/** @param {number} value */ +proto.math.FibArgs.prototype.setLimit = 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.math.Num = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.math.Num, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.math.Num.displayName = 'proto.math.Num'; +} + + +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.math.Num.prototype.toObject = function(opt_includeInstance) { + return proto.math.Num.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.math.Num} msg The msg instance to transform. + * @return {!Object} + */ +proto.math.Num.toObject = function(includeInstance, msg) { + var f, obj = { + num: msg.getNum() + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.math.Num} + */ +proto.math.Num.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.math.Num; + return proto.math.Num.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.math.Num} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.math.Num} + */ +proto.math.Num.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt64()); + msg.setNum(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.math.Num} message + * @param {!jspb.BinaryWriter} writer + */ +proto.math.Num.serializeBinaryToWriter = function(message, writer) { + message.serializeBinaryToWriter(writer); +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.math.Num.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.math.Num.prototype.serializeBinaryToWriter = function (writer) { + var f = undefined; + f = this.getNum(); + if (f !== 0) { + writer.writeInt64( + 1, + f + ); + } +}; + + +/** + * Creates a deep clone of this proto. No data is shared with the original. + * @return {!proto.math.Num} The clone. + */ +proto.math.Num.prototype.cloneMessage = function() { + return /** @type {!proto.math.Num} */ (jspb.Message.cloneMessage(this)); +}; + + +/** + * optional int64 num = 1; + * @return {number} + */ +proto.math.Num.prototype.getNum = function() { + return /** @type {number} */ (jspb.Message.getFieldProto3(this, 1, 0)); +}; + + +/** @param {number} value */ +proto.math.Num.prototype.setNum = 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.math.FibReply = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.math.FibReply, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.math.FibReply.displayName = 'proto.math.FibReply'; +} + + +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.math.FibReply.prototype.toObject = function(opt_includeInstance) { + return proto.math.FibReply.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.math.FibReply} msg The msg instance to transform. + * @return {!Object} + */ +proto.math.FibReply.toObject = function(includeInstance, msg) { + var f, obj = { + count: msg.getCount() + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.math.FibReply} + */ +proto.math.FibReply.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.math.FibReply; + return proto.math.FibReply.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.math.FibReply} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.math.FibReply} + */ +proto.math.FibReply.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt64()); + msg.setCount(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.math.FibReply} message + * @param {!jspb.BinaryWriter} writer + */ +proto.math.FibReply.serializeBinaryToWriter = function(message, writer) { + message.serializeBinaryToWriter(writer); +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.math.FibReply.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.math.FibReply.prototype.serializeBinaryToWriter = function (writer) { + var f = undefined; + f = this.getCount(); + if (f !== 0) { + writer.writeInt64( + 1, + f + ); + } +}; + + +/** + * Creates a deep clone of this proto. No data is shared with the original. + * @return {!proto.math.FibReply} The clone. + */ +proto.math.FibReply.prototype.cloneMessage = function() { + return /** @type {!proto.math.FibReply} */ (jspb.Message.cloneMessage(this)); +}; + + +/** + * optional int64 count = 1; + * @return {number} + */ +proto.math.FibReply.prototype.getCount = function() { + return /** @type {number} */ (jspb.Message.getFieldProto3(this, 1, 0)); +}; + + +/** @param {number} value */ +proto.math.FibReply.prototype.setCount = function(value) { + jspb.Message.setField(this, 1, value); +}; + + +goog.object.extend(exports, proto.math); diff --git a/src/node/test/math/math_server.js b/src/node/test/math/math_server.js index 9f67c52ab0c5a6ad51ea088f7632413628a36cf2..fa05ed016541f45382b386e25b59061087bc8848 100644 --- a/src/node/test/math/math_server.js +++ b/src/node/test/math/math_server.js @@ -34,8 +34,8 @@ 'use strict'; var grpc = require('../..'); -var math = grpc.load(__dirname + '/../../../proto/math/math.proto').math; - +var grpcMath = require('./math_grpc_pb'); +var math = require('./math_pb'); /** * Server function for division. Provides the /Math/DivMany and /Math/Div @@ -46,14 +46,16 @@ var math = grpc.load(__dirname + '/../../../proto/math/math.proto').math; */ function mathDiv(call, cb) { var req = call.request; + var divisor = req.getDivisor(); + var dividend = req.getDividend(); // Unary + is explicit coersion to integer - if (+req.divisor === 0) { + if (req.getDivisor() === 0) { cb(new Error('cannot divide by zero')); } else { - cb(null, { - quotient: req.dividend / req.divisor, - remainder: req.dividend % req.divisor - }); + var response = new math.DivReply(); + response.setQuotient(Math.floor(dividend / divisor)); + response.setRemainder(dividend % divisor); + cb(null, response); } } @@ -67,7 +69,9 @@ function mathFib(stream) { // Here, call is a standard writable Node object Stream var previous = 0, current = 1; for (var i = 0; i < stream.request.limit; i++) { - stream.write({num: current}); + var response = new math.Num(); + response.setNum(current); + stream.write(response); var temp = current; current += previous; previous = temp; @@ -85,22 +89,26 @@ function mathSum(call, cb) { // Here, call is a standard readable Node object Stream var sum = 0; call.on('data', function(data) { - sum += (+data.num); + sum += data.getNum(); }); call.on('end', function() { - cb(null, {num: sum}); + var response = new math.Num(); + response.setNum(sum); + cb(null, response); }); } function mathDivMany(stream) { stream.on('data', function(div_args) { - if (+div_args.divisor === 0) { + var divisor = div_args.getDivisor(); + var dividend = div_args.getDividend(); + if (divisor === 0) { stream.emit('error', new Error('cannot divide by zero')); } else { - stream.write({ - quotient: div_args.dividend / div_args.divisor, - remainder: div_args.dividend % div_args.divisor - }); + var response = new math.DivReply(); + response.setQuotient(Math.floor(dividend / divisor)); + response.setRemainder(dividend % divisor); + stream.write(response); } }); stream.on('end', function() { @@ -110,7 +118,7 @@ function mathDivMany(stream) { function getMathServer() { var server = new grpc.Server(); - server.addProtoService(math.Math.service, { + server.addService(grpcMath.MathService, { div: mathDiv, fib: mathFib, sum: mathSum, diff --git a/src/node/test/math/node_modules/grpc.js b/src/node/test/math/node_modules/grpc.js new file mode 100644 index 0000000000000000000000000000000000000000..17c8fd96d9b7d49212d984c8c008f4d4fb808749 --- /dev/null +++ b/src/node/test/math/node_modules/grpc.js @@ -0,0 +1,37 @@ +/* + * + * 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 exists solely to allow the generated code to import the grpc module + * without using a relative path */ + +module.exports = require('../../..'); diff --git a/src/node/test/math_client_test.js b/src/node/test/math_client_test.js index 3d446105364642bf822aabb5a37d193a9ea4ebaf..34c16e070b257c069a5d533c78603378276c595d 100644 --- a/src/node/test/math_client_test.js +++ b/src/node/test/math_client_test.js @@ -36,7 +36,8 @@ var assert = require('assert'); var grpc = require('..'); -var math = grpc.load(__dirname + '/../../proto/math/math.proto').math; +var math = require('./math/math_pb'); +var MathClient = require('./math/math_grpc_pb').MathClient; /** * Client to use to make requests to a running server. @@ -55,35 +56,41 @@ describe('Math client', function() { var port_num = server.bind('0.0.0.0:0', grpc.ServerCredentials.createInsecure()); server.start(); - math_client = new math.Math('localhost:' + port_num, - grpc.credentials.createInsecure()); + math_client = new MathClient('localhost:' + port_num, + grpc.credentials.createInsecure()); done(); }); after(function() { server.forceShutdown(); }); it('should handle a single request', function(done) { - var arg = {dividend: 7, divisor: 4}; + var arg = new math.DivArgs(); + arg.setDividend(7); + arg.setDivisor(4); math_client.div(arg, function handleDivResult(err, value) { assert.ifError(err); - assert.equal(value.quotient, 1); - assert.equal(value.remainder, 3); + assert.equal(value.getQuotient(), 1); + assert.equal(value.getRemainder(), 3); done(); }); }); it('should handle an error from a unary request', function(done) { - var arg = {dividend: 7, divisor: 0}; + var arg = new math.DivArgs(); + arg.setDividend(7); + arg.setDivisor(0); math_client.div(arg, function handleDivResult(err, value) { assert(err); done(); }); }); it('should handle a server streaming request', function(done) { - var call = math_client.fib({limit: 7}); + var arg = new math.FibArgs(); + arg.setLimit(7); + var call = math_client.fib(arg); var expected_results = [1, 1, 2, 3, 5, 8, 13]; var next_expected = 0; call.on('data', function checkResponse(value) { - assert.equal(value.num, expected_results[next_expected]); + assert.equal(value.getNum(), expected_results[next_expected]); next_expected += 1; }); call.on('status', function checkStatus(status) { @@ -94,10 +101,12 @@ describe('Math client', function() { it('should handle a client streaming request', function(done) { var call = math_client.sum(function handleSumResult(err, value) { assert.ifError(err); - assert.equal(value.num, 21); + assert.equal(value.getNum(), 21); }); for (var i = 0; i < 7; i++) { - call.write({'num': i}); + var arg = new math.Num(); + arg.setNum(i); + call.write(arg); } call.end(); call.on('status', function checkStatus(status) { @@ -107,8 +116,8 @@ describe('Math client', function() { }); it('should handle a bidirectional streaming request', function(done) { function checkResponse(index, value) { - assert.equal(value.quotient, index); - assert.equal(value.remainder, 1); + assert.equal(value.getQuotient(), index); + assert.equal(value.getRemainder(), 1); } var call = math_client.divMany(); var response_index = 0; @@ -117,7 +126,10 @@ describe('Math client', function() { response_index += 1; }); for (var i = 0; i < 7; i++) { - call.write({dividend: 2 * i + 1, divisor: 2}); + var arg = new math.DivArgs(); + arg.setDividend(2 * i + 1); + arg.setDivisor(2); + call.write(arg); } call.end(); call.on('status', function checkStatus(status) { @@ -131,7 +143,10 @@ describe('Math client', function() { assert.fail(value, undefined, 'Unexpected data response on failing call', '!='); }); - call.write({dividend: 7, divisor: 0}); + var arg = new math.DivArgs(); + arg.setDividend(7); + arg.setDivisor(0); + call.write(arg); call.end(); call.on('error', function checkStatus(status) { done(); diff --git a/src/node/test/surface_test.js b/src/node/test/surface_test.js index b96e8e487cc0c4b944fb37f56dc0bbe4c7b67af5..d8b36dc55cbaa0ee4b4d11d405b0115104e3ad85 100644 --- a/src/node/test/surface_test.js +++ b/src/node/test/surface_test.js @@ -143,21 +143,59 @@ describe('Server.prototype.addProtoService', function() { server.addProtoService(mathService, dummyImpls); }); }); - it('Should fail with missing handlers', function() { - assert.throws(function() { - server.addProtoService(mathService, { - 'div': function() {}, - 'divMany': function() {}, - 'fib': function() {} - }); - }, /math.Math.Sum/); - }); it('Should fail if the server has been started', function() { server.start(); assert.throws(function() { server.addProtoService(mathService, dummyImpls); }); }); + describe('Default handlers', function() { + var client; + beforeEach(function() { + server.addProtoService(mathService, {}); + var port = server.bind('localhost:0', server_insecure_creds); + var Client = surface_client.makeProtobufClientConstructor(mathService); + client = new Client('localhost:' + port, + grpc.credentials.createInsecure()); + server.start(); + }); + it('should respond to a unary call with UNIMPLEMENTED', function(done) { + client.div({divisor: 4, dividend: 3}, function(error, response) { + assert(error); + assert.strictEqual(error.code, grpc.status.UNIMPLEMENTED); + done(); + }); + }); + it('should respond to a client stream with UNIMPLEMENTED', function(done) { + var call = client.sum(function(error, respones) { + assert(error); + assert.strictEqual(error.code, grpc.status.UNIMPLEMENTED); + done(); + }); + call.end(); + }); + it('should respond to a server stream with UNIMPLEMENTED', function(done) { + var call = client.fib({limit: 5}); + call.on('data', function(value) { + assert.fail('No messages expected'); + }); + call.on('status', function(status) { + assert.strictEqual(status.code, grpc.status.UNIMPLEMENTED); + done(); + }); + }); + it('should respond to a bidi call with UNIMPLEMENTED', function(done) { + var call = client.divMany(); + call.on('data', function(value) { + assert.fail('No messages expected'); + }); + call.on('status', function(status) { + assert.strictEqual(status.code, grpc.status.UNIMPLEMENTED); + done(); + }); + call.end(); + }); + }); }); describe('Client constructor building', function() { var illegal_service_attrs = { diff --git a/src/node/tools/bin/protoc.js b/src/node/tools/bin/protoc.js index 0c6d7ce017db38929d7a86a07ab459db151ba138..4d50c94b0f85081a6729e01e7cb749cf8082e393 100755 --- a/src/node/tools/bin/protoc.js +++ b/src/node/tools/bin/protoc.js @@ -43,7 +43,9 @@ var path = require('path'); var execFile = require('child_process').execFile; -var protoc = path.resolve(__dirname, 'protoc'); +var exe_ext = process.platform === 'win32' ? '.exe' : ''; + +var protoc = path.resolve(__dirname, 'protoc' + exe_ext); execFile(protoc, process.argv.slice(2), function(error, stdout, stderr) { if (error) { diff --git a/src/node/tools/bin/protoc_plugin.js b/src/node/tools/bin/protoc_plugin.js new file mode 100755 index 0000000000000000000000000000000000000000..281ec0d85e56f9bff88ce6bb314e341ed9583a5a --- /dev/null +++ b/src/node/tools/bin/protoc_plugin.js @@ -0,0 +1,56 @@ +#!/usr/bin/env node +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +/** + * This file is required because package.json cannot reference a file that + * is not distributed with the package, and we use node-pre-gyp to distribute + * the plugin binary + */ + +'use strict'; + +var path = require('path'); +var execFile = require('child_process').execFile; + +var exe_ext = process.platform === 'win32' ? '.exe' : ''; + +var plugin = path.resolve(__dirname, 'grpc_node_plugin' + exe_ext); + +execFile(plugin, process.argv.slice(2), function(error, stdout, stderr) { + if (error) { + throw error; + } + console.log(stdout); + console.log(stderr); +}); diff --git a/src/node/tools/package.json b/src/node/tools/package.json index 4b3499f2f9eeb3b95a5c6bf17ec4c52af207e3fe..d98ed0b1fc30c951d3ddba0c465d71affbfeecfe 100644 --- a/src/node/tools/package.json +++ b/src/node/tools/package.json @@ -16,7 +16,8 @@ } ], "bin": { - "grpc-tools-protoc": "./bin/protoc.js" + "grpc-tools-protoc": "./bin/protoc.js", + "grpc-tools-plugin": "./bin/protoc_plugin.js" }, "scripts": { "install": "./node_modules/.bin/node-pre-gyp install" @@ -32,6 +33,7 @@ "files": [ "index.js", "bin/protoc.js", + "bin/protoc_plugin.js", "LICENSE" ], "main": "index.js" diff --git a/src/objective-c/GRPCClient/GRPCCall+ChannelCredentials.h b/src/objective-c/GRPCClient/GRPCCall+ChannelCredentials.h new file mode 100644 index 0000000000000000000000000000000000000000..343dd48a14e1cc7a7e2d2056a1e33f653c2faaaa --- /dev/null +++ b/src/objective-c/GRPCClient/GRPCCall+ChannelCredentials.h @@ -0,0 +1,56 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#import "GRPCCall.h" + +/** Helpers for setting TLS Trusted Roots, Client Certificates, and Private Key */ +@interface GRPCCall (ChannelCredentials) + +/** + * Use the provided @c pemRootCert as the set of trusted root Certificate Authorities for @c host. + */ ++ (BOOL)setTLSPEMRootCerts:(nullable NSString *)pemRootCert + forHost:(nonnull NSString *)host + error:(NSError **)errorPtr; +/** + * Configures @c host with TLS/SSL Client Credentials and optionally trusted root Certificate + * Authorities. If @c pemRootCerts is nil, the default CA Certificates bundled with gRPC will be + * used. + */ ++ (BOOL)setTLSPEMRootCerts:(nullable NSString *)pemRootCerts + withPrivateKey:(nullable NSString *)pemPrivateKey + withCertChain:(nullable NSString *)pemCertChain + forHost:(nonnull NSString *)host + error:(NSError **)errorPtr; + +@end diff --git a/src/objective-c/GRPCClient/GRPCCall+ChannelCredentials.m b/src/objective-c/GRPCClient/GRPCCall+ChannelCredentials.m new file mode 100644 index 0000000000000000000000000000000000000000..a8bcd0aab4952cd3b915bc76696c298d296bf1c1 --- /dev/null +++ b/src/objective-c/GRPCClient/GRPCCall+ChannelCredentials.m @@ -0,0 +1,66 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#import "GRPCCall+ChannelCredentials.h" + +#import "private/GRPCHost.h" + +@implementation GRPCCall (ChannelCredentials) + ++ (BOOL)setTLSPEMRootCerts:(nullable NSString *)pemRootCerts + withPrivateKey:(nullable NSString *)pemPrivateKey + withCertChain:(nullable NSString *)pemCertChain + forHost:(nonnull NSString *)host + error:(NSError **)errorPtr { + if (!host) { + [NSException raise:NSInvalidArgumentException + format:@"host must be provided."]; + } + GRPCHost *hostConfig = [GRPCHost hostWithAddress:host]; + return [hostConfig setTLSPEMRootCerts:pemRootCerts + withPrivateKey:pemPrivateKey + withCertChain:pemCertChain + error:errorPtr]; +} + ++ (BOOL)setTLSPEMRootCerts:(nullable NSString *)pemRootCerts + forHost:(nonnull NSString *)host + error:(NSError **)errorPtr { + return [GRPCCall setTLSPEMRootCerts:pemRootCerts + withPrivateKey:nil + withCertChain:nil + forHost:host + error:errorPtr]; +} + +@end diff --git a/src/objective-c/GRPCClient/GRPCCall+Tests.m b/src/objective-c/GRPCClient/GRPCCall+Tests.m index c8e81337031a7b3c605c5cd6c7c94f83bc760306..b9456691bd8422b2392ee10933d27c5b3806909a 100644 --- a/src/objective-c/GRPCClient/GRPCCall+Tests.m +++ b/src/objective-c/GRPCClient/GRPCCall+Tests.m @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -43,8 +43,16 @@ if (!host || !certsPath || !testName) { [NSException raise:NSInvalidArgumentException format:@"host, path and name must be provided."]; } + NSError *error = nil; + NSString *certs = [NSString stringWithContentsOfFile:certsPath + encoding:NSUTF8StringEncoding + error:&error]; + if (error != nil) { + [NSException raise:[error localizedDescription] format:@"failed to load certs"]; + } + GRPCHost *hostConfig = [GRPCHost hostWithAddress:host]; - hostConfig.pathToCertificates = certsPath; + [hostConfig setTLSPEMRootCerts:certs withPrivateKey:nil withCertChain:nil error:nil]; hostConfig.hostNameOverride = testName; } diff --git a/src/objective-c/GRPCClient/GRPCCall.m b/src/objective-c/GRPCClient/GRPCCall.m index 1847d6016ff92b2c247bc1a996818c33e11886aa..0eb10656ddc3ea916ebe4fe02d5e54185ad48461 100644 --- a/src/objective-c/GRPCClient/GRPCCall.m +++ b/src/objective-c/GRPCClient/GRPCCall.m @@ -136,6 +136,10 @@ NSString * const kGRPCTrailersKey = @"io.grpc.TrailersKey"; #pragma mark Finish - (void)finishWithError:(NSError *)errorOrNil { + @synchronized(self) { + _state = GRXWriterStateFinished; + } + // If the call isn't retained anywhere else, it can be deallocated now. _retainSelf = nil; @@ -342,6 +346,10 @@ NSString * const kGRPCTrailersKey = @"io.grpc.TrailersKey"; #pragma mark GRXWriter implementation - (void)startWithWriteable:(id<GRXWriteable>)writeable { + @synchronized(self) { + _state = GRXWriterStateStarted; + } + // Create a retain cycle so that this instance lives until the RPC finishes (or is cancelled). // This makes RPCs in which the call isn't externally retained possible (as long as it is started // before being autoreleased). @@ -375,30 +383,32 @@ NSString * const kGRPCTrailersKey = @"io.grpc.TrailersKey"; } - (void)setState:(GRXWriterState)newState { - // Manual transitions are only allowed from the started or paused states. - if (_state == GRXWriterStateNotStarted || _state == GRXWriterStateFinished) { - return; - } - - switch (newState) { - case GRXWriterStateFinished: - _state = newState; - // Per GRXWriter's contract, setting the state to Finished manually - // means one doesn't wish the writeable to be messaged anymore. - [_responseWriteable cancelSilently]; - _responseWriteable = nil; - return; - case GRXWriterStatePaused: - _state = newState; + @synchronized(self) { + // Manual transitions are only allowed from the started or paused states. + if (_state == GRXWriterStateNotStarted || _state == GRXWriterStateFinished) { return; - case GRXWriterStateStarted: - if (_state == GRXWriterStatePaused) { + } + + switch (newState) { + case GRXWriterStateFinished: _state = newState; - [self startNextRead]; - } - return; - case GRXWriterStateNotStarted: - return; + // Per GRXWriter's contract, setting the state to Finished manually + // means one doesn't wish the writeable to be messaged anymore. + [_responseWriteable cancelSilently]; + _responseWriteable = nil; + return; + case GRXWriterStatePaused: + _state = newState; + return; + case GRXWriterStateStarted: + if (_state == GRXWriterStatePaused) { + _state = newState; + [self startNextRead]; + } + return; + case GRXWriterStateNotStarted: + return; + } } } diff --git a/src/objective-c/GRPCClient/private/GRPCChannel.h b/src/objective-c/GRPCClient/private/GRPCChannel.h index 73bf8d95e727dc4d56ba0a639fd0f37ff346076f..70d1a9bd2ff63f2c63469bac04b0ed30cd2b3bcd 100644 --- a/src/objective-c/GRPCClient/private/GRPCChannel.h +++ b/src/objective-c/GRPCClient/private/GRPCChannel.h @@ -55,18 +55,6 @@ struct grpc_channel_credentials; */ + (nullable GRPCChannel *)secureChannelWithHost:(nonnull NSString *)host; -/** - * Creates a secure channel to the specified @c host using the specified @c pathToCertificates and - * @c channelArgs. Only in tests should @c pathToCertificates be nil or - * @c GRPC_SSL_TARGET_NAME_OVERRIDE_ARG channel arg be set. Passing nil for @c pathToCertificates - * results in using the default root certificates distributed with the library. If certificates - * could not be found in any case, then @c nil is returned. - */ -+ (nullable GRPCChannel *)secureChannelWithHost:(nonnull NSString *)host - pathToCertificates:(nullable NSString *)pathToCertificates - channelArgs:(nullable NSDictionary *)channelArgs; - - /** * Creates a secure channel to the specified @c host using the specified @c credentials and * @c channelArgs. Only in tests should @c GRPC_SSL_TARGET_NAME_OVERRIDE_ARG channel arg be set. diff --git a/src/objective-c/GRPCClient/private/GRPCChannel.m b/src/objective-c/GRPCClient/private/GRPCChannel.m index 926f55048dbec442a98df4794d6bd8723b274b48..203ef58c0dd72cfff4d03575981858807d80a7df 100644 --- a/src/objective-c/GRPCClient/private/GRPCChannel.m +++ b/src/objective-c/GRPCClient/private/GRPCChannel.m @@ -40,26 +40,6 @@ #import "GRPCCompletionQueue.h" -/** - * Returns @c grpc_channel_credentials from the specified @c path. If the file at the path could not - * be read then NULL is returned. If NULL is returned, @c errorPtr may not be NULL if there are - * details available describing what went wrong. - */ -static grpc_channel_credentials *CertificatesAtPath(NSString *path, NSError **errorPtr) { - // Files in PEM format can have non-ASCII characters in their comments (e.g. for the name of the - // issuer). Load them as UTF8 and produce an ASCII equivalent. - NSString *contentInUTF8 = [NSString stringWithContentsOfFile:path - encoding:NSUTF8StringEncoding - error:errorPtr]; - NSData *contentInASCII = [contentInUTF8 dataUsingEncoding:NSASCIIStringEncoding - allowLossyConversion:YES]; - if (!contentInASCII.bytes) { - // Passing NULL to grpc_ssl_credentials_create produces behavior we don't want, so return. - return NULL; - } - return grpc_ssl_credentials_create(contentInASCII.bytes, NULL, NULL); -} - void freeChannelArgs(grpc_channel_args *channel_args) { for (size_t i = 0; i < channel_args->num_args; ++i) { grpc_arg *arg = &channel_args->args[i]; @@ -157,38 +137,6 @@ grpc_channel_args * buildChannelArgs(NSDictionary *dictionary) { return [[GRPCChannel alloc] initWithHost:host secure:YES credentials:NULL channelArgs:NULL]; } -+ (GRPCChannel *)secureChannelWithHost:(NSString *)host - pathToCertificates:(NSString *)path - channelArgs:(NSDictionary *)channelArgs { - // Load default SSL certificates once. - static grpc_channel_credentials *kDefaultCertificates; - static dispatch_once_t loading; - dispatch_once(&loading, ^{ - NSString *defaultPath = @"gRPCCertificates.bundle/roots"; // .pem - // Do not use NSBundle.mainBundle, as it's nil for tests of library projects. - NSBundle *bundle = [NSBundle bundleForClass:self.class]; - NSString *path = [bundle pathForResource:defaultPath ofType:@"pem"]; - NSError *error; - kDefaultCertificates = CertificatesAtPath(path, &error); - NSAssert(kDefaultCertificates, @"Could not read %@/%@.pem. This file, with the root " - "certificates, is needed to establish secure (TLS) connections. Because the file is " - "distributed with the gRPC library, this error is usually a sign that the library " - "wasn't configured correctly for your project. Error: %@", - bundle.bundlePath, defaultPath, error); - }); - - //TODO(jcanizales): Add NSError** parameter to the initializer. - grpc_channel_credentials *certificates = path - ? CertificatesAtPath(path, NULL) - : kDefaultCertificates; - - return [[GRPCChannel alloc] initWithHost:host - secure:YES - credentials:certificates - channelArgs:channelArgs]; -} - - + (GRPCChannel *)secureChannelWithHost:(NSString *)host credentials:(struct grpc_channel_credentials *)credentials channelArgs:(NSDictionary *)channelArgs { diff --git a/src/objective-c/GRPCClient/private/GRPCHost.h b/src/objective-c/GRPCClient/private/GRPCHost.h index e58bb7a2d94ff6e624edf740a9e84e8ae3aaa123..9220e2a33dbb386cf6969bc1d5b776c327d072e1 100644 --- a/src/objective-c/GRPCClient/private/GRPCHost.h +++ b/src/objective-c/GRPCClient/private/GRPCHost.h @@ -37,23 +37,28 @@ NS_ASSUME_NONNULL_BEGIN @class GRPCCompletionQueue; struct grpc_call; +struct grpc_channel_credentials; @interface GRPCHost : NSObject @property(nonatomic, readonly) NSString *address; @property(nonatomic, copy, nullable) NSString *userAgentPrefix; +@property(nonatomic, nullable) struct grpc_channel_credentials *channelCreds; /** The following properties should only be modified for testing: */ @property(nonatomic, getter=isSecure) BOOL secure; -@property(nonatomic, copy, nullable) NSString *pathToCertificates; @property(nonatomic, copy, nullable) NSString *hostNameOverride; - (nullable instancetype)init NS_UNAVAILABLE; /** Host objects initialized with the same address are the same. */ + (nullable instancetype)hostWithAddress:(NSString *)address; - (nullable instancetype)initWithAddress:(NSString *)address NS_DESIGNATED_INITIALIZER; +- (BOOL)setTLSPEMRootCerts:(nullable NSString *)pemRootCerts + withPrivateKey:(nullable NSString *)pemPrivateKey + withCertChain:(nullable NSString *)pemCertChain + error:(NSError **)errorPtr; /** Create a grpc_call object to the provided path on this host. */ - (nullable struct grpc_call *)unmanagedCallWithPath:(NSString *)path diff --git a/src/objective-c/GRPCClient/private/GRPCHost.m b/src/objective-c/GRPCClient/private/GRPCHost.m index 739d808c530ac9d7757c50185d9a8b500b95c917..43166cbb5278bb3d4614d6596c4fda6cee6fff5e 100644 --- a/src/objective-c/GRPCClient/private/GRPCHost.m +++ b/src/objective-c/GRPCClient/private/GRPCHost.m @@ -34,6 +34,7 @@ #import "GRPCHost.h" #include <grpc/grpc.h> +#include <grpc/grpc_security.h> #import <GRPCClient/GRPCCall.h> #import <GRPCClient/GRPCCall+ChannelArg.h> @@ -56,6 +57,12 @@ NS_ASSUME_NONNULL_BEGIN return [[self alloc] initWithAddress:address]; } +- (void)dealloc { + if (_channelCreds != nil) { + grpc_channel_credentials_release(_channelCreds); + } +} + // Default initializer. - (nullable instancetype)initWithAddress:(NSString *)address { if (!address) { @@ -105,6 +112,75 @@ NS_ASSUME_NONNULL_BEGIN return [channel unmanagedCallWithPath:path completionQueue:queue]; } +- (BOOL)setTLSPEMRootCerts:(nullable NSString *)pemRootCerts + withPrivateKey:(nullable NSString *)pemPrivateKey + withCertChain:(nullable NSString *)pemCertChain + error:(NSError **)errorPtr { + static NSData *kDefaultRootsASCII; + static NSError *kDefaultRootsError; + static dispatch_once_t loading; + dispatch_once(&loading, ^{ + NSString *defaultPath = @"gRPCCertificates.bundle/roots"; // .pem + // Do not use NSBundle.mainBundle, as it's nil for tests of library projects. + NSBundle *bundle = [NSBundle bundleForClass:self.class]; + NSString *path = [bundle pathForResource:defaultPath ofType:@"pem"]; + NSError *error; + // Files in PEM format can have non-ASCII characters in their comments (e.g. for the name of the + // issuer). Load them as UTF8 and produce an ASCII equivalent. + NSString *contentInUTF8 = [NSString stringWithContentsOfFile:path + encoding:NSUTF8StringEncoding + error:&error]; + if (contentInUTF8 == nil) { + kDefaultRootsError = error; + return; + } + kDefaultRootsASCII = [contentInUTF8 dataUsingEncoding:NSASCIIStringEncoding + allowLossyConversion:YES]; + }); + + NSData *rootsASCII; + if (pemRootCerts != nil) { + rootsASCII = [pemRootCerts dataUsingEncoding:NSASCIIStringEncoding + allowLossyConversion:YES]; + } else { + if (kDefaultRootsASCII == nil) { + if (errorPtr) { + *errorPtr = kDefaultRootsError; + } + NSAssert(kDefaultRootsASCII, @"Could not read gRPCCertificates.bundle/roots.pem. This file, " + "with the root certificates, is needed to establish secure (TLS) connections. " + "Because the file is distributed with the gRPC library, this error is usually a sign " + "that the library wasn't configured correctly for your project. Error: %@", + kDefaultRootsError); + return NO; + } + rootsASCII = kDefaultRootsASCII; + } + + grpc_channel_credentials *creds; + if (pemPrivateKey == nil && pemCertChain == nil) { + creds = grpc_ssl_credentials_create(rootsASCII.bytes, NULL, NULL); + } else { + grpc_ssl_pem_key_cert_pair key_cert_pair; + NSData *privateKeyASCII = [pemPrivateKey dataUsingEncoding:NSASCIIStringEncoding + allowLossyConversion:YES]; + NSData *certChainASCII = [pemCertChain dataUsingEncoding:NSASCIIStringEncoding + allowLossyConversion:YES]; + key_cert_pair.private_key = privateKeyASCII.bytes; + key_cert_pair.cert_chain = certChainASCII.bytes; + creds = grpc_ssl_credentials_create(rootsASCII.bytes, &key_cert_pair, NULL); + } + + @synchronized(self) { + if (_channelCreds != nil) { + grpc_channel_credentials_release(_channelCreds); + } + _channelCreds = creds; + } + + return YES; +} + - (NSDictionary *)channelArgs { NSMutableDictionary *args = [NSMutableDictionary dictionary]; @@ -125,9 +201,16 @@ NS_ASSUME_NONNULL_BEGIN - (GRPCChannel *)newChannel { NSDictionary *args = [self channelArgs]; if (_secure) { - return [GRPCChannel secureChannelWithHost:_address - pathToCertificates:_pathToCertificates - channelArgs:args]; + GRPCChannel *channel; + @synchronized(self) { + if (_channelCreds == nil) { + [self setTLSPEMRootCerts:nil withPrivateKey:nil withCertChain:nil error:nil]; + } + channel = [GRPCChannel secureChannelWithHost:_address + credentials:_channelCreds + channelArgs:args]; + } + return channel; } else { return [GRPCChannel insecureChannelWithHost:_address channelArgs:args]; } @@ -145,9 +228,6 @@ NS_ASSUME_NONNULL_BEGIN } } -// TODO(jcanizales): Don't let set |secure| to |NO| if |pathToCertificates| or |hostNameOverride| -// have been set. Don't let set either of the latter if |secure| has been set to |NO|. - @end NS_ASSUME_NONNULL_END diff --git a/src/objective-c/tests/InteropTests.m b/src/objective-c/tests/InteropTests.m index 26877b1ae845238a78e5d2a11995f188272bc2a9..4f096b9efabdc0301ac0edeb8d32cc26c7329fbf 100644 --- a/src/objective-c/tests/InteropTests.m +++ b/src/objective-c/tests/InteropTests.m @@ -272,8 +272,14 @@ XCTAssertEqual(error.code, GRPC_STATUS_CANCELLED); [expectation fulfill]; }]; + XCTAssertEqual(call.state, GRXWriterStateNotStarted); + [call start]; + XCTAssertEqual(call.state, GRXWriterStateStarted); + [call cancel]; + XCTAssertEqual(call.state, GRXWriterStateFinished); + [self waitForExpectationsWithTimeout:1 handler:nil]; } diff --git a/src/proto/grpc/testing/compiler_test.proto b/src/proto/grpc/testing/compiler_test.proto new file mode 100644 index 0000000000000000000000000000000000000000..085e8ae59f7933903f271686dc4c55cc51a8ce30 --- /dev/null +++ b/src/proto/grpc/testing/compiler_test.proto @@ -0,0 +1,75 @@ +// Copyright 2016, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// File detached comment 1 + +// File detached comment 2 + +// File leading comment 1 +syntax = "proto3"; + +// Ignored detached comment + +// Ignored package leading comment +package grpc.testing; + +message Request { +} +message Response { +} + +// ServiceA detached comment 1 + +// ServiceA detached comment 2 + +// ServiceA leading comment 1 +service ServiceA { + // MethodA1 leading comment 1 + rpc MethodA1(Request) returns (Response); // MethodA1 trailing comment 1 + + // MethodA2 detached leading comment 1 + + // Method A2 leading comment 1 + // Method A2 leading comment 2 + rpc MethodA2(stream Request) returns (Response); + // MethodA2 trailing comment 1 +} +// Ignored ServiceA trailing comment 1 + +// ServiceB leading comment 1 +service ServiceB { + // ServiceB trailing comment 1 + + // MethodB1 leading comment 1 + rpc MethodB1(Request) returns (Response); + // MethodB1 trailing comment 1 +} +// Ignored ServiceB trailing comment 2 + +// Ignored file trailing comment diff --git a/src/proto/grpc/testing/control.proto b/src/proto/grpc/testing/control.proto index 28769ef6538d568768197433b75f5f3c9f413f0e..20496a8116b6090171ab67d4c313003f00a7cd68 100644 --- a/src/proto/grpc/testing/control.proto +++ b/src/proto/grpc/testing/control.proto @@ -35,14 +35,18 @@ import "src/proto/grpc/testing/stats.proto"; package grpc.testing; enum ClientType { + // Many languages support a basic distinction between using + // sync or async client, and this allows the specification SYNC_CLIENT = 0; ASYNC_CLIENT = 1; + OTHER_CLIENT = 2; // used for some language-specific variants } enum ServerType { SYNC_SERVER = 0; ASYNC_SERVER = 1; ASYNC_GENERIC_SERVER = 2; + OTHER_SERVER = 3; // used for some language-specific variants } enum RpcType { @@ -96,6 +100,9 @@ message ClientConfig { // Specify the cores we should run the client on, if desired repeated int32 core_list = 13; int32 core_limit = 14; + + // If we use an OTHER_CLIENT client_type, this string gives more detail + string other_client_api = 15; } message ClientStatus { ClientStats stats = 1; } @@ -127,6 +134,9 @@ message ServerConfig { // Specify the cores we should run the server on, if desired repeated int32 core_list = 10; + + // If we use an OTHER_SERVER client_type, this string gives more detail + string other_server_api = 11; } message ServerArgs { diff --git a/src/python/.gitignore b/src/python/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..f158efa4bf1175e69d984f39cce033221f01c93a --- /dev/null +++ b/src/python/.gitignore @@ -0,0 +1 @@ +gens/ diff --git a/src/python/grpcio/README.rst b/src/python/grpcio/README.rst index 33a462b66f8577cd58aea1acf3726a9913819535..cb3f6b87fe4ff60a613f615006d773815567299c 100644 --- a/src/python/grpcio/README.rst +++ b/src/python/grpcio/README.rst @@ -23,6 +23,16 @@ Else system wide (on Ubuntu)... $ sudo pip install grpcio +If you're on Windows make sure that you installed the :code:`pip.exe` component +when you installed Python (if not go back and install it!) then invoke: + +:: + + $ pip.exe install grpcio + +Windows users may need to invoke :code:`pip.exe` from a command line ran as +administrator. + n.b. On Windows and on Mac OS X one *must* have a recent release of :code:`pip` to retrieve the proper wheel from PyPI. Be sure to upgrade to the latest version! @@ -43,6 +53,9 @@ package named :code:`python-dev`). $ pip install -rrequirements.txt $ GRPC_PYTHON_BUILD_WITH_CYTHON=1 pip install . +You cannot currently install Python from source on Windows. Things might work +out for you in MSYS2 (follow the Linux instructions), but it isn't officially +supported at the moment. Troubleshooting ~~~~~~~~~~~~~~~ diff --git a/src/python/grpcio/commands.py b/src/python/grpcio/commands.py index 9e745701c14595fbbcfd642817f72adf869b1739..295dab2d274b102a0649072e2b56a8682cd2a665 100644 --- a/src/python/grpcio/commands.py +++ b/src/python/grpcio/commands.py @@ -50,6 +50,9 @@ from setuptools.command import test import support PYTHON_STEM = os.path.dirname(os.path.abspath(__file__)) +GRPC_STEM = os.path.abspath(PYTHON_STEM + '../../../../') +PROTO_STEM = os.path.join(GRPC_STEM, 'src', 'proto') +PROTO_GEN_STEM = os.path.join(GRPC_STEM, 'src', 'python', 'gens') CONF_PY_ADDENDUM = """ extensions.append('sphinx.ext.napoleon') @@ -157,30 +160,45 @@ class BuildProtoModules(setuptools.Command): if not self.grpc_python_plugin_command: raise CommandError('could not find grpc_python_plugin ' '(protoc plugin for GRPC Python)') + + if not os.path.exists(PROTO_GEN_STEM): + os.makedirs(PROTO_GEN_STEM) + include_regex = re.compile(self.include) exclude_regex = re.compile(self.exclude) if self.exclude else None paths = [] - root_directory = PYTHON_STEM - for walk_root, directories, filenames in os.walk(root_directory): + for walk_root, directories, filenames in os.walk(PROTO_STEM): for filename in filenames: path = os.path.join(walk_root, filename) if include_regex.match(path) and not ( exclude_regex and exclude_regex.match(path)): paths.append(path) - command = [ - self.protoc_command, - '--plugin=protoc-gen-python-grpc={}'.format( - self.grpc_python_plugin_command), - '-I {}'.format(root_directory), - '--python_out={}'.format(root_directory), - '--python-grpc_out={}'.format(root_directory), - ] + paths - try: - subprocess.check_output(' '.join(command), cwd=root_directory, shell=True, - stderr=subprocess.STDOUT) - except subprocess.CalledProcessError as e: - raise CommandError('Command:\n{}\nMessage:\n{}\nOutput:\n{}'.format( - command, e.message, e.output)) + + # TODO(kpayson): It would be nice to do this in a batch command, + # but we currently have name conflicts in src/proto + for path in paths: + command = [ + self.protoc_command, + '--plugin=protoc-gen-python-grpc={}'.format( + self.grpc_python_plugin_command), + '-I {}'.format(GRPC_STEM), + '--python_out={}'.format(PROTO_GEN_STEM), + '--python-grpc_out={}'.format(PROTO_GEN_STEM), + ] + [path] + try: + subprocess.check_output(' '.join(command), cwd=PYTHON_STEM, shell=True, + stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as e: + sys.stderr.write( + 'warning: Command:\n{}\nMessage:\n{}\nOutput:\n{}'.format( + command, e.message, e.output)) + + # Generated proto directories dont include __init__.py, but + # these are needed for python package resolution + for walk_root, _, _ in os.walk(PROTO_GEN_STEM): + if walk_root != PROTO_GEN_STEM: + path = os.path.join(walk_root, '__init__.py') + open(path, 'a').close() class BuildProjectMetadata(setuptools.Command): diff --git a/src/python/grpcio/grpc/_adapter/fore.py b/src/python/grpcio/grpc/_adapter/fore.py deleted file mode 100644 index acdd69c4206b7bea1c8c53d7ee00ef2ba06c936e..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/_adapter/fore.py +++ /dev/null @@ -1,363 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""The RPC-service-side bridge between RPC Framework and GRPC-on-the-wire.""" - -import enum -import logging -import threading -import time - -from grpc._adapter import _common -from grpc._adapter import _intermediary_low as _low -from grpc.framework.base import interfaces as base_interfaces -from grpc.framework.base import null -from grpc.framework.foundation import activated -from grpc.framework.foundation import logging_pool - -_THREAD_POOL_SIZE = 10 - - -@enum.unique -class _LowWrite(enum.Enum): - """The possible categories of low-level write state.""" - - OPEN = 'OPEN' - ACTIVE = 'ACTIVE' - CLOSED = 'CLOSED' - - -def _write(call, rpc_state, payload): - serialized_payload = rpc_state.serializer(payload) - if rpc_state.write.low is _LowWrite.OPEN: - call.write(serialized_payload, call, 0) - rpc_state.write.low = _LowWrite.ACTIVE - else: - rpc_state.write.pending.append(serialized_payload) - - -def _status(call, rpc_state): - call.status(_low.Status(_low.Code.OK, ''), call) - rpc_state.write.low = _LowWrite.CLOSED - - -class ForeLink(base_interfaces.ForeLink, activated.Activated): - """A service-side bridge between RPC Framework and the C-ish _low code.""" - - def __init__( - self, pool, request_deserializers, response_serializers, - root_certificates, key_chain_pairs, port=None): - """Constructor. - - Args: - pool: A thread pool. - request_deserializers: A dict from RPC method names to request object - deserializer behaviors. - response_serializers: A dict from RPC method names to response object - serializer behaviors. - root_certificates: The PEM-encoded client root certificates as a - bytestring or None. - key_chain_pairs: A sequence of PEM-encoded private key-certificate chain - pairs. - port: The port on which to serve, or None to have a port selected - automatically. - """ - self._condition = threading.Condition() - self._pool = pool - self._request_deserializers = request_deserializers - self._response_serializers = response_serializers - self._root_certificates = root_certificates - self._key_chain_pairs = key_chain_pairs - self._requested_port = port - - self._rear_link = null.NULL_REAR_LINK - self._completion_queue = None - self._server = None - self._rpc_states = {} - self._spinning = False - self._port = None - - def _on_stop_event(self): - self._spinning = False - self._condition.notify_all() - - def _on_service_acceptance_event(self, event, server): - """Handle a service invocation event.""" - service_acceptance = event.service_acceptance - if service_acceptance is None: - return - - call = service_acceptance.call - call.accept(self._completion_queue, call) - # TODO(nathaniel): Metadata support. - call.premetadata() - call.read(call) - method = service_acceptance.method - - self._rpc_states[call] = _common.CommonRPCState( - _common.WriteState(_LowWrite.OPEN, _common.HighWrite.OPEN, []), 1, - self._request_deserializers[method], - self._response_serializers[method]) - - ticket = base_interfaces.FrontToBackTicket( - call, 0, base_interfaces.FrontToBackTicket.Kind.COMMENCEMENT, method, - base_interfaces.ServicedSubscription.Kind.FULL, None, None, - service_acceptance.deadline - time.time()) - self._rear_link.accept_front_to_back_ticket(ticket) - - server.service(None) - - def _on_read_event(self, event): - """Handle data arriving during an RPC.""" - call = event.tag - rpc_state = self._rpc_states.get(call, None) - if rpc_state is None: - return - - sequence_number = rpc_state.sequence_number - rpc_state.sequence_number += 1 - if event.bytes is None: - ticket = base_interfaces.FrontToBackTicket( - call, sequence_number, - base_interfaces.FrontToBackTicket.Kind.COMPLETION, None, None, None, - None, None) - else: - call.read(call) - ticket = base_interfaces.FrontToBackTicket( - call, sequence_number, - base_interfaces.FrontToBackTicket.Kind.CONTINUATION, None, None, - None, rpc_state.deserializer(event.bytes), None) - - self._rear_link.accept_front_to_back_ticket(ticket) - - def _on_write_event(self, event): - call = event.tag - rpc_state = self._rpc_states.get(call, None) - if rpc_state is None: - return - - if rpc_state.write.pending: - serialized_payload = rpc_state.write.pending.pop(0) - call.write(serialized_payload, call, 0) - elif rpc_state.write.high is _common.HighWrite.CLOSED: - _status(call, rpc_state) - else: - rpc_state.write.low = _LowWrite.OPEN - - def _on_complete_event(self, event): - if not event.complete_accepted: - logging.error('Complete not accepted! %s', (event,)) - call = event.tag - rpc_state = self._rpc_states.pop(call, None) - if rpc_state is None: - return - - sequence_number = rpc_state.sequence_number - rpc_state.sequence_number += 1 - ticket = base_interfaces.FrontToBackTicket( - call, sequence_number, - base_interfaces.FrontToBackTicket.Kind.TRANSMISSION_FAILURE, None, - None, None, None, None) - self._rear_link.accept_front_to_back_ticket(ticket) - - def _on_finish_event(self, event): - """Handle termination of an RPC.""" - call = event.tag - rpc_state = self._rpc_states.pop(call, None) - if rpc_state is None: - return - - code = event.status.code - if code is _low.Code.OK: - return - - sequence_number = rpc_state.sequence_number - rpc_state.sequence_number += 1 - if code is _low.Code.CANCELLED: - ticket = base_interfaces.FrontToBackTicket( - call, sequence_number, - base_interfaces.FrontToBackTicket.Kind.CANCELLATION, None, None, - None, None, None) - elif code is _low.Code.DEADLINE_EXCEEDED: - ticket = base_interfaces.FrontToBackTicket( - call, sequence_number, - base_interfaces.FrontToBackTicket.Kind.EXPIRATION, None, None, None, - None, None) - else: - # TODO(nathaniel): Better mapping of codes to ticket-categories - ticket = base_interfaces.FrontToBackTicket( - call, sequence_number, - base_interfaces.FrontToBackTicket.Kind.TRANSMISSION_FAILURE, None, - None, None, None, None) - self._rear_link.accept_front_to_back_ticket(ticket) - - def _spin(self, completion_queue, server): - while True: - event = completion_queue.get(None) - - with self._condition: - if event.kind is _low.Event.Kind.STOP: - self._on_stop_event() - return - elif self._server is None: - continue - elif event.kind is _low.Event.Kind.SERVICE_ACCEPTED: - self._on_service_acceptance_event(event, server) - elif event.kind is _low.Event.Kind.READ_ACCEPTED: - self._on_read_event(event) - elif event.kind is _low.Event.Kind.WRITE_ACCEPTED: - self._on_write_event(event) - elif event.kind is _low.Event.Kind.COMPLETE_ACCEPTED: - self._on_complete_event(event) - elif event.kind is _low.Event.Kind.FINISH: - self._on_finish_event(event) - else: - logging.error('Illegal event! %s', (event,)) - - def _continue(self, call, payload): - rpc_state = self._rpc_states.get(call, None) - if rpc_state is None: - return - - _write(call, rpc_state, payload) - - def _complete(self, call, payload): - """Handle completion of the writes of an RPC.""" - rpc_state = self._rpc_states.get(call, None) - if rpc_state is None: - return - - if rpc_state.write.low is _LowWrite.OPEN: - if payload is None: - _status(call, rpc_state) - else: - _write(call, rpc_state, payload) - elif rpc_state.write.low is _LowWrite.ACTIVE: - if payload is not None: - rpc_state.write.pending.append(rpc_state.serializer(payload)) - else: - raise ValueError('Called to complete after having already completed!') - rpc_state.write.high = _common.HighWrite.CLOSED - - def _cancel(self, call): - call.cancel() - self._rpc_states.pop(call, None) - - def join_rear_link(self, rear_link): - """See base_interfaces.ForeLink.join_rear_link for specification.""" - self._rear_link = null.NULL_REAR_LINK if rear_link is None else rear_link - - def _start(self): - """Starts this ForeLink. - - This method must be called before attempting to exchange tickets with this - object. - """ - with self._condition: - address = '[::]:%d' % ( - 0 if self._requested_port is None else self._requested_port) - self._completion_queue = _low.CompletionQueue() - if self._root_certificates is None and not self._key_chain_pairs: - self._server = _low.Server(self._completion_queue) - self._port = self._server.add_http2_addr(address) - else: - server_credentials = _low.ServerCredentials( - self._root_certificates, self._key_chain_pairs, False) - self._server = _low.Server(self._completion_queue) - self._port = self._server.add_secure_http2_addr( - address, server_credentials) - self._server.start() - - self._server.service(None) - - self._pool.submit(self._spin, self._completion_queue, self._server) - self._spinning = True - - return self - - # TODO(nathaniel): Expose graceful-shutdown semantics in which this object - # enters a state in which it finishes ongoing RPCs but refuses new ones. - def _stop(self): - """Stops this ForeLink. - - This method must be called for proper termination of this object, and no - attempts to exchange tickets with this object may be made after this method - has been called. - """ - with self._condition: - self._server.stop() - # TODO(nathaniel): Yep, this is weird. Deleting a server shouldn't have a - # behaviorally significant side-effect. - self._server = None - self._completion_queue.stop() - - while self._spinning: - self._condition.wait() - - self._port = None - - def __enter__(self): - """See activated.Activated.__enter__ for specification.""" - return self._start() - - def __exit__(self, exc_type, exc_val, exc_tb): - """See activated.Activated.__exit__ for specification.""" - self._stop() - return False - - def start(self): - """See activated.Activated.start for specification.""" - return self._start() - - def stop(self): - """See activated.Activated.stop for specification.""" - self._stop() - - def port(self): - """Identifies the port on which this ForeLink is servicing RPCs. - - Returns: - The number of the port on which this ForeLink is servicing RPCs, or None - if this ForeLink is not currently activated and servicing RPCs. - """ - with self._condition: - return self._port - - def accept_back_to_front_ticket(self, ticket): - """See base_interfaces.ForeLink.accept_back_to_front_ticket for spec.""" - with self._condition: - if self._server is None: - return - - if ticket.kind is base_interfaces.BackToFrontTicket.Kind.CONTINUATION: - self._continue(ticket.operation_id, ticket.payload) - elif ticket.kind is base_interfaces.BackToFrontTicket.Kind.COMPLETION: - self._complete(ticket.operation_id, ticket.payload) - else: - self._cancel(ticket.operation_id) diff --git a/src/python/grpcio/grpc/_adapter/rear.py b/src/python/grpcio/grpc/_adapter/rear.py deleted file mode 100644 index 17fa47f74600f08459aba055296af89ae10a61cf..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/_adapter/rear.py +++ /dev/null @@ -1,395 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""The RPC-invocation-side bridge between RPC Framework and GRPC-on-the-wire.""" - -import enum -import logging -import threading -import time - -from grpc._adapter import _common -from grpc._adapter import _intermediary_low as _low -from grpc.framework.base import interfaces as base_interfaces -from grpc.framework.base import null -from grpc.framework.foundation import activated -from grpc.framework.foundation import logging_pool - -_THREAD_POOL_SIZE = 10 - -_INVOCATION_EVENT_KINDS = ( - _low.Event.Kind.METADATA_ACCEPTED, - _low.Event.Kind.FINISH -) - - -@enum.unique -class _LowWrite(enum.Enum): - """The possible categories of low-level write state.""" - - OPEN = 'OPEN' - ACTIVE = 'ACTIVE' - CLOSED = 'CLOSED' - - -class _RPCState(object): - """The full state of any tracked RPC. - - Attributes: - call: The _low.Call object for the RPC. - outstanding: The set of Event.Kind values describing expected future events - for the RPC. - active: A boolean indicating whether or not the RPC is active. - common: An _common.RPCState describing additional state for the RPC. - """ - - def __init__(self, call, outstanding, active, common): - self.call = call - self.outstanding = outstanding - self.active = active - self.common = common - - -def _write(operation_id, call, outstanding, write_state, serialized_payload): - if write_state.low is _LowWrite.OPEN: - call.write(serialized_payload, operation_id, 0) - outstanding.add(_low.Event.Kind.WRITE_ACCEPTED) - write_state.low = _LowWrite.ACTIVE - elif write_state.low is _LowWrite.ACTIVE: - write_state.pending.append(serialized_payload) - else: - raise ValueError('Write attempted after writes completed!') - - -class RearLink(base_interfaces.RearLink, activated.Activated): - """An invocation-side bridge between RPC Framework and the C-ish _low code.""" - - def __init__( - self, host, port, pool, request_serializers, response_deserializers, - secure, root_certificates, private_key, certificate_chain, - metadata_transformer=None, server_host_override=None): - """Constructor. - - Args: - host: The host to which to connect for RPC service. - port: The port to which to connect for RPC service. - pool: A thread pool. - request_serializers: A dict from RPC method names to request object - serializer behaviors. - response_deserializers: A dict from RPC method names to response object - deserializer behaviors. - secure: A boolean indicating whether or not to use a secure connection. - root_certificates: The PEM-encoded root certificates or None to ask for - them to be retrieved from a default location. - private_key: The PEM-encoded private key to use or None if no private - key should be used. - certificate_chain: The PEM-encoded certificate chain to use or None if - no certificate chain should be used. - metadata_transformer: A function that given a metadata object produces - another metadata to be used in the underlying communication on the - wire. - server_host_override: (For testing only) the target name used for SSL - host name checking. - """ - self._condition = threading.Condition() - self._host = host - self._port = port - self._pool = pool - self._request_serializers = request_serializers - self._response_deserializers = response_deserializers - - self._fore_link = null.NULL_FORE_LINK - self._completion_queue = None - self._channel = None - self._rpc_states = {} - self._spinning = False - if secure: - self._client_credentials = _low.ClientCredentials( - root_certificates, private_key, certificate_chain) - else: - self._client_credentials = None - self._root_certificates = root_certificates - self._private_key = private_key - self._certificate_chain = certificate_chain - self._metadata_transformer = metadata_transformer - self._server_host_override = server_host_override - - def _on_write_event(self, operation_id, event, rpc_state): - if event.write_accepted: - if rpc_state.common.write.pending: - rpc_state.call.write( - rpc_state.common.write.pending.pop(0), operation_id, 0) - rpc_state.outstanding.add(_low.Event.Kind.WRITE_ACCEPTED) - elif rpc_state.common.write.high is _common.HighWrite.CLOSED: - rpc_state.call.complete(operation_id) - rpc_state.outstanding.add(_low.Event.Kind.COMPLETE_ACCEPTED) - rpc_state.common.write.low = _LowWrite.CLOSED - else: - rpc_state.common.write.low = _LowWrite.OPEN - else: - logging.error('RPC write not accepted! Event: %s', (event,)) - rpc_state.active = False - ticket = base_interfaces.BackToFrontTicket( - operation_id, rpc_state.common.sequence_number, - base_interfaces.BackToFrontTicket.Kind.TRANSMISSION_FAILURE, None) - rpc_state.common.sequence_number += 1 - self._fore_link.accept_back_to_front_ticket(ticket) - - def _on_read_event(self, operation_id, event, rpc_state): - if event.bytes is not None: - rpc_state.call.read(operation_id) - rpc_state.outstanding.add(_low.Event.Kind.READ_ACCEPTED) - - ticket = base_interfaces.BackToFrontTicket( - operation_id, rpc_state.common.sequence_number, - base_interfaces.BackToFrontTicket.Kind.CONTINUATION, - rpc_state.common.deserializer(event.bytes)) - rpc_state.common.sequence_number += 1 - self._fore_link.accept_back_to_front_ticket(ticket) - - def _on_complete_event(self, operation_id, event, rpc_state): - if not event.complete_accepted: - logging.error('RPC complete not accepted! Event: %s', (event,)) - rpc_state.active = False - ticket = base_interfaces.BackToFrontTicket( - operation_id, rpc_state.common.sequence_number, - base_interfaces.BackToFrontTicket.Kind.TRANSMISSION_FAILURE, None) - rpc_state.common.sequence_number += 1 - self._fore_link.accept_back_to_front_ticket(ticket) - - # TODO(nathaniel): Metadata support. - def _on_metadata_event(self, operation_id, event, rpc_state): # pylint: disable=unused-argument - rpc_state.call.read(operation_id) - rpc_state.outstanding.add(_low.Event.Kind.READ_ACCEPTED) - - def _on_finish_event(self, operation_id, event, rpc_state): - """Handle termination of an RPC.""" - # TODO(nathaniel): Cover all statuses. - if event.status.code is _low.Code.OK: - kind = base_interfaces.BackToFrontTicket.Kind.COMPLETION - elif event.status.code is _low.Code.CANCELLED: - kind = base_interfaces.BackToFrontTicket.Kind.CANCELLATION - elif event.status.code is _low.Code.DEADLINE_EXCEEDED: - kind = base_interfaces.BackToFrontTicket.Kind.EXPIRATION - else: - kind = base_interfaces.BackToFrontTicket.Kind.TRANSMISSION_FAILURE - ticket = base_interfaces.BackToFrontTicket( - operation_id, rpc_state.common.sequence_number, kind, None) - rpc_state.common.sequence_number += 1 - self._fore_link.accept_back_to_front_ticket(ticket) - - def _spin(self, completion_queue): - while True: - event = completion_queue.get(None) - operation_id = event.tag - - with self._condition: - rpc_state = self._rpc_states[operation_id] - rpc_state.outstanding.remove(event.kind) - if rpc_state.active and self._completion_queue is not None: - if event.kind is _low.Event.Kind.WRITE_ACCEPTED: - self._on_write_event(operation_id, event, rpc_state) - elif event.kind is _low.Event.Kind.METADATA_ACCEPTED: - self._on_metadata_event(operation_id, event, rpc_state) - elif event.kind is _low.Event.Kind.READ_ACCEPTED: - self._on_read_event(operation_id, event, rpc_state) - elif event.kind is _low.Event.Kind.COMPLETE_ACCEPTED: - self._on_complete_event(operation_id, event, rpc_state) - elif event.kind is _low.Event.Kind.FINISH: - self._on_finish_event(operation_id, event, rpc_state) - else: - logging.error('Illegal RPC event! %s', (event,)) - - if not rpc_state.outstanding: - self._rpc_states.pop(operation_id) - if not self._rpc_states: - self._spinning = False - self._condition.notify_all() - return - - def _invoke(self, operation_id, name, high_state, payload, timeout): - """Invoke an RPC. - - Args: - operation_id: Any object to be used as an operation ID for the RPC. - name: The RPC method name. - high_state: A _common.HighWrite value representing the "high write state" - of the RPC. - payload: A payload object for the RPC or None if no payload was given at - invocation-time. - timeout: A duration of time in seconds to allow for the RPC. - """ - request_serializer = self._request_serializers[name] - call = _low.Call(self._channel, self._completion_queue, name, self._host, time.time() + timeout) - if self._metadata_transformer is not None: - metadata = self._metadata_transformer([]) - for metadata_key, metadata_value in metadata: - call.add_metadata(metadata_key, metadata_value) - call.invoke(self._completion_queue, operation_id, operation_id) - outstanding = set(_INVOCATION_EVENT_KINDS) - - if payload is None: - if high_state is _common.HighWrite.CLOSED: - call.complete(operation_id) - low_state = _LowWrite.CLOSED - outstanding.add(_low.Event.Kind.COMPLETE_ACCEPTED) - else: - low_state = _LowWrite.OPEN - else: - serialized_payload = request_serializer(payload) - call.write(serialized_payload, operation_id, 0) - outstanding.add(_low.Event.Kind.WRITE_ACCEPTED) - low_state = _LowWrite.ACTIVE - - write_state = _common.WriteState(low_state, high_state, []) - common_state = _common.CommonRPCState( - write_state, 0, self._response_deserializers[name], request_serializer) - self._rpc_states[operation_id] = _RPCState( - call, outstanding, True, common_state) - - if not self._spinning: - self._pool.submit(self._spin, self._completion_queue) - self._spinning = True - - def _commence(self, operation_id, name, payload, timeout): - self._invoke(operation_id, name, _common.HighWrite.OPEN, payload, timeout) - - def _continue(self, operation_id, payload): - rpc_state = self._rpc_states.get(operation_id, None) - if rpc_state is None or not rpc_state.active: - return - - _write( - operation_id, rpc_state.call, rpc_state.outstanding, - rpc_state.common.write, rpc_state.common.serializer(payload)) - - def _complete(self, operation_id, payload): - """Close writes associated with an ongoing RPC. - - Args: - operation_id: Any object being use as an operation ID for the RPC. - payload: A payload object for the RPC (and thus the last payload object - for the RPC) or None if no payload was given along with the instruction - to indicate the end of writes for the RPC. - """ - rpc_state = self._rpc_states.get(operation_id, None) - if rpc_state is None or not rpc_state.active: - return - - write_state = rpc_state.common.write - if payload is None: - if write_state.low is _LowWrite.OPEN: - rpc_state.call.complete(operation_id) - rpc_state.outstanding.add(_low.Event.Kind.COMPLETE_ACCEPTED) - write_state.low = _LowWrite.CLOSED - else: - _write( - operation_id, rpc_state.call, rpc_state.outstanding, write_state, - rpc_state.common.serializer(payload)) - write_state.high = _common.HighWrite.CLOSED - - def _entire(self, operation_id, name, payload, timeout): - self._invoke(operation_id, name, _common.HighWrite.CLOSED, payload, timeout) - - def _cancel(self, operation_id): - rpc_state = self._rpc_states.get(operation_id, None) - if rpc_state is not None and rpc_state.active: - rpc_state.call.cancel() - rpc_state.active = False - - def join_fore_link(self, fore_link): - """See base_interfaces.RearLink.join_fore_link for specification.""" - with self._condition: - self._fore_link = null.NULL_FORE_LINK if fore_link is None else fore_link - - def _start(self): - """Starts this RearLink. - - This method must be called before attempting to exchange tickets with this - object. - """ - with self._condition: - self._completion_queue = _low.CompletionQueue() - self._channel = _low.Channel( - '%s:%d' % (self._host, self._port), self._client_credentials, - server_host_override=self._server_host_override) - return self - - def _stop(self): - """Stops this RearLink. - - This method must be called for proper termination of this object, and no - attempts to exchange tickets with this object may be made after this method - has been called. - """ - with self._condition: - self._completion_queue.stop() - self._completion_queue = None - - while self._spinning: - self._condition.wait() - - def __enter__(self): - """See activated.Activated.__enter__ for specification.""" - return self._start() - - def __exit__(self, exc_type, exc_val, exc_tb): - """See activated.Activated.__exit__ for specification.""" - self._stop() - return False - - def start(self): - """See activated.Activated.start for specification.""" - return self._start() - - def stop(self): - """See activated.Activated.stop for specification.""" - self._stop() - - def accept_front_to_back_ticket(self, ticket): - """See base_interfaces.RearLink.accept_front_to_back_ticket for spec.""" - with self._condition: - if self._completion_queue is None: - return - - if ticket.kind is base_interfaces.FrontToBackTicket.Kind.COMMENCEMENT: - self._commence( - ticket.operation_id, ticket.name, ticket.payload, ticket.timeout) - elif ticket.kind is base_interfaces.FrontToBackTicket.Kind.CONTINUATION: - self._continue(ticket.operation_id, ticket.payload) - elif ticket.kind is base_interfaces.FrontToBackTicket.Kind.COMPLETION: - self._complete(ticket.operation_id, ticket.payload) - elif ticket.kind is base_interfaces.FrontToBackTicket.Kind.ENTIRE: - self._entire( - ticket.operation_id, ticket.name, ticket.payload, ticket.timeout) - elif ticket.kind is base_interfaces.FrontToBackTicket.Kind.CANCELLATION: - self._cancel(ticket.operation_id) - else: - # NOTE(nathaniel): All other categories are treated as cancellation. - self._cancel(ticket.operation_id) diff --git a/src/python/grpcio/grpc/_cython/imports.generated.c b/src/python/grpcio/grpc/_cython/imports.generated.c index 9ab0696702a6b67d7b915c076c177e9c7cb59c27..f0a40dbb35c54ebec079ac392fe5482eba768dd1 100644 --- a/src/python/grpcio/grpc/_cython/imports.generated.c +++ b/src/python/grpcio/grpc/_cython/imports.generated.c @@ -124,6 +124,7 @@ grpc_tracer_set_enabled_type grpc_tracer_set_enabled_import; 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_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; @@ -393,6 +394,7 @@ void pygrpc_load_imports(HMODULE library) { grpc_header_key_is_legal_import = (grpc_header_key_is_legal_type) GetProcAddress(library, "grpc_header_key_is_legal"); 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_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 e50051ddc75116b4cc2591f7cf51c9bfccb8247a..d5e810b7cf47bdcf6f1689b3405deb355254f2a9 100644 --- a/src/python/grpcio/grpc/_cython/imports.generated.h +++ b/src/python/grpcio/grpc/_cython/imports.generated.h @@ -322,6 +322,9 @@ extern grpc_header_nonbin_value_is_legal_type grpc_header_nonbin_value_is_legal_ typedef int(*grpc_is_binary_header_type)(const char *key, size_t length); extern grpc_is_binary_header_type grpc_is_binary_header_import; #define grpc_is_binary_header 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 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/early_adopter/__init__.py b/src/python/grpcio/grpc/early_adopter/__init__.py deleted file mode 100644 index bff74be2c7bbc79e3e32103436c9fbd708bf2c03..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/early_adopter/__init__.py +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import warnings - -warnings.simplefilter('always', DeprecationWarning) -warnings.warn('the alpha API (includes this package) is deprecated, ' - 'unmaintained, and no longer tested. Please migrate to the beta ' - 'API.', DeprecationWarning, stacklevel=2) diff --git a/src/python/grpcio/grpc/early_adopter/implementations.py b/src/python/grpcio/grpc/early_adopter/implementations.py deleted file mode 100644 index 9c396aa7ad08f85c39cf7e787a12cf9de3eadf2f..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/early_adopter/implementations.py +++ /dev/null @@ -1,262 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Entry points into GRPC.""" - -import threading - -from grpc._adapter import fore as _fore -from grpc._adapter import rear as _rear -from grpc.framework.alpha import _face_utilities -from grpc.framework.alpha import _reexport -from grpc.framework.alpha import interfaces -from grpc.framework.base import implementations as _base_implementations -from grpc.framework.base import util as _base_utilities -from grpc.framework.face import implementations as _face_implementations -from grpc.framework.foundation import logging_pool - -_DEFAULT_THREAD_POOL_SIZE = 8 -_ONE_DAY_IN_SECONDS = 24 * 60 * 60 - - -class _Server(interfaces.Server): - - def __init__( - self, breakdown, port, private_key, certificate_chain, - thread_pool_size=_DEFAULT_THREAD_POOL_SIZE): - self._lock = threading.Lock() - self._breakdown = breakdown - self._port = port - if private_key is None or certificate_chain is None: - self._key_chain_pairs = () - else: - self._key_chain_pairs = ((private_key, certificate_chain),) - - self._pool_size = thread_pool_size - self._pool = None - self._back = None - self._fore_link = None - - def _start(self): - with self._lock: - if self._pool is None: - self._pool = logging_pool.pool(self._pool_size) - servicer = _face_implementations.servicer( - self._pool, self._breakdown.implementations, None) - self._back = _base_implementations.back_link( - servicer, self._pool, self._pool, self._pool, _ONE_DAY_IN_SECONDS, - _ONE_DAY_IN_SECONDS) - self._fore_link = _fore.ForeLink( - self._pool, self._breakdown.request_deserializers, - self._breakdown.response_serializers, None, self._key_chain_pairs, - port=self._port) - self._back.join_fore_link(self._fore_link) - self._fore_link.join_rear_link(self._back) - self._fore_link.start() - else: - raise ValueError('Server currently running!') - - def _stop(self): - with self._lock: - if self._pool is None: - raise ValueError('Server not running!') - else: - self._fore_link.stop() - _base_utilities.wait_for_idle(self._back) - self._pool.shutdown(wait=True) - self._fore_link = None - self._back = None - self._pool = None - - def __enter__(self): - self._start() - return self - - def __exit__(self, exc_type, exc_val, exc_tb): - self._stop() - return False - - def start(self): - self._start() - - def stop(self): - self._stop() - - def port(self): - with self._lock: - return self._fore_link.port() - - -class _Stub(interfaces.Stub): - - def __init__( - self, breakdown, host, port, secure, root_certificates, private_key, - certificate_chain, metadata_transformer=None, server_host_override=None, - thread_pool_size=_DEFAULT_THREAD_POOL_SIZE): - self._lock = threading.Lock() - self._breakdown = breakdown - self._host = host - self._port = port - self._secure = secure - self._root_certificates = root_certificates - self._private_key = private_key - self._certificate_chain = certificate_chain - self._metadata_transformer = metadata_transformer - self._server_host_override = server_host_override - - self._pool_size = thread_pool_size - self._pool = None - self._front = None - self._rear_link = None - self._understub = None - - def __enter__(self): - with self._lock: - if self._pool is None: - self._pool = logging_pool.pool(self._pool_size) - self._front = _base_implementations.front_link( - self._pool, self._pool, self._pool) - self._rear_link = _rear.RearLink( - self._host, self._port, self._pool, - self._breakdown.request_serializers, - self._breakdown.response_deserializers, self._secure, - self._root_certificates, self._private_key, self._certificate_chain, - metadata_transformer=self._metadata_transformer, - server_host_override=self._server_host_override) - self._front.join_rear_link(self._rear_link) - self._rear_link.join_fore_link(self._front) - self._rear_link.start() - self._understub = _face_implementations.dynamic_stub( - self._breakdown.face_cardinalities, self._front, self._pool, '') - else: - raise ValueError('Tried to __enter__ already-__enter__ed Stub!') - return self - - def __exit__(self, exc_type, exc_val, exc_tb): - with self._lock: - if self._pool is None: - raise ValueError('Tried to __exit__ non-__enter__ed Stub!') - else: - self._rear_link.stop() - _base_utilities.wait_for_idle(self._front) - self._pool.shutdown(wait=True) - self._rear_link = None - self._front = None - self._pool = None - self._understub = None - return False - - def __getattr__(self, attr): - with self._lock: - if self._pool is None: - raise ValueError('Tried to __getattr__ non-__enter__ed Stub!') - else: - method_cardinality = self._breakdown.cardinalities.get(attr) - underlying_attr = getattr( - self._understub, self._breakdown.qualified_names.get(attr), None) - if method_cardinality is interfaces.Cardinality.UNARY_UNARY: - return _reexport.unary_unary_sync_async(underlying_attr) - elif method_cardinality is interfaces.Cardinality.UNARY_STREAM: - return lambda request, timeout: _reexport.cancellable_iterator( - underlying_attr(request, timeout)) - elif method_cardinality is interfaces.Cardinality.STREAM_UNARY: - return _reexport.stream_unary_sync_async(underlying_attr) - elif method_cardinality is interfaces.Cardinality.STREAM_STREAM: - return lambda request_iterator, timeout: ( - _reexport.cancellable_iterator(underlying_attr( - request_iterator, timeout))) - else: - raise AttributeError(attr) - - -def stub( - service_name, methods, host, port, metadata_transformer=None, secure=False, - root_certificates=None, private_key=None, certificate_chain=None, - server_host_override=None, thread_pool_size=_DEFAULT_THREAD_POOL_SIZE): - """Constructs an interfaces.Stub. - - Args: - service_name: The package-qualified full name of the service. - methods: A dictionary from RPC method name to - interfaces.RpcMethodInvocationDescription describing the RPCs to be - supported by the created stub. The RPC method names in the dictionary are - not qualified by the service name or decorated in any other way. - host: The host to which to connect for RPC service. - port: The port to which to connect for RPC service. - metadata_transformer: A callable that given a metadata object produces - another metadata object to be used in the underlying communication on the - wire. - secure: Whether or not to construct the stub with a secure connection. - root_certificates: The PEM-encoded root certificates or None to ask for - them to be retrieved from a default location. - private_key: The PEM-encoded private key to use or None if no private key - should be used. - certificate_chain: The PEM-encoded certificate chain to use or None if no - certificate chain should be used. - server_host_override: (For testing only) the target name used for SSL - host name checking. - thread_pool_size: The maximum number of threads to allow in the backing - thread pool. - - Returns: - An interfaces.Stub affording RPC invocation. - """ - breakdown = _face_utilities.break_down_invocation(service_name, methods) - return _Stub( - breakdown, host, port, secure, root_certificates, private_key, - certificate_chain, server_host_override=server_host_override, - metadata_transformer=metadata_transformer, - thread_pool_size=thread_pool_size) - - -def server( - service_name, methods, port, private_key=None, certificate_chain=None, - thread_pool_size=_DEFAULT_THREAD_POOL_SIZE): - """Constructs an interfaces.Server. - - Args: - service_name: The package-qualified full name of the service. - methods: A dictionary from RPC method name to - interfaces.RpcMethodServiceDescription describing the RPCs to - be serviced by the created server. The RPC method names in the dictionary - are not qualified by the service name or decorated in any other way. - port: The port on which to serve or zero to ask for a port to be - automatically selected. - private_key: A pem-encoded private key, or None for an insecure server. - certificate_chain: A pem-encoded certificate chain, or None for an insecure - server. - thread_pool_size: The maximum number of threads to allow in the backing - thread pool. - - Returns: - An interfaces.Server that will serve secure traffic. - """ - breakdown = _face_utilities.break_down_service(service_name, methods) - return _Server(breakdown, port, private_key, certificate_chain, - thread_pool_size=thread_pool_size) diff --git a/src/python/grpcio/grpc/framework/alpha/__init__.py b/src/python/grpcio/grpc/framework/alpha/__init__.py deleted file mode 100644 index bff74be2c7bbc79e3e32103436c9fbd708bf2c03..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/alpha/__init__.py +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import warnings - -warnings.simplefilter('always', DeprecationWarning) -warnings.warn('the alpha API (includes this package) is deprecated, ' - 'unmaintained, and no longer tested. Please migrate to the beta ' - 'API.', DeprecationWarning, stacklevel=2) diff --git a/src/python/grpcio/grpc/framework/alpha/_face_utilities.py b/src/python/grpcio/grpc/framework/alpha/_face_utilities.py deleted file mode 100644 index 15c47d5c92769be03b879f65eda64f2d970342d6..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/alpha/_face_utilities.py +++ /dev/null @@ -1,183 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import abc -import collections - -import six - -# face_interfaces is referenced from specification in this module. -from grpc.framework.common import cardinality -from grpc.framework.face import interfaces as face_interfaces # pylint: disable=unused-import -from grpc.framework.face import utilities as face_utilities -from grpc.framework.alpha import _reexport -from grpc.framework.alpha import interfaces - - -def _qualified_name(service_name, method_name): - return '/%s/%s' % (service_name, method_name) - - -# TODO(nathaniel): This structure is getting bloated; it could be shrunk if -# implementations._Stub used a generic rather than a dynamic underlying -# face-layer stub. -class InvocationBreakdown(six.with_metaclass(abc.ABCMeta)): - """An intermediate representation of invocation-side views of RPC methods. - - Attributes: - cardinalities: A dictionary from RPC method name to interfaces.Cardinality - value. - qualified_names: A dictionary from unqualified RPC method name to - service-qualified RPC method name. - face_cardinalities: A dictionary from service-qualified RPC method name to - to cardinality.Cardinality value. - request_serializers: A dictionary from service-qualified RPC method name to - callable behavior to be used serializing request values for the RPC. - response_deserializers: A dictionary from service-qualified RPC method name - to callable behavior to be used deserializing response values for the - RPC. - """ - - -class _EasyInvocationBreakdown( - InvocationBreakdown, - collections.namedtuple( - '_EasyInvocationBreakdown', - ('cardinalities', 'qualified_names', 'face_cardinalities', - 'request_serializers', 'response_deserializers'))): - pass - - -class ServiceBreakdown(six.with_metaclass(abc.ABCMeta)): - """An intermediate representation of service-side views of RPC methods. - - Attributes: - implementations: A dictionary from service-qualified RPC method name to - face_interfaces.MethodImplementation implementing the RPC method. - request_deserializers: A dictionary from service-qualified RPC method name - to callable behavior to be used deserializing request values for the RPC. - response_serializers: A dictionary from service-qualified RPC method name - to callable behavior to be used serializing response values for the RPC. - """ - - -class _EasyServiceBreakdown( - ServiceBreakdown, - collections.namedtuple( - '_EasyServiceBreakdown', - ('implementations', 'request_deserializers', 'response_serializers'))): - pass - - -def break_down_invocation(service_name, method_descriptions): - """Derives an InvocationBreakdown from several RPC method descriptions. - - Args: - service_name: The package-qualified full name of the service. - method_descriptions: A dictionary from RPC method name to - interfaces.RpcMethodInvocationDescription describing the RPCs. - - Returns: - An InvocationBreakdown corresponding to the given method descriptions. - """ - cardinalities = {} - qualified_names = {} - face_cardinalities = {} - request_serializers = {} - response_deserializers = {} - for name, method_description in six.iteritems(method_descriptions): - qualified_name = _qualified_name(service_name, name) - method_cardinality = method_description.cardinality() - cardinalities[name] = method_description.cardinality() - qualified_names[name] = qualified_name - face_cardinalities[qualified_name] = _reexport.common_cardinality( - method_cardinality) - request_serializers[qualified_name] = method_description.serialize_request - response_deserializers[qualified_name] = ( - method_description.deserialize_response) - return _EasyInvocationBreakdown( - cardinalities, qualified_names, face_cardinalities, request_serializers, - response_deserializers) - - -def break_down_service(service_name, method_descriptions): - """Derives a ServiceBreakdown from several RPC method descriptions. - - Args: - method_descriptions: A dictionary from RPC method name to - interfaces.RpcMethodServiceDescription describing the RPCs. - - Returns: - A ServiceBreakdown corresponding to the given method descriptions. - """ - implementations = {} - request_deserializers = {} - response_serializers = {} - for name, method_description in six.iteritems(method_descriptions): - qualified_name = _qualified_name(service_name, name) - method_cardinality = method_description.cardinality() - if method_cardinality is interfaces.Cardinality.UNARY_UNARY: - def service( - request, face_rpc_context, - service_behavior=method_description.service_unary_unary): - return service_behavior( - request, _reexport.rpc_context(face_rpc_context)) - implementations[qualified_name] = face_utilities.unary_unary_inline( - service) - elif method_cardinality is interfaces.Cardinality.UNARY_STREAM: - def service( - request, face_rpc_context, - service_behavior=method_description.service_unary_stream): - return service_behavior( - request, _reexport.rpc_context(face_rpc_context)) - implementations[qualified_name] = face_utilities.unary_stream_inline( - service) - elif method_cardinality is interfaces.Cardinality.STREAM_UNARY: - def service( - request_iterator, face_rpc_context, - service_behavior=method_description.service_stream_unary): - return service_behavior( - request_iterator, _reexport.rpc_context(face_rpc_context)) - implementations[qualified_name] = face_utilities.stream_unary_inline( - service) - elif method_cardinality is interfaces.Cardinality.STREAM_STREAM: - def service( - request_iterator, face_rpc_context, - service_behavior=method_description.service_stream_stream): - return service_behavior( - request_iterator, _reexport.rpc_context(face_rpc_context)) - implementations[qualified_name] = face_utilities.stream_stream_inline( - service) - request_deserializers[qualified_name] = ( - method_description.deserialize_request) - response_serializers[qualified_name] = ( - method_description.serialize_response) - - return _EasyServiceBreakdown( - implementations, request_deserializers, response_serializers) diff --git a/src/python/grpcio/grpc/framework/alpha/_reexport.py b/src/python/grpcio/grpc/framework/alpha/_reexport.py deleted file mode 100644 index e027077a771d9474b49f8b07566f11d9b4a01de9..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/alpha/_reexport.py +++ /dev/null @@ -1,205 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import six - -from grpc.framework.common import cardinality -from grpc.framework.face import exceptions as face_exceptions -from grpc.framework.face import interfaces as face_interfaces -from grpc.framework.foundation import future -from grpc.framework.alpha import exceptions -from grpc.framework.alpha import interfaces - -_EARLY_ADOPTER_CARDINALITY_TO_COMMON_CARDINALITY = { - interfaces.Cardinality.UNARY_UNARY: cardinality.Cardinality.UNARY_UNARY, - interfaces.Cardinality.UNARY_STREAM: cardinality.Cardinality.UNARY_STREAM, - interfaces.Cardinality.STREAM_UNARY: cardinality.Cardinality.STREAM_UNARY, - interfaces.Cardinality.STREAM_STREAM: cardinality.Cardinality.STREAM_STREAM, -} - -_ABORTION_REEXPORT = { - face_interfaces.Abortion.CANCELLED: interfaces.Abortion.CANCELLED, - face_interfaces.Abortion.EXPIRED: interfaces.Abortion.EXPIRED, - face_interfaces.Abortion.NETWORK_FAILURE: - interfaces.Abortion.NETWORK_FAILURE, - face_interfaces.Abortion.SERVICED_FAILURE: - interfaces.Abortion.SERVICED_FAILURE, - face_interfaces.Abortion.SERVICER_FAILURE: - interfaces.Abortion.SERVICER_FAILURE, -} - - -class _RpcError(exceptions.RpcError): - pass - - -def _reexport_error(face_rpc_error): - if isinstance(face_rpc_error, face_exceptions.CancellationError): - return exceptions.CancellationError() - elif isinstance(face_rpc_error, face_exceptions.ExpirationError): - return exceptions.ExpirationError() - else: - return _RpcError() - - -def _as_face_abortion_callback(abortion_callback): - def face_abortion_callback(face_abortion): - abortion_callback(_ABORTION_REEXPORT[face_abortion]) - return face_abortion_callback - - -class _ReexportedFuture(future.Future): - - def __init__(self, face_future): - self._face_future = face_future - - def cancel(self): - return self._face_future.cancel() - - def cancelled(self): - return self._face_future.cancelled() - - def running(self): - return self._face_future.running() - - def done(self): - return self._face_future.done() - - def result(self, timeout=None): - try: - return self._face_future.result(timeout=timeout) - except face_exceptions.RpcError as e: - raise _reexport_error(e) - - def exception(self, timeout=None): - face_error = self._face_future.exception(timeout=timeout) - return None if face_error is None else _reexport_error(face_error) - - def traceback(self, timeout=None): - return self._face_future.traceback(timeout=timeout) - - def add_done_callback(self, fn): - self._face_future.add_done_callback(lambda unused_face_future: fn(self)) - - -def _call_reexporting_errors(behavior, *args, **kwargs): - try: - return behavior(*args, **kwargs) - except face_exceptions.RpcError as e: - raise _reexport_error(e) - - -def _reexported_future(face_future): - return _ReexportedFuture(face_future) - - -class _CancellableIterator(interfaces.CancellableIterator): - - def __init__(self, face_cancellable_iterator): - self._face_cancellable_iterator = face_cancellable_iterator - - def __iter__(self): - return self - - def next(self): - return _call_reexporting_errors(self._face_cancellable_iterator.next) - - def cancel(self): - self._face_cancellable_iterator.cancel() - - -class _RpcContext(interfaces.RpcContext): - - def __init__(self, face_rpc_context): - self._face_rpc_context = face_rpc_context - - def is_active(self): - return self._face_rpc_context.is_active() - - def time_remaining(self): - return self._face_rpc_context.time_remaining() - - def add_abortion_callback(self, abortion_callback): - self._face_rpc_context.add_abortion_callback( - _as_face_abortion_callback(abortion_callback)) - - -class _UnaryUnarySyncAsync(interfaces.UnaryUnarySyncAsync): - - def __init__(self, face_unary_unary_multi_callable): - self._underlying = face_unary_unary_multi_callable - - def __call__(self, request, timeout): - return _call_reexporting_errors( - self._underlying, request, timeout) - - def async(self, request, timeout): - return _ReexportedFuture(self._underlying.future(request, timeout)) - - -class _StreamUnarySyncAsync(interfaces.StreamUnarySyncAsync): - - def __init__(self, face_stream_unary_multi_callable): - self._underlying = face_stream_unary_multi_callable - - def __call__(self, request_iterator, timeout): - return _call_reexporting_errors( - self._underlying, request_iterator, timeout) - - def async(self, request_iterator, timeout): - return _ReexportedFuture(self._underlying.future(request_iterator, timeout)) - - -def common_cardinality(early_adopter_cardinality): - return _EARLY_ADOPTER_CARDINALITY_TO_COMMON_CARDINALITY[ - early_adopter_cardinality] - - -def common_cardinalities(early_adopter_cardinalities): - common_cardinalities = {} - for name, early_adopter_cardinality in six.iteritems(early_adopter_cardinalities): - common_cardinalities[name] = _EARLY_ADOPTER_CARDINALITY_TO_COMMON_CARDINALITY[ - early_adopter_cardinality] - return common_cardinalities - - -def rpc_context(face_rpc_context): - return _RpcContext(face_rpc_context) - - -def cancellable_iterator(face_cancellable_iterator): - return _CancellableIterator(face_cancellable_iterator) - - -def unary_unary_sync_async(face_unary_unary_multi_callable): - return _UnaryUnarySyncAsync(face_unary_unary_multi_callable) - - -def stream_unary_sync_async(face_stream_unary_multi_callable): - return _StreamUnarySyncAsync(face_stream_unary_multi_callable) diff --git a/src/python/grpcio/grpc/framework/alpha/interfaces.py b/src/python/grpcio/grpc/framework/alpha/interfaces.py deleted file mode 100644 index 48f144f614f4c350034ac31a17b4f9b4097ef8e1..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/alpha/interfaces.py +++ /dev/null @@ -1,384 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Interfaces of GRPC.""" - -import abc -import enum - -import six - -# exceptions is referenced from specification in this module. -from grpc.framework.alpha import exceptions # pylint: disable=unused-import -from grpc.framework.foundation import activated -from grpc.framework.foundation import future - - -@enum.unique -class Cardinality(enum.Enum): - """Constants for the four cardinalities of RPC.""" - - UNARY_UNARY = 'request-unary/response-unary' - UNARY_STREAM = 'request-unary/response-streaming' - STREAM_UNARY = 'request-streaming/response-unary' - STREAM_STREAM = 'request-streaming/response-streaming' - - -@enum.unique -class Abortion(enum.Enum): - """Categories of RPC abortion.""" - - CANCELLED = 'cancelled' - EXPIRED = 'expired' - NETWORK_FAILURE = 'network failure' - SERVICED_FAILURE = 'serviced failure' - SERVICER_FAILURE = 'servicer failure' - - -class CancellableIterator(six.with_metaclass(abc.ABCMeta)): - """Implements the Iterator protocol and affords a cancel method.""" - - @abc.abstractmethod - def __iter__(self): - """Returns the self object in accordance with the Iterator protocol.""" - raise NotImplementedError() - - def __next__(self): - return self.next() - - @abc.abstractmethod - def next(self): - """Returns a value or raises StopIteration per the Iterator protocol.""" - raise NotImplementedError() - - @abc.abstractmethod - def cancel(self): - """Requests cancellation of whatever computation underlies this iterator.""" - raise NotImplementedError() - - -class RpcContext(six.with_metaclass(abc.ABCMeta)): - """Provides RPC-related information and action.""" - - @abc.abstractmethod - def is_active(self): - """Describes whether the RPC is active or has terminated.""" - raise NotImplementedError() - - @abc.abstractmethod - def time_remaining(self): - """Describes the length of allowed time remaining for the RPC. - Returns: - A nonnegative float indicating the length of allowed time in seconds - remaining for the RPC to complete before it is considered to have timed - out. - """ - raise NotImplementedError() - - @abc.abstractmethod - def add_abortion_callback(self, abortion_callback): - """Registers a callback to be called if the RPC is aborted. - Args: - abortion_callback: A callable to be called and passed an Abortion value - in the event of RPC abortion. - """ - raise NotImplementedError() - - -class UnaryUnarySyncAsync(six.with_metaclass(abc.ABCMeta)): - """Affords invoking a unary-unary RPC synchronously or asynchronously. - Values implementing this interface are directly callable and present an - "async" method. Both calls take a request value and a numeric timeout. - Direct invocation of a value of this type invokes its associated RPC and - blocks until the RPC's response is available. Calling the "async" method - of a value of this type invokes its associated RPC and immediately returns a - future.Future bound to the asynchronous execution of the RPC. - """ - - @abc.abstractmethod - def __call__(self, request, timeout): - """Synchronously invokes the underlying RPC. - Args: - request: The request value for the RPC. - timeout: A duration of time in seconds to allow for the RPC. - Returns: - The response value for the RPC. - Raises: - exceptions.RpcError: Indicating that the RPC was aborted. - """ - raise NotImplementedError() - - @abc.abstractmethod - def async(self, request, timeout): - """Asynchronously invokes the underlying RPC. - Args: - request: The request value for the RPC. - timeout: A duration of time in seconds to allow for the RPC. - Returns: - A future.Future representing the RPC. In the event of RPC completion, the - returned Future's result value will be the response value of the RPC. - In the event of RPC abortion, the returned Future's exception value - will be an exceptions.RpcError. - """ - raise NotImplementedError() - - -class StreamUnarySyncAsync(six.with_metaclass(abc.ABCMeta)): - """Affords invoking a stream-unary RPC synchronously or asynchronously. - Values implementing this interface are directly callable and present an - "async" method. Both calls take an iterator of request values and a numeric - timeout. Direct invocation of a value of this type invokes its associated RPC - and blocks until the RPC's response is available. Calling the "async" method - of a value of this type invokes its associated RPC and immediately returns a - future.Future bound to the asynchronous execution of the RPC. - """ - - @abc.abstractmethod - def __call__(self, request_iterator, timeout): - """Synchronously invokes the underlying RPC. - - Args: - request_iterator: An iterator that yields request values for the RPC. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - The response value for the RPC. - - Raises: - exceptions.RpcError: Indicating that the RPC was aborted. - """ - raise NotImplementedError() - - @abc.abstractmethod - def async(self, request_iterator, timeout): - """Asynchronously invokes the underlying RPC. - - Args: - request_iterator: An iterator that yields request values for the RPC. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - A future.Future representing the RPC. In the event of RPC completion, the - returned Future's result value will be the response value of the RPC. - In the event of RPC abortion, the returned Future's exception value - will be an exceptions.RpcError. - """ - raise NotImplementedError() - - -class RpcMethodDescription(six.with_metaclass(abc.ABCMeta)): - """A type for the common aspects of RPC method descriptions.""" - - @abc.abstractmethod - def cardinality(self): - """Identifies the cardinality of this RpcMethodDescription. - - Returns: - A Cardinality value identifying whether or not this - RpcMethodDescription is request-unary or request-streaming and - whether or not it is response-unary or response-streaming. - """ - raise NotImplementedError() - - -class RpcMethodInvocationDescription(six.with_metaclass(abc.ABCMeta, RpcMethodDescription)): - """Invocation-side description of an RPC method.""" - - @abc.abstractmethod - def serialize_request(self, request): - """Serializes a request value. - - Args: - request: A request value appropriate for the RPC method described by this - RpcMethodInvocationDescription. - - Returns: - The serialization of the given request value as a - bytestring. - """ - raise NotImplementedError() - - @abc.abstractmethod - def deserialize_response(self, serialized_response): - """Deserializes a response value. - - Args: - serialized_response: A bytestring that is the serialization of a response - value appropriate for the RPC method described by this - RpcMethodInvocationDescription. - - Returns: - A response value corresponding to the given bytestring. - """ - raise NotImplementedError() - - -class RpcMethodServiceDescription(six.with_metaclass(abc.ABCMeta, RpcMethodDescription)): - """Service-side description of an RPC method.""" - - @abc.abstractmethod - def deserialize_request(self, serialized_request): - """Deserializes a request value. - - Args: - serialized_request: A bytestring that is the serialization of a request - value appropriate for the RPC method described by this - RpcMethodServiceDescription. - - Returns: - A request value corresponding to the given bytestring. - """ - raise NotImplementedError() - - @abc.abstractmethod - def serialize_response(self, response): - """Serializes a response value. - - Args: - response: A response value appropriate for the RPC method described by - this RpcMethodServiceDescription. - - Returns: - The serialization of the given response value as a - bytestring. - """ - raise NotImplementedError() - - @abc.abstractmethod - def service_unary_unary(self, request, context): - """Carries out this RPC. - - This method may only be called if the cardinality of this - RpcMethodServiceDescription is Cardinality.UNARY_UNARY. - - Args: - request: A request value appropriate for the RPC method described by this - RpcMethodServiceDescription. - context: An RpcContext object for the RPC. - - Returns: - A response value appropriate for the RPC method described by this - RpcMethodServiceDescription. - """ - raise NotImplementedError() - - @abc.abstractmethod - def service_unary_stream(self, request, context): - """Carries out this RPC. - - This method may only be called if the cardinality of this - RpcMethodServiceDescription is Cardinality.UNARY_STREAM. - - Args: - request: A request value appropriate for the RPC method described by this - RpcMethodServiceDescription. - context: An RpcContext object for the RPC. - - Yields: - Zero or more response values appropriate for the RPC method described by - this RpcMethodServiceDescription. - """ - raise NotImplementedError() - - @abc.abstractmethod - def service_stream_unary(self, request_iterator, context): - """Carries out this RPC. - - This method may only be called if the cardinality of this - RpcMethodServiceDescription is Cardinality.STREAM_UNARY. - - Args: - request_iterator: An iterator of request values appropriate for the RPC - method described by this RpcMethodServiceDescription. - context: An RpcContext object for the RPC. - - Returns: - A response value appropriate for the RPC method described by this - RpcMethodServiceDescription. - """ - raise NotImplementedError() - - @abc.abstractmethod - def service_stream_stream(self, request_iterator, context): - """Carries out this RPC. - - This method may only be called if the cardinality of this - RpcMethodServiceDescription is Cardinality.STREAM_STREAM. - - Args: - request_iterator: An iterator of request values appropriate for the RPC - method described by this RpcMethodServiceDescription. - context: An RpcContext object for the RPC. - - Yields: - Zero or more response values appropriate for the RPC method described by - this RpcMethodServiceDescription. - """ - raise NotImplementedError() - - -class Stub(six.with_metaclass(abc.ABCMeta)): - """A stub with callable RPC method names for attributes. - - Instances of this type are context managers and only afford RPC invocation - when used in context. - - Instances of this type, when used in context, respond to attribute access - as follows: if the requested attribute is the name of a unary-unary RPC - method, the value of the attribute will be a UnaryUnarySyncAsync with which - to invoke the RPC method. If the requested attribute is the name of a - unary-stream RPC method, the value of the attribute will be a callable taking - a request object and a timeout parameter and returning a CancellableIterator - that yields the response values of the RPC. If the requested attribute is the - name of a stream-unary RPC method, the value of the attribute will be a - StreamUnarySyncAsync with which to invoke the RPC method. If the requested - attribute is the name of a stream-stream RPC method, the value of the - attribute will be a callable taking an iterator of request objects and a - timeout and returning a CancellableIterator that yields the response values - of the RPC. - - In all cases indication of abortion is indicated by raising of - exceptions.RpcError, exceptions.CancellationError, - and exceptions.ExpirationError. - """ - - -class Server(six.with_metaclass(abc.ABCMeta, activated.Activated)): - """A GRPC Server.""" - - @abc.abstractmethod - def port(self): - """Reports the port on which the server is serving. - - This method may only be called while the server is activated. - - Returns: - The port on which the server is serving. - """ - raise NotImplementedError() diff --git a/src/python/grpcio/grpc/framework/alpha/utilities.py b/src/python/grpcio/grpc/framework/alpha/utilities.py deleted file mode 100644 index 7d7f78f5e44d6bc8a03263b5052ba8da76746ac5..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/alpha/utilities.py +++ /dev/null @@ -1,269 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Utilities for use with GRPC.""" - -from grpc.framework.alpha import interfaces - - -class _RpcMethodDescription( - interfaces.RpcMethodInvocationDescription, - interfaces.RpcMethodServiceDescription): - - def __init__( - self, cardinality, unary_unary, unary_stream, stream_unary, - stream_stream, request_serializer, request_deserializer, - response_serializer, response_deserializer): - self._cardinality = cardinality - self._unary_unary = unary_unary - self._unary_stream = unary_stream - self._stream_unary = stream_unary - self._stream_stream = stream_stream - self._request_serializer = request_serializer - self._request_deserializer = request_deserializer - self._response_serializer = response_serializer - self._response_deserializer = response_deserializer - - def cardinality(self): - """See interfaces.RpcMethodDescription.cardinality for specification.""" - return self._cardinality - - def serialize_request(self, request): - """See interfaces.RpcMethodInvocationDescription.serialize_request.""" - return self._request_serializer(request) - - def deserialize_request(self, serialized_request): - """See interfaces.RpcMethodServiceDescription.deserialize_request.""" - return self._request_deserializer(serialized_request) - - def serialize_response(self, response): - """See interfaces.RpcMethodServiceDescription.serialize_response.""" - return self._response_serializer(response) - - def deserialize_response(self, serialized_response): - """See interfaces.RpcMethodInvocationDescription.deserialize_response.""" - return self._response_deserializer(serialized_response) - - def service_unary_unary(self, request, context): - """See interfaces.RpcMethodServiceDescription.service_unary_unary.""" - return self._unary_unary(request, context) - - def service_unary_stream(self, request, context): - """See interfaces.RpcMethodServiceDescription.service_unary_stream.""" - return self._unary_stream(request, context) - - def service_stream_unary(self, request_iterator, context): - """See interfaces.RpcMethodServiceDescription.service_stream_unary.""" - return self._stream_unary(request_iterator, context) - - def service_stream_stream(self, request_iterator, context): - """See interfaces.RpcMethodServiceDescription.service_stream_stream.""" - return self._stream_stream(request_iterator, context) - - -def unary_unary_invocation_description( - request_serializer, response_deserializer): - """Creates an interfaces.RpcMethodInvocationDescription for an RPC method. - - Args: - request_serializer: A callable that when called on a request - value returns a bytestring corresponding to that value. - response_deserializer: A callable that when called on a - bytestring returns the response value corresponding to - that bytestring. - - Returns: - An interfaces.RpcMethodInvocationDescription constructed from the given - arguments representing a unary-request/unary-response RPC method. - """ - return _RpcMethodDescription( - interfaces.Cardinality.UNARY_UNARY, None, None, None, None, - request_serializer, None, None, response_deserializer) - - -def unary_stream_invocation_description( - request_serializer, response_deserializer): - """Creates an interfaces.RpcMethodInvocationDescription for an RPC method. - - Args: - request_serializer: A callable that when called on a request - value returns a bytestring corresponding to that value. - response_deserializer: A callable that when called on a - bytestring returns the response value corresponding to - that bytestring. - - Returns: - An interfaces.RpcMethodInvocationDescription constructed from the given - arguments representing a unary-request/streaming-response RPC method. - """ - return _RpcMethodDescription( - interfaces.Cardinality.UNARY_STREAM, None, None, None, None, - request_serializer, None, None, response_deserializer) - - -def stream_unary_invocation_description( - request_serializer, response_deserializer): - """Creates an interfaces.RpcMethodInvocationDescription for an RPC method. - - Args: - request_serializer: A callable that when called on a request - value returns a bytestring corresponding to that value. - response_deserializer: A callable that when called on a - bytestring returns the response value corresponding to - that bytestring. - - Returns: - An interfaces.RpcMethodInvocationDescription constructed from the given - arguments representing a streaming-request/unary-response RPC method. - """ - return _RpcMethodDescription( - interfaces.Cardinality.STREAM_UNARY, None, None, None, None, - request_serializer, None, None, response_deserializer) - - -def stream_stream_invocation_description( - request_serializer, response_deserializer): - """Creates an interfaces.RpcMethodInvocationDescription for an RPC method. - - Args: - request_serializer: A callable that when called on a request - value returns a bytestring corresponding to that value. - response_deserializer: A callable that when called on a - bytestring returns the response value corresponding to - that bytestring. - - Returns: - An interfaces.RpcMethodInvocationDescription constructed from the given - arguments representing a streaming-request/streaming-response RPC - method. - """ - return _RpcMethodDescription( - interfaces.Cardinality.STREAM_STREAM, None, None, None, None, - request_serializer, None, None, response_deserializer) - - -def unary_unary_service_description( - behavior, request_deserializer, response_serializer): - """Creates an interfaces.RpcMethodServiceDescription for the given behavior. - - Args: - behavior: A callable that implements a unary-unary RPC - method that accepts a single request and an interfaces.RpcContext and - returns a single response. - request_deserializer: A callable that when called on a - bytestring returns the request value corresponding to that - bytestring. - response_serializer: A callable that when called on a - response value returns the bytestring corresponding to - that value. - - Returns: - An interfaces.RpcMethodServiceDescription constructed from the given - arguments representing a unary-request/unary-response RPC - method. - """ - return _RpcMethodDescription( - interfaces.Cardinality.UNARY_UNARY, behavior, None, None, None, - None, request_deserializer, response_serializer, None) - - -def unary_stream_service_description( - behavior, request_deserializer, response_serializer): - """Creates an interfaces.RpcMethodServiceDescription for the given behavior. - - Args: - behavior: A callable that implements a unary-stream RPC - method that accepts a single request and an interfaces.RpcContext - and returns an iterator of zero or more responses. - request_deserializer: A callable that when called on a - bytestring returns the request value corresponding to that - bytestring. - response_serializer: A callable that when called on a - response value returns the bytestring corresponding to - that value. - - Returns: - An interfaces.RpcMethodServiceDescription constructed from the given - arguments representing a unary-request/streaming-response - RPC method. - """ - return _RpcMethodDescription( - interfaces.Cardinality.UNARY_STREAM, None, behavior, None, None, - None, request_deserializer, response_serializer, None) - - -def stream_unary_service_description( - behavior, request_deserializer, response_serializer): - """Creates an interfaces.RpcMethodServiceDescription for the given behavior. - - Args: - behavior: A callable that implements a stream-unary RPC - method that accepts an iterator of zero or more requests - and an interfaces.RpcContext and returns a single response. - request_deserializer: A callable that when called on a - bytestring returns the request value corresponding to that - bytestring. - response_serializer: A callable that when called on a - response value returns the bytestring corresponding to - that value. - - Returns: - An interfaces.RpcMethodServiceDescription constructed from the given - arguments representing a streaming-request/unary-response - RPC method. - """ - return _RpcMethodDescription( - interfaces.Cardinality.STREAM_UNARY, None, None, behavior, None, - None, request_deserializer, response_serializer, None) - - -def stream_stream_service_description( - behavior, request_deserializer, response_serializer): - """Creates an interfaces.RpcMethodServiceDescription for the given behavior. - - Args: - behavior: A callable that implements a stream-stream RPC - method that accepts an iterator of zero or more requests - and an interfaces.RpcContext and returns an iterator of - zero or more responses. - request_deserializer: A callable that when called on a - bytestring returns the request value corresponding to that - bytestring. - response_serializer: A callable that when called on a - response value returns the bytestring corresponding to - that value. - - Returns: - An interfaces.RpcMethodServiceDescription constructed from the given - arguments representing a - streaming-request/streaming-response RPC method. - """ - return _RpcMethodDescription( - interfaces.Cardinality.STREAM_STREAM, None, None, None, behavior, - None, request_deserializer, response_serializer, None) diff --git a/src/python/grpcio/grpc/framework/base/_constants.py b/src/python/grpcio/grpc/framework/base/_constants.py deleted file mode 100644 index 8fbdc82782a7a4f1e0c7578577becf5ebb6dee59..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/base/_constants.py +++ /dev/null @@ -1,32 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Private constants for the package.""" - -INTERNAL_ERROR_LOG_MESSAGE = ':-( RPC Framework (Base) internal error! :-(' diff --git a/src/python/grpcio/grpc/framework/base/_context.py b/src/python/grpcio/grpc/framework/base/_context.py deleted file mode 100644 index d84871d6399db8d7bb04d8d31457ad0b729052e7..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/base/_context.py +++ /dev/null @@ -1,99 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""State and behavior for operation context.""" - -import time - -# _interfaces is referenced from specification in this module. -from grpc.framework.base import interfaces -from grpc.framework.base import _interfaces # pylint: disable=unused-import - - -class OperationContext(interfaces.OperationContext): - """An implementation of interfaces.OperationContext.""" - - def __init__( - self, lock, operation_id, local_failure, termination_manager, - transmission_manager): - """Constructor. - - Args: - lock: The operation-wide lock. - operation_id: An object identifying the operation. - local_failure: Whichever one of interfaces.Outcome.SERVICED_FAILURE or - interfaces.Outcome.SERVICER_FAILURE describes local failure of - customer code. - termination_manager: The _interfaces.TerminationManager for the operation. - transmission_manager: The _interfaces.TransmissionManager for the - operation. - """ - self._lock = lock - self._local_failure = local_failure - self._termination_manager = termination_manager - self._transmission_manager = transmission_manager - self._ingestion_manager = None - self._expiration_manager = None - - self.operation_id = operation_id - - def set_ingestion_and_expiration_managers( - self, ingestion_manager, expiration_manager): - """Sets managers with which this OperationContext cooperates. - - Args: - ingestion_manager: The _interfaces.IngestionManager for the operation. - expiration_manager: The _interfaces.ExpirationManager for the operation. - """ - self._ingestion_manager = ingestion_manager - self._expiration_manager = expiration_manager - - def is_active(self): - """See interfaces.OperationContext.is_active for specification.""" - with self._lock: - return self._termination_manager.is_active() - - def add_termination_callback(self, callback): - """See interfaces.OperationContext.add_termination_callback.""" - with self._lock: - self._termination_manager.add_callback(callback) - - def time_remaining(self): - """See interfaces.OperationContext.time_remaining for specification.""" - with self._lock: - deadline = self._expiration_manager.deadline() - return max(0.0, deadline - time.time()) - - def fail(self, exception): - """See interfaces.OperationContext.fail for specification.""" - with self._lock: - self._termination_manager.abort(self._local_failure) - self._transmission_manager.abort(self._local_failure) - self._ingestion_manager.abort() - self._expiration_manager.abort() diff --git a/src/python/grpcio/grpc/framework/base/_emission.py b/src/python/grpcio/grpc/framework/base/_emission.py deleted file mode 100644 index 1829669a72b8e3fa0531efa715669d6fcc89c1ab..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/base/_emission.py +++ /dev/null @@ -1,125 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""State and behavior for handling emitted values.""" - -from grpc.framework.base import interfaces -from grpc.framework.base import _interfaces - - -class _EmissionManager(_interfaces.EmissionManager): - """An implementation of _interfaces.EmissionManager.""" - - def __init__( - self, lock, failure_outcome, termination_manager, transmission_manager): - """Constructor. - - Args: - lock: The operation-wide lock. - failure_outcome: Whichever one of interfaces.Outcome.SERVICED_FAILURE or - interfaces.Outcome.SERVICER_FAILURE describes this object's methods - being called inappropriately by customer code. - termination_manager: The _interfaces.TerminationManager for the operation. - transmission_manager: The _interfaces.TransmissionManager for the - operation. - """ - self._lock = lock - self._failure_outcome = failure_outcome - self._termination_manager = termination_manager - self._transmission_manager = transmission_manager - self._ingestion_manager = None - self._expiration_manager = None - - self._emission_complete = False - - def set_ingestion_manager_and_expiration_manager( - self, ingestion_manager, expiration_manager): - self._ingestion_manager = ingestion_manager - self._expiration_manager = expiration_manager - - def _abort(self): - self._termination_manager.abort(self._failure_outcome) - self._transmission_manager.abort(self._failure_outcome) - self._ingestion_manager.abort() - self._expiration_manager.abort() - - def consume(self, value): - with self._lock: - if self._emission_complete: - self._abort() - else: - self._transmission_manager.inmit(value, False) - - def terminate(self): - with self._lock: - if not self._emission_complete: - self._termination_manager.emission_complete() - self._transmission_manager.inmit(None, True) - self._emission_complete = True - - def consume_and_terminate(self, value): - with self._lock: - if self._emission_complete: - self._abort() - else: - self._termination_manager.emission_complete() - self._transmission_manager.inmit(value, True) - self._emission_complete = True - - -def front_emission_manager(lock, termination_manager, transmission_manager): - """Creates an _interfaces.EmissionManager appropriate for front-side use. - - Args: - lock: The operation-wide lock. - termination_manager: The _interfaces.TerminationManager for the operation. - transmission_manager: The _interfaces.TransmissionManager for the operation. - - Returns: - An _interfaces.EmissionManager appropriate for front-side use. - """ - return _EmissionManager( - lock, interfaces.Outcome.SERVICED_FAILURE, termination_manager, - transmission_manager) - - -def back_emission_manager(lock, termination_manager, transmission_manager): - """Creates an _interfaces.EmissionManager appropriate for back-side use. - - Args: - lock: The operation-wide lock. - termination_manager: The _interfaces.TerminationManager for the operation. - transmission_manager: The _interfaces.TransmissionManager for the operation. - - Returns: - An _interfaces.EmissionManager appropriate for back-side use. - """ - return _EmissionManager( - lock, interfaces.Outcome.SERVICER_FAILURE, termination_manager, - transmission_manager) diff --git a/src/python/grpcio/grpc/framework/base/_ends.py b/src/python/grpcio/grpc/framework/base/_ends.py deleted file mode 100644 index 176f3ac06e3d77e5f15d96258fe0456e1132764b..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/base/_ends.py +++ /dev/null @@ -1,399 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Implementations of FrontLinks and BackLinks.""" - -import collections -import threading -import uuid - -# _interfaces is referenced from specification in this module. -from grpc.framework.base import _cancellation -from grpc.framework.base import _context -from grpc.framework.base import _emission -from grpc.framework.base import _expiration -from grpc.framework.base import _ingestion -from grpc.framework.base import _interfaces # pylint: disable=unused-import -from grpc.framework.base import _reception -from grpc.framework.base import _termination -from grpc.framework.base import _transmission -from grpc.framework.base import interfaces -from grpc.framework.foundation import callable_util - -_IDLE_ACTION_EXCEPTION_LOG_MESSAGE = 'Exception calling idle action!' - - -class _EasyOperation(interfaces.Operation): - """A trivial implementation of interfaces.Operation.""" - - def __init__(self, emission_manager, context, cancellation_manager): - """Constructor. - - Args: - emission_manager: The _interfaces.EmissionManager for the operation that - will accept values emitted by customer code. - context: The interfaces.OperationContext for use by the customer - during the operation. - cancellation_manager: The _interfaces.CancellationManager for the - operation. - """ - self.consumer = emission_manager - self.context = context - self._cancellation_manager = cancellation_manager - - def cancel(self): - self._cancellation_manager.cancel() - - -class _Endlette(object): - """Utility for stateful behavior common to Fronts and Backs.""" - - def __init__(self, pool): - """Constructor. - - Args: - pool: A thread pool to use when calling registered idle actions. - """ - self._lock = threading.Lock() - self._pool = pool - # Dictionary from operation IDs to ReceptionManager-or-None. A None value - # indicates an in-progress fire-and-forget operation for which the customer - # has chosen to ignore results. - self._operations = {} - self._stats = {outcome: 0 for outcome in interfaces.Outcome} - self._idle_actions = [] - - def terminal_action(self, operation_id): - """Constructs the termination action for a single operation. - - Args: - operation_id: An operation ID. - - Returns: - A callable that takes an operation outcome for an argument to be used as - the termination action for the operation associated with the given - operation ID. - """ - def termination_action(outcome): - with self._lock: - self._stats[outcome] += 1 - self._operations.pop(operation_id, None) - if not self._operations: - for action in self._idle_actions: - self._pool.submit(callable_util.with_exceptions_logged( - action, _IDLE_ACTION_EXCEPTION_LOG_MESSAGE)) - self._idle_actions = [] - return termination_action - - def __enter__(self): - self._lock.acquire() - - def __exit__(self, exc_type, exc_val, exc_tb): - self._lock.release() - - def get_operation(self, operation_id): - return self._operations.get(operation_id, None) - - def add_operation(self, operation_id, operation_reception_manager): - self._operations[operation_id] = operation_reception_manager - - def operation_stats(self): - with self._lock: - return dict(self._stats) - - def add_idle_action(self, action): - with self._lock: - if self._operations: - self._idle_actions.append(action) - else: - self._pool.submit(callable_util.with_exceptions_logged( - action, _IDLE_ACTION_EXCEPTION_LOG_MESSAGE)) - - -class _FrontManagement( - collections.namedtuple( - '_FrontManagement', - ('reception', 'emission', 'operation', 'cancellation'))): - """Just a trivial helper class to bundle four fellow-traveling objects.""" - - -def _front_operate( - callback, work_pool, transmission_pool, utility_pool, - termination_action, operation_id, name, payload, complete, timeout, - subscription, trace_id): - """Constructs objects necessary for front-side operation management. - - Args: - callback: A callable that accepts interfaces.FrontToBackTickets and - delivers them to the other side of the operation. Execution of this - callable may take any arbitrary length of time. - work_pool: A thread pool in which to execute customer code. - transmission_pool: A thread pool to use for transmitting to the other side - of the operation. - utility_pool: A thread pool for utility tasks. - termination_action: A no-arg behavior to be called upon operation - completion. - operation_id: An object identifying the operation. - name: The name of the method being called during the operation. - payload: The first customer-significant value to be transmitted to the other - side. May be None if there is no such value or if the customer chose not - to pass it at operation invocation. - complete: A boolean indicating whether or not additional payloads will be - supplied by the customer. - timeout: A length of time in seconds to allow for the operation. - subscription: A interfaces.ServicedSubscription describing the - customer's interest in the results of the operation. - trace_id: A uuid.UUID identifying a set of related operations to which this - operation belongs. May be None. - - Returns: - A _FrontManagement object bundling together the - _interfaces.ReceptionManager, _interfaces.EmissionManager, - _context.OperationContext, and _interfaces.CancellationManager for the - operation. - """ - lock = threading.Lock() - with lock: - termination_manager = _termination.front_termination_manager( - work_pool, utility_pool, termination_action, subscription.kind) - transmission_manager = _transmission.front_transmission_manager( - lock, transmission_pool, callback, operation_id, name, - subscription.kind, trace_id, timeout, termination_manager) - operation_context = _context.OperationContext( - lock, operation_id, interfaces.Outcome.SERVICED_FAILURE, - termination_manager, transmission_manager) - emission_manager = _emission.front_emission_manager( - lock, termination_manager, transmission_manager) - ingestion_manager = _ingestion.front_ingestion_manager( - lock, work_pool, subscription, termination_manager, - transmission_manager, operation_context) - expiration_manager = _expiration.front_expiration_manager( - lock, termination_manager, transmission_manager, ingestion_manager, - timeout) - reception_manager = _reception.front_reception_manager( - lock, termination_manager, transmission_manager, ingestion_manager, - expiration_manager) - cancellation_manager = _cancellation.CancellationManager( - lock, termination_manager, transmission_manager, ingestion_manager, - expiration_manager) - - termination_manager.set_expiration_manager(expiration_manager) - transmission_manager.set_ingestion_and_expiration_managers( - ingestion_manager, expiration_manager) - operation_context.set_ingestion_and_expiration_managers( - ingestion_manager, expiration_manager) - emission_manager.set_ingestion_manager_and_expiration_manager( - ingestion_manager, expiration_manager) - ingestion_manager.set_expiration_manager(expiration_manager) - - transmission_manager.inmit(payload, complete) - - if subscription.kind is interfaces.ServicedSubscription.Kind.NONE: - returned_reception_manager = None - else: - returned_reception_manager = reception_manager - - return _FrontManagement( - returned_reception_manager, emission_manager, operation_context, - cancellation_manager) - - -class FrontLink(interfaces.FrontLink): - """An implementation of interfaces.FrontLink.""" - - def __init__(self, work_pool, transmission_pool, utility_pool): - """Constructor. - - Args: - work_pool: A thread pool to be used for executing customer code. - transmission_pool: A thread pool to be used for transmitting values to - the other side of the operation. - utility_pool: A thread pool to be used for utility tasks. - """ - self._endlette = _Endlette(utility_pool) - self._work_pool = work_pool - self._transmission_pool = transmission_pool - self._utility_pool = utility_pool - self._callback = None - - self._operations = {} - - def join_rear_link(self, rear_link): - """See interfaces.ForeLink.join_rear_link for specification.""" - with self._endlette: - self._callback = rear_link.accept_front_to_back_ticket - - def operation_stats(self): - """See interfaces.End.operation_stats for specification.""" - return self._endlette.operation_stats() - - def add_idle_action(self, action): - """See interfaces.End.add_idle_action for specification.""" - self._endlette.add_idle_action(action) - - def operate( - self, name, payload, complete, timeout, subscription, trace_id): - """See interfaces.Front.operate for specification.""" - operation_id = uuid.uuid4() - with self._endlette: - management = _front_operate( - self._callback, self._work_pool, self._transmission_pool, - self._utility_pool, self._endlette.terminal_action(operation_id), - operation_id, name, payload, complete, timeout, subscription, - trace_id) - self._endlette.add_operation(operation_id, management.reception) - return _EasyOperation( - management.emission, management.operation, management.cancellation) - - def accept_back_to_front_ticket(self, ticket): - """See interfaces.End.act for specification.""" - with self._endlette: - reception_manager = self._endlette.get_operation(ticket.operation_id) - if reception_manager: - reception_manager.receive_ticket(ticket) - - -def _back_operate( - servicer, callback, work_pool, transmission_pool, utility_pool, - termination_action, ticket, default_timeout, maximum_timeout): - """Constructs objects necessary for back-side operation management. - - Also begins back-side operation by feeding the first received ticket into the - constructed _interfaces.ReceptionManager. - - Args: - servicer: An interfaces.Servicer for servicing operations. - callback: A callable that accepts interfaces.BackToFrontTickets and - delivers them to the other side of the operation. Execution of this - callable may take any arbitrary length of time. - work_pool: A thread pool in which to execute customer code. - transmission_pool: A thread pool to use for transmitting to the other side - of the operation. - utility_pool: A thread pool for utility tasks. - termination_action: A no-arg behavior to be called upon operation - completion. - ticket: The first interfaces.FrontToBackTicket received for the operation. - default_timeout: A length of time in seconds to be used as the default - time alloted for a single operation. - maximum_timeout: A length of time in seconds to be used as the maximum - time alloted for a single operation. - - Returns: - The _interfaces.ReceptionManager to be used for the operation. - """ - lock = threading.Lock() - with lock: - termination_manager = _termination.back_termination_manager( - work_pool, utility_pool, termination_action, ticket.subscription) - transmission_manager = _transmission.back_transmission_manager( - lock, transmission_pool, callback, ticket.operation_id, - termination_manager, ticket.subscription) - operation_context = _context.OperationContext( - lock, ticket.operation_id, interfaces.Outcome.SERVICER_FAILURE, - termination_manager, transmission_manager) - emission_manager = _emission.back_emission_manager( - lock, termination_manager, transmission_manager) - ingestion_manager = _ingestion.back_ingestion_manager( - lock, work_pool, servicer, termination_manager, - transmission_manager, operation_context, emission_manager) - expiration_manager = _expiration.back_expiration_manager( - lock, termination_manager, transmission_manager, ingestion_manager, - ticket.timeout, default_timeout, maximum_timeout) - reception_manager = _reception.back_reception_manager( - lock, termination_manager, transmission_manager, ingestion_manager, - expiration_manager) - - termination_manager.set_expiration_manager(expiration_manager) - transmission_manager.set_ingestion_and_expiration_managers( - ingestion_manager, expiration_manager) - operation_context.set_ingestion_and_expiration_managers( - ingestion_manager, expiration_manager) - emission_manager.set_ingestion_manager_and_expiration_manager( - ingestion_manager, expiration_manager) - ingestion_manager.set_expiration_manager(expiration_manager) - - reception_manager.receive_ticket(ticket) - - return reception_manager - - -class BackLink(interfaces.BackLink): - """An implementation of interfaces.BackLink.""" - - def __init__( - self, servicer, work_pool, transmission_pool, utility_pool, - default_timeout, maximum_timeout): - """Constructor. - - Args: - servicer: An interfaces.Servicer for servicing operations. - work_pool: A thread pool in which to execute customer code. - transmission_pool: A thread pool to use for transmitting to the other side - of the operation. - utility_pool: A thread pool for utility tasks. - default_timeout: A length of time in seconds to be used as the default - time alloted for a single operation. - maximum_timeout: A length of time in seconds to be used as the maximum - time alloted for a single operation. - """ - self._endlette = _Endlette(utility_pool) - self._servicer = servicer - self._work_pool = work_pool - self._transmission_pool = transmission_pool - self._utility_pool = utility_pool - self._default_timeout = default_timeout - self._maximum_timeout = maximum_timeout - self._callback = None - - def join_fore_link(self, fore_link): - """See interfaces.RearLink.join_fore_link for specification.""" - with self._endlette: - self._callback = fore_link.accept_back_to_front_ticket - - def accept_front_to_back_ticket(self, ticket): - """See interfaces.RearLink.accept_front_to_back_ticket for specification.""" - with self._endlette: - reception_manager = self._endlette.get_operation(ticket.operation_id) - if reception_manager is None: - reception_manager = _back_operate( - self._servicer, self._callback, self._work_pool, - self._transmission_pool, self._utility_pool, - self._endlette.terminal_action(ticket.operation_id), ticket, - self._default_timeout, self._maximum_timeout) - self._endlette.add_operation(ticket.operation_id, reception_manager) - else: - reception_manager.receive_ticket(ticket) - - def operation_stats(self): - """See interfaces.End.operation_stats for specification.""" - return self._endlette.operation_stats() - - def add_idle_action(self, action): - """See interfaces.End.add_idle_action for specification.""" - self._endlette.add_idle_action(action) diff --git a/src/python/grpcio/grpc/framework/base/_expiration.py b/src/python/grpcio/grpc/framework/base/_expiration.py deleted file mode 100644 index 17acbef4c111489e5f8973e32911a07bc25624ba..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/base/_expiration.py +++ /dev/null @@ -1,158 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""State and behavior for operation expiration.""" - -import time - -from grpc.framework.base import _interfaces -from grpc.framework.base import interfaces -from grpc.framework.foundation import later - - -class _ExpirationManager(_interfaces.ExpirationManager): - """An implementation of _interfaces.ExpirationManager.""" - - def __init__( - self, lock, termination_manager, transmission_manager, ingestion_manager, - commencement, timeout, maximum_timeout): - """Constructor. - - Args: - lock: The operation-wide lock. - termination_manager: The _interfaces.TerminationManager for the operation. - transmission_manager: The _interfaces.TransmissionManager for the - operation. - ingestion_manager: The _interfaces.IngestionManager for the operation. - commencement: The time in seconds since the epoch at which the operation - began. - timeout: A length of time in seconds to allow for the operation to run. - maximum_timeout: The maximum length of time in seconds to allow for the - operation to run despite what is requested via this object's - change_timout method. - """ - self._lock = lock - self._termination_manager = termination_manager - self._transmission_manager = transmission_manager - self._ingestion_manager = ingestion_manager - self._commencement = commencement - self._maximum_timeout = maximum_timeout - - self._timeout = timeout - self._deadline = commencement + timeout - self._index = None - self._future = None - - def _expire(self, index): - with self._lock: - if self._future is not None and index == self._index: - self._future = None - self._termination_manager.abort(interfaces.Outcome.EXPIRED) - self._transmission_manager.abort(interfaces.Outcome.EXPIRED) - self._ingestion_manager.abort() - - def start(self): - self._index = 0 - self._future = later.later(self._timeout, lambda: self._expire(0)) - - def change_timeout(self, timeout): - if self._future is not None and timeout != self._timeout: - self._future.cancel() - new_timeout = min(timeout, self._maximum_timeout) - new_index = self._index + 1 - self._timeout = new_timeout - self._deadline = self._commencement + new_timeout - self._index = new_index - delay = self._deadline - time.time() - self._future = later.later( - delay, lambda: self._expire(new_index)) - - def deadline(self): - return self._deadline - - def abort(self): - if self._future: - self._future.cancel() - self._future = None - self._deadline_index = None - - -def front_expiration_manager( - lock, termination_manager, transmission_manager, ingestion_manager, - timeout): - """Creates an _interfaces.ExpirationManager appropriate for front-side use. - - Args: - lock: The operation-wide lock. - termination_manager: The _interfaces.TerminationManager for the operation. - transmission_manager: The _interfaces.TransmissionManager for the - operation. - ingestion_manager: The _interfaces.IngestionManager for the operation. - timeout: A length of time in seconds to allow for the operation to run. - - Returns: - An _interfaces.ExpirationManager appropriate for front-side use. - """ - commencement = time.time() - expiration_manager = _ExpirationManager( - lock, termination_manager, transmission_manager, ingestion_manager, - commencement, timeout, timeout) - expiration_manager.start() - return expiration_manager - - -def back_expiration_manager( - lock, termination_manager, transmission_manager, ingestion_manager, - timeout, default_timeout, maximum_timeout): - """Creates an _interfaces.ExpirationManager appropriate for back-side use. - - Args: - lock: The operation-wide lock. - termination_manager: The _interfaces.TerminationManager for the operation. - transmission_manager: The _interfaces.TransmissionManager for the - operation. - ingestion_manager: The _interfaces.IngestionManager for the operation. - timeout: A length of time in seconds to allow for the operation to run. May - be None in which case default_timeout will be used. - default_timeout: The default length of time in seconds to allow for the - operation to run if the front-side customer has not specified such a value - (or if the value they specified is not yet known). - maximum_timeout: The maximum length of time in seconds to allow for the - operation to run. - - Returns: - An _interfaces.ExpirationManager appropriate for back-side use. - """ - commencement = time.time() - expiration_manager = _ExpirationManager( - lock, termination_manager, transmission_manager, ingestion_manager, - commencement, default_timeout if timeout is None else timeout, - maximum_timeout) - expiration_manager.start() - return expiration_manager diff --git a/src/python/grpcio/grpc/framework/base/_ingestion.py b/src/python/grpcio/grpc/framework/base/_ingestion.py deleted file mode 100644 index c9b10acb77a077cce26f48e55f1f2521bca24374..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/base/_ingestion.py +++ /dev/null @@ -1,443 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""State and behavior for ingestion during an operation.""" - -import abc -import collections - -import six - -from grpc.framework.base import _constants -from grpc.framework.base import _interfaces -from grpc.framework.base import exceptions -from grpc.framework.base import interfaces -from grpc.framework.foundation import abandonment -from grpc.framework.foundation import callable_util -from grpc.framework.foundation import stream - -_CREATE_CONSUMER_EXCEPTION_LOG_MESSAGE = 'Exception initializing ingestion!' -_CONSUME_EXCEPTION_LOG_MESSAGE = 'Exception during ingestion!' - - -class _ConsumerCreation(collections.namedtuple( - '_ConsumerCreation', ('consumer', 'remote_error', 'abandoned'))): - """A sum type for the outcome of ingestion initialization. - - Either consumer will be non-None, remote_error will be True, or abandoned will - be True. - - Attributes: - consumer: A stream.Consumer for ingesting payloads. - remote_error: A boolean indicating that the consumer could not be created - due to an error on the remote side of the operation. - abandoned: A boolean indicating that the consumer creation was abandoned. - """ - - -class _EmptyConsumer(stream.Consumer): - """A no-operative stream.Consumer that ignores all inputs and calls.""" - - def consume(self, value): - """See stream.Consumer.consume for specification.""" - - def terminate(self): - """See stream.Consumer.terminate for specification.""" - - def consume_and_terminate(self, value): - """See stream.Consumer.consume_and_terminate for specification.""" - - -class _ConsumerCreator(six.with_metaclass(abc.ABCMeta)): - """Common specification of different consumer-creating behavior.""" - - @abc.abstractmethod - def create_consumer(self, requirement): - """Creates the stream.Consumer to which customer payloads will be delivered. - - Any exceptions raised by this method should be attributed to and treated as - defects in the serviced or servicer code called by this method. - - Args: - requirement: A value required by this _ConsumerCreator for consumer - creation. - - Returns: - A _ConsumerCreation describing the result of consumer creation. - """ - raise NotImplementedError() - - -class _FrontConsumerCreator(_ConsumerCreator): - """A _ConsumerCreator appropriate for front-side use.""" - - def __init__(self, subscription, operation_context): - """Constructor. - - Args: - subscription: The serviced's interfaces.ServicedSubscription for the - operation. - operation_context: The interfaces.OperationContext object for the - operation. - """ - self._subscription = subscription - self._operation_context = operation_context - - def create_consumer(self, requirement): - """See _ConsumerCreator.create_consumer for specification.""" - if self._subscription.kind is interfaces.ServicedSubscription.Kind.FULL: - try: - return _ConsumerCreation( - self._subscription.ingestor.consumer(self._operation_context), - False, False) - except abandonment.Abandoned: - return _ConsumerCreation(None, False, True) - else: - return _ConsumerCreation(_EmptyConsumer(), False, False) - - -class _BackConsumerCreator(_ConsumerCreator): - """A _ConsumerCreator appropriate for back-side use.""" - - def __init__(self, servicer, operation_context, emission_consumer): - """Constructor. - - Args: - servicer: The interfaces.Servicer that will service the operation. - operation_context: The interfaces.OperationContext object for the - operation. - emission_consumer: The stream.Consumer object to which payloads emitted - from the operation will be passed. - """ - self._servicer = servicer - self._operation_context = operation_context - self._emission_consumer = emission_consumer - - def create_consumer(self, requirement): - """See _ConsumerCreator.create_consumer for full specification. - - Args: - requirement: The name of the Servicer method to be called during this - operation. - - Returns: - A _ConsumerCreation describing the result of consumer creation. - """ - try: - return _ConsumerCreation( - self._servicer.service( - requirement, self._operation_context, self._emission_consumer), - False, False) - except exceptions.NoSuchMethodError: - return _ConsumerCreation(None, True, False) - except abandonment.Abandoned: - return _ConsumerCreation(None, False, True) - - -class _WrappedConsumer(object): - """Wraps a consumer to catch the exceptions that it is allowed to throw.""" - - def __init__(self, consumer): - """Constructor. - - Args: - consumer: A stream.Consumer that may raise abandonment.Abandoned from any - of its methods. - """ - self._consumer = consumer - - def moar(self, payload, complete): - """Makes progress with the wrapped consumer. - - This method catches all exceptions allowed to be thrown by the wrapped - consumer. Any exceptions raised by this method should be blamed on the - customer-supplied consumer. - - Args: - payload: A customer-significant payload object. May be None only if - complete is True. - complete: Whether or not the end of the payload sequence has been reached. - Must be True if payload is None. - - Returns: - True if the wrapped consumer made progress or False if the wrapped - consumer raised abandonment.Abandoned to indicate its abandonment of - progress. - """ - try: - if payload is None: - self._consumer.terminate() - elif complete: - self._consumer.consume_and_terminate(payload) - else: - self._consumer.consume(payload) - return True - except abandonment.Abandoned: - return False - - -class _IngestionManager(_interfaces.IngestionManager): - """An implementation of _interfaces.IngestionManager.""" - - def __init__( - self, lock, pool, consumer_creator, failure_outcome, termination_manager, - transmission_manager): - """Constructor. - - Args: - lock: The operation-wide lock. - pool: A thread pool in which to execute customer code. - consumer_creator: A _ConsumerCreator wrapping the portion of customer code - that when called returns the stream.Consumer with which the customer - code will ingest payload values. - failure_outcome: Whichever one of - interfaces.Outcome.SERVICED_FAILURE or - interfaces.Outcome.SERVICER_FAILURE describes local failure of - customer code. - termination_manager: The _interfaces.TerminationManager for the operation. - transmission_manager: The _interfaces.TransmissionManager for the - operation. - """ - self._lock = lock - self._pool = pool - self._consumer_creator = consumer_creator - self._failure_outcome = failure_outcome - self._termination_manager = termination_manager - self._transmission_manager = transmission_manager - self._expiration_manager = None - - self._wrapped_ingestion_consumer = None - self._pending_ingestion = [] - self._ingestion_complete = False - self._processing = False - - def set_expiration_manager(self, expiration_manager): - self._expiration_manager = expiration_manager - - def _abort_internal_only(self): - self._wrapped_ingestion_consumer = None - self._pending_ingestion = None - - def _abort_and_notify(self, outcome): - self._abort_internal_only() - self._termination_manager.abort(outcome) - self._transmission_manager.abort(outcome) - self._expiration_manager.abort() - - def _next(self): - """Computes the next step for ingestion. - - Returns: - A payload, complete, continue triplet indicating what payload (if any) is - available to feed into customer code, whether or not the sequence of - payloads has terminated, and whether or not there is anything - immediately actionable to call customer code to do. - """ - if self._pending_ingestion is None: - return None, False, False - elif self._pending_ingestion: - payload = self._pending_ingestion.pop(0) - complete = self._ingestion_complete and not self._pending_ingestion - return payload, complete, True - elif self._ingestion_complete: - return None, True, True - else: - return None, False, False - - def _process(self, wrapped_ingestion_consumer, payload, complete): - """A method to call to execute customer code. - - This object's lock must *not* be held when calling this method. - - Args: - wrapped_ingestion_consumer: The _WrappedConsumer with which to pass - payloads to customer code. - payload: A customer payload. May be None only if complete is True. - complete: Whether or not the sequence of payloads to pass to the customer - has concluded. - """ - while True: - consumption_outcome = callable_util.call_logging_exceptions( - wrapped_ingestion_consumer.moar, _CONSUME_EXCEPTION_LOG_MESSAGE, - payload, complete) - if consumption_outcome.exception is None: - if consumption_outcome.return_value: - with self._lock: - if complete: - self._pending_ingestion = None - self._termination_manager.ingestion_complete() - return - else: - payload, complete, moar = self._next() - if not moar: - self._processing = False - return - else: - with self._lock: - if self._pending_ingestion is not None: - self._abort_and_notify(self._failure_outcome) - self._processing = False - return - else: - with self._lock: - self._abort_and_notify(self._failure_outcome) - self._processing = False - return - - def start(self, requirement): - if self._pending_ingestion is not None: - def initialize(): - consumer_creation_outcome = callable_util.call_logging_exceptions( - self._consumer_creator.create_consumer, - _CREATE_CONSUMER_EXCEPTION_LOG_MESSAGE, requirement) - if consumer_creation_outcome.return_value is None: - with self._lock: - self._abort_and_notify(self._failure_outcome) - self._processing = False - elif consumer_creation_outcome.return_value.remote_error: - with self._lock: - self._abort_and_notify(interfaces.Outcome.RECEPTION_FAILURE) - self._processing = False - elif consumer_creation_outcome.return_value.abandoned: - with self._lock: - if self._pending_ingestion is not None: - self._abort_and_notify(self._failure_outcome) - self._processing = False - else: - wrapped_ingestion_consumer = _WrappedConsumer( - consumer_creation_outcome.return_value.consumer) - with self._lock: - self._wrapped_ingestion_consumer = wrapped_ingestion_consumer - payload, complete, moar = self._next() - if not moar: - self._processing = False - return - - self._process(wrapped_ingestion_consumer, payload, complete) - - self._pool.submit( - callable_util.with_exceptions_logged( - initialize, _constants.INTERNAL_ERROR_LOG_MESSAGE)) - self._processing = True - - def consume(self, payload): - if self._ingestion_complete: - self._abort_and_notify(self._failure_outcome) - elif self._pending_ingestion is not None: - if self._processing: - self._pending_ingestion.append(payload) - else: - self._pool.submit( - callable_util.with_exceptions_logged( - self._process, _constants.INTERNAL_ERROR_LOG_MESSAGE), - self._wrapped_ingestion_consumer, payload, False) - self._processing = True - - def terminate(self): - if self._ingestion_complete: - self._abort_and_notify(self._failure_outcome) - else: - self._ingestion_complete = True - if self._pending_ingestion is not None and not self._processing: - self._pool.submit( - callable_util.with_exceptions_logged( - self._process, _constants.INTERNAL_ERROR_LOG_MESSAGE), - self._wrapped_ingestion_consumer, None, True) - self._processing = True - - def consume_and_terminate(self, payload): - if self._ingestion_complete: - self._abort_and_notify(self._failure_outcome) - else: - self._ingestion_complete = True - if self._pending_ingestion is not None: - if self._processing: - self._pending_ingestion.append(payload) - else: - self._pool.submit( - callable_util.with_exceptions_logged( - self._process, _constants.INTERNAL_ERROR_LOG_MESSAGE), - self._wrapped_ingestion_consumer, payload, True) - self._processing = True - - def abort(self): - """See _interfaces.IngestionManager.abort for specification.""" - self._abort_internal_only() - - -def front_ingestion_manager( - lock, pool, subscription, termination_manager, transmission_manager, - operation_context): - """Creates an IngestionManager appropriate for front-side use. - - Args: - lock: The operation-wide lock. - pool: A thread pool in which to execute customer code. - subscription: A interfaces.ServicedSubscription indicating the - customer's interest in the results of the operation. - termination_manager: The _interfaces.TerminationManager for the operation. - transmission_manager: The _interfaces.TransmissionManager for the - operation. - operation_context: A interfaces.OperationContext for the operation. - - Returns: - An IngestionManager appropriate for front-side use. - """ - ingestion_manager = _IngestionManager( - lock, pool, _FrontConsumerCreator(subscription, operation_context), - interfaces.Outcome.SERVICED_FAILURE, termination_manager, - transmission_manager) - ingestion_manager.start(None) - return ingestion_manager - - -def back_ingestion_manager( - lock, pool, servicer, termination_manager, transmission_manager, - operation_context, emission_consumer): - """Creates an IngestionManager appropriate for back-side use. - - Args: - lock: The operation-wide lock. - pool: A thread pool in which to execute customer code. - servicer: A interfaces.Servicer for servicing the operation. - termination_manager: The _interfaces.TerminationManager for the operation. - transmission_manager: The _interfaces.TransmissionManager for the - operation. - operation_context: A interfaces.OperationContext for the operation. - emission_consumer: The _interfaces.EmissionConsumer for the operation. - - Returns: - An IngestionManager appropriate for back-side use. - """ - ingestion_manager = _IngestionManager( - lock, pool, _BackConsumerCreator( - servicer, operation_context, emission_consumer), - interfaces.Outcome.SERVICER_FAILURE, termination_manager, - transmission_manager) - return ingestion_manager diff --git a/src/python/grpcio/grpc/framework/base/_interfaces.py b/src/python/grpcio/grpc/framework/base/_interfaces.py deleted file mode 100644 index 6bb9837c4aca72c7bf94d33dd3eb2ae1dd89a98f..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/base/_interfaces.py +++ /dev/null @@ -1,266 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Package-internal interfaces.""" - -import abc - -import six - -# interfaces is referenced from specification in this module. -from grpc.framework.base import interfaces # pylint: disable=unused-import -from grpc.framework.foundation import stream - - -class TerminationManager(six.with_metaclass(abc.ABCMeta)): - """An object responsible for handling the termination of an operation.""" - - @abc.abstractmethod - def set_expiration_manager(self, expiration_manager): - """Sets the ExpirationManager with which this object will cooperate.""" - raise NotImplementedError() - - @abc.abstractmethod - def is_active(self): - """Reports whether or not the operation is active. - - Returns: - True if the operation is active or False if the operation has terminated. - """ - raise NotImplementedError() - - @abc.abstractmethod - def add_callback(self, callback): - """Registers a callback to be called on operation termination. - - If the operation has already terminated, the callback will be called - immediately. - - Args: - callback: A callable that will be passed an interfaces.Outcome value. - """ - raise NotImplementedError() - - @abc.abstractmethod - def emission_complete(self): - """Indicates that emissions from customer code have completed.""" - raise NotImplementedError() - - @abc.abstractmethod - def transmission_complete(self): - """Indicates that transmissions to the remote end are complete.""" - raise NotImplementedError() - - @abc.abstractmethod - def ingestion_complete(self): - """Indicates that customer code ingestion of received values is complete.""" - raise NotImplementedError() - - @abc.abstractmethod - def abort(self, outcome): - """Indicates that the operation must abort for the indicated reason. - - Args: - outcome: An interfaces.Outcome indicating operation abortion. - """ - raise NotImplementedError() - - -class TransmissionManager(six.with_metaclass(abc.ABCMeta)): - """A manager responsible for transmitting to the other end of an operation.""" - - @abc.abstractmethod - def inmit(self, emission, complete): - """Accepts a value for transmission to the other end of the operation. - - Args: - emission: A value of some significance to the customer to be transmitted - to the other end of the operation. May be None only if complete is True. - complete: A boolean that if True indicates that customer code has emitted - all values it intends to emit. - """ - raise NotImplementedError() - - @abc.abstractmethod - def abort(self, outcome): - """Indicates that the operation has aborted for the indicated reason. - - Args: - outcome: An interfaces.Outcome indicating operation abortion. - """ - raise NotImplementedError() - - -class EmissionManager(six.with_metaclass(abc.ABCMeta, stream.Consumer)): - """A manager of values emitted by customer code.""" - - @abc.abstractmethod - def set_ingestion_manager_and_expiration_manager( - self, ingestion_manager, expiration_manager): - """Sets two other objects with which this EmissionManager will cooperate. - - Args: - ingestion_manager: The IngestionManager for the operation. - expiration_manager: The ExpirationManager for the operation. - """ - raise NotImplementedError() - - @abc.abstractmethod - def consume(self, value): - """Accepts a value emitted by customer code. - - This method should only be called by customer code. - - Args: - value: Any value of significance to the customer. - """ - raise NotImplementedError() - - @abc.abstractmethod - def terminate(self): - """Indicates that no more values will be emitted by customer code. - - This method should only be called by customer code. - - Implementations of this method may be idempotent and forgive customer code - calling this method more than once. - """ - raise NotImplementedError() - - @abc.abstractmethod - def consume_and_terminate(self, value): - """Accepts the last value emitted by customer code. - - This method should only be called by customer code. - - Args: - value: Any value of significance to the customer. - """ - raise NotImplementedError() - - -class IngestionManager(six.with_metaclass(abc.ABCMeta, stream.Consumer)): - """A manager responsible for executing customer code.""" - - @abc.abstractmethod - def set_expiration_manager(self, expiration_manager): - """Sets the ExpirationManager with which this object will cooperate.""" - raise NotImplementedError() - - @abc.abstractmethod - def start(self, requirement): - """Commences execution of customer code. - - Args: - requirement: Some value unavailable at the time of this object's - construction that is required to begin executing customer code. - """ - raise NotImplementedError() - - @abc.abstractmethod - def consume(self, payload): - """Accepts a customer-significant value to be supplied to customer code. - - Args: - payload: Some customer-significant value. - """ - raise NotImplementedError() - - @abc.abstractmethod - def terminate(self): - """Indicates the end of values to be supplied to customer code.""" - raise NotImplementedError() - - @abc.abstractmethod - def consume_and_terminate(self, payload): - """Accepts the last value to be supplied to customer code. - - Args: - payload: Some customer-significant value (and the last such value). - """ - raise NotImplementedError() - - @abc.abstractmethod - def abort(self): - """Indicates to this manager that the operation has aborted.""" - raise NotImplementedError() - - -class ExpirationManager(six.with_metaclass(abc.ABCMeta)): - """A manager responsible for aborting the operation if it runs out of time.""" - - @abc.abstractmethod - def change_timeout(self, timeout): - """Changes the timeout allotted for the operation. - - Operation duration is always measure from the beginning of the operation; - calling this method changes the operation's allotted time to timeout total - seconds, not timeout seconds from the time of this method call. - - Args: - timeout: A length of time in seconds to allow for the operation. - """ - raise NotImplementedError() - - @abc.abstractmethod - def deadline(self): - """Returns the time until which the operation is allowed to run. - - Returns: - The time (seconds since the epoch) at which the operation will expire. - """ - raise NotImplementedError() - - @abc.abstractmethod - def abort(self): - """Indicates to this manager that the operation has aborted.""" - raise NotImplementedError() - - -class ReceptionManager(six.with_metaclass(abc.ABCMeta)): - """A manager responsible for receiving tickets from the other end.""" - - @abc.abstractmethod - def receive_ticket(self, ticket): - """Handle a ticket from the other side of the operation. - - Args: - ticket: An interfaces.BackToFrontTicket or interfaces.FrontToBackTicket - appropriate to this end of the operation and this object. - """ - raise NotImplementedError() - - -class CancellationManager(six.with_metaclass(abc.ABCMeta)): - """A manager of operation cancellation.""" - - @abc.abstractmethod - def cancel(self): - """Cancels the operation.""" - raise NotImplementedError() diff --git a/src/python/grpcio/grpc/framework/base/_reception.py b/src/python/grpcio/grpc/framework/base/_reception.py deleted file mode 100644 index a59c5165f9fbfaa53e2426c9417116d9d0927fd2..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/base/_reception.py +++ /dev/null @@ -1,400 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""State and behavior for ticket reception.""" - -import abc - -import six - -from grpc.framework.base import interfaces -from grpc.framework.base import _interfaces - -_INITIAL_FRONT_TO_BACK_TICKET_KINDS = ( - interfaces.FrontToBackTicket.Kind.COMMENCEMENT, - interfaces.FrontToBackTicket.Kind.ENTIRE, -) - - -class _Receiver(six.with_metaclass(abc.ABCMeta)): - """Common specification of different ticket-handling behavior.""" - - @abc.abstractmethod - def abort_if_abortive(self, ticket): - """Aborts the operation if the ticket is abortive. - - Args: - ticket: A just-arrived ticket. - - Returns: - A boolean indicating whether or not this Receiver aborted the operation - based on the ticket. - """ - raise NotImplementedError() - - @abc.abstractmethod - def receive(self, ticket): - """Handles a just-arrived ticket. - - Args: - ticket: A just-arrived ticket. - - Returns: - A boolean indicating whether or not the ticket was terminal (i.e. whether - or not non-abortive tickets are legal after this one). - """ - raise NotImplementedError() - - @abc.abstractmethod - def reception_failure(self): - """Aborts the operation with an indication of reception failure.""" - raise NotImplementedError() - - -def _abort( - outcome, termination_manager, transmission_manager, ingestion_manager, - expiration_manager): - """Indicates abortion with the given outcome to the given managers.""" - termination_manager.abort(outcome) - transmission_manager.abort(outcome) - ingestion_manager.abort() - expiration_manager.abort() - - -def _abort_if_abortive( - ticket, abortive, termination_manager, transmission_manager, - ingestion_manager, expiration_manager): - """Determines a ticket's being abortive and if so aborts the operation. - - Args: - ticket: A just-arrived ticket. - abortive: A callable that takes a ticket and returns an interfaces.Outcome - indicating that the operation should be aborted or None indicating that - the operation should not be aborted. - termination_manager: The operation's _interfaces.TerminationManager. - transmission_manager: The operation's _interfaces.TransmissionManager. - ingestion_manager: The operation's _interfaces.IngestionManager. - expiration_manager: The operation's _interfaces.ExpirationManager. - - Returns: - True if the operation was aborted; False otherwise. - """ - abortion_outcome = abortive(ticket) - if abortion_outcome is None: - return False - else: - _abort( - abortion_outcome, termination_manager, transmission_manager, - ingestion_manager, expiration_manager) - return True - - -def _reception_failure( - termination_manager, transmission_manager, ingestion_manager, - expiration_manager): - """Aborts the operation with an indication of reception failure.""" - _abort( - interfaces.Outcome.RECEPTION_FAILURE, termination_manager, - transmission_manager, ingestion_manager, expiration_manager) - - -class _BackReceiver(_Receiver): - """Ticket-handling specific to the back side of an operation.""" - - def __init__( - self, termination_manager, transmission_manager, ingestion_manager, - expiration_manager): - """Constructor. - - Args: - termination_manager: The operation's _interfaces.TerminationManager. - transmission_manager: The operation's _interfaces.TransmissionManager. - ingestion_manager: The operation's _interfaces.IngestionManager. - expiration_manager: The operation's _interfaces.ExpirationManager. - """ - self._termination_manager = termination_manager - self._transmission_manager = transmission_manager - self._ingestion_manager = ingestion_manager - self._expiration_manager = expiration_manager - - self._first_ticket_seen = False - self._last_ticket_seen = False - - def _abortive(self, ticket): - """Determines whether or not (and if so, how) a ticket is abortive. - - Args: - ticket: A just-arrived ticket. - - Returns: - An interfaces.Outcome value describing operation abortion if the - ticket is abortive or None if the ticket is not abortive. - """ - if ticket.kind is interfaces.FrontToBackTicket.Kind.CANCELLATION: - return interfaces.Outcome.CANCELLED - elif ticket.kind is interfaces.FrontToBackTicket.Kind.EXPIRATION: - return interfaces.Outcome.EXPIRED - elif ticket.kind is interfaces.FrontToBackTicket.Kind.SERVICED_FAILURE: - return interfaces.Outcome.SERVICED_FAILURE - elif ticket.kind is interfaces.FrontToBackTicket.Kind.RECEPTION_FAILURE: - return interfaces.Outcome.SERVICED_FAILURE - elif (ticket.kind in _INITIAL_FRONT_TO_BACK_TICKET_KINDS and - self._first_ticket_seen): - return interfaces.Outcome.RECEPTION_FAILURE - elif self._last_ticket_seen: - return interfaces.Outcome.RECEPTION_FAILURE - else: - return None - - def abort_if_abortive(self, ticket): - """See _Receiver.abort_if_abortive for specification.""" - return _abort_if_abortive( - ticket, self._abortive, self._termination_manager, - self._transmission_manager, self._ingestion_manager, - self._expiration_manager) - - def receive(self, ticket): - """See _Receiver.receive for specification.""" - if ticket.timeout is not None: - self._expiration_manager.change_timeout(ticket.timeout) - - if ticket.kind is interfaces.FrontToBackTicket.Kind.COMMENCEMENT: - self._first_ticket_seen = True - self._ingestion_manager.start(ticket.name) - if ticket.payload is not None: - self._ingestion_manager.consume(ticket.payload) - elif ticket.kind is interfaces.FrontToBackTicket.Kind.CONTINUATION: - self._ingestion_manager.consume(ticket.payload) - elif ticket.kind is interfaces.FrontToBackTicket.Kind.COMPLETION: - self._last_ticket_seen = True - if ticket.payload is None: - self._ingestion_manager.terminate() - else: - self._ingestion_manager.consume_and_terminate(ticket.payload) - else: - self._first_ticket_seen = True - self._last_ticket_seen = True - self._ingestion_manager.start(ticket.name) - if ticket.payload is None: - self._ingestion_manager.terminate() - else: - self._ingestion_manager.consume_and_terminate(ticket.payload) - - def reception_failure(self): - """See _Receiver.reception_failure for specification.""" - _reception_failure( - self._termination_manager, self._transmission_manager, - self._ingestion_manager, self._expiration_manager) - - -class _FrontReceiver(_Receiver): - """Ticket-handling specific to the front side of an operation.""" - - def __init__( - self, termination_manager, transmission_manager, ingestion_manager, - expiration_manager): - """Constructor. - - Args: - termination_manager: The operation's _interfaces.TerminationManager. - transmission_manager: The operation's _interfaces.TransmissionManager. - ingestion_manager: The operation's _interfaces.IngestionManager. - expiration_manager: The operation's _interfaces.ExpirationManager. - """ - self._termination_manager = termination_manager - self._transmission_manager = transmission_manager - self._ingestion_manager = ingestion_manager - self._expiration_manager = expiration_manager - - self._last_ticket_seen = False - - def _abortive(self, ticket): - """Determines whether or not (and if so, how) a ticket is abortive. - - Args: - ticket: A just-arrived ticket. - - Returns: - An interfaces.Outcome value describing operation abortion if the ticket - is abortive or None if the ticket is not abortive. - """ - if ticket.kind is interfaces.BackToFrontTicket.Kind.CANCELLATION: - return interfaces.Outcome.CANCELLED - elif ticket.kind is interfaces.BackToFrontTicket.Kind.EXPIRATION: - return interfaces.Outcome.EXPIRED - elif ticket.kind is interfaces.BackToFrontTicket.Kind.SERVICER_FAILURE: - return interfaces.Outcome.SERVICER_FAILURE - elif ticket.kind is interfaces.BackToFrontTicket.Kind.RECEPTION_FAILURE: - return interfaces.Outcome.SERVICER_FAILURE - elif self._last_ticket_seen: - return interfaces.Outcome.RECEPTION_FAILURE - else: - return None - - def abort_if_abortive(self, ticket): - """See _Receiver.abort_if_abortive for specification.""" - return _abort_if_abortive( - ticket, self._abortive, self._termination_manager, - self._transmission_manager, self._ingestion_manager, - self._expiration_manager) - - def receive(self, ticket): - """See _Receiver.receive for specification.""" - if ticket.kind is interfaces.BackToFrontTicket.Kind.CONTINUATION: - self._ingestion_manager.consume(ticket.payload) - elif ticket.kind is interfaces.BackToFrontTicket.Kind.COMPLETION: - self._last_ticket_seen = True - if ticket.payload is None: - self._ingestion_manager.terminate() - else: - self._ingestion_manager.consume_and_terminate(ticket.payload) - - def reception_failure(self): - """See _Receiver.reception_failure for specification.""" - _reception_failure( - self._termination_manager, self._transmission_manager, - self._ingestion_manager, self._expiration_manager) - - -class _ReceptionManager(_interfaces.ReceptionManager): - """A ReceptionManager based around a _Receiver passed to it.""" - - def __init__(self, lock, receiver): - """Constructor. - - Args: - lock: The operation-servicing-wide lock object. - receiver: A _Receiver responsible for handling received tickets. - """ - self._lock = lock - self._receiver = receiver - - self._lowest_unseen_sequence_number = 0 - self._out_of_sequence_tickets = {} - self._completed_sequence_number = None - self._aborted = False - - def _sequence_failure(self, ticket): - """Determines a just-arrived ticket's sequential legitimacy. - - Args: - ticket: A just-arrived ticket. - - Returns: - True if the ticket is sequentially legitimate; False otherwise. - """ - if ticket.sequence_number < self._lowest_unseen_sequence_number: - return True - elif ticket.sequence_number in self._out_of_sequence_tickets: - return True - elif (self._completed_sequence_number is not None and - self._completed_sequence_number <= ticket.sequence_number): - return True - else: - return False - - def _process(self, ticket): - """Process those tickets ready to be processed. - - Args: - ticket: A just-arrived ticket the sequence number of which matches this - _ReceptionManager's _lowest_unseen_sequence_number field. - """ - while True: - completed = self._receiver.receive(ticket) - if completed: - self._out_of_sequence_tickets.clear() - self._completed_sequence_number = ticket.sequence_number - self._lowest_unseen_sequence_number = ticket.sequence_number + 1 - return - else: - next_ticket = self._out_of_sequence_tickets.pop( - ticket.sequence_number + 1, None) - if next_ticket is None: - self._lowest_unseen_sequence_number = ticket.sequence_number + 1 - return - else: - ticket = next_ticket - - def receive_ticket(self, ticket): - """See _interfaces.ReceptionManager.receive_ticket for specification.""" - with self._lock: - if self._aborted: - return - elif self._sequence_failure(ticket): - self._receiver.reception_failure() - self._aborted = True - elif self._receiver.abort_if_abortive(ticket): - self._aborted = True - elif ticket.sequence_number == self._lowest_unseen_sequence_number: - self._process(ticket) - else: - self._out_of_sequence_tickets[ticket.sequence_number] = ticket - - -def front_reception_manager( - lock, termination_manager, transmission_manager, ingestion_manager, - expiration_manager): - """Creates a _interfaces.ReceptionManager for front-side use. - - Args: - lock: The operation-servicing-wide lock object. - termination_manager: The operation's _interfaces.TerminationManager. - transmission_manager: The operation's _interfaces.TransmissionManager. - ingestion_manager: The operation's _interfaces.IngestionManager. - expiration_manager: The operation's _interfaces.ExpirationManager. - - Returns: - A _interfaces.ReceptionManager appropriate for front-side use. - """ - return _ReceptionManager( - lock, _FrontReceiver( - termination_manager, transmission_manager, ingestion_manager, - expiration_manager)) - - -def back_reception_manager( - lock, termination_manager, transmission_manager, ingestion_manager, - expiration_manager): - """Creates a _interfaces.ReceptionManager for back-side use. - - Args: - lock: The operation-servicing-wide lock object. - termination_manager: The operation's _interfaces.TerminationManager. - transmission_manager: The operation's _interfaces.TransmissionManager. - ingestion_manager: The operation's _interfaces.IngestionManager. - expiration_manager: The operation's _interfaces.ExpirationManager. - - Returns: - A _interfaces.ReceptionManager appropriate for back-side use. - """ - return _ReceptionManager( - lock, _BackReceiver( - termination_manager, transmission_manager, ingestion_manager, - expiration_manager)) diff --git a/src/python/grpcio/grpc/framework/base/_termination.py b/src/python/grpcio/grpc/framework/base/_termination.py deleted file mode 100644 index ddcbc60293d010c82dda7266cd25edc47590123e..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/base/_termination.py +++ /dev/null @@ -1,204 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""State and behavior for operation termination.""" - -import enum - -from grpc.framework.base import _constants -from grpc.framework.base import _interfaces -from grpc.framework.base import interfaces -from grpc.framework.foundation import callable_util - -_CALLBACK_EXCEPTION_LOG_MESSAGE = 'Exception calling termination callback!' - - -@enum.unique -class _Requirement(enum.Enum): - """Symbols indicating events required for termination.""" - - EMISSION = 'emission' - TRANSMISSION = 'transmission' - INGESTION = 'ingestion' - -_FRONT_NOT_LISTENING_REQUIREMENTS = (_Requirement.TRANSMISSION,) -_BACK_NOT_LISTENING_REQUIREMENTS = ( - _Requirement.EMISSION, _Requirement.INGESTION,) -_LISTENING_REQUIREMENTS = ( - _Requirement.TRANSMISSION, _Requirement.INGESTION,) - - -class _TerminationManager(_interfaces.TerminationManager): - """An implementation of _interfaces.TerminationManager.""" - - def __init__( - self, work_pool, utility_pool, action, requirements, local_failure): - """Constructor. - - Args: - work_pool: A thread pool in which customer work will be done. - utility_pool: A thread pool in which work utility work will be done. - action: An action to call on operation termination. - requirements: A combination of _Requirement values identifying what - must finish for the operation to be considered completed. - local_failure: An interfaces.Outcome specifying what constitutes local - failure of customer work. - """ - self._work_pool = work_pool - self._utility_pool = utility_pool - self._action = action - self._local_failure = local_failure - self._has_locally_failed = False - self._expiration_manager = None - - self._outstanding_requirements = set(requirements) - self._outcome = None - self._callbacks = [] - - def set_expiration_manager(self, expiration_manager): - self._expiration_manager = expiration_manager - - def _terminate(self, outcome): - """Terminates the operation. - - Args: - outcome: An interfaces.Outcome describing the outcome of the operation. - """ - self._expiration_manager.abort() - self._outstanding_requirements = None - callbacks = list(self._callbacks) - self._callbacks = None - self._outcome = outcome - - act = callable_util.with_exceptions_logged( - self._action, _constants.INTERNAL_ERROR_LOG_MESSAGE) - - if self._has_locally_failed: - self._utility_pool.submit(act, outcome) - else: - def call_callbacks_and_act(callbacks, outcome): - for callback in callbacks: - callback_outcome = callable_util.call_logging_exceptions( - callback, _CALLBACK_EXCEPTION_LOG_MESSAGE, outcome) - if callback_outcome.exception is not None: - outcome = self._local_failure - break - self._utility_pool.submit(act, outcome) - - self._work_pool.submit(callable_util.with_exceptions_logged( - call_callbacks_and_act, - _constants.INTERNAL_ERROR_LOG_MESSAGE), - callbacks, outcome) - - def is_active(self): - """See _interfaces.TerminationManager.is_active for specification.""" - return self._outstanding_requirements is not None - - def add_callback(self, callback): - """See _interfaces.TerminationManager.add_callback for specification.""" - if not self._has_locally_failed: - if self._outstanding_requirements is None: - self._work_pool.submit( - callable_util.with_exceptions_logged( - callback, _CALLBACK_EXCEPTION_LOG_MESSAGE), self._outcome) - else: - self._callbacks.append(callback) - - def emission_complete(self): - """See superclass method for specification.""" - if self._outstanding_requirements is not None: - self._outstanding_requirements.discard(_Requirement.EMISSION) - if not self._outstanding_requirements: - self._terminate(interfaces.Outcome.COMPLETED) - - def transmission_complete(self): - """See superclass method for specification.""" - if self._outstanding_requirements is not None: - self._outstanding_requirements.discard(_Requirement.TRANSMISSION) - if not self._outstanding_requirements: - self._terminate(interfaces.Outcome.COMPLETED) - - def ingestion_complete(self): - """See superclass method for specification.""" - if self._outstanding_requirements is not None: - self._outstanding_requirements.discard(_Requirement.INGESTION) - if not self._outstanding_requirements: - self._terminate(interfaces.Outcome.COMPLETED) - - def abort(self, outcome): - """See _interfaces.TerminationManager.abort for specification.""" - if outcome is self._local_failure: - self._has_failed_locally = True - if self._outstanding_requirements is not None: - self._terminate(outcome) - - -def front_termination_manager( - work_pool, utility_pool, action, subscription_kind): - """Creates a TerminationManager appropriate for front-side use. - - Args: - work_pool: A thread pool in which customer work will be done. - utility_pool: A thread pool in which work utility work will be done. - action: An action to call on operation termination. - subscription_kind: An interfaces.ServicedSubscription.Kind value. - - Returns: - A TerminationManager appropriate for front-side use. - """ - if subscription_kind is interfaces.ServicedSubscription.Kind.NONE: - requirements = _FRONT_NOT_LISTENING_REQUIREMENTS - else: - requirements = _LISTENING_REQUIREMENTS - - return _TerminationManager( - work_pool, utility_pool, action, requirements, - interfaces.Outcome.SERVICED_FAILURE) - - -def back_termination_manager(work_pool, utility_pool, action, subscription_kind): - """Creates a TerminationManager appropriate for back-side use. - - Args: - work_pool: A thread pool in which customer work will be done. - utility_pool: A thread pool in which work utility work will be done. - action: An action to call on operation termination. - subscription_kind: An interfaces.ServicedSubscription.Kind value. - - Returns: - A TerminationManager appropriate for back-side use. - """ - if subscription_kind is interfaces.ServicedSubscription.Kind.NONE: - requirements = _BACK_NOT_LISTENING_REQUIREMENTS - else: - requirements = _LISTENING_REQUIREMENTS - - return _TerminationManager( - work_pool, utility_pool, action, requirements, - interfaces.Outcome.SERVICER_FAILURE) diff --git a/src/python/grpcio/grpc/framework/base/_transmission.py b/src/python/grpcio/grpc/framework/base/_transmission.py deleted file mode 100644 index e2a25626f1dddb1187b23f0a952b826a5062c850..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/base/_transmission.py +++ /dev/null @@ -1,429 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""State and behavior for ticket transmission during an operation.""" - -import abc - -import six - -from grpc.framework.base import _constants -from grpc.framework.base import _interfaces -from grpc.framework.base import interfaces -from grpc.framework.foundation import callable_util - -_TRANSMISSION_EXCEPTION_LOG_MESSAGE = 'Exception during transmission!' - -_FRONT_TO_BACK_NO_TRANSMISSION_OUTCOMES = ( - interfaces.Outcome.SERVICER_FAILURE, - ) -_BACK_TO_FRONT_NO_TRANSMISSION_OUTCOMES = ( - interfaces.Outcome.CANCELLED, - interfaces.Outcome.SERVICED_FAILURE, - ) - -_ABORTION_OUTCOME_TO_FRONT_TO_BACK_TICKET_KIND = { - interfaces.Outcome.CANCELLED: - interfaces.FrontToBackTicket.Kind.CANCELLATION, - interfaces.Outcome.EXPIRED: - interfaces.FrontToBackTicket.Kind.EXPIRATION, - interfaces.Outcome.RECEPTION_FAILURE: - interfaces.FrontToBackTicket.Kind.RECEPTION_FAILURE, - interfaces.Outcome.TRANSMISSION_FAILURE: - interfaces.FrontToBackTicket.Kind.TRANSMISSION_FAILURE, - interfaces.Outcome.SERVICED_FAILURE: - interfaces.FrontToBackTicket.Kind.SERVICED_FAILURE, - interfaces.Outcome.SERVICER_FAILURE: - interfaces.FrontToBackTicket.Kind.SERVICER_FAILURE, -} - -_ABORTION_OUTCOME_TO_BACK_TO_FRONT_TICKET_KIND = { - interfaces.Outcome.CANCELLED: - interfaces.BackToFrontTicket.Kind.CANCELLATION, - interfaces.Outcome.EXPIRED: - interfaces.BackToFrontTicket.Kind.EXPIRATION, - interfaces.Outcome.RECEPTION_FAILURE: - interfaces.BackToFrontTicket.Kind.RECEPTION_FAILURE, - interfaces.Outcome.TRANSMISSION_FAILURE: - interfaces.BackToFrontTicket.Kind.TRANSMISSION_FAILURE, - interfaces.Outcome.SERVICED_FAILURE: - interfaces.BackToFrontTicket.Kind.SERVICED_FAILURE, - interfaces.Outcome.SERVICER_FAILURE: - interfaces.BackToFrontTicket.Kind.SERVICER_FAILURE, -} - - -class _Ticketizer(six.with_metaclass(abc.ABCMeta)): - """Common specification of different ticket-creating behavior.""" - - @abc.abstractmethod - def ticketize(self, operation_id, sequence_number, payload, complete): - """Creates a ticket indicating ordinary operation progress. - - Args: - operation_id: The operation ID for the current operation. - sequence_number: A sequence number for the ticket. - payload: A customer payload object. May be None if sequence_number is - zero or complete is true. - complete: A boolean indicating whether or not the ticket should describe - itself as (but for a later indication of operation abortion) the last - ticket to be sent. - - Returns: - An object of an appropriate type suitable for transmission to the other - side of the operation. - """ - raise NotImplementedError() - - @abc.abstractmethod - def ticketize_abortion(self, operation_id, sequence_number, outcome): - """Creates a ticket indicating that the operation is aborted. - - Args: - operation_id: The operation ID for the current operation. - sequence_number: A sequence number for the ticket. - outcome: An interfaces.Outcome value describing the operation abortion. - - Returns: - An object of an appropriate type suitable for transmission to the other - side of the operation, or None if transmission is not appropriate for - the given outcome. - """ - raise NotImplementedError() - - -class _FrontTicketizer(_Ticketizer): - """Front-side ticket-creating behavior.""" - - def __init__(self, name, subscription_kind, trace_id, timeout): - """Constructor. - - Args: - name: The name of the operation. - subscription_kind: An interfaces.ServicedSubscription.Kind value - describing the interest the front has in tickets sent from the back. - trace_id: A uuid.UUID identifying a set of related operations to which - this operation belongs. - timeout: A length of time in seconds to allow for the entire operation. - """ - self._name = name - self._subscription_kind = subscription_kind - self._trace_id = trace_id - self._timeout = timeout - - def ticketize(self, operation_id, sequence_number, payload, complete): - """See _Ticketizer.ticketize for specification.""" - if sequence_number: - if complete: - kind = interfaces.FrontToBackTicket.Kind.COMPLETION - else: - kind = interfaces.FrontToBackTicket.Kind.CONTINUATION - return interfaces.FrontToBackTicket( - operation_id, sequence_number, kind, self._name, - self._subscription_kind, self._trace_id, payload, self._timeout) - else: - if complete: - kind = interfaces.FrontToBackTicket.Kind.ENTIRE - else: - kind = interfaces.FrontToBackTicket.Kind.COMMENCEMENT - return interfaces.FrontToBackTicket( - operation_id, 0, kind, self._name, self._subscription_kind, - self._trace_id, payload, self._timeout) - - def ticketize_abortion(self, operation_id, sequence_number, outcome): - """See _Ticketizer.ticketize_abortion for specification.""" - if outcome in _FRONT_TO_BACK_NO_TRANSMISSION_OUTCOMES: - return None - else: - kind = _ABORTION_OUTCOME_TO_FRONT_TO_BACK_TICKET_KIND[outcome] - return interfaces.FrontToBackTicket( - operation_id, sequence_number, kind, None, None, None, None, None) - - -class _BackTicketizer(_Ticketizer): - """Back-side ticket-creating behavior.""" - - def ticketize(self, operation_id, sequence_number, payload, complete): - """See _Ticketizer.ticketize for specification.""" - if complete: - kind = interfaces.BackToFrontTicket.Kind.COMPLETION - else: - kind = interfaces.BackToFrontTicket.Kind.CONTINUATION - return interfaces.BackToFrontTicket( - operation_id, sequence_number, kind, payload) - - def ticketize_abortion(self, operation_id, sequence_number, outcome): - """See _Ticketizer.ticketize_abortion for specification.""" - if outcome in _BACK_TO_FRONT_NO_TRANSMISSION_OUTCOMES: - return None - else: - kind = _ABORTION_OUTCOME_TO_BACK_TO_FRONT_TICKET_KIND[outcome] - return interfaces.BackToFrontTicket( - operation_id, sequence_number, kind, None) - - -class TransmissionManager(six.with_metaclass(abc.ABCMeta, _interfaces.TransmissionManager)): - """A _interfaces.TransmissionManager on which other managers may be set.""" - - @abc.abstractmethod - def set_ingestion_and_expiration_managers( - self, ingestion_manager, expiration_manager): - """Sets two of the other managers with which this manager may interact. - - Args: - ingestion_manager: The _interfaces.IngestionManager associated with the - current operation. - expiration_manager: The _interfaces.ExpirationManager associated with the - current operation. - """ - raise NotImplementedError() - - -class _EmptyTransmissionManager(TransmissionManager): - """A completely no-operative _interfaces.TransmissionManager.""" - - def set_ingestion_and_expiration_managers( - self, ingestion_manager, expiration_manager): - """See overriden method for specification.""" - - def inmit(self, emission, complete): - """See _interfaces.TransmissionManager.inmit for specification.""" - - def abort(self, outcome): - """See _interfaces.TransmissionManager.abort for specification.""" - - -class _TransmittingTransmissionManager(TransmissionManager): - """A TransmissionManager implementation that sends tickets.""" - - def __init__( - self, lock, pool, callback, operation_id, ticketizer, - termination_manager): - """Constructor. - - Args: - lock: The operation-servicing-wide lock object. - pool: A thread pool in which the work of transmitting tickets will be - performed. - callback: A callable that accepts tickets and sends them to the other side - of the operation. - operation_id: The operation's ID. - ticketizer: A _Ticketizer for ticket creation. - termination_manager: The _interfaces.TerminationManager associated with - this operation. - """ - self._lock = lock - self._pool = pool - self._callback = callback - self._operation_id = operation_id - self._ticketizer = ticketizer - self._termination_manager = termination_manager - self._ingestion_manager = None - self._expiration_manager = None - - self._emissions = [] - self._emission_complete = False - self._outcome = None - self._lowest_unused_sequence_number = 0 - self._transmitting = False - - def set_ingestion_and_expiration_managers( - self, ingestion_manager, expiration_manager): - """See overridden method for specification.""" - self._ingestion_manager = ingestion_manager - self._expiration_manager = expiration_manager - - def _lead_ticket(self, emission, complete): - """Creates a ticket suitable for leading off the transmission loop. - - Args: - emission: A customer payload object to be sent to the other side of the - operation. - complete: Whether or not the sequence of customer payloads ends with - the passed object. - - Returns: - A ticket with which to lead off the transmission loop. - """ - sequence_number = self._lowest_unused_sequence_number - self._lowest_unused_sequence_number += 1 - return self._ticketizer.ticketize( - self._operation_id, sequence_number, emission, complete) - - def _abortive_response_ticket(self, outcome): - """Creates a ticket indicating operation abortion. - - Args: - outcome: An interfaces.Outcome value describing operation abortion. - - Returns: - A ticket indicating operation abortion. - """ - ticket = self._ticketizer.ticketize_abortion( - self._operation_id, self._lowest_unused_sequence_number, outcome) - if ticket is None: - return None - else: - self._lowest_unused_sequence_number += 1 - return ticket - - def _next_ticket(self): - """Creates the next ticket to be sent to the other side of the operation. - - Returns: - A (completed, ticket) tuple comprised of a boolean indicating whether or - not the sequence of tickets has completed normally and a ticket to send - to the other side if the sequence of tickets hasn't completed. The tuple - will never have both a True first element and a non-None second element. - """ - if self._emissions is None: - return False, None - elif self._outcome is None: - if self._emissions: - payload = self._emissions.pop(0) - complete = self._emission_complete and not self._emissions - sequence_number = self._lowest_unused_sequence_number - self._lowest_unused_sequence_number += 1 - return complete, self._ticketizer.ticketize( - self._operation_id, sequence_number, payload, complete) - else: - return self._emission_complete, None - else: - ticket = self._abortive_response_ticket(self._outcome) - self._emissions = None - return False, None if ticket is None else ticket - - def _transmit(self, ticket): - """Commences the transmission loop sending tickets. - - Args: - ticket: A ticket to be sent to the other side of the operation. - """ - def transmit(ticket): - while True: - transmission_outcome = callable_util.call_logging_exceptions( - self._callback, _TRANSMISSION_EXCEPTION_LOG_MESSAGE, ticket) - if transmission_outcome.exception is None: - with self._lock: - complete, ticket = self._next_ticket() - if ticket is None: - if complete: - self._termination_manager.transmission_complete() - self._transmitting = False - return - else: - with self._lock: - self._emissions = None - self._termination_manager.abort( - interfaces.Outcome.TRANSMISSION_FAILURE) - self._ingestion_manager.abort() - self._expiration_manager.abort() - self._transmitting = False - return - - self._pool.submit(callable_util.with_exceptions_logged( - transmit, _constants.INTERNAL_ERROR_LOG_MESSAGE), ticket) - self._transmitting = True - - def inmit(self, emission, complete): - """See _interfaces.TransmissionManager.inmit for specification.""" - if self._emissions is not None and self._outcome is None: - self._emission_complete = complete - if self._transmitting: - self._emissions.append(emission) - else: - self._transmit(self._lead_ticket(emission, complete)) - - def abort(self, outcome): - """See _interfaces.TransmissionManager.abort for specification.""" - if self._emissions is not None and self._outcome is None: - self._outcome = outcome - if not self._transmitting: - ticket = self._abortive_response_ticket(outcome) - self._emissions = None - if ticket is not None: - self._transmit(ticket) - - -def front_transmission_manager( - lock, pool, callback, operation_id, name, subscription_kind, trace_id, - timeout, termination_manager): - """Creates a TransmissionManager appropriate for front-side use. - - Args: - lock: The operation-servicing-wide lock object. - pool: A thread pool in which the work of transmitting tickets will be - performed. - callback: A callable that accepts tickets and sends them to the other side - of the operation. - operation_id: The operation's ID. - name: The name of the operation. - subscription_kind: An interfaces.ServicedSubscription.Kind value - describing the interest the front has in tickets sent from the back. - trace_id: A uuid.UUID identifying a set of related operations to which - this operation belongs. - timeout: A length of time in seconds to allow for the entire operation. - termination_manager: The _interfaces.TerminationManager associated with - this operation. - - Returns: - A TransmissionManager appropriate for front-side use. - """ - return _TransmittingTransmissionManager( - lock, pool, callback, operation_id, _FrontTicketizer( - name, subscription_kind, trace_id, timeout), - termination_manager) - - -def back_transmission_manager( - lock, pool, callback, operation_id, termination_manager, - subscription_kind): - """Creates a TransmissionManager appropriate for back-side use. - - Args: - lock: The operation-servicing-wide lock object. - pool: A thread pool in which the work of transmitting tickets will be - performed. - callback: A callable that accepts tickets and sends them to the other side - of the operation. - operation_id: The operation's ID. - termination_manager: The _interfaces.TerminationManager associated with - this operation. - subscription_kind: An interfaces.ServicedSubscription.Kind value - describing the interest the front has in tickets sent from the back. - - Returns: - A TransmissionManager appropriate for back-side use. - """ - if subscription_kind is interfaces.ServicedSubscription.Kind.NONE: - return _EmptyTransmissionManager() - else: - return _TransmittingTransmissionManager( - lock, pool, callback, operation_id, _BackTicketizer(), - termination_manager) diff --git a/src/python/grpcio/grpc/framework/base/implementations.py b/src/python/grpcio/grpc/framework/base/implementations.py deleted file mode 100644 index 5656f9f9812fa7b6c34dd9cc0325263afa08ae73..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/base/implementations.py +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Entry points into the ticket-exchange-based base layer implementation.""" - -# interfaces is referenced from specification in this module. -from grpc.framework.base import _ends -from grpc.framework.base import interfaces # pylint: disable=unused-import - - -def front_link(work_pool, transmission_pool, utility_pool): - """Factory function for creating interfaces.FrontLinks. - - Args: - work_pool: A thread pool to be used for doing work within the created - FrontLink object. - transmission_pool: A thread pool to be used within the created FrontLink - object for transmitting values to a joined RearLink object. - utility_pool: A thread pool to be used within the created FrontLink object - for utility tasks. - - Returns: - An interfaces.FrontLink. - """ - return _ends.FrontLink(work_pool, transmission_pool, utility_pool) - - -def back_link( - servicer, work_pool, transmission_pool, utility_pool, default_timeout, - maximum_timeout): - """Factory function for creating interfaces.BackLinks. - - Args: - servicer: An interfaces.Servicer for servicing operations. - work_pool: A thread pool to be used for doing work within the created - BackLink object. - transmission_pool: A thread pool to be used within the created BackLink - object for transmitting values to a joined ForeLink object. - utility_pool: A thread pool to be used within the created BackLink object - for utility tasks. - default_timeout: A length of time in seconds to be used as the default - time alloted for a single operation. - maximum_timeout: A length of time in seconds to be used as the maximum - time alloted for a single operation. - - Returns: - An interfaces.BackLink. - """ - return _ends.BackLink( - servicer, work_pool, transmission_pool, utility_pool, default_timeout, - maximum_timeout) diff --git a/src/python/grpcio/grpc/framework/base/in_memory.py b/src/python/grpcio/grpc/framework/base/in_memory.py deleted file mode 100644 index c92d0bc663c557c984d24df575f104caa66bba3b..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/base/in_memory.py +++ /dev/null @@ -1,108 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""In-memory implementations of base layer interfaces.""" - -import threading - -from grpc.framework.base import _constants -from grpc.framework.base import interfaces -from grpc.framework.foundation import callable_util - - -class _Serializer(object): - """A utility for serializing values that may arrive concurrently.""" - - def __init__(self, pool): - self._lock = threading.Lock() - self._pool = pool - self._sink = None - self._spinning = False - self._values = [] - - def _spin(self, sink, value): - while True: - sink(value) - with self._lock: - if self._sink is None or not self._values: - self._spinning = False - return - else: - sink, value = self._sink, self._values.pop(0) - - def set_sink(self, sink): - with self._lock: - self._sink = sink - if sink is not None and self._values and not self._spinning: - self._spinning = True - self._pool.submit( - callable_util.with_exceptions_logged( - self._spin, _constants.INTERNAL_ERROR_LOG_MESSAGE), - sink, self._values.pop(0)) - - def add_value(self, value): - with self._lock: - if self._sink and not self._spinning: - self._spinning = True - self._pool.submit( - callable_util.with_exceptions_logged( - self._spin, _constants.INTERNAL_ERROR_LOG_MESSAGE), - self._sink, value) - else: - self._values.append(value) - - -class Link(interfaces.ForeLink, interfaces.RearLink): - """A trivial implementation of interfaces.ForeLink and interfaces.RearLink.""" - - def __init__(self, pool): - """Constructor. - - Args: - pool: A thread pool to be used for serializing ticket exchange in each - direction. - """ - self._front_to_back = _Serializer(pool) - self._back_to_front = _Serializer(pool) - - def join_fore_link(self, fore_link): - """See interfaces.RearLink.join_fore_link for specification.""" - self._back_to_front.set_sink(fore_link.accept_back_to_front_ticket) - - def join_rear_link(self, rear_link): - """See interfaces.ForeLink.join_rear_link for specification.""" - self._front_to_back.set_sink(rear_link.accept_front_to_back_ticket) - - def accept_front_to_back_ticket(self, ticket): - """See interfaces.ForeLink.accept_front_to_back_ticket for specification.""" - self._front_to_back.add_value(ticket) - - def accept_back_to_front_ticket(self, ticket): - """See interfaces.RearLink.accept_back_to_front_ticket for specification.""" - self._back_to_front.add_value(ticket) diff --git a/src/python/grpcio/grpc/framework/base/interfaces.py b/src/python/grpcio/grpc/framework/base/interfaces.py deleted file mode 100644 index 995b51cd5b935177cd6884b2556f482af789e801..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/base/interfaces.py +++ /dev/null @@ -1,353 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Interfaces defined and used by the base layer of RPC Framework.""" - -import abc -import collections -import enum - -import six - -# stream is referenced from specification in this module. -from grpc.framework.foundation import stream # pylint: disable=unused-import - - -@enum.unique -class Outcome(enum.Enum): - """Operation outcomes.""" - - COMPLETED = 'completed' - CANCELLED = 'cancelled' - EXPIRED = 'expired' - RECEPTION_FAILURE = 'reception failure' - TRANSMISSION_FAILURE = 'transmission failure' - SERVICER_FAILURE = 'servicer failure' - SERVICED_FAILURE = 'serviced failure' - - -class OperationContext(six.with_metaclass(abc.ABCMeta)): - """Provides operation-related information and action. - - Attributes: - trace_id: A uuid.UUID identifying a particular set of related operations. - """ - - @abc.abstractmethod - def is_active(self): - """Describes whether the operation is active or has terminated.""" - raise NotImplementedError() - - @abc.abstractmethod - def add_termination_callback(self, callback): - """Adds a function to be called upon operation termination. - - Args: - callback: A callable that will be passed an Outcome value. - """ - raise NotImplementedError() - - @abc.abstractmethod - def time_remaining(self): - """Describes the length of allowed time remaining for the operation. - - Returns: - A nonnegative float indicating the length of allowed time in seconds - remaining for the operation to complete before it is considered to have - timed out. - """ - raise NotImplementedError() - - @abc.abstractmethod - def fail(self, exception): - """Indicates that the operation has failed. - - Args: - exception: An exception germane to the operation failure. May be None. - """ - raise NotImplementedError() - - -class Servicer(six.with_metaclass(abc.ABCMeta)): - """Interface for service implementations.""" - - @abc.abstractmethod - def service(self, name, context, output_consumer): - """Services an operation. - - Args: - name: The name of the operation. - context: A ServicerContext object affording contextual information and - actions. - output_consumer: A stream.Consumer that will accept output values of - the operation. - - Returns: - A stream.Consumer that will accept input values for the operation. - - Raises: - exceptions.NoSuchMethodError: If this Servicer affords no method with the - given name. - abandonment.Abandoned: If the operation has been aborted and there no - longer is any reason to service the operation. - """ - raise NotImplementedError() - - -class Operation(six.with_metaclass(abc.ABCMeta)): - """Representation of an in-progress operation. - - Attributes: - consumer: A stream.Consumer into which payloads constituting the operation's - input may be passed. - context: An OperationContext affording information and action about the - operation. - """ - - @abc.abstractmethod - def cancel(self): - """Cancels this operation.""" - raise NotImplementedError() - - -class ServicedIngestor(six.with_metaclass(abc.ABCMeta)): - """Responsible for accepting the result of an operation.""" - - @abc.abstractmethod - def consumer(self, operation_context): - """Affords a consumer to which operation results will be passed. - - Args: - operation_context: An OperationContext object for the current operation. - - Returns: - A stream.Consumer to which the results of the current operation will be - passed. - - Raises: - abandonment.Abandoned: If the operation has been aborted and there no - longer is any reason to service the operation. - """ - raise NotImplementedError() - - -class ServicedSubscription(six.with_metaclass(abc.ABCMeta)): - """A sum type representing a serviced's interest in an operation. - - Attributes: - kind: A Kind value. - ingestor: A ServicedIngestor. Must be present if kind is Kind.FULL. Must - be None if kind is Kind.TERMINATION_ONLY or Kind.NONE. - """ - - @enum.unique - class Kind(enum.Enum): - """Kinds of subscription.""" - - FULL = 'full' - TERMINATION_ONLY = 'termination only' - NONE = 'none' - - -class End(six.with_metaclass(abc.ABCMeta)): - """Common type for entry-point objects on both sides of an operation.""" - - @abc.abstractmethod - def operation_stats(self): - """Reports the number of terminated operations broken down by outcome. - - Returns: - A dictionary from Outcome value to an integer identifying the number - of operations that terminated with that outcome. - """ - raise NotImplementedError() - - @abc.abstractmethod - def add_idle_action(self, action): - """Adds an action to be called when this End has no ongoing operations. - - Args: - action: A callable that accepts no arguments. - """ - raise NotImplementedError() - - -class Front(six.with_metaclass(abc.ABCMeta, End)): - """Clientish objects that afford the invocation of operations.""" - - @abc.abstractmethod - def operate( - self, name, payload, complete, timeout, subscription, trace_id): - """Commences an operation. - - Args: - name: The name of the method invoked for the operation. - payload: An initial payload for the operation. May be None. - complete: A boolean indicating whether or not additional payloads to be - sent to the servicer may be supplied after this call. - timeout: A length of time in seconds to allow for the operation. - subscription: A ServicedSubscription for the operation. - trace_id: A uuid.UUID identifying a set of related operations to which - this operation belongs. - - Returns: - An Operation object affording information and action about the operation - in progress. - """ - raise NotImplementedError() - - -class Back(six.with_metaclass(abc.ABCMeta, End)): - """Serverish objects that perform the work of operations.""" - - -class FrontToBackTicket( - collections.namedtuple( - 'FrontToBackTicket', - ['operation_id', 'sequence_number', 'kind', 'name', 'subscription', - 'trace_id', 'payload', 'timeout'])): - """A sum type for all values sent from a front to a back. - - Attributes: - operation_id: A unique-with-respect-to-equality hashable object identifying - a particular operation. - sequence_number: A zero-indexed integer sequence number identifying the - ticket's place among all the tickets sent from front to back for this - particular operation. Must be zero if kind is Kind.COMMENCEMENT or - Kind.ENTIRE. Must be positive for any other kind. - kind: A Kind value describing the overall kind of ticket. - name: The name of an operation. Must be present if kind is Kind.COMMENCEMENT - or Kind.ENTIRE. Must be None for any other kind. - subscription: An ServicedSubscription.Kind value describing the interest - the front has in tickets sent from the back. Must be present if - kind is Kind.COMMENCEMENT or Kind.ENTIRE. Must be None for any other kind. - trace_id: A uuid.UUID identifying a set of related operations to which this - operation belongs. May be None. - payload: A customer payload object. Must be present if kind is - Kind.CONTINUATION. Must be None if kind is Kind.CANCELLATION. May be None - for any other kind. - timeout: An optional length of time (measured from the beginning of the - operation) to allow for the entire operation. If None, a default value on - the back will be used. If present and excessively large, the back may - limit the operation to a smaller duration of its choice. May be present - for any ticket kind; setting a value on a later ticket allows fronts - to request time extensions (or even time reductions!) on in-progress - operations. - """ - - @enum.unique - class Kind(enum.Enum): - """Identifies the overall kind of a FrontToBackTicket.""" - - COMMENCEMENT = 'commencement' - CONTINUATION = 'continuation' - COMPLETION = 'completion' - ENTIRE = 'entire' - CANCELLATION = 'cancellation' - EXPIRATION = 'expiration' - SERVICER_FAILURE = 'servicer failure' - SERVICED_FAILURE = 'serviced failure' - RECEPTION_FAILURE = 'reception failure' - TRANSMISSION_FAILURE = 'transmission failure' - - -class BackToFrontTicket( - collections.namedtuple( - 'BackToFrontTicket', - ['operation_id', 'sequence_number', 'kind', 'payload'])): - """A sum type for all values sent from a back to a front. - - Attributes: - operation_id: A unique-with-respect-to-equality hashable object identifying - a particular operation. - sequence_number: A zero-indexed integer sequence number identifying the - ticket's place among all the tickets sent from back to front for this - particular operation. - kind: A Kind value describing the overall kind of ticket. - payload: A customer payload object. Must be present if kind is - Kind.CONTINUATION. May be None if kind is Kind.COMPLETION. Must be None - otherwise. - """ - - @enum.unique - class Kind(enum.Enum): - """Identifies the overall kind of a BackToFrontTicket.""" - - CONTINUATION = 'continuation' - COMPLETION = 'completion' - CANCELLATION = 'cancellation' - EXPIRATION = 'expiration' - SERVICER_FAILURE = 'servicer failure' - SERVICED_FAILURE = 'serviced failure' - RECEPTION_FAILURE = 'reception failure' - TRANSMISSION_FAILURE = 'transmission failure' - - -class ForeLink(six.with_metaclass(abc.ABCMeta)): - """Accepts back-to-front tickets and emits front-to-back tickets.""" - - @abc.abstractmethod - def accept_back_to_front_ticket(self, ticket): - """Accept a BackToFrontTicket. - - Args: - ticket: Any BackToFrontTicket. - """ - raise NotImplementedError() - - @abc.abstractmethod - def join_rear_link(self, rear_link): - """Mates this object with a peer with which it will exchange tickets.""" - raise NotImplementedError() - - -class RearLink(six.with_metaclass(abc.ABCMeta)): - """Accepts front-to-back tickets and emits back-to-front tickets.""" - - @abc.abstractmethod - def accept_front_to_back_ticket(self, ticket): - """Accepts a FrontToBackTicket. - - Args: - ticket: Any FrontToBackTicket. - """ - raise NotImplementedError() - - @abc.abstractmethod - def join_fore_link(self, fore_link): - """Mates this object with a peer with which it will exchange tickets.""" - raise NotImplementedError() - - -class FrontLink(six.with_metaclass(abc.ABCMeta, Front, ForeLink)): - """Clientish objects that operate by sending and receiving tickets.""" - - -class BackLink(six.with_metaclass(abc.ABCMeta, Back, RearLink)): - """Serverish objects that operate by sending and receiving tickets.""" diff --git a/src/python/grpcio/grpc/framework/base/util.py b/src/python/grpcio/grpc/framework/base/util.py deleted file mode 100644 index c832c826cfd052ceb16821e790a20315dadb0eb3..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/base/util.py +++ /dev/null @@ -1,94 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Utilities helpful for working with the base layer of RPC Framework.""" - -import collections -import threading - -from grpc.framework.base import interfaces - - -class _ServicedSubscription( - collections.namedtuple('_ServicedSubscription', ['kind', 'ingestor']), - interfaces.ServicedSubscription): - """See interfaces.ServicedSubscription for specification.""" - -_NONE_SUBSCRIPTION = _ServicedSubscription( - interfaces.ServicedSubscription.Kind.NONE, None) -_TERMINATION_ONLY_SUBSCRIPTION = _ServicedSubscription( - interfaces.ServicedSubscription.Kind.TERMINATION_ONLY, None) - - -def none_serviced_subscription(): - """Creates a "none" interfaces.ServicedSubscription object. - - Returns: - An interfaces.ServicedSubscription indicating no subscription to an - operation's results (such as would be the case for a fire-and-forget - operation invocation). - """ - return _NONE_SUBSCRIPTION - - -def termination_only_serviced_subscription(): - """Creates a "termination only" interfaces.ServicedSubscription object. - - Returns: - An interfaces.ServicedSubscription indicating that the front-side customer - is interested only in the overall termination outcome of the operation - (such as completion or expiration) and would ignore the actual results of - the operation. - """ - return _TERMINATION_ONLY_SUBSCRIPTION - - -def full_serviced_subscription(ingestor): - """Creates a "full" interfaces.ServicedSubscription object. - - Args: - ingestor: An interfaces.ServicedIngestor. - - Returns: - An interfaces.ServicedSubscription object indicating a full - subscription. - """ - return _ServicedSubscription( - interfaces.ServicedSubscription.Kind.FULL, ingestor) - - -def wait_for_idle(end): - """Waits for an interfaces.End to complete all operations. - - Args: - end: Any interfaces.End. - """ - event = threading.Event() - end.add_idle_action(event.set) - event.wait() diff --git a/src/python/grpcio/grpc/framework/face/__init__.py b/src/python/grpcio/grpc/framework/face/__init__.py deleted file mode 100644 index bff74be2c7bbc79e3e32103436c9fbd708bf2c03..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/face/__init__.py +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import warnings - -warnings.simplefilter('always', DeprecationWarning) -warnings.warn('the alpha API (includes this package) is deprecated, ' - 'unmaintained, and no longer tested. Please migrate to the beta ' - 'API.', DeprecationWarning, stacklevel=2) diff --git a/src/python/grpcio/grpc/framework/face/_calls.py b/src/python/grpcio/grpc/framework/face/_calls.py deleted file mode 100644 index 87edeb0f0e511942ee2b679393215c5f67569730..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/face/_calls.py +++ /dev/null @@ -1,422 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Utility functions for invoking RPCs.""" - -import sys -import threading - -from grpc.framework.base import interfaces as base_interfaces -from grpc.framework.base import util as base_util -from grpc.framework.face import _control -from grpc.framework.face import interfaces -from grpc.framework.foundation import callable_util -from grpc.framework.foundation import future - -_ITERATOR_EXCEPTION_LOG_MESSAGE = 'Exception iterating over requests!' -_DONE_CALLBACK_LOG_MESSAGE = 'Exception calling Future "done" callback!' - - -class _RendezvousServicedIngestor(base_interfaces.ServicedIngestor): - - def __init__(self, rendezvous): - self._rendezvous = rendezvous - - def consumer(self, operation_context): - return self._rendezvous - - -class _EventServicedIngestor(base_interfaces.ServicedIngestor): - - def __init__(self, result_consumer, abortion_callback): - self._result_consumer = result_consumer - self._abortion_callback = abortion_callback - - def consumer(self, operation_context): - operation_context.add_termination_callback( - _control.as_operation_termination_callback(self._abortion_callback)) - return self._result_consumer - - -def _rendezvous_subscription(rendezvous): - return base_util.full_serviced_subscription( - _RendezvousServicedIngestor(rendezvous)) - - -def _unary_event_subscription(completion_callback, abortion_callback): - return base_util.full_serviced_subscription( - _EventServicedIngestor( - _control.UnaryConsumer(completion_callback), abortion_callback)) - - -def _stream_event_subscription(result_consumer, abortion_callback): - return base_util.full_serviced_subscription( - _EventServicedIngestor(result_consumer, abortion_callback)) - - -# NOTE(nathaniel): This class has some extremely special semantics around -# cancellation that allow it to be used by both "blocking" APIs and "futures" -# APIs. -# -# Since futures.Future defines its own exception for cancellation, we want these -# objects, when returned by methods of a returning-Futures-from-other-methods -# object, to raise the same exception for cancellation. But that's weird in a -# blocking API - why should this object, also returned by methods of blocking -# APIs, raise exceptions from the "future" module? Should we do something like -# have this class be parameterized by the type of exception that it raises in -# cancellation circumstances? -# -# We don't have to take such a dramatic step: since blocking APIs define no -# cancellation semantics whatsoever, there is no supported way for -# blocking-API-users of these objects to cancel RPCs, and thus no supported way -# for them to see an exception the type of which would be weird to them. -# -# Bonus: in both blocking and futures APIs, this object still properly raises -# exceptions.CancellationError for any *server-side cancellation* of an RPC. -class _OperationCancellableIterator(interfaces.CancellableIterator): - """An interfaces.CancellableIterator for response-streaming operations.""" - - def __init__(self, rendezvous, operation): - self._lock = threading.Lock() - self._rendezvous = rendezvous - self._operation = operation - self._cancelled = False - - def __iter__(self): - return self - - def next(self): - with self._lock: - if self._cancelled: - raise future.CancelledError() - return next(self._rendezvous) - - def cancel(self): - with self._lock: - self._cancelled = True - self._operation.cancel() - self._rendezvous.set_outcome(base_interfaces.Outcome.CANCELLED) - - -class _OperationFuture(future.Future): - """A future.Future interface to an operation.""" - - def __init__(self, rendezvous, operation): - self._condition = threading.Condition() - self._rendezvous = rendezvous - self._operation = operation - - self._cancelled = False - self._computed = False - self._payload = None - self._exception = None - self._traceback = None - self._callbacks = [] - - def cancel(self): - """See future.Future.cancel for specification.""" - with self._condition: - if not self._cancelled and not self._computed: - self._operation.cancel() - self._cancelled = True - self._condition.notify_all() - return False - - def cancelled(self): - """See future.Future.cancelled for specification.""" - with self._condition: - return self._cancelled - - def running(self): - """See future.Future.running for specification.""" - with self._condition: - return not self._cancelled and not self._computed - - def done(self): - """See future.Future.done for specification.""" - with self._condition: - return self._cancelled or self._computed - - def result(self, timeout=None): - """See future.Future.result for specification.""" - with self._condition: - if self._cancelled: - raise future.CancelledError() - if self._computed: - if self._payload is None: - raise self._exception # pylint: disable=raising-bad-type - else: - return self._payload - - condition = threading.Condition() - def notify_condition(unused_future): - with condition: - condition.notify() - self._callbacks.append(notify_condition) - - with condition: - condition.wait(timeout=timeout) - - with self._condition: - if self._cancelled: - raise future.CancelledError() - elif self._computed: - if self._payload is None: - raise self._exception # pylint: disable=raising-bad-type - else: - return self._payload - else: - raise future.TimeoutError() - - def exception(self, timeout=None): - """See future.Future.exception for specification.""" - with self._condition: - if self._cancelled: - raise future.CancelledError() - if self._computed: - return self._exception - - condition = threading.Condition() - def notify_condition(unused_future): - with condition: - condition.notify() - self._callbacks.append(notify_condition) - - with condition: - condition.wait(timeout=timeout) - - with self._condition: - if self._cancelled: - raise future.CancelledError() - elif self._computed: - return self._exception - else: - raise future.TimeoutError() - - def traceback(self, timeout=None): - """See future.Future.traceback for specification.""" - with self._condition: - if self._cancelled: - raise future.CancelledError() - if self._computed: - return self._traceback - - condition = threading.Condition() - def notify_condition(unused_future): - with condition: - condition.notify() - self._callbacks.append(notify_condition) - - with condition: - condition.wait(timeout=timeout) - - with self._condition: - if self._cancelled: - raise future.CancelledError() - elif self._computed: - return self._traceback - else: - raise future.TimeoutError() - - def add_done_callback(self, fn): - """See future.Future.add_done_callback for specification.""" - with self._condition: - if self._callbacks is not None: - self._callbacks.append(fn) - return - - callable_util.call_logging_exceptions(fn, _DONE_CALLBACK_LOG_MESSAGE, self) - - def on_operation_termination(self, operation_outcome): - """Indicates to this object that the operation has terminated. - - Args: - operation_outcome: A base_interfaces.Outcome value indicating the - outcome of the operation. - """ - with self._condition: - cancelled = self._cancelled - if cancelled: - callbacks = list(self._callbacks) - self._callbacks = None - else: - rendezvous = self._rendezvous - - if not cancelled: - payload = None - exception = None - traceback = None - if operation_outcome == base_interfaces.Outcome.COMPLETED: - try: - payload = next(rendezvous) - except Exception as e: # pylint: disable=broad-except - exception = e - traceback = sys.exc_info()[2] - else: - try: - # We raise and then immediately catch in order to create a traceback. - raise _control.abortion_outcome_to_exception(operation_outcome) - except Exception as e: # pylint: disable=broad-except - exception = e - traceback = sys.exc_info()[2] - with self._condition: - if not self._cancelled: - self._computed = True - self._payload = payload - self._exception = exception - self._traceback = traceback - callbacks = list(self._callbacks) - self._callbacks = None - - for callback in callbacks: - callable_util.call_logging_exceptions( - callback, _DONE_CALLBACK_LOG_MESSAGE, self) - - -class _Call(interfaces.Call): - - def __init__(self, operation): - self._operation = operation - self.context = _control.RpcContext(operation.context) - - def cancel(self): - self._operation.cancel() - - -def blocking_value_in_value_out(front, name, payload, timeout, trace_id): - """Services in a blocking fashion a value-in value-out servicer method.""" - rendezvous = _control.Rendezvous() - subscription = _rendezvous_subscription(rendezvous) - operation = front.operate( - name, payload, True, timeout, subscription, trace_id) - operation.context.add_termination_callback(rendezvous.set_outcome) - return next(rendezvous) - - -def future_value_in_value_out(front, name, payload, timeout, trace_id): - """Services a value-in value-out servicer method by returning a Future.""" - rendezvous = _control.Rendezvous() - subscription = _rendezvous_subscription(rendezvous) - operation = front.operate( - name, payload, True, timeout, subscription, trace_id) - operation.context.add_termination_callback(rendezvous.set_outcome) - operation_future = _OperationFuture(rendezvous, operation) - operation.context.add_termination_callback( - operation_future.on_operation_termination) - return operation_future - - -def inline_value_in_stream_out(front, name, payload, timeout, trace_id): - """Services a value-in stream-out servicer method.""" - rendezvous = _control.Rendezvous() - subscription = _rendezvous_subscription(rendezvous) - operation = front.operate( - name, payload, True, timeout, subscription, trace_id) - operation.context.add_termination_callback(rendezvous.set_outcome) - return _OperationCancellableIterator(rendezvous, operation) - - -def blocking_stream_in_value_out( - front, name, payload_iterator, timeout, trace_id): - """Services in a blocking fashion a stream-in value-out servicer method.""" - rendezvous = _control.Rendezvous() - subscription = _rendezvous_subscription(rendezvous) - operation = front.operate(name, None, False, timeout, subscription, trace_id) - operation.context.add_termination_callback(rendezvous.set_outcome) - for payload in payload_iterator: - operation.consumer.consume(payload) - operation.consumer.terminate() - return next(rendezvous) - - -def future_stream_in_value_out( - front, name, payload_iterator, timeout, trace_id, pool): - """Services a stream-in value-out servicer method by returning a Future.""" - rendezvous = _control.Rendezvous() - subscription = _rendezvous_subscription(rendezvous) - operation = front.operate(name, None, False, timeout, subscription, trace_id) - operation.context.add_termination_callback(rendezvous.set_outcome) - pool.submit( - callable_util.with_exceptions_logged( - _control.pipe_iterator_to_consumer, _ITERATOR_EXCEPTION_LOG_MESSAGE), - payload_iterator, operation.consumer, lambda: True, True) - operation_future = _OperationFuture(rendezvous, operation) - operation.context.add_termination_callback( - operation_future.on_operation_termination) - return operation_future - - -def inline_stream_in_stream_out( - front, name, payload_iterator, timeout, trace_id, pool): - """Services a stream-in stream-out servicer method.""" - rendezvous = _control.Rendezvous() - subscription = _rendezvous_subscription(rendezvous) - operation = front.operate(name, None, False, timeout, subscription, trace_id) - operation.context.add_termination_callback(rendezvous.set_outcome) - pool.submit( - callable_util.with_exceptions_logged( - _control.pipe_iterator_to_consumer, _ITERATOR_EXCEPTION_LOG_MESSAGE), - payload_iterator, operation.consumer, lambda: True, True) - return _OperationCancellableIterator(rendezvous, operation) - - -def event_value_in_value_out( - front, name, payload, completion_callback, abortion_callback, timeout, - trace_id): - subscription = _unary_event_subscription( - completion_callback, abortion_callback) - operation = front.operate( - name, payload, True, timeout, subscription, trace_id) - return _Call(operation) - - -def event_value_in_stream_out( - front, name, payload, result_payload_consumer, abortion_callback, timeout, - trace_id): - subscription = _stream_event_subscription( - result_payload_consumer, abortion_callback) - operation = front.operate( - name, payload, True, timeout, subscription, trace_id) - return _Call(operation) - - -def event_stream_in_value_out( - front, name, completion_callback, abortion_callback, timeout, trace_id): - subscription = _unary_event_subscription( - completion_callback, abortion_callback) - operation = front.operate(name, None, False, timeout, subscription, trace_id) - return _Call(operation), operation.consumer - - -def event_stream_in_stream_out( - front, name, result_payload_consumer, abortion_callback, timeout, trace_id): - subscription = _stream_event_subscription( - result_payload_consumer, abortion_callback) - operation = front.operate(name, None, False, timeout, subscription, trace_id) - return _Call(operation), operation.consumer diff --git a/src/python/grpcio/grpc/framework/face/_control.py b/src/python/grpcio/grpc/framework/face/_control.py deleted file mode 100644 index 539615efa18143e92cc8d853858c8295575b31bd..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/face/_control.py +++ /dev/null @@ -1,201 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""State and behavior for translating between sync and async control flow.""" - -import threading - -from grpc.framework.base import interfaces as base_interfaces -from grpc.framework.face import exceptions -from grpc.framework.face import interfaces -from grpc.framework.foundation import abandonment -from grpc.framework.foundation import stream - -INTERNAL_ERROR_LOG_MESSAGE = ':-( RPC Framework (Face) Internal Error! :-(' - -_OPERATION_OUTCOME_TO_RPC_ABORTION = { - base_interfaces.Outcome.CANCELLED: interfaces.Abortion.CANCELLED, - base_interfaces.Outcome.EXPIRED: interfaces.Abortion.EXPIRED, - base_interfaces.Outcome.RECEPTION_FAILURE: - interfaces.Abortion.NETWORK_FAILURE, - base_interfaces.Outcome.TRANSMISSION_FAILURE: - interfaces.Abortion.NETWORK_FAILURE, - base_interfaces.Outcome.SERVICED_FAILURE: - interfaces.Abortion.SERVICED_FAILURE, - base_interfaces.Outcome.SERVICER_FAILURE: - interfaces.Abortion.SERVICER_FAILURE, -} - - -def _as_operation_termination_callback(rpc_abortion_callback): - def operation_termination_callback(operation_outcome): - rpc_abortion = _OPERATION_OUTCOME_TO_RPC_ABORTION.get( - operation_outcome, None) - if rpc_abortion is not None: - rpc_abortion_callback(rpc_abortion) - return operation_termination_callback - - -def _abortion_outcome_to_exception(abortion_outcome): - if abortion_outcome == base_interfaces.Outcome.CANCELLED: - return exceptions.CancellationError() - elif abortion_outcome == base_interfaces.Outcome.EXPIRED: - return exceptions.ExpirationError() - elif abortion_outcome == base_interfaces.Outcome.SERVICER_FAILURE: - return exceptions.ServicerError() - elif abortion_outcome == base_interfaces.Outcome.SERVICED_FAILURE: - return exceptions.ServicedError() - else: - return exceptions.NetworkError() - - -class UnaryConsumer(stream.Consumer): - """A stream.Consumer that should only ever be passed one value.""" - - def __init__(self, on_termination): - self._on_termination = on_termination - self._value = None - - def consume(self, value): - self._value = value - - def terminate(self): - self._on_termination(self._value) - - def consume_and_terminate(self, value): - self._on_termination(value) - - -class Rendezvous(stream.Consumer): - """A rendez-vous with stream.Consumer and iterator interfaces.""" - - def __init__(self): - self._condition = threading.Condition() - self._values = [] - self._values_completed = False - self._abortion = None - - def consume(self, value): - with self._condition: - self._values.append(value) - self._condition.notify() - - def terminate(self): - with self._condition: - self._values_completed = True - self._condition.notify() - - def consume_and_terminate(self, value): - with self._condition: - self._values.append(value) - self._values_completed = True - self._condition.notify() - - def __iter__(self): - return self - - def __next__(self): - return self.next() - - def next(self): - with self._condition: - while ((self._abortion is None) and - (not self._values) and - (not self._values_completed)): - self._condition.wait() - if self._abortion is not None: - raise _abortion_outcome_to_exception(self._abortion) - elif self._values: - return self._values.pop(0) - elif self._values_completed: - raise StopIteration() - else: - raise AssertionError('Unreachable code reached!') - - def set_outcome(self, outcome): - with self._condition: - if outcome is not base_interfaces.Outcome.COMPLETED: - self._abortion = outcome - self._condition.notify() - - -class RpcContext(interfaces.RpcContext): - """A wrapped base_interfaces.OperationContext.""" - - def __init__(self, operation_context): - self._operation_context = operation_context - - def is_active(self): - return self._operation_context.is_active() - - def time_remaining(self): - return self._operation_context.time_remaining() - - def add_abortion_callback(self, abortion_callback): - self._operation_context.add_termination_callback( - _as_operation_termination_callback(abortion_callback)) - - -def pipe_iterator_to_consumer(iterator, consumer, active, terminate): - """Pipes values emitted from an iterator to a stream.Consumer. - - Args: - iterator: An iterator from which values will be emitted. - consumer: A stream.Consumer to which values will be passed. - active: A no-argument callable that returns True if the work being done by - this function is still valid and should not be abandoned and False if the - work being done by this function should be abandoned. - terminate: A boolean indicating whether or not this function should - terminate the given consumer after passing to it all values emitted by the - given iterator. - - Raises: - abandonment.Abandoned: If this function quits early after seeing False - returned by the active function passed to it. - Exception: This function raises whatever exceptions are raised by iterating - over the given iterator. - """ - for element in iterator: - if not active(): - raise abandonment.Abandoned() - - consumer.consume(element) - - if not active(): - raise abandonment.Abandoned() - if terminate: - consumer.terminate() - - -def abortion_outcome_to_exception(abortion_outcome): - return _abortion_outcome_to_exception(abortion_outcome) - - -def as_operation_termination_callback(rpc_abortion_callback): - return _as_operation_termination_callback(rpc_abortion_callback) diff --git a/src/python/grpcio/grpc/framework/face/_service.py b/src/python/grpcio/grpc/framework/face/_service.py deleted file mode 100644 index cdf413356ad716e33bd45cdc9accda28202d50a6..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/face/_service.py +++ /dev/null @@ -1,187 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Behaviors for servicing RPCs.""" - -# base_interfaces and interfaces are referenced from specification in this -# module. -from grpc.framework.base import interfaces as base_interfaces # pylint: disable=unused-import -from grpc.framework.face import _control -from grpc.framework.face import exceptions -from grpc.framework.face import interfaces # pylint: disable=unused-import -from grpc.framework.foundation import abandonment -from grpc.framework.foundation import callable_util -from grpc.framework.foundation import stream -from grpc.framework.foundation import stream_util - - -class _ValueInStreamOutConsumer(stream.Consumer): - """A stream.Consumer that maps inputs one-to-many onto outputs.""" - - def __init__(self, behavior, context, downstream): - """Constructor. - - Args: - behavior: A callable that takes a single value and an - interfaces.RpcContext and returns a generator of arbitrarily many - values. - context: An interfaces.RpcContext. - downstream: A stream.Consumer to which to pass the values generated by the - given behavior. - """ - self._behavior = behavior - self._context = context - self._downstream = downstream - - def consume(self, value): - _control.pipe_iterator_to_consumer( - self._behavior(value, self._context), self._downstream, - self._context.is_active, False) - - def terminate(self): - self._downstream.terminate() - - def consume_and_terminate(self, value): - _control.pipe_iterator_to_consumer( - self._behavior(value, self._context), self._downstream, - self._context.is_active, True) - - -def _pool_wrap(behavior, operation_context): - """Wraps an operation-related behavior so that it may be called in a pool. - - Args: - behavior: A callable related to carrying out an operation. - operation_context: A base_interfaces.OperationContext for the operation. - - Returns: - A callable that when called carries out the behavior of the given callable - and handles whatever exceptions it raises appropriately. - """ - def translation(*args): - try: - behavior(*args) - except ( - abandonment.Abandoned, - exceptions.ExpirationError, - exceptions.CancellationError, - exceptions.ServicedError, - exceptions.NetworkError) as e: - if operation_context.is_active(): - operation_context.fail(e) - except Exception as e: - operation_context.fail(e) - return callable_util.with_exceptions_logged( - translation, _control.INTERNAL_ERROR_LOG_MESSAGE) - - -def adapt_inline_value_in_value_out(method): - def adaptation(response_consumer, operation_context): - rpc_context = _control.RpcContext(operation_context) - return stream_util.TransformingConsumer( - lambda request: method(request, rpc_context), response_consumer) - return adaptation - - -def adapt_inline_value_in_stream_out(method): - def adaptation(response_consumer, operation_context): - rpc_context = _control.RpcContext(operation_context) - return _ValueInStreamOutConsumer(method, rpc_context, response_consumer) - return adaptation - - -def adapt_inline_stream_in_value_out(method, pool): - def adaptation(response_consumer, operation_context): - rendezvous = _control.Rendezvous() - operation_context.add_termination_callback(rendezvous.set_outcome) - def in_pool_thread(): - response_consumer.consume_and_terminate( - method(rendezvous, _control.RpcContext(operation_context))) - pool.submit(_pool_wrap(in_pool_thread, operation_context)) - return rendezvous - return adaptation - - -def adapt_inline_stream_in_stream_out(method, pool): - """Adapts an interfaces.InlineStreamInStreamOutMethod for use with Consumers. - - RPCs may be serviced by calling the return value of this function, passing - request values to the stream.Consumer returned from that call, and receiving - response values from the stream.Consumer passed to that call. - - Args: - method: An interfaces.InlineStreamInStreamOutMethod. - pool: A thread pool. - - Returns: - A callable that takes a stream.Consumer and a - base_interfaces.OperationContext and returns a stream.Consumer. - """ - def adaptation(response_consumer, operation_context): - rendezvous = _control.Rendezvous() - operation_context.add_termination_callback(rendezvous.set_outcome) - def in_pool_thread(): - _control.pipe_iterator_to_consumer( - method(rendezvous, _control.RpcContext(operation_context)), - response_consumer, operation_context.is_active, True) - pool.submit(_pool_wrap(in_pool_thread, operation_context)) - return rendezvous - return adaptation - - -def adapt_event_value_in_value_out(method): - def adaptation(response_consumer, operation_context): - def on_payload(payload): - method( - payload, response_consumer.consume_and_terminate, - _control.RpcContext(operation_context)) - return _control.UnaryConsumer(on_payload) - return adaptation - - -def adapt_event_value_in_stream_out(method): - def adaptation(response_consumer, operation_context): - def on_payload(payload): - method( - payload, response_consumer, _control.RpcContext(operation_context)) - return _control.UnaryConsumer(on_payload) - return adaptation - - -def adapt_event_stream_in_value_out(method): - def adaptation(response_consumer, operation_context): - rpc_context = _control.RpcContext(operation_context) - return method(response_consumer.consume_and_terminate, rpc_context) - return adaptation - - -def adapt_event_stream_in_stream_out(method): - def adaptation(response_consumer, operation_context): - return method(response_consumer, _control.RpcContext(operation_context)) - return adaptation diff --git a/src/python/grpcio/grpc/framework/face/demonstration.py b/src/python/grpcio/grpc/framework/face/demonstration.py deleted file mode 100644 index f6b4b609ffe1e7e3fd78b6d0bed7fb562011b862..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/face/demonstration.py +++ /dev/null @@ -1,118 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Demonstration-suitable implementation of the face layer of RPC Framework.""" - -from grpc.framework.base import util as _base_util -from grpc.framework.base import implementations as _base_implementations -from grpc.framework.face import implementations -from grpc.framework.foundation import logging_pool - -_POOL_SIZE_LIMIT = 5 - -_MAXIMUM_TIMEOUT = 90 - - -class LinkedPair(object): - """A Server and Stub that are linked to one another. - - Attributes: - server: A Server. - stub: A Stub. - """ - - def shut_down(self): - """Shuts down this object and releases its resources.""" - raise NotImplementedError() - - -class _LinkedPair(LinkedPair): - - def __init__(self, server, stub, front, back, pools): - self.server = server - self.stub = stub - self._front = front - self._back = back - self._pools = pools - - def shut_down(self): - _base_util.wait_for_idle(self._front) - _base_util.wait_for_idle(self._back) - - for pool in self._pools: - pool.shutdown(wait=True) - - -def server_and_stub( - default_timeout, - inline_value_in_value_out_methods=None, - inline_value_in_stream_out_methods=None, - inline_stream_in_value_out_methods=None, - inline_stream_in_stream_out_methods=None, - event_value_in_value_out_methods=None, - event_value_in_stream_out_methods=None, - event_stream_in_value_out_methods=None, - event_stream_in_stream_out_methods=None, - multi_method=None): - """Creates a Server and Stub linked together for use.""" - front_work_pool = logging_pool.pool(_POOL_SIZE_LIMIT) - front_transmission_pool = logging_pool.pool(_POOL_SIZE_LIMIT) - front_utility_pool = logging_pool.pool(_POOL_SIZE_LIMIT) - back_work_pool = logging_pool.pool(_POOL_SIZE_LIMIT) - back_transmission_pool = logging_pool.pool(_POOL_SIZE_LIMIT) - back_utility_pool = logging_pool.pool(_POOL_SIZE_LIMIT) - stub_pool = logging_pool.pool(_POOL_SIZE_LIMIT) - pools = ( - front_work_pool, front_transmission_pool, front_utility_pool, - back_work_pool, back_transmission_pool, back_utility_pool, - stub_pool) - - servicer = implementations.servicer( - back_work_pool, - inline_value_in_value_out_methods=inline_value_in_value_out_methods, - inline_value_in_stream_out_methods=inline_value_in_stream_out_methods, - inline_stream_in_value_out_methods=inline_stream_in_value_out_methods, - inline_stream_in_stream_out_methods=inline_stream_in_stream_out_methods, - event_value_in_value_out_methods=event_value_in_value_out_methods, - event_value_in_stream_out_methods=event_value_in_stream_out_methods, - event_stream_in_value_out_methods=event_stream_in_value_out_methods, - event_stream_in_stream_out_methods=event_stream_in_stream_out_methods, - multi_method=multi_method) - - front = _base_implementations.front_link( - front_work_pool, front_transmission_pool, front_utility_pool) - back = _base_implementations.back_link( - servicer, back_work_pool, back_transmission_pool, back_utility_pool, - default_timeout, _MAXIMUM_TIMEOUT) - front.join_rear_link(back) - back.join_fore_link(front) - - stub = implementations.stub(front, stub_pool) - - return _LinkedPair(implementations.server(), stub, front, back, pools) diff --git a/src/python/grpcio/grpc/framework/face/implementations.py b/src/python/grpcio/grpc/framework/face/implementations.py deleted file mode 100644 index 96055b413000801f8f54d6a9be04a4063c0188a5..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/face/implementations.py +++ /dev/null @@ -1,320 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Entry points into the Face layer of RPC Framework.""" - -import six - -from grpc.framework.common import cardinality -from grpc.framework.common import style -from grpc.framework.base import exceptions as _base_exceptions -from grpc.framework.base import interfaces as base_interfaces -from grpc.framework.face import _calls -from grpc.framework.face import _service -from grpc.framework.face import exceptions -from grpc.framework.face import interfaces - - -class _BaseServicer(base_interfaces.Servicer): - - def __init__(self, methods, multi_method): - self._methods = methods - self._multi_method = multi_method - - def service(self, name, context, output_consumer): - method = self._methods.get(name, None) - if method is not None: - return method(output_consumer, context) - elif self._multi_method is not None: - try: - return self._multi_method.service(name, output_consumer, context) - except exceptions.NoSuchMethodError: - raise _base_exceptions.NoSuchMethodError() - else: - raise _base_exceptions.NoSuchMethodError() - - -class _UnaryUnaryMultiCallable(interfaces.UnaryUnaryMultiCallable): - - def __init__(self, front, name): - self._front = front - self._name = name - - def __call__(self, request, timeout): - return _calls.blocking_value_in_value_out( - self._front, self._name, request, timeout, 'unused trace ID') - - def future(self, request, timeout): - return _calls.future_value_in_value_out( - self._front, self._name, request, timeout, 'unused trace ID') - - def event(self, request, response_callback, abortion_callback, timeout): - return _calls.event_value_in_value_out( - self._front, self._name, request, response_callback, abortion_callback, - timeout, 'unused trace ID') - - -class _UnaryStreamMultiCallable(interfaces.UnaryStreamMultiCallable): - - def __init__(self, front, name): - self._front = front - self._name = name - - def __call__(self, request, timeout): - return _calls.inline_value_in_stream_out( - self._front, self._name, request, timeout, 'unused trace ID') - - def event(self, request, response_consumer, abortion_callback, timeout): - return _calls.event_value_in_stream_out( - self._front, self._name, request, response_consumer, abortion_callback, - timeout, 'unused trace ID') - - -class _StreamUnaryMultiCallable(interfaces.StreamUnaryMultiCallable): - - def __init__(self, front, name, pool): - self._front = front - self._name = name - self._pool = pool - - def __call__(self, request_iterator, timeout): - return _calls.blocking_stream_in_value_out( - self._front, self._name, request_iterator, timeout, 'unused trace ID') - - def future(self, request_iterator, timeout): - return _calls.future_stream_in_value_out( - self._front, self._name, request_iterator, timeout, 'unused trace ID', - self._pool) - - def event(self, response_callback, abortion_callback, timeout): - return _calls.event_stream_in_value_out( - self._front, self._name, response_callback, abortion_callback, timeout, - 'unused trace ID') - - -class _StreamStreamMultiCallable(interfaces.StreamStreamMultiCallable): - - def __init__(self, front, name, pool): - self._front = front - self._name = name - self._pool = pool - - def __call__(self, request_iterator, timeout): - return _calls.inline_stream_in_stream_out( - self._front, self._name, request_iterator, timeout, 'unused trace ID', - self._pool) - - def event(self, response_consumer, abortion_callback, timeout): - return _calls.event_stream_in_stream_out( - self._front, self._name, response_consumer, abortion_callback, timeout, - 'unused trace ID') - - -class _GenericStub(interfaces.GenericStub): - """An interfaces.GenericStub implementation.""" - - def __init__(self, front, pool): - self._front = front - self._pool = pool - - def blocking_value_in_value_out(self, name, request, timeout): - return _calls.blocking_value_in_value_out( - self._front, name, request, timeout, 'unused trace ID') - - def future_value_in_value_out(self, name, request, timeout): - return _calls.future_value_in_value_out( - self._front, name, request, timeout, 'unused trace ID') - - def inline_value_in_stream_out(self, name, request, timeout): - return _calls.inline_value_in_stream_out( - self._front, name, request, timeout, 'unused trace ID') - - def blocking_stream_in_value_out(self, name, request_iterator, timeout): - return _calls.blocking_stream_in_value_out( - self._front, name, request_iterator, timeout, 'unused trace ID') - - def future_stream_in_value_out(self, name, request_iterator, timeout): - return _calls.future_stream_in_value_out( - self._front, name, request_iterator, timeout, 'unused trace ID', - self._pool) - - def inline_stream_in_stream_out(self, name, request_iterator, timeout): - return _calls.inline_stream_in_stream_out( - self._front, name, request_iterator, timeout, 'unused trace ID', - self._pool) - - def event_value_in_value_out( - self, name, request, response_callback, abortion_callback, timeout): - return _calls.event_value_in_value_out( - self._front, name, request, response_callback, abortion_callback, - timeout, 'unused trace ID') - - def event_value_in_stream_out( - self, name, request, response_consumer, abortion_callback, timeout): - return _calls.event_value_in_stream_out( - self._front, name, request, response_consumer, abortion_callback, - timeout, 'unused trace ID') - - def event_stream_in_value_out( - self, name, response_callback, abortion_callback, timeout): - return _calls.event_stream_in_value_out( - self._front, name, response_callback, abortion_callback, timeout, - 'unused trace ID') - - def event_stream_in_stream_out( - self, name, response_consumer, abortion_callback, timeout): - return _calls.event_stream_in_stream_out( - self._front, name, response_consumer, abortion_callback, timeout, - 'unused trace ID') - - def unary_unary_multi_callable(self, name): - return _UnaryUnaryMultiCallable(self._front, name) - - def unary_stream_multi_callable(self, name): - return _UnaryStreamMultiCallable(self._front, name) - - def stream_unary_multi_callable(self, name): - return _StreamUnaryMultiCallable(self._front, name, self._pool) - - def stream_stream_multi_callable(self, name): - return _StreamStreamMultiCallable(self._front, name, self._pool) - - -class _DynamicStub(interfaces.DynamicStub): - """An interfaces.DynamicStub implementation.""" - - def __init__(self, cardinalities, front, pool): - self._cardinalities = cardinalities - self._front = front - self._pool = pool - - def __getattr__(self, attr): - method_cardinality = self._cardinalities.get(attr) - if method_cardinality is cardinality.Cardinality.UNARY_UNARY: - return _UnaryUnaryMultiCallable(self._front, attr) - elif method_cardinality is cardinality.Cardinality.UNARY_STREAM: - return _UnaryStreamMultiCallable(self._front, attr) - elif method_cardinality is cardinality.Cardinality.STREAM_UNARY: - return _StreamUnaryMultiCallable(self._front, attr, self._pool) - elif method_cardinality is cardinality.Cardinality.STREAM_STREAM: - return _StreamStreamMultiCallable(self._front, attr, self._pool) - else: - raise AttributeError('_DynamicStub object has no attribute "%s"!' % attr) - - -def _adapt_method_implementations(method_implementations, pool): - adapted_implementations = {} - for name, method_implementation in six.iteritems(method_implementations): - if method_implementation.style is style.Service.INLINE: - if method_implementation.cardinality is cardinality.Cardinality.UNARY_UNARY: - adapted_implementations[name] = _service.adapt_inline_value_in_value_out( - method_implementation.unary_unary_inline) - elif method_implementation.cardinality is cardinality.Cardinality.UNARY_STREAM: - adapted_implementations[name] = _service.adapt_inline_value_in_stream_out( - method_implementation.unary_stream_inline) - elif method_implementation.cardinality is cardinality.Cardinality.STREAM_UNARY: - adapted_implementations[name] = _service.adapt_inline_stream_in_value_out( - method_implementation.stream_unary_inline, pool) - elif method_implementation.cardinality is cardinality.Cardinality.STREAM_STREAM: - adapted_implementations[name] = _service.adapt_inline_stream_in_stream_out( - method_implementation.stream_stream_inline, pool) - elif method_implementation.style is style.Service.EVENT: - if method_implementation.cardinality is cardinality.Cardinality.UNARY_UNARY: - adapted_implementations[name] = _service.adapt_event_value_in_value_out( - method_implementation.unary_unary_event) - elif method_implementation.cardinality is cardinality.Cardinality.UNARY_STREAM: - adapted_implementations[name] = _service.adapt_event_value_in_stream_out( - method_implementation.unary_stream_event) - elif method_implementation.cardinality is cardinality.Cardinality.STREAM_UNARY: - adapted_implementations[name] = _service.adapt_event_stream_in_value_out( - method_implementation.stream_unary_event) - elif method_implementation.cardinality is cardinality.Cardinality.STREAM_STREAM: - adapted_implementations[name] = _service.adapt_event_stream_in_stream_out( - method_implementation.stream_stream_event) - return adapted_implementations - - -def servicer(pool, method_implementations, multi_method_implementation): - """Creates a base_interfaces.Servicer. - - It is guaranteed that any passed interfaces.MultiMethodImplementation will - only be called to service an RPC if there is no - interfaces.MethodImplementation for the RPC method in the passed - method_implementations dictionary. - - Args: - pool: A thread pool. - method_implementations: A dictionary from RPC method name to - interfaces.MethodImplementation object to be used to service the named - RPC method. - multi_method_implementation: An interfaces.MultiMethodImplementation to be - used to service any RPCs not serviced by the - interfaces.MethodImplementations given in the method_implementations - dictionary, or None. - - Returns: - A base_interfaces.Servicer that services RPCs via the given implementations. - """ - adapted_implementations = _adapt_method_implementations( - method_implementations, pool) - return _BaseServicer(adapted_implementations, multi_method_implementation) - - -def generic_stub(front, pool): - """Creates an interfaces.GenericStub. - - Args: - front: A base_interfaces.Front. - pool: A futures.ThreadPoolExecutor. - - Returns: - An interfaces.GenericStub that performs RPCs via the given - base_interfaces.Front. - """ - return _GenericStub(front, pool) - - -def dynamic_stub(cardinalities, front, pool, prefix): - """Creates an interfaces.DynamicStub. - - Args: - cardinalities: A dict from RPC method name to cardinality.Cardinality - value identifying the cardinality of every RPC method to be supported by - the created interfaces.DynamicStub. - front: A base_interfaces.Front. - pool: A futures.ThreadPoolExecutor. - prefix: A string to prepend when mapping requested attribute name to RPC - method name during attribute access on the created - interfaces.DynamicStub. - - Returns: - An interfaces.DynamicStub that performs RPCs via the given - base_interfaces.Front. - """ - return _DynamicStub(cardinalities, front, pool) diff --git a/src/python/grpcio/grpc/framework/face/interfaces.py b/src/python/grpcio/grpc/framework/face/interfaces.py deleted file mode 100644 index e9a25c17e1952e1dce4c5432f91eae1917208a58..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/face/interfaces.py +++ /dev/null @@ -1,634 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Interfaces for the face layer of RPC Framework.""" - -import abc -import enum - -import six - -# cardinality, style, exceptions, abandonment, future, and stream are -# referenced from specification in this module. -from grpc.framework.common import cardinality # pylint: disable=unused-import -from grpc.framework.common import style # pylint: disable=unused-import -from grpc.framework.face import exceptions # pylint: disable=unused-import -from grpc.framework.foundation import abandonment # pylint: disable=unused-import -from grpc.framework.foundation import future # pylint: disable=unused-import -from grpc.framework.foundation import stream # pylint: disable=unused-import - - -@enum.unique -class Abortion(enum.Enum): - """Categories of RPC abortion.""" - CANCELLED = 'cancelled' - EXPIRED = 'expired' - NETWORK_FAILURE = 'network failure' - SERVICED_FAILURE = 'serviced failure' - SERVICER_FAILURE = 'servicer failure' - - -class CancellableIterator(six.with_metaclass(abc.ABCMeta)): - """Implements the Iterator protocol and affords a cancel method.""" - - @abc.abstractmethod - def __iter__(self): - """Returns the self object in accordance with the Iterator protocol.""" - raise NotImplementedError() - - def __next__(self): - return self.next() - - @abc.abstractmethod - def next(self): - """Returns a value or raises StopIteration per the Iterator protocol.""" - raise NotImplementedError() - - @abc.abstractmethod - def cancel(self): - """Requests cancellation of whatever computation underlies this iterator.""" - raise NotImplementedError() - - -class RpcContext(six.with_metaclass(abc.ABCMeta)): - """Provides RPC-related information and action.""" - - @abc.abstractmethod - def is_active(self): - """Describes whether the RPC is active or has terminated.""" - raise NotImplementedError() - - @abc.abstractmethod - def time_remaining(self): - """Describes the length of allowed time remaining for the RPC. - - Returns: - A nonnegative float indicating the length of allowed time in seconds - remaining for the RPC to complete before it is considered to have timed - out. - """ - raise NotImplementedError() - - @abc.abstractmethod - def add_abortion_callback(self, abortion_callback): - """Registers a callback to be called if the RPC is aborted. - - Args: - abortion_callback: A callable to be called and passed an Abortion value - in the event of RPC abortion. - """ - raise NotImplementedError() - - -class Call(six.with_metaclass(abc.ABCMeta)): - """Invocation-side representation of an RPC. - - Attributes: - context: An RpcContext affording information about the RPC. - """ - - @abc.abstractmethod - def cancel(self): - """Requests cancellation of the RPC.""" - raise NotImplementedError() - - -class UnaryUnaryMultiCallable(six.with_metaclass(abc.ABCMeta)): - """Affords invoking a unary-unary RPC in any call style.""" - - @abc.abstractmethod - def __call__(self, request, timeout): - """Synchronously invokes the underlying RPC. - - Args: - request: The request value for the RPC. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - The response value for the RPC. - - Raises: - exceptions.RpcError: Indicating that the RPC was aborted. - """ - raise NotImplementedError() - - @abc.abstractmethod - def future(self, request, timeout): - """Asynchronously invokes the underlying RPC. - - Args: - request: The request value for the RPC. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - A future.Future representing the RPC. In the event of RPC completion, the - returned Future's result value will be the response value of the RPC. - In the event of RPC abortion, the returned Future's exception value - will be an exceptions.RpcError. - """ - raise NotImplementedError() - - @abc.abstractmethod - def event(self, request, response_callback, abortion_callback, timeout): - """Asynchronously invokes the underlying RPC. - - Args: - request: The request value for the RPC. - response_callback: A callback to be called to accept the restponse value - of the RPC. - abortion_callback: A callback to be called and passed an Abortion value - in the event of RPC abortion. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - A Call object for the RPC. - """ - raise NotImplementedError() - - -class UnaryStreamMultiCallable(six.with_metaclass(abc.ABCMeta)): - """Affords invoking a unary-stream RPC in any call style.""" - - @abc.abstractmethod - def __call__(self, request, timeout): - """Synchronously invokes the underlying RPC. - - Args: - request: The request value for the RPC. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - A CancellableIterator that yields the response values of the RPC and - affords RPC cancellation. Drawing response values from the returned - CancellableIterator may raise exceptions.RpcError indicating abortion - of the RPC. - """ - raise NotImplementedError() - - @abc.abstractmethod - def event(self, request, response_consumer, abortion_callback, timeout): - """Asynchronously invokes the underlying RPC. - - Args: - request: The request value for the RPC. - response_consumer: A stream.Consumer to be called to accept the restponse - values of the RPC. - abortion_callback: A callback to be called and passed an Abortion value - in the event of RPC abortion. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - A Call object for the RPC. - """ - raise NotImplementedError() - - -class StreamUnaryMultiCallable(six.with_metaclass(abc.ABCMeta)): - """Affords invoking a stream-unary RPC in any call style.""" - - @abc.abstractmethod - def __call__(self, request_iterator, timeout): - """Synchronously invokes the underlying RPC. - - Args: - request_iterator: An iterator that yields request values for the RPC. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - The response value for the RPC. - - Raises: - exceptions.RpcError: Indicating that the RPC was aborted. - """ - raise NotImplementedError() - - @abc.abstractmethod - def future(self, request_iterator, timeout): - """Asynchronously invokes the underlying RPC. - - Args: - request_iterator: An iterator that yields request values for the RPC. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - A future.Future representing the RPC. In the event of RPC completion, the - returned Future's result value will be the response value of the RPC. - In the event of RPC abortion, the returned Future's exception value - will be an exceptions.RpcError. - """ - raise NotImplementedError() - - @abc.abstractmethod - def event(self, response_callback, abortion_callback, timeout): - """Asynchronously invokes the underlying RPC. - - Args: - request: The request value for the RPC. - response_callback: A callback to be called to accept the restponse value - of the RPC. - abortion_callback: A callback to be called and passed an Abortion value - in the event of RPC abortion. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - A pair of a Call object for the RPC and a stream.Consumer to which the - request values of the RPC should be passed. - """ - raise NotImplementedError() - - -class StreamStreamMultiCallable(six.with_metaclass(abc.ABCMeta)): - """Affords invoking a stream-stream RPC in any call style.""" - - @abc.abstractmethod - def __call__(self, request_iterator, timeout): - """Synchronously invokes the underlying RPC. - - Args: - request_iterator: An iterator that yields request values for the RPC. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - A CancellableIterator that yields the response values of the RPC and - affords RPC cancellation. Drawing response values from the returned - CancellableIterator may raise exceptions.RpcError indicating abortion - of the RPC. - """ - raise NotImplementedError() - - @abc.abstractmethod - def event(self, response_consumer, abortion_callback, timeout): - """Asynchronously invokes the underlying RPC. - -l Args: - response_consumer: A stream.Consumer to be called to accept the restponse - values of the RPC. - abortion_callback: A callback to be called and passed an Abortion value - in the event of RPC abortion. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - A pair of a Call object for the RPC and a stream.Consumer to which the - request values of the RPC should be passed. - """ - raise NotImplementedError() - - -class MethodImplementation(six.with_metaclass(abc.ABCMeta)): - """A sum type that describes an RPC method implementation. - - Attributes: - cardinality: A cardinality.Cardinality value. - style: A style.Service value. - unary_unary_inline: The implementation of the RPC method as a callable - value that takes a request value and an RpcContext object and returns a - response value. Only non-None if cardinality is - cardinality.Cardinality.UNARY_UNARY and style is style.Service.INLINE. - unary_stream_inline: The implementation of the RPC method as a callable - value that takes a request value and an RpcContext object and returns an - iterator of response values. Only non-None if cardinality is - cardinality.Cardinality.UNARY_STREAM and style is style.Service.INLINE. - stream_unary_inline: The implementation of the RPC method as a callable - value that takes an iterator of request values and an RpcContext object - and returns a response value. Only non-None if cardinality is - cardinality.Cardinality.STREAM_UNARY and style is style.Service.INLINE. - stream_stream_inline: The implementation of the RPC method as a callable - value that takes an iterator of request values and an RpcContext object - and returns an iterator of response values. Only non-None if cardinality - is cardinality.Cardinality.STREAM_STREAM and style is - style.Service.INLINE. - unary_unary_event: The implementation of the RPC method as a callable value - that takes a request value, a response callback to which to pass the - response value of the RPC, and an RpcContext. Only non-None if - cardinality is cardinality.Cardinality.UNARY_UNARY and style is - style.Service.EVENT. - unary_stream_event: The implementation of the RPC method as a callable - value that takes a request value, a stream.Consumer to which to pass the - the response values of the RPC, and an RpcContext. Only non-None if - cardinality is cardinality.Cardinality.UNARY_STREAM and style is - style.Service.EVENT. - stream_unary_event: The implementation of the RPC method as a callable - value that takes a response callback to which to pass the response value - of the RPC and an RpcContext and returns a stream.Consumer to which the - request values of the RPC should be passed. Only non-None if cardinality - is cardinality.Cardinality.STREAM_UNARY and style is style.Service.EVENT. - stream_stream_event: The implementation of the RPC method as a callable - value that takes a stream.Consumer to which to pass the response values - of the RPC and an RpcContext and returns a stream.Consumer to which the - request values of the RPC should be passed. Only non-None if cardinality - is cardinality.Cardinality.STREAM_STREAM and style is - style.Service.EVENT. - """ - - -class MultiMethodImplementation(six.with_metaclass(abc.ABCMeta)): - """A general type able to service many RPC methods.""" - - @abc.abstractmethod - def service(self, name, response_consumer, context): - """Services an RPC. - - Args: - name: The RPC method name. - response_consumer: A stream.Consumer to be called to accept the response - values of the RPC. - context: An RpcContext object. - - Returns: - A stream.Consumer with which to accept the request values of the RPC. The - consumer returned from this method may or may not be invoked to - completion: in the case of RPC abortion, RPC Framework will simply stop - passing values to this object. Implementations must not assume that this - object will be called to completion of the request stream or even called - at all. - - Raises: - abandonment.Abandoned: May or may not be raised when the RPC has been - aborted. - exceptions.NoSuchMethodError: If this MultiMethod does not recognize the - given RPC method name and is not able to service the RPC. - """ - raise NotImplementedError() - - -class GenericStub(six.with_metaclass(abc.ABCMeta)): - """Affords RPC methods to callers.""" - - @abc.abstractmethod - def blocking_value_in_value_out(self, name, request, timeout): - """Invokes a unary-request-unary-response RPC method. - - This method blocks until either returning the response value of the RPC - (in the event of RPC completion) or raising an exception (in the event of - RPC abortion). - - Args: - name: The RPC method name. - request: The request value for the RPC. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - The response value for the RPC. - - Raises: - exceptions.RpcError: Indicating that the RPC was aborted. - """ - raise NotImplementedError() - - @abc.abstractmethod - def future_value_in_value_out(self, name, request, timeout): - """Invokes a unary-request-unary-response RPC method. - - Args: - name: The RPC method name. - request: The request value for the RPC. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - A future.Future representing the RPC. In the event of RPC completion, the - returned Future will return an outcome indicating that the RPC returned - the response value of the RPC. In the event of RPC abortion, the - returned Future will return an outcome indicating that the RPC raised - an exceptions.RpcError. - """ - raise NotImplementedError() - - @abc.abstractmethod - def inline_value_in_stream_out(self, name, request, timeout): - """Invokes a unary-request-stream-response RPC method. - - Args: - name: The RPC method name. - request: The request value for the RPC. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - A CancellableIterator that yields the response values of the RPC and - affords RPC cancellation. Drawing response values from the returned - CancellableIterator may raise exceptions.RpcError indicating abortion of - the RPC. - """ - raise NotImplementedError() - - @abc.abstractmethod - def blocking_stream_in_value_out(self, name, request_iterator, timeout): - """Invokes a stream-request-unary-response RPC method. - - This method blocks until either returning the response value of the RPC - (in the event of RPC completion) or raising an exception (in the event of - RPC abortion). - - Args: - name: The RPC method name. - request_iterator: An iterator that yields the request values of the RPC. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - The response value for the RPC. - - Raises: - exceptions.RpcError: Indicating that the RPC was aborted. - """ - raise NotImplementedError() - - @abc.abstractmethod - def future_stream_in_value_out(self, name, request_iterator, timeout): - """Invokes a stream-request-unary-response RPC method. - - Args: - name: The RPC method name. - request_iterator: An iterator that yields the request values of the RPC. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - A future.Future representing the RPC. In the event of RPC completion, the - returned Future will return an outcome indicating that the RPC returned - the response value of the RPC. In the event of RPC abortion, the - returned Future will return an outcome indicating that the RPC raised - an exceptions.RpcError. - """ - raise NotImplementedError() - - @abc.abstractmethod - def inline_stream_in_stream_out(self, name, request_iterator, timeout): - """Invokes a stream-request-stream-response RPC method. - - Args: - name: The RPC method name. - request_iterator: An iterator that yields the request values of the RPC. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - A CancellableIterator that yields the response values of the RPC and - affords RPC cancellation. Drawing response values from the returned - CancellableIterator may raise exceptions.RpcError indicating abortion of - the RPC. - """ - raise NotImplementedError() - - @abc.abstractmethod - def event_value_in_value_out( - self, name, request, response_callback, abortion_callback, timeout): - """Event-driven invocation of a unary-request-unary-response RPC method. - - Args: - name: The RPC method name. - request: The request value for the RPC. - response_callback: A callback to be called to accept the response value - of the RPC. - abortion_callback: A callback to be called and passed an Abortion value - in the event of RPC abortion. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - A Call object for the RPC. - """ - raise NotImplementedError() - - @abc.abstractmethod - def event_value_in_stream_out( - self, name, request, response_consumer, abortion_callback, timeout): - """Event-driven invocation of a unary-request-stream-response RPC method. - - Args: - name: The RPC method name. - request: The request value for the RPC. - response_consumer: A stream.Consumer to be called to accept the response - values of the RPC. - abortion_callback: A callback to be called and passed an Abortion value - in the event of RPC abortion. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - A Call object for the RPC. - """ - raise NotImplementedError() - - @abc.abstractmethod - def event_stream_in_value_out( - self, name, response_callback, abortion_callback, timeout): - """Event-driven invocation of a unary-request-unary-response RPC method. - - Args: - name: The RPC method name. - response_callback: A callback to be called to accept the response value - of the RPC. - abortion_callback: A callback to be called and passed an Abortion value - in the event of RPC abortion. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - A pair of a Call object for the RPC and a stream.Consumer to which the - request values of the RPC should be passed. - """ - raise NotImplementedError() - - @abc.abstractmethod - def event_stream_in_stream_out( - self, name, response_consumer, abortion_callback, timeout): - """Event-driven invocation of a unary-request-stream-response RPC method. - - Args: - name: The RPC method name. - response_consumer: A stream.Consumer to be called to accept the response - values of the RPC. - abortion_callback: A callback to be called and passed an Abortion value - in the event of RPC abortion. - timeout: A duration of time in seconds to allow for the RPC. - - Returns: - A pair of a Call object for the RPC and a stream.Consumer to which the - request values of the RPC should be passed. - """ - raise NotImplementedError() - - @abc.abstractmethod - def unary_unary_multi_callable(self, name): - """Creates a UnaryUnaryMultiCallable for a unary-unary RPC method. - - Args: - name: The RPC method name. - - Returns: - A UnaryUnaryMultiCallable value for the named unary-unary RPC method. - """ - raise NotImplementedError() - - @abc.abstractmethod - def unary_stream_multi_callable(self, name): - """Creates a UnaryStreamMultiCallable for a unary-stream RPC method. - - Args: - name: The RPC method name. - - Returns: - A UnaryStreamMultiCallable value for the name unary-stream RPC method. - """ - raise NotImplementedError() - - @abc.abstractmethod - def stream_unary_multi_callable(self, name): - """Creates a StreamUnaryMultiCallable for a stream-unary RPC method. - - Args: - name: The RPC method name. - - Returns: - A StreamUnaryMultiCallable value for the named stream-unary RPC method. - """ - raise NotImplementedError() - - @abc.abstractmethod - def stream_stream_multi_callable(self, name): - """Creates a StreamStreamMultiCallable for a stream-stream RPC method. - - Args: - name: The RPC method name. - - Returns: - A StreamStreamMultiCallable value for the named stream-stream RPC method. - """ - raise NotImplementedError() - - -class DynamicStub(six.with_metaclass(abc.ABCMeta)): - """A stub with RPC-method-bound multi-callable attributes. - - Instances of this type responsd to attribute access as follows: if the - requested attribute is the name of a unary-unary RPC method, the value of the - attribute will be a UnaryUnaryMultiCallable with which to invoke the RPC - method; if the requested attribute is the name of a unary-stream RPC method, - the value of the attribute will be a UnaryStreamMultiCallable with which to - invoke the RPC method; if the requested attribute is the name of a - stream-unary RPC method, the value of the attribute will be a - StreamUnaryMultiCallable with which to invoke the RPC method; and if the - requested attribute is the name of a stream-stream RPC method, the value of - the attribute will be a StreamStreamMultiCallable with which to invoke the - RPC method. - """ diff --git a/src/python/grpcio/grpc/framework/face/utilities.py b/src/python/grpcio/grpc/framework/face/utilities.py deleted file mode 100644 index a63fe8c60dfbb9d365625168a1b5a4075881edf2..0000000000000000000000000000000000000000 --- a/src/python/grpcio/grpc/framework/face/utilities.py +++ /dev/null @@ -1,177 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Utilities for RPC framework's face layer.""" - -import collections - -from grpc.framework.common import cardinality -from grpc.framework.common import style -from grpc.framework.face import interfaces -from grpc.framework.foundation import stream - - -class _MethodImplementation( - interfaces.MethodImplementation, - collections.namedtuple( - '_MethodImplementation', - ['cardinality', 'style', 'unary_unary_inline', 'unary_stream_inline', - 'stream_unary_inline', 'stream_stream_inline', 'unary_unary_event', - 'unary_stream_event', 'stream_unary_event', 'stream_stream_event',])): - pass - - -def unary_unary_inline(behavior): - """Creates an interfaces.MethodImplementation for the given behavior. - - Args: - behavior: The implementation of a unary-unary RPC method as a callable value - that takes a request value and an interfaces.RpcContext object and - returns a response value. - - Returns: - An interfaces.MethodImplementation derived from the given behavior. - """ - return _MethodImplementation( - cardinality.Cardinality.UNARY_UNARY, style.Service.INLINE, behavior, - None, None, None, None, None, None, None) - - -def unary_stream_inline(behavior): - """Creates an interfaces.MethodImplementation for the given behavior. - - Args: - behavior: The implementation of a unary-stream RPC method as a callable - value that takes a request value and an interfaces.RpcContext object and - returns an iterator of response values. - - Returns: - An interfaces.MethodImplementation derived from the given behavior. - """ - return _MethodImplementation( - cardinality.Cardinality.UNARY_STREAM, style.Service.INLINE, None, - behavior, None, None, None, None, None, None) - - -def stream_unary_inline(behavior): - """Creates an interfaces.MethodImplementation for the given behavior. - - Args: - behavior: The implementation of a stream-unary RPC method as a callable - value that takes an iterator of request values and an - interfaces.RpcContext object and returns a response value. - - Returns: - An interfaces.MethodImplementation derived from the given behavior. - """ - return _MethodImplementation( - cardinality.Cardinality.STREAM_UNARY, style.Service.INLINE, None, None, - behavior, None, None, None, None, None) - - -def stream_stream_inline(behavior): - """Creates an interfaces.MethodImplementation for the given behavior. - - Args: - behavior: The implementation of a stream-stream RPC method as a callable - value that takes an iterator of request values and an - interfaces.RpcContext object and returns an iterator of response values. - - Returns: - An interfaces.MethodImplementation derived from the given behavior. - """ - return _MethodImplementation( - cardinality.Cardinality.STREAM_STREAM, style.Service.INLINE, None, None, - None, behavior, None, None, None, None) - - -def unary_unary_event(behavior): - """Creates an interfaces.MethodImplementation for the given behavior. - - Args: - behavior: The implementation of a unary-unary RPC method as a callable - value that takes a request value, a response callback to which to pass - the response value of the RPC, and an interfaces.RpcContext. - - Returns: - An interfaces.MethodImplementation derived from the given behavior. - """ - return _MethodImplementation( - cardinality.Cardinality.UNARY_UNARY, style.Service.EVENT, None, None, - None, None, behavior, None, None, None) - - -def unary_stream_event(behavior): - """Creates an interfaces.MethodImplementation for the given behavior. - - Args: - behavior: The implementation of a unary-stream RPC method as a callable - value that takes a request value, a stream.Consumer to which to pass the - the response values of the RPC, and an interfaces.RpcContext. - - Returns: - An interfaces.MethodImplementation derived from the given behavior. - """ - return _MethodImplementation( - cardinality.Cardinality.UNARY_STREAM, style.Service.EVENT, None, None, - None, None, None, behavior, None, None) - - -def stream_unary_event(behavior): - """Creates an interfaces.MethodImplementation for the given behavior. - - Args: - behavior: The implementation of a stream-unary RPC method as a callable - value that takes a response callback to which to pass the response value - of the RPC and an interfaces.RpcContext and returns a stream.Consumer to - which the request values of the RPC should be passed. - - Returns: - An interfaces.MethodImplementation derived from the given behavior. - """ - return _MethodImplementation( - cardinality.Cardinality.STREAM_UNARY, style.Service.EVENT, None, None, - None, None, None, None, behavior, None) - - -def stream_stream_event(behavior): - """Creates an interfaces.MethodImplementation for the given behavior. - - Args: - behavior: The implementation of a stream-stream RPC method as a callable - value that takes a stream.Consumer to which to pass the response values - of the RPC and an interfaces.RpcContext and returns a stream.Consumer to - which the request values of the RPC should be passed. - - Returns: - An interfaces.MethodImplementation derived from the given behavior. - """ - return _MethodImplementation( - cardinality.Cardinality.STREAM_STREAM, style.Service.EVENT, None, None, - None, None, None, None, None, behavior) diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py index dc1ff10c853666b2452de62e9e666f9d6a8ea912..4f1a6e674030bfb257612c35b38f567d03e83ba7 100644 --- a/src/python/grpcio/grpc_core_dependencies.py +++ b/src/python/grpcio/grpc_core_dependencies.py @@ -57,6 +57,7 @@ CORE_SOURCE_FILES = [ 'src/core/lib/support/stack_lockfree.c', 'src/core/lib/support/string.c', 'src/core/lib/support/string_posix.c', + 'src/core/lib/support/string_util_win32.c', 'src/core/lib/support/string_win32.c', 'src/core/lib/support/subprocess_posix.c', 'src/core/lib/support/subprocess_windows.c', @@ -71,6 +72,7 @@ CORE_SOURCE_FILES = [ 'src/core/lib/support/time_precise.c', 'src/core/lib/support/time_win32.c', 'src/core/lib/support/tls_pthread.c', + 'src/core/lib/support/tmpfile_msys.c', 'src/core/lib/support/tmpfile_posix.c', 'src/core/lib/support/tmpfile_win32.c', 'src/core/lib/support/wrap_memcpy.c', diff --git a/src/python/grpcio/tests/interop/_insecure_interop_test.py b/src/python/grpcio/tests/interop/_insecure_interop_test.py index 00b49aba374970f65af47bc97747fea87f40d9f9..91519b6fba20a758b34a976e50a5a9fc0edb07b4 100644 --- a/src/python/grpcio/tests/interop/_insecure_interop_test.py +++ b/src/python/grpcio/tests/interop/_insecure_interop_test.py @@ -32,11 +32,11 @@ import unittest from grpc.beta import implementations +from src.proto.grpc.testing import test_pb2 from tests.interop import _interop_test_case from tests.interop import methods from tests.interop import server -from tests.interop import test_pb2 class InsecureInteropTest( diff --git a/src/python/grpcio/tests/interop/_secure_interop_test.py b/src/python/grpcio/tests/interop/_secure_interop_test.py index 86d7e4335120bc47798e7b7f421fc62e08d2ff32..c61547b97780c6ba28ba480a475020653fd1d3e8 100644 --- a/src/python/grpcio/tests/interop/_secure_interop_test.py +++ b/src/python/grpcio/tests/interop/_secure_interop_test.py @@ -32,11 +32,11 @@ import unittest from grpc.beta import implementations +from src.proto.grpc.testing import test_pb2 from tests.interop import _interop_test_case from tests.interop import methods from tests.interop import resources -from tests.interop import test_pb2 from tests.unit.beta import test_utilities diff --git a/src/python/grpcio/tests/interop/client.py b/src/python/grpcio/tests/interop/client.py index 1d10d7e45de50e7e78013b906f917b4d5b24c0d7..db29eb4aa761a2a4f10ad0eb0d304fa0c9b220a1 100644 --- a/src/python/grpcio/tests/interop/client.py +++ b/src/python/grpcio/tests/interop/client.py @@ -33,10 +33,10 @@ import argparse from oauth2client import client as oauth2client_client from grpc.beta import implementations +from src.proto.grpc.testing import test_pb2 from tests.interop import methods from tests.interop import resources -from tests.interop import test_pb2 from tests.unit.beta import test_utilities _ONE_DAY_IN_SECONDS = 60 * 60 * 24 diff --git a/src/python/grpcio/tests/interop/messages.proto b/src/python/grpcio/tests/interop/messages.proto deleted file mode 100644 index 193b6c4171288c6968d29625f22d61229ceba3aa..0000000000000000000000000000000000000000 --- a/src/python/grpcio/tests/interop/messages.proto +++ /dev/null @@ -1,167 +0,0 @@ - -// Copyright 2015, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// Message definitions to be used by integration test service definitions. - -syntax = "proto3"; - -package grpc.testing; - -// The type of payload that should be returned. -enum PayloadType { - // Compressable text format. - COMPRESSABLE = 0; - - // Uncompressable binary format. - UNCOMPRESSABLE = 1; - - // Randomly chosen from all other formats defined in this enum. - RANDOM = 2; -} - -// Compression algorithms -enum CompressionType { - // No compression - NONE = 0; - GZIP = 1; - DEFLATE = 2; -} - -// A block of data, to simply increase gRPC message size. -message Payload { - // The type of data in body. - PayloadType type = 1; - // Primary contents of payload. - bytes body = 2; -} - -// A protobuf representation for grpc status. This is used by test -// clients to specify a status that the server should attempt to return. -message EchoStatus { - int32 code = 1; - string message = 2; -} - -// Unary request. -message SimpleRequest { - // Desired payload type in the response from the server. - // If response_type is RANDOM, server randomly chooses one from other formats. - PayloadType response_type = 1; - - // Desired payload size in the response from the server. - // If response_type is COMPRESSABLE, this denotes the size before compression. - int32 response_size = 2; - - // Optional input payload sent along with the request. - Payload payload = 3; - - // Whether SimpleResponse should include username. - bool fill_username = 4; - - // Whether SimpleResponse should include OAuth scope. - bool fill_oauth_scope = 5; - - // Compression algorithm to be used by the server for the response (stream) - CompressionType response_compression = 6; - - // Whether server should return a given status - EchoStatus response_status = 7; -} - -// Unary response, as configured by the request. -message SimpleResponse { - // Payload to increase message size. - Payload payload = 1; - // The user the request came from, for verifying authentication was - // successful when the client expected it. - string username = 2; - // OAuth scope. - string oauth_scope = 3; -} - -// Client-streaming request. -message StreamingInputCallRequest { - // Optional input payload sent along with the request. - Payload payload = 1; - - // Not expecting any payload from the response. -} - -// Client-streaming response. -message StreamingInputCallResponse { - // Aggregated size of payloads received from the client. - int32 aggregated_payload_size = 1; -} - -// Configuration for a particular response. -message ResponseParameters { - // Desired payload sizes in responses from the server. - // If response_type is COMPRESSABLE, this denotes the size before compression. - int32 size = 1; - - // Desired interval between consecutive responses in the response stream in - // microseconds. - int32 interval_us = 2; -} - -// Server-streaming request. -message StreamingOutputCallRequest { - // Desired payload type in the response from the server. - // If response_type is RANDOM, the payload from each response in the stream - // might be of different types. This is to simulate a mixed type of payload - // stream. - PayloadType response_type = 1; - - // Configuration for each expected response message. - repeated ResponseParameters response_parameters = 2; - - // Optional input payload sent along with the request. - Payload payload = 3; - - // Compression algorithm to be used by the server for the response (stream) - CompressionType response_compression = 6; - - // Whether server should return a given status - EchoStatus response_status = 7; -} - -// Server-streaming response, as configured by the request and parameters. -message StreamingOutputCallResponse { - // Payload to increase response size. - Payload payload = 1; -} - -// For reconnect interop test only. -// Server tells client whether its reconnects are following the spec and the -// reconnect backoffs it saw. -message ReconnectInfo { - bool passed = 1; - repeated int32 backoff_ms = 2; -} diff --git a/src/python/grpcio/tests/interop/methods.py b/src/python/grpcio/tests/interop/methods.py index 03810338ed2f19aa84f0da8a5f0058fee7258eca..67862ed7d371f80e52ce892d91b39014874f42a1 100644 --- a/src/python/grpcio/tests/interop/methods.py +++ b/src/python/grpcio/tests/interop/methods.py @@ -42,9 +42,9 @@ from oauth2client import client as oauth2client_client from grpc.framework.common import cardinality from grpc.framework.interfaces.face import face -from tests.interop import empty_pb2 -from tests.interop import messages_pb2 -from tests.interop import test_pb2 +from src.proto.grpc.testing import empty_pb2 +from src.proto.grpc.testing import messages_pb2 +from src.proto.grpc.testing import test_pb2 _TIMEOUT = 7 diff --git a/src/python/grpcio/tests/interop/server.py b/src/python/grpcio/tests/interop/server.py index 6dd55f008c3a680f95d4bf3ac33f7918e88da21e..ab2c3c708f42cc1ac20e5c956d44dee5c63c4620 100644 --- a/src/python/grpcio/tests/interop/server.py +++ b/src/python/grpcio/tests/interop/server.py @@ -34,10 +34,10 @@ import logging import time from grpc.beta import implementations +from src.proto.grpc.testing import test_pb2 from tests.interop import methods from tests.interop import resources -from tests.interop import test_pb2 _ONE_DAY_IN_SECONDS = 60 * 60 * 24 diff --git a/src/python/grpcio/tests/interop/test.proto b/src/python/grpcio/tests/interop/test.proto deleted file mode 100644 index 9feecc02785e3e1da5ca70cb049ffa9b14c503f9..0000000000000000000000000000000000000000 --- a/src/python/grpcio/tests/interop/test.proto +++ /dev/null @@ -1,86 +0,0 @@ - -// Copyright 2015, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// An integration test service that covers all the method signature permutations -// of unary/streaming requests/responses. - -syntax = "proto3"; - -import "tests/interop/empty.proto"; -import "tests/interop/messages.proto"; - -package grpc.testing; - -// A simple service to test the various types of RPCs and experiment with -// performance with various types of payload. -service TestService { - // One empty request followed by one empty response. - rpc EmptyCall(grpc.testing.Empty) returns (grpc.testing.Empty); - - // One request followed by one response. - rpc UnaryCall(SimpleRequest) returns (SimpleResponse); - - // One request followed by a sequence of responses (streamed download). - // The server returns the payload with client desired type and sizes. - rpc StreamingOutputCall(StreamingOutputCallRequest) - returns (stream StreamingOutputCallResponse); - - // A sequence of requests followed by one response (streamed upload). - // The server returns the aggregated size of client payload as the result. - rpc StreamingInputCall(stream StreamingInputCallRequest) - returns (StreamingInputCallResponse); - - // A sequence of requests with each request served by the server immediately. - // As one request could lead to multiple responses, this interface - // demonstrates the idea of full duplexing. - rpc FullDuplexCall(stream StreamingOutputCallRequest) - returns (stream StreamingOutputCallResponse); - - // A sequence of requests followed by a sequence of responses. - // The server buffers all the client requests and then serves them in order. A - // stream of responses are returned to the client when the server starts with - // first request. - rpc HalfDuplexCall(stream StreamingOutputCallRequest) - returns (stream StreamingOutputCallResponse); -} - - -// A simple service NOT implemented at servers so clients can test for -// that case. -service UnimplementedService { - // A call that no server should implement - rpc UnimplementedCall(grpc.testing.Empty) returns(grpc.testing.Empty); -} - -// A service used to control reconnect server. -service ReconnectService { - rpc Start(grpc.testing.Empty) returns (grpc.testing.Empty); - rpc Stop(grpc.testing.Empty) returns (grpc.testing.ReconnectInfo); -} 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 6fba3d4271b2b4acb9377cc7b996de6aa2676264..3dc3042e38bff39f3e5258f9ef4226c021f6dc5a 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 @@ -45,6 +45,7 @@ import unittest from six import moves from grpc.beta import implementations +from grpc.beta import interfaces from grpc.framework.foundation import future from grpc.framework.interfaces.face import face from tests.unit.framework.common import test_constants @@ -178,6 +179,36 @@ def _CreateService(test_pb2): server.stop(0) +@contextlib.contextmanager +def _CreateIncompleteService(test_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. + + 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)): + pass + + servicer = Servicer() + server = getattr(test_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 + server.stop(0) + + def _streaming_input_request_iterator(test_pb2): for _ in range(3): request = test_pb2.StreamingInputCallRequest() @@ -264,6 +295,16 @@ class PythonPluginTest(unittest.TestCase): with _CreateService(test_pb2) as (servicer, stub): request = test_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) + try: + response = 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) diff --git a/src/python/grpcio/tests/unit/framework/face/__init__.py b/src/python/grpcio/tests/qps/__init__.py similarity index 97% rename from src/python/grpcio/tests/unit/framework/face/__init__.py rename to src/python/grpcio/tests/qps/__init__.py index 708651910607ffb686d781713f6893567821b9fd..100a624dc9c1bbd89708c58e18cf2666a73f4cc7 100644 --- a/src/python/grpcio/tests/unit/framework/face/__init__.py +++ b/src/python/grpcio/tests/qps/__init__.py @@ -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 @@ -26,5 +26,3 @@ # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - diff --git a/src/python/grpcio/tests/qps/benchmark_client.py b/src/python/grpcio/tests/qps/benchmark_client.py new file mode 100644 index 0000000000000000000000000000000000000000..eed0b0c6dac616137c1617965d657b8fee054751 --- /dev/null +++ b/src/python/grpcio/tests/qps/benchmark_client.py @@ -0,0 +1,186 @@ +# 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. + +"""Defines test client behaviors (UNARY/STREAMING) (SYNC/ASYNC).""" + +import abc +import time +try: + import Queue as queue # Python 2.x +except ImportError: + import queue # Python 3 + +from concurrent import futures + +from grpc.beta import implementations +from src.proto.grpc.testing import messages_pb2 +from src.proto.grpc.testing import services_pb2 +from tests.unit import resources +from tests.unit.beta import test_utilities + +_TIMEOUT = 60 * 60 * 24 + + +class BenchmarkClient: + """Benchmark client interface that exposes a non-blocking send_request().""" + + __metaclass__ = abc.ABCMeta + + def __init__(self, server, config, hist): + # Create the stub + host, port = server.split(':') + port = int(port) + if config.HasField('security_params'): + creds = implementations.ssl_channel_credentials( + resources.test_root_certificates()) + channel = test_utilities.not_really_secure_channel( + host, port, creds, config.security_params.server_host_override) + else: + channel = implementations.insecure_channel(host, port) + + if config.payload_config.WhichOneof('payload') == 'simple_params': + self._generic = False + self._stub = services_pb2.beta_create_BenchmarkService_stub(channel) + payload = messages_pb2.Payload( + body='\0' * config.payload_config.simple_params.req_size) + self._request = messages_pb2.SimpleRequest( + payload=payload, + response_size=config.payload_config.simple_params.resp_size) + else: + self._generic = True + self._stub = implementations.generic_stub(channel) + self._request = '\0' * config.payload_config.bytebuf_params.req_size + + self._hist = hist + self._response_callbacks = [] + + def add_response_callback(self, callback): + self._response_callbacks.append(callback) + + @abc.abstractmethod + def send_request(self): + """Non-blocking wrapper for a client's request operation.""" + raise NotImplementedError() + + def start(self): + pass + + def stop(self): + pass + + def _handle_response(self, query_time): + self._hist.add(query_time * 1e9) # Report times in nanoseconds + for callback in self._response_callbacks: + callback(query_time) + + +class UnarySyncBenchmarkClient(BenchmarkClient): + + def __init__(self, server, config, hist): + super(UnarySyncBenchmarkClient, self).__init__(server, config, hist) + self._pool = futures.ThreadPoolExecutor( + max_workers=config.outstanding_rpcs_per_channel) + + def send_request(self): + # Send requests in seperate threads to support multiple outstanding rpcs + # (See src/proto/grpc/testing/control.proto) + self._pool.submit(self._dispatch_request) + + def stop(self): + self._pool.shutdown(wait=True) + self._stub = None + + def _dispatch_request(self): + start_time = time.time() + self._stub.UnaryCall(self._request, _TIMEOUT) + end_time = time.time() + self._handle_response(end_time - start_time) + + +class UnaryAsyncBenchmarkClient(BenchmarkClient): + + def send_request(self): + # Use the Future callback api to support multiple outstanding rpcs + start_time = time.time() + response_future = self._stub.UnaryCall.future(self._request, _TIMEOUT) + response_future.add_done_callback( + lambda resp: self._response_received(start_time, resp)) + + def _response_received(self, start_time, resp): + resp.result() + end_time = time.time() + self._handle_response(end_time - start_time) + + def stop(self): + self._stub = None + + +class StreamingAsyncBenchmarkClient(BenchmarkClient): + + def __init__(self, server, config, hist): + super(StreamingAsyncBenchmarkClient, self).__init__(server, config, hist) + self._is_streaming = False + self._pool = futures.ThreadPoolExecutor(max_workers=1) + # Use a thread-safe queue to put requests on the stream + self._request_queue = queue.Queue() + self._send_time_queue = queue.Queue() + + def send_request(self): + self._send_time_queue.put(time.time()) + self._request_queue.put(self._request) + + def start(self): + self._is_streaming = True + self._pool.submit(self._request_stream) + + def stop(self): + self._is_streaming = False + self._pool.shutdown(wait=True) + self._stub = None + + def _request_stream(self): + self._is_streaming = True + if self._generic: + response_stream = self._stub.inline_stream_stream( + 'grpc.testing.BenchmarkService', 'StreamingCall', + self._request_generator(), _TIMEOUT) + else: + response_stream = self._stub.StreamingCall(self._request_generator(), + _TIMEOUT) + for _ in response_stream: + end_time = time.time() + self._handle_response(end_time - self._send_time_queue.get_nowait()) + + def _request_generator(self): + while self._is_streaming: + try: + request = self._request_queue.get(block=True, timeout=1.0) + yield request + except queue.Empty: + pass diff --git a/src/python/grpcio/tests/qps/benchmark_server.py b/src/python/grpcio/tests/qps/benchmark_server.py new file mode 100644 index 0000000000000000000000000000000000000000..8cbf480d58bb8798cfd0ed740414f44e66fdd041 --- /dev/null +++ b/src/python/grpcio/tests/qps/benchmark_server.py @@ -0,0 +1,58 @@ +# 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. + +from src.proto.grpc.testing import messages_pb2 +from src.proto.grpc.testing import services_pb2 + + +class BenchmarkServer(services_pb2.BetaBenchmarkServiceServicer): + """Synchronous Server implementation for the Benchmark service.""" + + def UnaryCall(self, request, context): + payload = messages_pb2.Payload(body='\0' * request.response_size) + return messages_pb2.SimpleResponse(payload=payload) + + def StreamingCall(self, request_iterator, context): + for request in request_iterator: + payload = messages_pb2.Payload(body='\0' * request.response_size) + yield messages_pb2.SimpleResponse(payload=payload) + + +class GenericBenchmarkServer(services_pb2.BetaBenchmarkServiceServicer): + """Generic Server implementation for the Benchmark service.""" + + def __init__(self, resp_size): + self._response = '\0' * resp_size + + def UnaryCall(self, request, context): + return self._response + + def StreamingCall(self, request_iterator, context): + for request in request_iterator: + yield self._response diff --git a/src/python/grpcio/tests/qps/client_runner.py b/src/python/grpcio/tests/qps/client_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..a36c30ccc0a8a5862b42e5ef3238407955c8cdde --- /dev/null +++ b/src/python/grpcio/tests/qps/client_runner.py @@ -0,0 +1,104 @@ +# 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. + +"""Defines behavior for WHEN clients send requests. + +Each client exposes a non-blocking send_request() method that the +ClientRunner invokes either periodically or in response to some event. +""" + +import abc +import thread +import time + + +class ClientRunner: + """Abstract interface for sending requests from clients.""" + + __metaclass__ = abc.ABCMeta + + def __init__(self, client): + self._client = client + + @abc.abstractmethod + def start(self): + raise NotImplementedError() + + @abc.abstractmethod + def stop(self): + raise NotImplementedError() + + +class OpenLoopClientRunner(ClientRunner): + + def __init__(self, client, interval_generator): + super(OpenLoopClientRunner, self).__init__(client) + self._is_running = False + self._interval_generator = interval_generator + + def start(self): + self._is_running = True + self._client.start() + thread.start_new_thread(self._dispatch_requests, ()) + + def stop(self): + self._is_running = False + self._client.stop() + self._client = None + + def _dispatch_requests(self): + while self._is_running: + self._client.send_request() + time.sleep(next(self._interval_generator)) + + +class ClosedLoopClientRunner(ClientRunner): + + def __init__(self, client, request_count): + super(ClosedLoopClientRunner, self).__init__(client) + self._is_running = False + self._request_count = request_count + # Send a new request on each response for closed loop + self._client.add_response_callback(self._send_request) + + def start(self): + self._is_running = True + for _ in xrange(self._request_count): + self._client.send_request() + self._client.start() + + def stop(self): + self._is_running = False + self._client.stop() + self._client = None + + def _send_request(self, response_time): + if self._is_running: + self._client.send_request() + diff --git a/src/python/grpcio/grpc/framework/base/_cancellation.py b/src/python/grpcio/tests/qps/histogram.py similarity index 50% rename from src/python/grpcio/grpc/framework/base/_cancellation.py rename to src/python/grpcio/tests/qps/histogram.py index ffbc90668fb843d92063b85d12949e9c8779dec2..9a7b5eb2ba622059245b26aeee54f56eced21630 100644 --- a/src/python/grpcio/grpc/framework/base/_cancellation.py +++ b/src/python/grpcio/tests/qps/histogram.py @@ -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,38 +27,59 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -"""State and behavior for operation cancellation.""" +import math +import threading -from grpc.framework.base import _interfaces -from grpc.framework.base import interfaces +from src.proto.grpc.testing import stats_pb2 -class CancellationManager(_interfaces.CancellationManager): - """An implementation of _interfaces.CancellationManager.""" +class Histogram(object): + """Histogram class used for recording performance testing data. - def __init__( - self, lock, termination_manager, transmission_manager, ingestion_manager, - expiration_manager): - """Constructor. + This class is thread safe. + """ - Args: - lock: The operation-wide lock. - termination_manager: The _interfaces.TerminationManager for the operation. - transmission_manager: The _interfaces.TransmissionManager for the - operation. - ingestion_manager: The _interfaces.IngestionManager for the operation. - expiration_manager: The _interfaces.ExpirationManager for the operation. - """ - self._lock = lock - self._termination_manager = termination_manager - self._transmission_manager = transmission_manager - self._ingestion_manager = ingestion_manager - self._expiration_manager = expiration_manager + def __init__(self, resolution, max_possible): + self._lock = threading.Lock() + self._resolution = resolution + self._max_possible = max_possible + self._sum = 0 + self._sum_of_squares = 0 + self.multiplier = 1.0 + self._resolution + self._count = 0 + self._min = self._max_possible + self._max = 0 + self._buckets = [0] * (self._bucket_for(self._max_possible) + 1) - def cancel(self): - """See _interfaces.CancellationManager.cancel for specification.""" + def reset(self): with self._lock: - self._termination_manager.abort(interfaces.Outcome.CANCELLED) - self._transmission_manager.abort(interfaces.Outcome.CANCELLED) - self._ingestion_manager.abort() - self._expiration_manager.abort() + self._sum = 0 + self._sum_of_squares = 0 + self._count = 0 + self._min = self._max_possible + self._max = 0 + self._buckets = [0] * (self._bucket_for(self._max_possible) + 1) + + def add(self, val): + with self._lock: + self._sum += val + self._sum_of_squares += val * val + self._count += 1 + self._min = min(self._min, val) + self._max = max(self._max, val) + self._buckets[self._bucket_for(val)] += 1 + + def get_data(self): + with self._lock: + data = stats_pb2.HistogramData() + data.bucket.extend(self._buckets) + data.min_seen = self._min + data.max_seen = self._max + data.sum = self._sum + data.sum_of_squares = self._sum_of_squares + data.count = self._count + return data + + def _bucket_for(self, val): + val = min(val, self._max_possible) + return int(math.log(val, self.multiplier)) diff --git a/src/python/grpcio/tests/qps/qps_worker.py b/src/python/grpcio/tests/qps/qps_worker.py new file mode 100644 index 0000000000000000000000000000000000000000..3dda718638e211b0499d6c207b5b4ddb8d55cc0c --- /dev/null +++ b/src/python/grpcio/tests/qps/qps_worker.py @@ -0,0 +1,60 @@ +# 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. + +"""The entry point for the qps worker.""" + +import argparse +import time + +from src.proto.grpc.testing import services_pb2 + +from tests.qps import worker_server + + +def run_worker_server(port): + servicer = worker_server.WorkerServer() + server = services_pb2.beta_create_WorkerService_server(servicer) + server.add_insecure_port('[::]:{}'.format(port)) + server.start() + servicer.wait_for_quit() + # Drain outstanding requests for clean exit + time.sleep(2) + server.stop(0) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description='gRPC Python performance testing worker') + parser.add_argument('--driver_port', + type=int, + dest='port', + help='The port the worker should listen on') + args = parser.parse_args() + + run_worker_server(args.port) diff --git a/src/python/grpcio/tests/qps/worker_server.py b/src/python/grpcio/tests/qps/worker_server.py new file mode 100644 index 0000000000000000000000000000000000000000..0b3acc14e7de785b7ee7ca70752f56e57a672a64 --- /dev/null +++ b/src/python/grpcio/tests/qps/worker_server.py @@ -0,0 +1,184 @@ +# Copyright 2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import multiprocessing +import random +import threading +import time + +from grpc.beta import implementations +from grpc.framework.interfaces.face import utilities +from src.proto.grpc.testing import control_pb2 +from src.proto.grpc.testing import services_pb2 +from src.proto.grpc.testing import stats_pb2 + +from tests.qps import benchmark_client +from tests.qps import benchmark_server +from tests.qps import client_runner +from tests.qps import histogram +from tests.unit import resources + + +class WorkerServer(services_pb2.BetaWorkerServiceServicer): + """Python Worker Server implementation.""" + + def __init__(self): + self._quit_event = threading.Event() + + def RunServer(self, request_iterator, context): + config = next(request_iterator).setup + server, port = self._create_server(config) + cores = multiprocessing.cpu_count() + server.start() + start_time = time.time() + yield self._get_server_status(start_time, start_time, port, cores) + + for request in request_iterator: + end_time = time.time() + status = self._get_server_status(start_time, end_time, port, cores) + if request.mark.reset: + start_time = end_time + yield status + server.stop(0) + + def _get_server_status(self, start_time, end_time, port, cores): + end_time = time.time() + elapsed_time = end_time - start_time + stats = stats_pb2.ServerStats(time_elapsed=elapsed_time, + time_user=elapsed_time, + time_system=elapsed_time) + return control_pb2.ServerStatus(stats=stats, port=port, cores=cores) + + def _create_server(self, config): + if config.server_type == control_pb2.SYNC_SERVER: + servicer = benchmark_server.BenchmarkServer() + server = services_pb2.beta_create_BenchmarkService_server(servicer) + elif config.server_type == control_pb2.ASYNC_GENERIC_SERVER: + resp_size = config.payload_config.bytebuf_params.resp_size + servicer = benchmark_server.GenericBenchmarkServer(resp_size) + method_implementations = { + ('grpc.testing.BenchmarkService', 'StreamingCall'): + utilities.stream_stream_inline(servicer.StreamingCall), + ('grpc.testing.BenchmarkService', 'UnaryCall'): + utilities.unary_unary_inline(servicer.UnaryCall), + } + server = implementations.server(method_implementations) + else: + raise Exception('Unsupported server type {}'.format(config.server_type)) + + if config.HasField('security_params'): # Use SSL + server_creds = implementations.ssl_server_credentials([( + resources.private_key(), resources.certificate_chain())]) + port = server.add_secure_port('[::]:{}'.format(config.port), server_creds) + else: + port = server.add_insecure_port('[::]:{}'.format(config.port)) + + return (server, port) + + def RunClient(self, request_iterator, context): + config = next(request_iterator).setup + client_runners = [] + qps_data = histogram.Histogram(config.histogram_params.resolution, + config.histogram_params.max_possible) + start_time = time.time() + + # Create a client for each channel + for i in xrange(config.client_channels): + server = config.server_targets[i % len(config.server_targets)] + runner = self._create_client_runner(server, config, qps_data) + client_runners.append(runner) + runner.start() + + end_time = time.time() + yield self._get_client_status(start_time, end_time, qps_data) + + # Respond to stat requests + for request in request_iterator: + end_time = time.time() + status = self._get_client_status(start_time, end_time, qps_data) + if request.mark.reset: + qps_data.reset() + start_time = time.time() + yield status + + # Cleanup the clients + for runner in client_runners: + runner.stop() + + def _get_client_status(self, start_time, end_time, qps_data): + latencies = qps_data.get_data() + end_time = time.time() + elapsed_time = end_time - start_time + stats = stats_pb2.ClientStats(latencies=latencies, + time_elapsed=elapsed_time, + time_user=elapsed_time, + time_system=elapsed_time) + return control_pb2.ClientStatus(stats=stats) + + def _create_client_runner(self, server, config, qps_data): + if config.client_type == control_pb2.SYNC_CLIENT: + if config.rpc_type == control_pb2.UNARY: + client = benchmark_client.UnarySyncBenchmarkClient( + server, config, qps_data) + else: + raise Exception('STREAMING SYNC client not supported') + elif config.client_type == control_pb2.ASYNC_CLIENT: + if config.rpc_type == control_pb2.UNARY: + client = benchmark_client.UnaryAsyncBenchmarkClient( + server, config, qps_data) + elif config.rpc_type == control_pb2.STREAMING: + client = benchmark_client.StreamingAsyncBenchmarkClient( + server, config, qps_data) + else: + raise Exception('Unsupported client type {}'.format(config.client_type)) + + # In multi-channel tests, we split the load across all channels + load_factor = float(config.client_channels) + if config.load_params.WhichOneof('load') == 'closed_loop': + runner = client_runner.ClosedLoopClientRunner( + client, config.outstanding_rpcs_per_channel) + else: # Open loop Poisson + alpha = config.load_params.poisson.offered_load / load_factor + def poisson(): + while True: + yield random.expovariate(alpha) + + runner = client_runner.OpenLoopClientRunner(client, poisson()) + + return runner + + def CoreCount(self, request, context): + return control_pb2.CoreResponse(cores=multiprocessing.cpu_count()) + + def QuitWorker(self, request, context): + self._quit_event.set() + return control_pb2.Void() + + def wait_for_quit(self): + self._quit_event.wait() diff --git a/src/python/grpcio/tests/unit/framework/face/testing/__init__.py b/src/python/grpcio/tests/stress/__init__.py similarity index 97% rename from src/python/grpcio/tests/unit/framework/face/testing/__init__.py rename to src/python/grpcio/tests/stress/__init__.py index 708651910607ffb686d781713f6893567821b9fd..100a624dc9c1bbd89708c58e18cf2666a73f4cc7 100644 --- a/src/python/grpcio/tests/unit/framework/face/testing/__init__.py +++ b/src/python/grpcio/tests/stress/__init__.py @@ -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 @@ -26,5 +26,3 @@ # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - diff --git a/src/python/grpcio/tests/stress/client.py b/src/python/grpcio/tests/stress/client.py new file mode 100644 index 0000000000000000000000000000000000000000..a733741b736fe29ee8737d88ed1d3d327c85b73a --- /dev/null +++ b/src/python/grpcio/tests/stress/client.py @@ -0,0 +1,132 @@ +# 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. + +"""Entry point for running stress tests.""" + +import argparse +import Queue +import threading + +from grpc.beta import implementations +from src.proto.grpc.testing import metrics_pb2 +from src.proto.grpc.testing import test_pb2 + +from tests.interop import methods +from tests.qps import histogram +from tests.stress import metrics_server +from tests.stress import test_runner + + +def _args(): + parser = argparse.ArgumentParser(description='gRPC Python stress test client') + parser.add_argument( + '--server_addresses', + help='comma seperated list of hostname:port to run servers on', + default='localhost:8080', type=str) + parser.add_argument( + '--test_cases', + help='comma seperated list of testcase:weighting of tests to run', + default='large_unary:100', + type=str) + parser.add_argument( + '--test_duration_secs', + help='number of seconds to run the stress test', + default=-1, type=int) + parser.add_argument( + '--num_channels_per_server', + help='number of channels per server', + default=1, type=int) + parser.add_argument( + '--num_stubs_per_channel', + help='number of stubs to create per channel', + default=1, type=int) + parser.add_argument( + '--metrics_port', + help='the port to listen for metrics requests on', + default=8081, type=int) + return parser.parse_args() + + +def _test_case_from_arg(test_case_arg): + for test_case in methods.TestCase: + if test_case_arg == test_case.value: + return test_case + else: + raise ValueError('No test case {}!'.format(test_case_arg)) + + +def _parse_weighted_test_cases(test_case_args): + weighted_test_cases = {} + for test_case_arg in test_case_args.split(','): + name, weight = test_case_arg.split(':', 1) + test_case = _test_case_from_arg(name) + weighted_test_cases[test_case] = int(weight) + return weighted_test_cases + + +def run_test(args): + test_cases = _parse_weighted_test_cases(args.test_cases) + test_servers = args.server_addresses.split(',') + # Propagate any client exceptions with a queue + exception_queue = Queue.Queue() + stop_event = threading.Event() + hist = histogram.Histogram(1, 1) + runners = [] + + server = metrics_pb2.beta_create_MetricsService_server( + metrics_server.MetricsServer(hist)) + server.add_insecure_port('[::]:{}'.format(args.metrics_port)) + server.start() + + for test_server in test_servers: + host, port = test_server.split(':', 1) + for _ in xrange(args.num_channels_per_server): + channel = implementations.insecure_channel(host, int(port)) + for _ in xrange(args.num_stubs_per_channel): + stub = test_pb2.beta_create_TestService_stub(channel) + runner = test_runner.TestRunner(stub, test_cases, hist, + exception_queue, stop_event) + runners.append(runner) + + for runner in runners: + runner.start() + try: + raise exception_queue.get(block=True, timeout=args.test_duration_secs) + except Queue.Empty: + # No exceptions thrown, success + pass + finally: + stop_event.set() + for runner in runners: + runner.join() + runner = None + server.stop(0) + +if __name__ == '__main__': + run_test(_args()) diff --git a/src/ruby/bin/interop/interop_client.rb b/src/python/grpcio/tests/stress/metrics_server.py old mode 100755 new mode 100644 similarity index 61% rename from src/ruby/bin/interop/interop_client.rb rename to src/python/grpcio/tests/stress/metrics_server.py index 239083f37f6e239cdc702ded10bd03a5c54428cb..b994e4643e55e0cab997596e44770b26eb264856 --- a/src/ruby/bin/interop/interop_client.rb +++ b/src/python/grpcio/tests/stress/metrics_server.py @@ -1,6 +1,4 @@ -#!/usr/bin/env ruby - -# Copyright 2015, Google Inc. +# Copyright 2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -29,23 +27,34 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# ####################################################################### -# DEPRECATED: The behaviour in this file has been moved to pb/test/client.rb -# -# This file remains to support existing tools and scripts that use it. -# ###################################################################### -# -# interop_client is a testing tool that accesses a gRPC interop testing -# server and runs a test on it. -# -# Helps validate interoperation b/w different gRPC implementations. -# -# Usage: $ path/to/interop_client.rb --server_host=<hostname> \ -# --server_port=<port> \ -# --test_case=<testcase_name> +"""MetricsService for publishing stress test qps data.""" + +import time + +from src.proto.grpc.testing import metrics_pb2 + +GAUGE_NAME = 'python_overall_qps' + + +class MetricsServer(metrics_pb2.BetaMetricsServiceServicer): + + def __init__(self, histogram): + self._start_time = time.time() + self._histogram = histogram + + def _get_qps(self): + count = self._histogram.get_data().count + delta = time.time() - self._start_time + self._histogram.reset() + self._start_time = time.time() + return int(count/delta) -this_dir = File.expand_path(File.dirname(__FILE__)) -pb_dir = File.join(File.dirname(File.dirname(this_dir)), 'pb') -$LOAD_PATH.unshift(pb_dir) unless $LOAD_PATH.include?(pb_dir) + def GetAllGauges(self, request, context): + qps = self._get_qps() + return [metrics_pb2.GaugeResponse(name=GAUGE_NAME, long_value=qps)] -require 'test/client' + def GetGauge(self, request, context): + if request.name != GAUGE_NAME: + raise Exception('Gauge {} does not exist'.format(request.name)) + qps = self._get_qps() + return metrics_pb2.GaugeResponse(name=GAUGE_NAME, long_value=qps) diff --git a/src/python/grpcio/grpc/framework/face/exceptions.py b/src/python/grpcio/tests/stress/test_runner.py similarity index 53% rename from src/python/grpcio/grpc/framework/face/exceptions.py rename to src/python/grpcio/tests/stress/test_runner.py index f95455604d5798d09cde0044a4feecec935abe07..88f13727e37eff44971f813918f91d95ad9f1d24 100644 --- a/src/python/grpcio/grpc/framework/face/exceptions.py +++ b/src/python/grpcio/tests/stress/test_runner.py @@ -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,52 +27,47 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -"""Exceptions used in the Face layer of RPC Framework.""" - -import abc - -import six - - -class NoSuchMethodError(Exception): - """Raised by customer code to indicate an unrecognized RPC method name. - - Attributes: - name: The unrecognized name. - """ - - def __init__(self, name): - """Constructor. - - Args: - name: The unrecognized RPC method name. - """ - super(NoSuchMethodError, self).__init__() - self.name = name - - -class RpcError(six.with_metaclass(abc.ABCMeta, Exception)): - """Common super type for all exceptions raised by the Face layer. - - Only RPC Framework should instantiate and raise these exceptions. - """ - - -class CancellationError(RpcError): - """Indicates that an RPC has been cancelled.""" - - -class ExpirationError(RpcError): - """Indicates that an RPC has expired ("timed out").""" - - -class NetworkError(RpcError): - """Indicates that some error occurred on the network.""" - - -class ServicedError(RpcError): - """Indicates that the Serviced failed in the course of an RPC.""" - - -class ServicerError(RpcError): - """Indicates that the Servicer failed in the course of servicing an RPC.""" +"""Thread that sends random weighted requests on a TestService stub.""" + +import random +import threading +import time +import traceback + + +def _weighted_test_case_generator(weighted_cases): + weight_sum = sum(weighted_cases.itervalues()) + + while True: + val = random.uniform(0, weight_sum) + partial_sum = 0 + for case in weighted_cases: + partial_sum += weighted_cases[case] + if val <= partial_sum: + yield case + break + + +class TestRunner(threading.Thread): + + def __init__(self, stub, test_cases, hist, exception_queue, stop_event): + super(TestRunner, self).__init__() + self._exception_queue = exception_queue + self._stop_event = stop_event + self._stub = stub + self._test_cases = _weighted_test_case_generator(test_cases) + self._histogram = hist + + def run(self): + while not self._stop_event.is_set(): + try: + test_case = next(self._test_cases) + start_time = time.time() + test_case.test_interoperability(self._stub, None) + end_time = time.time() + self._histogram.add((end_time - start_time)*1e9) + except Exception as e: + traceback.print_exc() + self._exception_queue.put( + Exception("An exception occured during test {}" + .format(test_case), e)) diff --git a/src/python/grpcio/tests/unit/framework/face/testing/base_util.py b/src/python/grpcio/tests/unit/framework/face/testing/base_util.py deleted file mode 100644 index 59652b3e9084b9e4c89e9832e360b5ab6a346b31..0000000000000000000000000000000000000000 --- a/src/python/grpcio/tests/unit/framework/face/testing/base_util.py +++ /dev/null @@ -1,102 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Utilities for creating Base-layer objects for use in Face-layer tests.""" - -import abc - -import six - -# interfaces is referenced from specification in this module. -from grpc.framework.base import util as _base_util -from grpc.framework.base import implementations -from grpc.framework.base import in_memory -from grpc.framework.base import interfaces # pylint: disable=unused-import -from grpc.framework.foundation import logging_pool - -_POOL_SIZE_LIMIT = 5 - -_MAXIMUM_TIMEOUT = 90 - - -class LinkedPair(six.with_metaclass(abc.ABCMeta)): - """A Front and Back that are linked to one another. - - Attributes: - front: An interfaces.Front. - back: An interfaces.Back. - """ - - @abc.abstractmethod - def shut_down(self): - """Shuts down this object and releases its resources.""" - raise NotImplementedError() - - -class _LinkedPair(LinkedPair): - - def __init__(self, front, back, pools): - self.front = front - self.back = back - self._pools = pools - - def shut_down(self): - _base_util.wait_for_idle(self.front) - _base_util.wait_for_idle(self.back) - - for pool in self._pools: - pool.shutdown(wait=True) - - -def linked_pair(servicer, default_timeout): - """Creates a Server and Stub linked together for use.""" - link_pool = logging_pool.pool(_POOL_SIZE_LIMIT) - front_work_pool = logging_pool.pool(_POOL_SIZE_LIMIT) - front_transmission_pool = logging_pool.pool(_POOL_SIZE_LIMIT) - front_utility_pool = logging_pool.pool(_POOL_SIZE_LIMIT) - back_work_pool = logging_pool.pool(_POOL_SIZE_LIMIT) - back_transmission_pool = logging_pool.pool(_POOL_SIZE_LIMIT) - back_utility_pool = logging_pool.pool(_POOL_SIZE_LIMIT) - pools = ( - link_pool, - front_work_pool, front_transmission_pool, front_utility_pool, - back_work_pool, back_transmission_pool, back_utility_pool) - - link = in_memory.Link(link_pool) - front = implementations.front_link( - front_work_pool, front_transmission_pool, front_utility_pool) - back = implementations.back_link( - servicer, back_work_pool, back_transmission_pool, back_utility_pool, - default_timeout, _MAXIMUM_TIMEOUT) - front.join_rear_link(link) - link.join_fore_link(front) - back.join_fore_link(link) - link.join_rear_link(back) - - return _LinkedPair(front, back, pools) diff --git a/src/python/grpcio/tests/unit/framework/face/testing/blocking_invocation_inline_service_test_case.py b/src/python/grpcio/tests/unit/framework/face/testing/blocking_invocation_inline_service_test_case.py deleted file mode 100644 index 2ebe1a32a4daf3f0e2029e91be2ca3b9dc365d74..0000000000000000000000000000000000000000 --- a/src/python/grpcio/tests/unit/framework/face/testing/blocking_invocation_inline_service_test_case.py +++ /dev/null @@ -1,224 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""A test to verify an implementation of the Face layer of RPC Framework.""" - -# unittest is referenced from specification in this module. -import abc -import unittest # pylint: disable=unused-import - -import six - -from grpc.framework.face import exceptions -from tests.unit.framework.common import test_constants -from tests.unit.framework.face.testing import control -from tests.unit.framework.face.testing import coverage -from tests.unit.framework.face.testing import digest -from tests.unit.framework.face.testing import stock_service -from tests.unit.framework.face.testing import test_case - - -class BlockingInvocationInlineServiceTestCase( - six.with_metaclass(abc.ABCMeta, - test_case.FaceTestCase, coverage.BlockingCoverage)): - """A test of the Face layer of RPC Framework. - - Concrete subclasses must also extend unittest.TestCase. - """ - - def setUp(self): - """See unittest.TestCase.setUp for full specification. - - Overriding implementations must call this implementation. - """ - self.control = control.PauseFailControl() - self.digest = digest.digest( - stock_service.STOCK_TEST_SERVICE, self.control, None) - - self.stub, self.memo = self.set_up_implementation( - self.digest.name, self.digest.methods, - self.digest.inline_method_implementations, None) - - def tearDown(self): - """See unittest.TestCase.tearDown for full specification. - - Overriding implementations must call this implementation. - """ - self.tear_down_implementation(self.memo) - - def testSuccessfulUnaryRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_unary_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - - response = self.stub.blocking_value_in_value_out( - name, request, test_constants.LONG_TIMEOUT) - - test_messages.verify(request, response, self) - - def testSuccessfulUnaryRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_stream_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - - response_iterator = self.stub.inline_value_in_stream_out( - name, request, test_constants.LONG_TIMEOUT) - responses = list(response_iterator) - - test_messages.verify(request, responses, self) - - def testSuccessfulStreamRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_unary_messages_sequences)): - for test_messages in test_messages_sequence: - requests = test_messages.requests() - - response = self.stub.blocking_stream_in_value_out( - name, iter(requests), test_constants.LONG_TIMEOUT) - - test_messages.verify(requests, response, self) - - def testSuccessfulStreamRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_stream_messages_sequences)): - for test_messages in test_messages_sequence: - requests = test_messages.requests() - - response_iterator = self.stub.inline_stream_in_stream_out( - name, iter(requests), test_constants.LONG_TIMEOUT) - responses = list(response_iterator) - - test_messages.verify(requests, responses, self) - - def testSequentialInvocations(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_unary_messages_sequences)): - for test_messages in test_messages_sequence: - first_request = test_messages.request() - second_request = test_messages.request() - - first_response = self.stub.blocking_value_in_value_out( - name, first_request, test_constants.SHORT_TIMEOUT) - - test_messages.verify(first_request, first_response, self) - - second_response = self.stub.blocking_value_in_value_out( - name, second_request, test_constants.SHORT_TIMEOUT) - - test_messages.verify(second_request, second_response, self) - - def testExpiredUnaryRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_unary_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - - with self.control.pause(), self.assertRaises( - exceptions.ExpirationError): - multi_callable = self.stub.unary_unary_multi_callable(name) - multi_callable(request, test_constants.SHORT_TIMEOUT) - - def testExpiredUnaryRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_stream_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - - with self.control.pause(), self.assertRaises( - exceptions.ExpirationError): - response_iterator = self.stub.inline_value_in_stream_out( - name, request, test_constants.SHORT_TIMEOUT) - list(response_iterator) - - def testExpiredStreamRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_unary_messages_sequences)): - for test_messages in test_messages_sequence: - requests = test_messages.requests() - - with self.control.pause(), self.assertRaises( - exceptions.ExpirationError): - multi_callable = self.stub.stream_unary_multi_callable(name) - multi_callable(iter(requests), test_constants.SHORT_TIMEOUT) - - def testExpiredStreamRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_stream_messages_sequences)): - for test_messages in test_messages_sequence: - requests = test_messages.requests() - - with self.control.pause(), self.assertRaises( - exceptions.ExpirationError): - response_iterator = self.stub.inline_stream_in_stream_out( - name, iter(requests), test_constants.SHORT_TIMEOUT) - list(response_iterator) - - def testFailedUnaryRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_unary_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - - with self.control.fail(), self.assertRaises(exceptions.ServicerError): - self.stub.blocking_value_in_value_out(name, request, - test_constants.SHORT_TIMEOUT) - - def testFailedUnaryRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_stream_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - - with self.control.fail(), self.assertRaises(exceptions.ServicerError): - response_iterator = self.stub.inline_value_in_stream_out( - name, request, test_constants.SHORT_TIMEOUT) - list(response_iterator) - - def testFailedStreamRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_unary_messages_sequences)): - for test_messages in test_messages_sequence: - requests = test_messages.requests() - - with self.control.fail(), self.assertRaises(exceptions.ServicerError): - self.stub.blocking_stream_in_value_out(name, iter(requests), - test_constants.SHORT_TIMEOUT) - - def testFailedStreamRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_stream_messages_sequences)): - for test_messages in test_messages_sequence: - requests = test_messages.requests() - - with self.control.fail(), self.assertRaises(exceptions.ServicerError): - response_iterator = self.stub.inline_stream_in_stream_out( - name, iter(requests), test_constants.SHORT_TIMEOUT) - list(response_iterator) diff --git a/src/python/grpcio/tests/unit/framework/face/testing/callback.py b/src/python/grpcio/tests/unit/framework/face/testing/callback.py deleted file mode 100644 index d0e63c8c56202ff77d050f04b931e558571952be..0000000000000000000000000000000000000000 --- a/src/python/grpcio/tests/unit/framework/face/testing/callback.py +++ /dev/null @@ -1,94 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""A utility useful in tests of asynchronous, event-driven interfaces.""" - -import threading - -from grpc.framework.foundation import stream - - -class Callback(stream.Consumer): - """A utility object useful in tests of asynchronous code.""" - - def __init__(self): - self._condition = threading.Condition() - self._unary_response = None - self._streamed_responses = [] - self._completed = False - self._abortion = None - - def abort(self, abortion): - with self._condition: - self._abortion = abortion - self._condition.notify_all() - - def complete(self, unary_response): - with self._condition: - self._unary_response = unary_response - self._completed = True - self._condition.notify_all() - - def consume(self, streamed_response): - with self._condition: - self._streamed_responses.append(streamed_response) - - def terminate(self): - with self._condition: - self._completed = True - self._condition.notify_all() - - def consume_and_terminate(self, streamed_response): - with self._condition: - self._streamed_responses.append(streamed_response) - self._completed = True - self._condition.notify_all() - - def block_until_terminated(self): - with self._condition: - while self._abortion is None and not self._completed: - self._condition.wait() - - def response(self): - with self._condition: - if self._abortion is None: - return self._unary_response - else: - raise AssertionError('Aborted with abortion "%s"!' % self._abortion) - - def responses(self): - with self._condition: - if self._abortion is None: - return list(self._streamed_responses) - else: - raise AssertionError('Aborted with abortion "%s"!' % self._abortion) - - def abortion(self): - with self._condition: - return self._abortion diff --git a/src/python/grpcio/tests/unit/framework/face/testing/control.py b/src/python/grpcio/tests/unit/framework/face/testing/control.py deleted file mode 100644 index 8425affcc91aeb3de0fc63e4dcc930d09ffe6d4c..0000000000000000000000000000000000000000 --- a/src/python/grpcio/tests/unit/framework/face/testing/control.py +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Code for instructing systems under test to block or fail.""" - -import abc -import contextlib -import threading - -import six - - -class Control(six.with_metaclass(abc.ABCMeta)): - """An object that accepts program control from a system under test. - - Systems under test passed a Control should call its control() method - frequently during execution. The control() method may block, raise an - exception, or do nothing, all according to the enclosing test's desire for - the system under test to simulate hanging, failing, or functioning. - """ - - @abc.abstractmethod - def control(self): - """Potentially does anything.""" - raise NotImplementedError() - - -class PauseFailControl(Control): - """A Control that can be used to pause or fail code under control.""" - - def __init__(self): - self._condition = threading.Condition() - self._paused = False - self._fail = False - - def control(self): - with self._condition: - if self._fail: - raise ValueError() - - while self._paused: - self._condition.wait() - - @contextlib.contextmanager - def pause(self): - """Pauses code under control while controlling code is in context.""" - with self._condition: - self._paused = True - yield - with self._condition: - self._paused = False - self._condition.notify_all() - - @contextlib.contextmanager - def fail(self): - """Fails code under control while controlling code is in context.""" - with self._condition: - self._fail = True - yield - with self._condition: - self._fail = False diff --git a/src/python/grpcio/tests/unit/framework/face/testing/coverage.py b/src/python/grpcio/tests/unit/framework/face/testing/coverage.py deleted file mode 100644 index 3c88b7841a52ccf202916bb437ce2b46425560c0..0000000000000000000000000000000000000000 --- a/src/python/grpcio/tests/unit/framework/face/testing/coverage.py +++ /dev/null @@ -1,121 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Governs coverage for the tests of the Face layer of RPC Framework.""" - -import abc - -import six - -# These classes are only valid when inherited by unittest.TestCases. -# pylint: disable=invalid-name - - -class BlockingCoverage(six.with_metaclass(abc.ABCMeta)): - """Specification of test coverage for blocking behaviors.""" - - @abc.abstractmethod - def testSuccessfulUnaryRequestUnaryResponse(self): - raise NotImplementedError() - - @abc.abstractmethod - def testSuccessfulUnaryRequestStreamResponse(self): - raise NotImplementedError() - - @abc.abstractmethod - def testSuccessfulStreamRequestUnaryResponse(self): - raise NotImplementedError() - - @abc.abstractmethod - def testSuccessfulStreamRequestStreamResponse(self): - raise NotImplementedError() - - @abc.abstractmethod - def testSequentialInvocations(self): - raise NotImplementedError() - - @abc.abstractmethod - def testExpiredUnaryRequestUnaryResponse(self): - raise NotImplementedError() - - @abc.abstractmethod - def testExpiredUnaryRequestStreamResponse(self): - raise NotImplementedError() - - @abc.abstractmethod - def testExpiredStreamRequestUnaryResponse(self): - raise NotImplementedError() - - @abc.abstractmethod - def testExpiredStreamRequestStreamResponse(self): - raise NotImplementedError() - - @abc.abstractmethod - def testFailedUnaryRequestUnaryResponse(self): - raise NotImplementedError() - - @abc.abstractmethod - def testFailedUnaryRequestStreamResponse(self): - raise NotImplementedError() - - @abc.abstractmethod - def testFailedStreamRequestUnaryResponse(self): - raise NotImplementedError() - - @abc.abstractmethod - def testFailedStreamRequestStreamResponse(self): - raise NotImplementedError() - - -class FullCoverage(six.with_metaclass(abc.ABCMeta, BlockingCoverage)): - """Specification of test coverage for non-blocking behaviors.""" - - @abc.abstractmethod - def testParallelInvocations(self): - raise NotImplementedError() - - @abc.abstractmethod - def testWaitingForSomeButNotAllParallelInvocations(self): - raise NotImplementedError() - - @abc.abstractmethod - def testCancelledUnaryRequestUnaryResponse(self): - raise NotImplementedError() - - @abc.abstractmethod - def testCancelledUnaryRequestStreamResponse(self): - raise NotImplementedError() - - @abc.abstractmethod - def testCancelledStreamRequestUnaryResponse(self): - raise NotImplementedError() - - @abc.abstractmethod - def testCancelledStreamRequestStreamResponse(self): - raise NotImplementedError() diff --git a/src/python/grpcio/tests/unit/framework/face/testing/digest.py b/src/python/grpcio/tests/unit/framework/face/testing/digest.py deleted file mode 100644 index 2b45aded208be151d90b1e121def8ad55c74650b..0000000000000000000000000000000000000000 --- a/src/python/grpcio/tests/unit/framework/face/testing/digest.py +++ /dev/null @@ -1,452 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Code for making a service.TestService more amenable to use in tests.""" - -import collections -import threading - -import six - -# testing_control, interfaces, and testing_service are referenced from -# specification in this module. -from grpc.framework.common import cardinality -from grpc.framework.common import style -from grpc.framework.face import exceptions -from grpc.framework.face import interfaces as face_interfaces -from grpc.framework.foundation import stream -from grpc.framework.foundation import stream_util -from tests.unit.framework.face.testing import control as testing_control # pylint: disable=unused-import -from tests.unit.framework.face.testing import interfaces # pylint: disable=unused-import -from tests.unit.framework.face.testing import service as testing_service # pylint: disable=unused-import - -_IDENTITY = lambda x: x - - -class TestServiceDigest( - collections.namedtuple( - 'TestServiceDigest', - ['name', - 'methods', - 'inline_method_implementations', - 'event_method_implementations', - 'multi_method_implementation', - 'unary_unary_messages_sequences', - 'unary_stream_messages_sequences', - 'stream_unary_messages_sequences', - 'stream_stream_messages_sequences'])): - """A transformation of a service.TestService. - - Attributes: - name: The RPC service name to be used in the test. - methods: A sequence of interfaces.Method objects describing the RPC - methods that will be called during the test. - inline_method_implementations: A dict from RPC method name to - face_interfaces.MethodImplementation object to be used in tests of - in-line calls to behaviors under test. - event_method_implementations: A dict from RPC method name to - face_interfaces.MethodImplementation object to be used in tests of - event-driven calls to behaviors under test. - multi_method_implementation: A face_interfaces.MultiMethodImplementation to - be used in tests of generic calls to behaviors under test. - unary_unary_messages_sequences: A dict from method name to sequence of - service.UnaryUnaryTestMessages objects to be used to test the method - with the given name. - unary_stream_messages_sequences: A dict from method name to sequence of - service.UnaryStreamTestMessages objects to be used to test the method - with the given name. - stream_unary_messages_sequences: A dict from method name to sequence of - service.StreamUnaryTestMessages objects to be used to test the method - with the given name. - stream_stream_messages_sequences: A dict from method name to sequence of - service.StreamStreamTestMessages objects to be used to test the - method with the given name. - serialization: A serial.Serialization object describing serialization - behaviors for all the RPC methods. - """ - - -class _BufferingConsumer(stream.Consumer): - """A trivial Consumer that dumps what it consumes in a user-mutable buffer.""" - - def __init__(self): - self.consumed = [] - self.terminated = False - - def consume(self, value): - self.consumed.append(value) - - def terminate(self): - self.terminated = True - - def consume_and_terminate(self, value): - self.consumed.append(value) - self.terminated = True - - -class _InlineUnaryUnaryMethod(face_interfaces.MethodImplementation): - - def __init__(self, unary_unary_test_method, control): - self._test_method = unary_unary_test_method - self._control = control - - self.cardinality = cardinality.Cardinality.UNARY_UNARY - self.style = style.Service.INLINE - - def unary_unary_inline(self, request, context): - response_list = [] - self._test_method.service( - request, response_list.append, context, self._control) - return response_list.pop(0) - - -class _EventUnaryUnaryMethod(face_interfaces.MethodImplementation): - - def __init__(self, unary_unary_test_method, control, pool): - self._test_method = unary_unary_test_method - self._control = control - self._pool = pool - - self.cardinality = cardinality.Cardinality.UNARY_UNARY - self.style = style.Service.EVENT - - def unary_unary_event(self, request, response_callback, context): - if self._pool is None: - self._test_method.service( - request, response_callback, context, self._control) - else: - self._pool.submit( - self._test_method.service, request, response_callback, context, - self._control) - - -class _InlineUnaryStreamMethod(face_interfaces.MethodImplementation): - - def __init__(self, unary_stream_test_method, control): - self._test_method = unary_stream_test_method - self._control = control - - self.cardinality = cardinality.Cardinality.UNARY_STREAM - self.style = style.Service.INLINE - - def unary_stream_inline(self, request, context): - response_consumer = _BufferingConsumer() - self._test_method.service( - request, response_consumer, context, self._control) - for response in response_consumer.consumed: - yield response - - -class _EventUnaryStreamMethod(face_interfaces.MethodImplementation): - - def __init__(self, unary_stream_test_method, control, pool): - self._test_method = unary_stream_test_method - self._control = control - self._pool = pool - - self.cardinality = cardinality.Cardinality.UNARY_STREAM - self.style = style.Service.EVENT - - def unary_stream_event(self, request, response_consumer, context): - if self._pool is None: - self._test_method.service( - request, response_consumer, context, self._control) - else: - self._pool.submit( - self._test_method.service, request, response_consumer, context, - self._control) - - -class _InlineStreamUnaryMethod(face_interfaces.MethodImplementation): - - def __init__(self, stream_unary_test_method, control): - self._test_method = stream_unary_test_method - self._control = control - - self.cardinality = cardinality.Cardinality.STREAM_UNARY - self.style = style.Service.INLINE - - def stream_unary_inline(self, request_iterator, context): - response_list = [] - request_consumer = self._test_method.service( - response_list.append, context, self._control) - for request in request_iterator: - request_consumer.consume(request) - request_consumer.terminate() - return response_list.pop(0) - - -class _EventStreamUnaryMethod(face_interfaces.MethodImplementation): - - def __init__(self, stream_unary_test_method, control, pool): - self._test_method = stream_unary_test_method - self._control = control - self._pool = pool - - self.cardinality = cardinality.Cardinality.STREAM_UNARY - self.style = style.Service.EVENT - - def stream_unary_event(self, response_callback, context): - request_consumer = self._test_method.service( - response_callback, context, self._control) - if self._pool is None: - return request_consumer - else: - return stream_util.ThreadSwitchingConsumer(request_consumer, self._pool) - - -class _InlineStreamStreamMethod(face_interfaces.MethodImplementation): - - def __init__(self, stream_stream_test_method, control): - self._test_method = stream_stream_test_method - self._control = control - - self.cardinality = cardinality.Cardinality.STREAM_STREAM - self.style = style.Service.INLINE - - def stream_stream_inline(self, request_iterator, context): - response_consumer = _BufferingConsumer() - request_consumer = self._test_method.service( - response_consumer, context, self._control) - - for request in request_iterator: - request_consumer.consume(request) - while response_consumer.consumed: - yield response_consumer.consumed.pop(0) - response_consumer.terminate() - - -class _EventStreamStreamMethod(face_interfaces.MethodImplementation): - - def __init__(self, stream_stream_test_method, control, pool): - self._test_method = stream_stream_test_method - self._control = control - self._pool = pool - - self.cardinality = cardinality.Cardinality.STREAM_STREAM - self.style = style.Service.EVENT - - def stream_stream_event(self, response_consumer, context): - request_consumer = self._test_method.service( - response_consumer, context, self._control) - if self._pool is None: - return request_consumer - else: - return stream_util.ThreadSwitchingConsumer(request_consumer, self._pool) - - -class _UnaryConsumer(stream.Consumer): - """A Consumer that only allows consumption of exactly one value.""" - - def __init__(self, action): - self._lock = threading.Lock() - self._action = action - self._consumed = False - self._terminated = False - - def consume(self, value): - with self._lock: - if self._consumed: - raise ValueError('Unary consumer already consumed!') - elif self._terminated: - raise ValueError('Unary consumer already terminated!') - else: - self._consumed = True - - self._action(value) - - def terminate(self): - with self._lock: - if not self._consumed: - raise ValueError('Unary consumer hasn\'t yet consumed!') - elif self._terminated: - raise ValueError('Unary consumer already terminated!') - else: - self._terminated = True - - def consume_and_terminate(self, value): - with self._lock: - if self._consumed: - raise ValueError('Unary consumer already consumed!') - elif self._terminated: - raise ValueError('Unary consumer already terminated!') - else: - self._consumed = True - self._terminated = True - - self._action(value) - - -class _UnaryUnaryAdaptation(object): - - def __init__(self, unary_unary_test_method): - self._method = unary_unary_test_method - - def service(self, response_consumer, context, control): - def action(request): - self._method.service( - request, response_consumer.consume_and_terminate, context, control) - return _UnaryConsumer(action) - - -class _UnaryStreamAdaptation(object): - - def __init__(self, unary_stream_test_method): - self._method = unary_stream_test_method - - def service(self, response_consumer, context, control): - def action(request): - self._method.service(request, response_consumer, context, control) - return _UnaryConsumer(action) - - -class _StreamUnaryAdaptation(object): - - def __init__(self, stream_unary_test_method): - self._method = stream_unary_test_method - - def service(self, response_consumer, context, control): - return self._method.service( - response_consumer.consume_and_terminate, context, control) - - -class _MultiMethodImplementation(face_interfaces.MultiMethodImplementation): - - def __init__(self, methods, control, pool): - self._methods = methods - self._control = control - self._pool = pool - - def service(self, name, response_consumer, context): - method = self._methods.get(name, None) - if method is None: - raise exceptions.NoSuchMethodError(name) - elif self._pool is None: - return method(response_consumer, context, self._control) - else: - request_consumer = method(response_consumer, context, self._control) - return stream_util.ThreadSwitchingConsumer(request_consumer, self._pool) - - -class _Assembly( - collections.namedtuple( - '_Assembly', - ['methods', 'inlines', 'events', 'adaptations', 'messages'])): - """An intermediate structure created when creating a TestServiceDigest.""" - - -def _assemble( - scenarios, names, inline_method_constructor, event_method_constructor, - adapter, control, pool): - """Creates an _Assembly from the given scenarios.""" - methods = [] - inlines = {} - events = {} - adaptations = {} - messages = {} - for name, scenario in six.iteritems(scenarios): - if name in names: - raise ValueError('Repeated name "%s"!' % name) - - test_method = scenario[0] - inline_method = inline_method_constructor(test_method, control) - event_method = event_method_constructor(test_method, control, pool) - adaptation = adapter(test_method) - - methods.append(test_method) - inlines[name] = inline_method - events[name] = event_method - adaptations[name] = adaptation - messages[name] = scenario[1] - - return _Assembly(methods, inlines, events, adaptations, messages) - - -def digest(service, control, pool): - """Creates a TestServiceDigest from a TestService. - - Args: - service: A testing_service.TestService. - control: A testing_control.Control. - pool: If RPC methods should be serviced in a separate thread, a thread pool. - None if RPC methods should be serviced in the thread belonging to the - run-time that calls for their service. - - Returns: - A TestServiceDigest synthesized from the given service.TestService. - """ - names = set() - - unary_unary = _assemble( - service.unary_unary_scenarios(), names, _InlineUnaryUnaryMethod, - _EventUnaryUnaryMethod, _UnaryUnaryAdaptation, control, pool) - names.update(set(unary_unary.inlines)) - - unary_stream = _assemble( - service.unary_stream_scenarios(), names, _InlineUnaryStreamMethod, - _EventUnaryStreamMethod, _UnaryStreamAdaptation, control, pool) - names.update(set(unary_stream.inlines)) - - stream_unary = _assemble( - service.stream_unary_scenarios(), names, _InlineStreamUnaryMethod, - _EventStreamUnaryMethod, _StreamUnaryAdaptation, control, pool) - names.update(set(stream_unary.inlines)) - - stream_stream = _assemble( - service.stream_stream_scenarios(), names, _InlineStreamStreamMethod, - _EventStreamStreamMethod, _IDENTITY, control, pool) - names.update(set(stream_stream.inlines)) - - methods = list(unary_unary.methods) - methods.extend(unary_stream.methods) - methods.extend(stream_unary.methods) - methods.extend(stream_stream.methods) - adaptations = dict(unary_unary.adaptations) - adaptations.update(unary_stream.adaptations) - adaptations.update(stream_unary.adaptations) - adaptations.update(stream_stream.adaptations) - inlines = dict(unary_unary.inlines) - inlines.update(unary_stream.inlines) - inlines.update(stream_unary.inlines) - inlines.update(stream_stream.inlines) - events = dict(unary_unary.events) - events.update(unary_stream.events) - events.update(stream_unary.events) - events.update(stream_stream.events) - - return TestServiceDigest( - service.name(), - methods, - inlines, - events, - _MultiMethodImplementation(adaptations, control, pool), - unary_unary.messages, - unary_stream.messages, - stream_unary.messages, - stream_stream.messages) diff --git a/src/python/grpcio/tests/unit/framework/face/testing/event_invocation_synchronous_event_service_test_case.py b/src/python/grpcio/tests/unit/framework/face/testing/event_invocation_synchronous_event_service_test_case.py deleted file mode 100644 index 98b61e492c9f340aaaa7a959dd0b62c1631ff335..0000000000000000000000000000000000000000 --- a/src/python/grpcio/tests/unit/framework/face/testing/event_invocation_synchronous_event_service_test_case.py +++ /dev/null @@ -1,378 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""A test to verify an implementation of the Face layer of RPC Framework.""" - -import abc -import unittest - -import six - -from grpc.framework.face import interfaces -from tests.unit.framework.common import test_constants -from tests.unit.framework.face.testing import callback as testing_callback -from tests.unit.framework.face.testing import control -from tests.unit.framework.face.testing import coverage -from tests.unit.framework.face.testing import digest -from tests.unit.framework.face.testing import stock_service -from tests.unit.framework.face.testing import test_case - - -class EventInvocationSynchronousEventServiceTestCase( - six.with_metaclass(abc.ABCMeta, - test_case.FaceTestCase, coverage.FullCoverage)): - """A test of the Face layer of RPC Framework. - - Concrete subclasses must also extend unittest.TestCase. - """ - - def setUp(self): - """See unittest.TestCase.setUp for full specification. - - Overriding implementations must call this implementation. - """ - self.control = control.PauseFailControl() - self.digest = digest.digest( - stock_service.STOCK_TEST_SERVICE, self.control, None) - - self.stub, self.memo = self.set_up_implementation( - self.digest.name, self.digest.methods, - self.digest.event_method_implementations, None) - - def tearDown(self): - """See unittest.TestCase.tearDown for full specification. - - Overriding implementations must call this implementation. - """ - self.tear_down_implementation(self.memo) - - def testSuccessfulUnaryRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_unary_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - callback = testing_callback.Callback() - - self.stub.event_value_in_value_out( - name, request, callback.complete, callback.abort, - test_constants.SHORT_TIMEOUT) - callback.block_until_terminated() - response = callback.response() - - test_messages.verify(request, response, self) - - def testSuccessfulUnaryRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_stream_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - callback = testing_callback.Callback() - - self.stub.event_value_in_stream_out( - name, request, callback, callback.abort, - test_constants.SHORT_TIMEOUT) - callback.block_until_terminated() - responses = callback.responses() - - test_messages.verify(request, responses, self) - - def testSuccessfulStreamRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_unary_messages_sequences)): - for test_messages in test_messages_sequence: - requests = test_messages.requests() - callback = testing_callback.Callback() - - unused_call, request_consumer = self.stub.event_stream_in_value_out( - name, callback.complete, callback.abort, - test_constants.SHORT_TIMEOUT) - for request in requests: - request_consumer.consume(request) - request_consumer.terminate() - callback.block_until_terminated() - response = callback.response() - - test_messages.verify(requests, response, self) - - def testSuccessfulStreamRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_stream_messages_sequences)): - for test_messages in test_messages_sequence: - requests = test_messages.requests() - callback = testing_callback.Callback() - - unused_call, request_consumer = self.stub.event_stream_in_stream_out( - name, callback, callback.abort, test_constants.SHORT_TIMEOUT) - for request in requests: - request_consumer.consume(request) - request_consumer.terminate() - callback.block_until_terminated() - responses = callback.responses() - - test_messages.verify(requests, responses, self) - - def testSequentialInvocations(self): - # pylint: disable=cell-var-from-loop - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_unary_messages_sequences)): - for test_messages in test_messages_sequence: - first_request = test_messages.request() - second_request = test_messages.request() - first_callback = testing_callback.Callback() - second_callback = testing_callback.Callback() - - def make_second_invocation(first_response): - first_callback.complete(first_response) - self.stub.event_value_in_value_out( - name, second_request, second_callback.complete, - second_callback.abort, test_constants.SHORT_TIMEOUT) - - self.stub.event_value_in_value_out( - name, first_request, make_second_invocation, first_callback.abort, - test_constants.SHORT_TIMEOUT) - second_callback.block_until_terminated() - - first_response = first_callback.response() - second_response = second_callback.response() - test_messages.verify(first_request, first_response, self) - test_messages.verify(second_request, second_response, self) - - def testExpiredUnaryRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_unary_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - callback = testing_callback.Callback() - - with self.control.pause(): - self.stub.event_value_in_value_out( - name, request, callback.complete, callback.abort, - test_constants.SHORT_TIMEOUT) - callback.block_until_terminated() - - self.assertEqual(interfaces.Abortion.EXPIRED, callback.abortion()) - - def testExpiredUnaryRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_stream_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - callback = testing_callback.Callback() - - with self.control.pause(): - self.stub.event_value_in_stream_out( - name, request, callback, callback.abort, - test_constants.SHORT_TIMEOUT) - callback.block_until_terminated() - - self.assertEqual(interfaces.Abortion.EXPIRED, callback.abortion()) - - def testExpiredStreamRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_unary_messages_sequences)): - for unused_test_messages in test_messages_sequence: - callback = testing_callback.Callback() - - self.stub.event_stream_in_value_out( - name, callback.complete, callback.abort, - test_constants.SHORT_TIMEOUT) - callback.block_until_terminated() - - self.assertEqual(interfaces.Abortion.EXPIRED, callback.abortion()) - - def testExpiredStreamRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_stream_messages_sequences)): - for test_messages in test_messages_sequence: - requests = test_messages.requests() - callback = testing_callback.Callback() - - unused_call, request_consumer = self.stub.event_stream_in_stream_out( - name, callback, callback.abort, test_constants.SHORT_TIMEOUT) - for request in requests: - request_consumer.consume(request) - callback.block_until_terminated() - - self.assertEqual(interfaces.Abortion.EXPIRED, callback.abortion()) - - def testFailedUnaryRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_unary_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - callback = testing_callback.Callback() - - with self.control.fail(): - self.stub.event_value_in_value_out( - name, request, callback.complete, callback.abort, - test_constants.SHORT_TIMEOUT) - callback.block_until_terminated() - - self.assertEqual(interfaces.Abortion.SERVICER_FAILURE, - callback.abortion()) - - def testFailedUnaryRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_stream_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - callback = testing_callback.Callback() - - with self.control.fail(): - self.stub.event_value_in_stream_out( - name, request, callback, callback.abort, - test_constants.SHORT_TIMEOUT) - callback.block_until_terminated() - - self.assertEqual(interfaces.Abortion.SERVICER_FAILURE, - callback.abortion()) - - def testFailedStreamRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_unary_messages_sequences)): - for test_messages in test_messages_sequence: - requests = test_messages.requests() - callback = testing_callback.Callback() - - with self.control.fail(): - unused_call, request_consumer = self.stub.event_stream_in_value_out( - name, callback.complete, callback.abort, - test_constants.SHORT_TIMEOUT) - for request in requests: - request_consumer.consume(request) - request_consumer.terminate() - callback.block_until_terminated() - - self.assertEqual(interfaces.Abortion.SERVICER_FAILURE, - callback.abortion()) - - def testFailedStreamRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_stream_messages_sequences)): - for test_messages in test_messages_sequence: - requests = test_messages.requests() - callback = testing_callback.Callback() - - with self.control.fail(): - unused_call, request_consumer = self.stub.event_stream_in_stream_out( - name, callback, callback.abort, test_constants.SHORT_TIMEOUT) - for request in requests: - request_consumer.consume(request) - request_consumer.terminate() - callback.block_until_terminated() - - self.assertEqual(interfaces.Abortion.SERVICER_FAILURE, callback.abortion()) - - def testParallelInvocations(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_unary_messages_sequences)): - for test_messages in test_messages_sequence: - first_request = test_messages.request() - first_callback = testing_callback.Callback() - second_request = test_messages.request() - second_callback = testing_callback.Callback() - - self.stub.event_value_in_value_out( - name, first_request, first_callback.complete, first_callback.abort, - test_constants.SHORT_TIMEOUT) - self.stub.event_value_in_value_out( - name, second_request, second_callback.complete, - second_callback.abort, test_constants.SHORT_TIMEOUT) - first_callback.block_until_terminated() - second_callback.block_until_terminated() - - first_response = first_callback.response() - second_response = second_callback.response() - test_messages.verify(first_request, first_response, self) - test_messages.verify(second_request, second_response, self) - - @unittest.skip('TODO(nathaniel): implement.') - def testWaitingForSomeButNotAllParallelInvocations(self): - raise NotImplementedError() - - def testCancelledUnaryRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_unary_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - callback = testing_callback.Callback() - - with self.control.pause(): - call = self.stub.event_value_in_value_out( - name, request, callback.complete, callback.abort, - test_constants.SHORT_TIMEOUT) - call.cancel() - callback.block_until_terminated() - - self.assertEqual(interfaces.Abortion.CANCELLED, callback.abortion()) - - def testCancelledUnaryRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_stream_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - callback = testing_callback.Callback() - - call = self.stub.event_value_in_stream_out( - name, request, callback, callback.abort, - test_constants.SHORT_TIMEOUT) - call.cancel() - callback.block_until_terminated() - - self.assertEqual(interfaces.Abortion.CANCELLED, callback.abortion()) - - def testCancelledStreamRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_unary_messages_sequences)): - for test_messages in test_messages_sequence: - requests = test_messages.requests() - callback = testing_callback.Callback() - - call, request_consumer = self.stub.event_stream_in_value_out( - name, callback.complete, callback.abort, - test_constants.SHORT_TIMEOUT) - for request in requests: - request_consumer.consume(request) - call.cancel() - callback.block_until_terminated() - - self.assertEqual(interfaces.Abortion.CANCELLED, callback.abortion()) - - def testCancelledStreamRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_stream_messages_sequences)): - for unused_test_messages in test_messages_sequence: - callback = testing_callback.Callback() - - call, unused_request_consumer = self.stub.event_stream_in_stream_out( - name, callback, callback.abort, test_constants.SHORT_TIMEOUT) - call.cancel() - callback.block_until_terminated() - - self.assertEqual(interfaces.Abortion.CANCELLED, callback.abortion()) diff --git a/src/python/grpcio/tests/unit/framework/face/testing/future_invocation_asynchronous_event_service_test_case.py b/src/python/grpcio/tests/unit/framework/face/testing/future_invocation_asynchronous_event_service_test_case.py deleted file mode 100644 index cae791af97e14ec320b11698521717faaa8b1c67..0000000000000000000000000000000000000000 --- a/src/python/grpcio/tests/unit/framework/face/testing/future_invocation_asynchronous_event_service_test_case.py +++ /dev/null @@ -1,384 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""A test to verify an implementation of the Face layer of RPC Framework.""" - -import abc -import contextlib -import threading -import unittest - -import six - -from grpc.framework.face import exceptions -from grpc.framework.foundation import future -from grpc.framework.foundation import logging_pool -from tests.unit.framework.common import test_constants -from tests.unit.framework.face.testing import control -from tests.unit.framework.face.testing import coverage -from tests.unit.framework.face.testing import digest -from tests.unit.framework.face.testing import stock_service -from tests.unit.framework.face.testing import test_case - -_MAXIMUM_POOL_SIZE = 10 - - -class _PauseableIterator(object): - - def __init__(self, upstream): - self._upstream = upstream - self._condition = threading.Condition() - self._paused = False - - @contextlib.contextmanager - def pause(self): - with self._condition: - self._paused = True - yield - with self._condition: - self._paused = False - self._condition.notify_all() - - def __iter__(self): - return self - - def __next__(self): - return self.next() - - def next(self): - with self._condition: - while self._paused: - self._condition.wait() - return next(self._upstream) - - -class FutureInvocationAsynchronousEventServiceTestCase( - six.with_metaclass(abc.ABCMeta, - test_case.FaceTestCase, coverage.FullCoverage)): - """A test of the Face layer of RPC Framework. - - Concrete subclasses must also extend unittest.TestCase. - """ - - def setUp(self): - """See unittest.TestCase.setUp for full specification. - - Overriding implementations must call this implementation. - """ - self.control = control.PauseFailControl() - self.digest_pool = logging_pool.pool(_MAXIMUM_POOL_SIZE) - self.digest = digest.digest( - stock_service.STOCK_TEST_SERVICE, self.control, self.digest_pool) - - self.stub, self.memo = self.set_up_implementation( - self.digest.name, self.digest.methods, - self.digest.event_method_implementations, None) - - def tearDown(self): - """See unittest.TestCase.tearDown for full specification. - - Overriding implementations must call this implementation. - """ - self.tear_down_implementation(self.memo) - self.digest_pool.shutdown(wait=True) - - def testSuccessfulUnaryRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_unary_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - - response_future = self.stub.future_value_in_value_out( - name, request, test_constants.SHORT_TIMEOUT) - response = response_future.result() - - test_messages.verify(request, response, self) - - def testSuccessfulUnaryRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_stream_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - - response_iterator = self.stub.inline_value_in_stream_out( - name, request, test_constants.SHORT_TIMEOUT) - responses = list(response_iterator) - - test_messages.verify(request, responses, self) - - def testSuccessfulStreamRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_unary_messages_sequences)): - for test_messages in test_messages_sequence: - requests = test_messages.requests() - request_iterator = _PauseableIterator(iter(requests)) - - # Use of a paused iterator of requests allows us to test that control is - # returned to calling code before the iterator yields any requests. - with request_iterator.pause(): - response_future = self.stub.future_stream_in_value_out( - name, request_iterator, test_constants.SHORT_TIMEOUT) - response = response_future.result() - - test_messages.verify(requests, response, self) - - def testSuccessfulStreamRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_stream_messages_sequences)): - for test_messages in test_messages_sequence: - requests = test_messages.requests() - request_iterator = _PauseableIterator(iter(requests)) - - # Use of a paused iterator of requests allows us to test that control is - # returned to calling code before the iterator yields any requests. - with request_iterator.pause(): - response_iterator = self.stub.inline_stream_in_stream_out( - name, request_iterator, test_constants.SHORT_TIMEOUT) - responses = list(response_iterator) - - test_messages.verify(requests, responses, self) - - def testSequentialInvocations(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_unary_messages_sequences)): - for test_messages in test_messages_sequence: - first_request = test_messages.request() - second_request = test_messages.request() - - first_response_future = self.stub.future_value_in_value_out( - name, first_request, test_constants.SHORT_TIMEOUT) - first_response = first_response_future.result() - - test_messages.verify(first_request, first_response, self) - - second_response_future = self.stub.future_value_in_value_out( - name, second_request, test_constants.SHORT_TIMEOUT) - second_response = second_response_future.result() - - test_messages.verify(second_request, second_response, self) - - def testExpiredUnaryRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_unary_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - - with self.control.pause(): - multi_callable = self.stub.unary_unary_multi_callable(name) - response_future = multi_callable.future(request, - test_constants.SHORT_TIMEOUT) - self.assertIsInstance( - response_future.exception(), exceptions.ExpirationError) - with self.assertRaises(exceptions.ExpirationError): - response_future.result() - - def testExpiredUnaryRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_stream_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - - with self.control.pause(): - response_iterator = self.stub.inline_value_in_stream_out( - name, request, test_constants.SHORT_TIMEOUT) - with self.assertRaises(exceptions.ExpirationError): - list(response_iterator) - - def testExpiredStreamRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_unary_messages_sequences)): - for test_messages in test_messages_sequence: - requests = test_messages.requests() - - with self.control.pause(): - multi_callable = self.stub.stream_unary_multi_callable(name) - response_future = multi_callable.future(iter(requests), - test_constants.SHORT_TIMEOUT) - self.assertIsInstance( - response_future.exception(), exceptions.ExpirationError) - with self.assertRaises(exceptions.ExpirationError): - response_future.result() - - def testExpiredStreamRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_stream_messages_sequences)): - for test_messages in test_messages_sequence: - requests = test_messages.requests() - - with self.control.pause(): - response_iterator = self.stub.inline_stream_in_stream_out( - name, iter(requests), test_constants.SHORT_TIMEOUT) - with self.assertRaises(exceptions.ExpirationError): - list(response_iterator) - - def testFailedUnaryRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_unary_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - - with self.control.fail(): - response_future = self.stub.future_value_in_value_out( - name, request, test_constants.SHORT_TIMEOUT) - - # Because the servicer fails outside of the thread from which the - # servicer-side runtime called into it its failure is - # indistinguishable from simply not having called its - # response_callback before the expiration of the RPC. - self.assertIsInstance( - response_future.exception(), exceptions.ExpirationError) - with self.assertRaises(exceptions.ExpirationError): - response_future.result() - - def testFailedUnaryRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_stream_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - - # Because the servicer fails outside of the thread from which the - # servicer-side runtime called into it its failure is indistinguishable - # from simply not having called its response_consumer before the - # expiration of the RPC. - with self.control.fail(), self.assertRaises(exceptions.ExpirationError): - response_iterator = self.stub.inline_value_in_stream_out( - name, request, test_constants.SHORT_TIMEOUT) - list(response_iterator) - - def testFailedStreamRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_unary_messages_sequences)): - for test_messages in test_messages_sequence: - requests = test_messages.requests() - - with self.control.fail(): - response_future = self.stub.future_stream_in_value_out( - name, iter(requests), test_constants.SHORT_TIMEOUT) - - # Because the servicer fails outside of the thread from which the - # servicer-side runtime called into it its failure is - # indistinguishable from simply not having called its - # response_callback before the expiration of the RPC. - self.assertIsInstance( - response_future.exception(), exceptions.ExpirationError) - with self.assertRaises(exceptions.ExpirationError): - response_future.result() - - def testFailedStreamRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_stream_messages_sequences)): - for test_messages in test_messages_sequence: - requests = test_messages.requests() - - # Because the servicer fails outside of the thread from which the - # servicer-side runtime called into it its failure is indistinguishable - # from simply not having called its response_consumer before the - # expiration of the RPC. - with self.control.fail(), self.assertRaises(exceptions.ExpirationError): - response_iterator = self.stub.inline_stream_in_stream_out( - name, iter(requests), test_constants.SHORT_TIMEOUT) - list(response_iterator) - - def testParallelInvocations(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_unary_messages_sequences)): - for test_messages in test_messages_sequence: - first_request = test_messages.request() - second_request = test_messages.request() - - # TODO(bug 2039): use LONG_TIMEOUT instead - first_response_future = self.stub.future_value_in_value_out( - name, first_request, test_constants.SHORT_TIMEOUT) - second_response_future = self.stub.future_value_in_value_out( - name, second_request, test_constants.SHORT_TIMEOUT) - first_response = first_response_future.result() - second_response = second_response_future.result() - - test_messages.verify(first_request, first_response, self) - test_messages.verify(second_request, second_response, self) - - @unittest.skip('TODO(nathaniel): implement.') - def testWaitingForSomeButNotAllParallelInvocations(self): - raise NotImplementedError() - - def testCancelledUnaryRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_unary_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - - with self.control.pause(): - response_future = self.stub.future_value_in_value_out( - name, request, test_constants.SHORT_TIMEOUT) - cancel_method_return_value = response_future.cancel() - - self.assertFalse(cancel_method_return_value) - self.assertTrue(response_future.cancelled()) - - def testCancelledUnaryRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.unary_stream_messages_sequences)): - for test_messages in test_messages_sequence: - request = test_messages.request() - - with self.control.pause(): - response_iterator = self.stub.inline_value_in_stream_out( - name, request, test_constants.SHORT_TIMEOUT) - response_iterator.cancel() - - with self.assertRaises(future.CancelledError): - next(response_iterator) - - def testCancelledStreamRequestUnaryResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_unary_messages_sequences)): - for test_messages in test_messages_sequence: - requests = test_messages.requests() - - with self.control.pause(): - response_future = self.stub.future_stream_in_value_out( - name, iter(requests), test_constants.SHORT_TIMEOUT) - cancel_method_return_value = response_future.cancel() - - self.assertFalse(cancel_method_return_value) - self.assertTrue(response_future.cancelled()) - - def testCancelledStreamRequestStreamResponse(self): - for name, test_messages_sequence in ( - six.iteritems(self.digest.stream_stream_messages_sequences)): - for test_messages in test_messages_sequence: - requests = test_messages.requests() - - with self.control.pause(): - response_iterator = self.stub.inline_stream_in_stream_out( - name, iter(requests), test_constants.SHORT_TIMEOUT) - response_iterator.cancel() - - with self.assertRaises(future.CancelledError): - next(response_iterator) diff --git a/src/python/grpcio/tests/unit/framework/face/testing/interfaces.py b/src/python/grpcio/tests/unit/framework/face/testing/interfaces.py deleted file mode 100644 index 8a25f89c8831a03535fd0a9cb6b2f6d396d563b0..0000000000000000000000000000000000000000 --- a/src/python/grpcio/tests/unit/framework/face/testing/interfaces.py +++ /dev/null @@ -1,118 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Interfaces implemented by data sets used in Face-layer tests.""" - -import abc - -import six - -# cardinality is referenced from specification in this module. -from grpc.framework.common import cardinality # pylint: disable=unused-import - - -class Method(six.with_metaclass(abc.ABCMeta)): - """An RPC method to be used in tests of RPC implementations.""" - - @abc.abstractmethod - def name(self): - """Identify the name of the method. - - Returns: - The name of the method. - """ - raise NotImplementedError() - - @abc.abstractmethod - def cardinality(self): - """Identify the cardinality of the method. - - Returns: - A cardinality.Cardinality value describing the streaming semantics of the - method. - """ - raise NotImplementedError() - - @abc.abstractmethod - def request_class(self): - """Identify the class used for the method's request objects. - - Returns: - The class object of the class to which the method's request objects - belong. - """ - raise NotImplementedError() - - @abc.abstractmethod - def response_class(self): - """Identify the class used for the method's response objects. - - Returns: - The class object of the class to which the method's response objects - belong. - """ - raise NotImplementedError() - - @abc.abstractmethod - def serialize_request(self, request): - """Serialize the given request object. - - Args: - request: A request object appropriate for this method. - """ - raise NotImplementedError() - - @abc.abstractmethod - def deserialize_request(self, serialized_request): - """Synthesize a request object from a given bytestring. - - Args: - serialized_request: A bytestring deserializable into a request object - appropriate for this method. - """ - raise NotImplementedError() - - @abc.abstractmethod - def serialize_response(self, response): - """Serialize the given response object. - - Args: - response: A response object appropriate for this method. - """ - raise NotImplementedError() - - @abc.abstractmethod - def deserialize_response(self, serialized_response): - """Synthesize a response object from a given bytestring. - - Args: - serialized_response: A bytestring deserializable into a response object - appropriate for this method. - """ - raise NotImplementedError() diff --git a/src/python/grpcio/tests/unit/framework/face/testing/service.py b/src/python/grpcio/tests/unit/framework/face/testing/service.py deleted file mode 100644 index 3e4228cc07065a3c34061bc636df3ea64eb631bc..0000000000000000000000000000000000000000 --- a/src/python/grpcio/tests/unit/framework/face/testing/service.py +++ /dev/null @@ -1,321 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Private interfaces implemented by data sets used in Face-layer tests.""" - -import abc - -import six - -# interfaces is referenced from specification in this module. -from grpc.framework.face import interfaces as face_interfaces # pylint: disable=unused-import -from tests.unit.framework.face.testing import interfaces - - -class UnaryUnaryTestMethodImplementation(six.with_metaclass(abc.ABCMeta, interfaces.Method)): - """A controllable implementation of a unary-unary RPC method.""" - - @abc.abstractmethod - def service(self, request, response_callback, context, control): - """Services an RPC that accepts one message and produces one message. - - Args: - request: The single request message for the RPC. - response_callback: A callback to be called to accept the response message - of the RPC. - context: An face_interfaces.RpcContext object. - control: A test_control.Control to control execution of this method. - - Raises: - abandonment.Abandoned: May or may not be raised when the RPC has been - aborted. - """ - raise NotImplementedError() - - -class UnaryUnaryTestMessages(six.with_metaclass(abc.ABCMeta)): - """A type for unary-request-unary-response message pairings.""" - - @abc.abstractmethod - def request(self): - """Affords a request message. - - Implementations of this method should return a different message with each - call so that multiple test executions of the test method may be made with - different inputs. - - Returns: - A request message. - """ - raise NotImplementedError() - - @abc.abstractmethod - def verify(self, request, response, test_case): - """Verifies that the computed response matches the given request. - - Args: - request: A request message. - response: A response message. - test_case: A unittest.TestCase object affording useful assertion methods. - - Raises: - AssertionError: If the request and response do not match, indicating that - there was some problem executing the RPC under test. - """ - raise NotImplementedError() - - -class UnaryStreamTestMethodImplementation(six.with_metaclass(abc.ABCMeta, interfaces.Method)): - """A controllable implementation of a unary-stream RPC method.""" - - @abc.abstractmethod - def service(self, request, response_consumer, context, control): - """Services an RPC that takes one message and produces a stream of messages. - - Args: - request: The single request message for the RPC. - response_consumer: A stream.Consumer to be called to accept the response - messages of the RPC. - context: A face_interfaces.RpcContext object. - control: A test_control.Control to control execution of this method. - - Raises: - abandonment.Abandoned: May or may not be raised when the RPC has been - aborted. - """ - raise NotImplementedError() - - -class UnaryStreamTestMessages(six.with_metaclass(abc.ABCMeta)): - """A type for unary-request-stream-response message pairings.""" - - @abc.abstractmethod - def request(self): - """Affords a request message. - - Implementations of this method should return a different message with each - call so that multiple test executions of the test method may be made with - different inputs. - - Returns: - A request message. - """ - raise NotImplementedError() - - @abc.abstractmethod - def verify(self, request, responses, test_case): - """Verifies that the computed responses match the given request. - - Args: - request: A request message. - responses: A sequence of response messages. - test_case: A unittest.TestCase object affording useful assertion methods. - - Raises: - AssertionError: If the request and responses do not match, indicating that - there was some problem executing the RPC under test. - """ - raise NotImplementedError() - - -class StreamUnaryTestMethodImplementation(six.with_metaclass(abc.ABCMeta, interfaces.Method)): - """A controllable implementation of a stream-unary RPC method.""" - - @abc.abstractmethod - def service(self, response_callback, context, control): - """Services an RPC that takes a stream of messages and produces one message. - - Args: - response_callback: A callback to be called to accept the response message - of the RPC. - context: A face_interfaces.RpcContext object. - control: A test_control.Control to control execution of this method. - - Returns: - A stream.Consumer with which to accept the request messages of the RPC. - The consumer returned from this method may or may not be invoked to - completion: in the case of RPC abortion, RPC Framework will simply stop - passing messages to this object. Implementations must not assume that - this object will be called to completion of the request stream or even - called at all. - - Raises: - abandonment.Abandoned: May or may not be raised when the RPC has been - aborted. - """ - raise NotImplementedError() - - -class StreamUnaryTestMessages(six.with_metaclass(abc.ABCMeta)): - """A type for stream-request-unary-response message pairings.""" - - @abc.abstractmethod - def requests(self): - """Affords a sequence of request messages. - - Implementations of this method should return a different sequences with each - call so that multiple test executions of the test method may be made with - different inputs. - - Returns: - A sequence of request messages. - """ - raise NotImplementedError() - - @abc.abstractmethod - def verify(self, requests, response, test_case): - """Verifies that the computed response matches the given requests. - - Args: - requests: A sequence of request messages. - response: A response message. - test_case: A unittest.TestCase object affording useful assertion methods. - - Raises: - AssertionError: If the requests and response do not match, indicating that - there was some problem executing the RPC under test. - """ - raise NotImplementedError() - - -class StreamStreamTestMethodImplementation(six.with_metaclass(abc.ABCMeta, interfaces.Method)): - """A controllable implementation of a stream-stream RPC method.""" - - @abc.abstractmethod - def service(self, response_consumer, context, control): - """Services an RPC that accepts and produces streams of messages. - - Args: - response_consumer: A stream.Consumer to be called to accept the response - messages of the RPC. - context: A face_interfaces.RpcContext object. - control: A test_control.Control to control execution of this method. - - Returns: - A stream.Consumer with which to accept the request messages of the RPC. - The consumer returned from this method may or may not be invoked to - completion: in the case of RPC abortion, RPC Framework will simply stop - passing messages to this object. Implementations must not assume that - this object will be called to completion of the request stream or even - called at all. - - Raises: - abandonment.Abandoned: May or may not be raised when the RPC has been - aborted. - """ - raise NotImplementedError() - - -class StreamStreamTestMessages(six.with_metaclass(abc.ABCMeta)): - """A type for stream-request-stream-response message pairings.""" - - @abc.abstractmethod - def requests(self): - """Affords a sequence of request messages. - - Implementations of this method should return a different sequences with each - call so that multiple test executions of the test method may be made with - different inputs. - - Returns: - A sequence of request messages. - """ - raise NotImplementedError() - - @abc.abstractmethod - def verify(self, requests, responses, test_case): - """Verifies that the computed response matches the given requests. - - Args: - requests: A sequence of request messages. - responses: A sequence of response messages. - test_case: A unittest.TestCase object affording useful assertion methods. - - Raises: - AssertionError: If the requests and responses do not match, indicating - that there was some problem executing the RPC under test. - """ - raise NotImplementedError() - - -class TestService(six.with_metaclass(abc.ABCMeta)): - """A specification of implemented RPC methods to use in tests.""" - - @abc.abstractmethod - def name(self): - """Identifies the RPC service name used during the test. - - Returns: - The RPC service name to be used for the test. - """ - raise NotImplementedError() - - @abc.abstractmethod - def unary_unary_scenarios(self): - """Affords unary-request-unary-response test methods and their messages. - - Returns: - A dict from method name to pair. The first element of the pair - is a UnaryUnaryTestMethodImplementation object and the second element - is a sequence of UnaryUnaryTestMethodMessages objects. - """ - raise NotImplementedError() - - @abc.abstractmethod - def unary_stream_scenarios(self): - """Affords unary-request-stream-response test methods and their messages. - - Returns: - A dict from method name to pair. The first element of the pair is a - UnaryStreamTestMethodImplementation object and the second element is a - sequence of UnaryStreamTestMethodMessages objects. - """ - raise NotImplementedError() - - @abc.abstractmethod - def stream_unary_scenarios(self): - """Affords stream-request-unary-response test methods and their messages. - - Returns: - A dict from method name to pair. The first element of the pair is a - StreamUnaryTestMethodImplementation object and the second element is a - sequence of StreamUnaryTestMethodMessages objects. - """ - raise NotImplementedError() - - @abc.abstractmethod - def stream_stream_scenarios(self): - """Affords stream-request-stream-response test methods and their messages. - - Returns: - A dict from method name to pair. The first element of the pair is a - StreamStreamTestMethodImplementation object and the second element is a - sequence of StreamStreamTestMethodMessages objects. - """ - raise NotImplementedError() diff --git a/src/python/grpcio/tests/unit/framework/face/testing/stock_service.py b/src/python/grpcio/tests/unit/framework/face/testing/stock_service.py deleted file mode 100644 index 117c723f79111f55535d06d71a280663371ba63b..0000000000000000000000000000000000000000 --- a/src/python/grpcio/tests/unit/framework/face/testing/stock_service.py +++ /dev/null @@ -1,374 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Examples of Python implementations of the stock.proto Stock service.""" - -from grpc.framework.common import cardinality -from grpc.framework.foundation import abandonment -from grpc.framework.foundation import stream -from grpc.framework.foundation import stream_util -from tests.unit.framework.face.testing import service -from tests.unit._junkdrawer import stock_pb2 - -SYMBOL_FORMAT = 'test symbol:%03d' -STREAM_LENGTH = 400 - -# A test-appropriate security-pricing function. :-P -_price = lambda symbol_name: float(hash(symbol_name) % 4096) - - -def _get_last_trade_price(stock_request, stock_reply_callback, control, active): - """A unary-request, unary-response test method.""" - control.control() - if active(): - stock_reply_callback( - stock_pb2.StockReply( - symbol=stock_request.symbol, price=_price(stock_request.symbol))) - else: - raise abandonment.Abandoned() - - -def _get_last_trade_price_multiple(stock_reply_consumer, control, active): - """A stream-request, stream-response test method.""" - def stock_reply_for_stock_request(stock_request): - control.control() - if active(): - return stock_pb2.StockReply( - symbol=stock_request.symbol, price=_price(stock_request.symbol)) - else: - raise abandonment.Abandoned() - return stream_util.TransformingConsumer( - stock_reply_for_stock_request, stock_reply_consumer) - - -def _watch_future_trades(stock_request, stock_reply_consumer, control, active): - """A unary-request, stream-response test method.""" - base_price = _price(stock_request.symbol) - for index in range(stock_request.num_trades_to_watch): - control.control() - if active(): - stock_reply_consumer.consume( - stock_pb2.StockReply( - symbol=stock_request.symbol, price=base_price + index)) - else: - raise abandonment.Abandoned() - stock_reply_consumer.terminate() - - -def _get_highest_trade_price(stock_reply_callback, control, active): - """A stream-request, unary-response test method.""" - - class StockRequestConsumer(stream.Consumer): - """Keeps an ongoing record of the most valuable symbol yet consumed.""" - - def __init__(self): - self._symbol = None - self._price = None - - def consume(self, stock_request): - control.control() - if active(): - if self._price is None: - self._symbol = stock_request.symbol - self._price = _price(stock_request.symbol) - else: - candidate_price = _price(stock_request.symbol) - if self._price < candidate_price: - self._symbol = stock_request.symbol - self._price = candidate_price - - def terminate(self): - control.control() - if active(): - if self._symbol is None: - raise ValueError() - else: - stock_reply_callback( - stock_pb2.StockReply(symbol=self._symbol, price=self._price)) - self._symbol = None - self._price = None - - def consume_and_terminate(self, stock_request): - control.control() - if active(): - if self._price is None: - stock_reply_callback( - stock_pb2.StockReply( - symbol=stock_request.symbol, - price=_price(stock_request.symbol))) - else: - candidate_price = _price(stock_request.symbol) - if self._price < candidate_price: - stock_reply_callback( - stock_pb2.StockReply( - symbol=stock_request.symbol, price=candidate_price)) - else: - stock_reply_callback( - stock_pb2.StockReply( - symbol=self._symbol, price=self._price)) - - self._symbol = None - self._price = None - - return StockRequestConsumer() - - -class GetLastTradePrice(service.UnaryUnaryTestMethodImplementation): - """GetLastTradePrice for use in tests.""" - - def name(self): - return 'GetLastTradePrice' - - def cardinality(self): - return cardinality.Cardinality.UNARY_UNARY - - def request_class(self): - return stock_pb2.StockRequest - - def response_class(self): - return stock_pb2.StockReply - - def serialize_request(self, request): - return request.SerializeToString() - - def deserialize_request(self, serialized_request): - return stock_pb2.StockRequest.FromString(serialized_request) - - def serialize_response(self, response): - return response.SerializeToString() - - def deserialize_response(self, serialized_response): - return stock_pb2.StockReply.FromString(serialized_response) - - def service(self, request, response_callback, context, control): - _get_last_trade_price( - request, response_callback, control, context.is_active) - - -class GetLastTradePriceMessages(service.UnaryUnaryTestMessages): - - def __init__(self): - self._index = 0 - - def request(self): - symbol = SYMBOL_FORMAT % self._index - self._index += 1 - return stock_pb2.StockRequest(symbol=symbol) - - def verify(self, request, response, test_case): - test_case.assertEqual(request.symbol, response.symbol) - test_case.assertEqual(_price(request.symbol), response.price) - - -class GetLastTradePriceMultiple(service.StreamStreamTestMethodImplementation): - """GetLastTradePriceMultiple for use in tests.""" - - def name(self): - return 'GetLastTradePriceMultiple' - - def cardinality(self): - return cardinality.Cardinality.STREAM_STREAM - - def request_class(self): - return stock_pb2.StockRequest - - def response_class(self): - return stock_pb2.StockReply - - def serialize_request(self, request): - return request.SerializeToString() - - def deserialize_request(self, serialized_request): - return stock_pb2.StockRequest.FromString(serialized_request) - - def serialize_response(self, response): - return response.SerializeToString() - - def deserialize_response(self, serialized_response): - return stock_pb2.StockReply.FromString(serialized_response) - - def service(self, response_consumer, context, control): - return _get_last_trade_price_multiple( - response_consumer, control, context.is_active) - - -class GetLastTradePriceMultipleMessages(service.StreamStreamTestMessages): - """Pairs of message streams for use with GetLastTradePriceMultiple.""" - - def __init__(self): - self._index = 0 - - def requests(self): - base_index = self._index - self._index += 1 - return [ - stock_pb2.StockRequest(symbol=SYMBOL_FORMAT % (base_index + index)) - for index in range(STREAM_LENGTH)] - - def verify(self, requests, responses, test_case): - test_case.assertEqual(len(requests), len(responses)) - for stock_request, stock_reply in zip(requests, responses): - test_case.assertEqual(stock_request.symbol, stock_reply.symbol) - test_case.assertEqual(_price(stock_request.symbol), stock_reply.price) - - -class WatchFutureTrades(service.UnaryStreamTestMethodImplementation): - """WatchFutureTrades for use in tests.""" - - def name(self): - return 'WatchFutureTrades' - - def cardinality(self): - return cardinality.Cardinality.UNARY_STREAM - - def request_class(self): - return stock_pb2.StockRequest - - def response_class(self): - return stock_pb2.StockReply - - def serialize_request(self, request): - return request.SerializeToString() - - def deserialize_request(self, serialized_request): - return stock_pb2.StockRequest.FromString(serialized_request) - - def serialize_response(self, response): - return response.SerializeToString() - - def deserialize_response(self, serialized_response): - return stock_pb2.StockReply.FromString(serialized_response) - - def service(self, request, response_consumer, context, control): - _watch_future_trades(request, response_consumer, control, context.is_active) - - -class WatchFutureTradesMessages(service.UnaryStreamTestMessages): - """Pairs of a single request message and a sequence of response messages.""" - - def __init__(self): - self._index = 0 - - def request(self): - symbol = SYMBOL_FORMAT % self._index - self._index += 1 - return stock_pb2.StockRequest( - symbol=symbol, num_trades_to_watch=STREAM_LENGTH) - - def verify(self, request, responses, test_case): - test_case.assertEqual(STREAM_LENGTH, len(responses)) - base_price = _price(request.symbol) - for index, response in enumerate(responses): - test_case.assertEqual(base_price + index, response.price) - - -class GetHighestTradePrice(service.StreamUnaryTestMethodImplementation): - """GetHighestTradePrice for use in tests.""" - - def name(self): - return 'GetHighestTradePrice' - - def cardinality(self): - return cardinality.Cardinality.STREAM_UNARY - - def request_class(self): - return stock_pb2.StockRequest - - def response_class(self): - return stock_pb2.StockReply - - def serialize_request(self, request): - return request.SerializeToString() - - def deserialize_request(self, serialized_request): - return stock_pb2.StockRequest.FromString(serialized_request) - - def serialize_response(self, response): - return response.SerializeToString() - - def deserialize_response(self, serialized_response): - return stock_pb2.StockReply.FromString(serialized_response) - - def service(self, response_callback, context, control): - return _get_highest_trade_price( - response_callback, control, context.is_active) - - -class GetHighestTradePriceMessages(service.StreamUnaryTestMessages): - - def requests(self): - return [ - stock_pb2.StockRequest(symbol=SYMBOL_FORMAT % index) - for index in range(STREAM_LENGTH)] - - def verify(self, requests, response, test_case): - price = None - symbol = None - for stock_request in requests: - current_symbol = stock_request.symbol - current_price = _price(current_symbol) - if price is None or price < current_price: - price = current_price - symbol = current_symbol - test_case.assertEqual(price, response.price) - test_case.assertEqual(symbol, response.symbol) - - -class StockTestService(service.TestService): - """A corpus of test data with one method of each RPC cardinality.""" - - def name(self): - return 'Stock' - - def unary_unary_scenarios(self): - return { - 'GetLastTradePrice': ( - GetLastTradePrice(), [GetLastTradePriceMessages()]), - } - - def unary_stream_scenarios(self): - return { - 'WatchFutureTrades': ( - WatchFutureTrades(), [WatchFutureTradesMessages()]), - } - - def stream_unary_scenarios(self): - return { - 'GetHighestTradePrice': ( - GetHighestTradePrice(), [GetHighestTradePriceMessages()]) - } - - def stream_stream_scenarios(self): - return { - 'GetLastTradePriceMultiple': ( - GetLastTradePriceMultiple(), [GetLastTradePriceMultipleMessages()]), - } - - -STOCK_TEST_SERVICE = StockTestService() diff --git a/src/python/grpcio/tests/unit/framework/face/testing/test_case.py b/src/python/grpcio/tests/unit/framework/face/testing/test_case.py deleted file mode 100644 index f29d400844887d73dbb0d25d75eec2137490abaf..0000000000000000000000000000000000000000 --- a/src/python/grpcio/tests/unit/framework/face/testing/test_case.py +++ /dev/null @@ -1,81 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Tools for creating tests of implementations of the Face layer.""" - -import abc - -import six - -# face_interfaces and interfaces are referenced in specification in this module. -from grpc.framework.face import interfaces as face_interfaces # pylint: disable=unused-import -from tests.unit.framework.face.testing import interfaces # pylint: disable=unused-import - - -class FaceTestCase(six.with_metaclass(abc.ABCMeta)): - """Describes a test of the Face Layer of RPC Framework. - - Concrete subclasses must also inherit from unittest.TestCase and from at least - one class that defines test methods. - """ - - @abc.abstractmethod - def set_up_implementation( - self, name, methods, method_implementations, - multi_method_implementation): - """Instantiates the Face Layer implementation under test. - - Args: - name: The service name to be used in the test. - methods: A sequence of interfaces.Method objects describing the RPC - methods that will be called during the test. - method_implementations: A dictionary from string RPC method name to - face_interfaces.MethodImplementation object specifying - implementation of an RPC method. - multi_method_implementation: An face_interfaces.MultiMethodImplementation - or None. - - Returns: - A sequence of length two the first element of which is a - face_interfaces.GenericStub (backed by the given method - implementations), and the second element of which is an arbitrary memo - object to be kept and passed to tearDownImplementation at the conclusion - of the test. - """ - raise NotImplementedError() - - @abc.abstractmethod - def tear_down_implementation(self, memo): - """Destroys the Face layer implementation under test. - - Args: - memo: The object from the second position of the return value of - set_up_implementation. - """ - raise NotImplementedError() diff --git a/src/ruby/bin/interop/interop_server.rb b/src/ruby/bin/interop/interop_server.rb deleted file mode 100755 index c6b0d00ec6361daa69d0460b267c516b82d7f602..0000000000000000000000000000000000000000 --- a/src/ruby/bin/interop/interop_server.rb +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env ruby - -# 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. - -# ####################################################################### -# DEPRECATED: The behaviour in this file has been moved to pb/test/server.rb -# -# This file remains to support existing tools and scripts that use it. -# ###################################################################### -# -# interop_server is a Testing app that runs a gRPC interop testing server. -# -# It helps validate interoperation b/w gRPC in different environments -# -# Helps validate interoperation b/w different gRPC implementations. -# -# Usage: $ path/to/interop_server.rb --port - -this_dir = File.expand_path(File.dirname(__FILE__)) -pb_dir = File.join(File.dirname(File.dirname(this_dir)), 'pb') -$LOAD_PATH.unshift(pb_dir) unless $LOAD_PATH.include?(pb_dir) - -require 'test/server' diff --git a/src/ruby/ext/grpc/extconf.rb b/src/ruby/ext/grpc/extconf.rb index 82b6d313c866208127ad20f105ac8484328eaa09..07f7bb93b8a04ce1fa0f23b8369653a89fbeda63 100644 --- a/src/ruby/ext/grpc/extconf.rb +++ b/src/ruby/ext/grpc/extconf.rb @@ -60,35 +60,27 @@ grpc_root = File.expand_path(File.join(File.dirname(__FILE__), '../../../..')) grpc_config = ENV['GRPC_CONFIG'] || 'opt' -if ENV.key?('GRPC_LIB_DIR') - grpc_lib_dir = File.join(grpc_root, ENV['GRPC_LIB_DIR']) -else - grpc_lib_dir = File.join(grpc_root, 'libs', grpc_config) -end - ENV['MACOSX_DEPLOYMENT_TARGET'] = '10.7' -unless File.exist?(File.join(grpc_lib_dir, 'libgrpc.a')) or windows - ENV['AR'] = RbConfig::CONFIG['AR'] + ' rcs' - ENV['CC'] = RbConfig::CONFIG['CC'] - ENV['LD'] = ENV['CC'] +ENV['AR'] = RbConfig::CONFIG['AR'] + ' rcs' +ENV['CC'] = RbConfig::CONFIG['CC'] +ENV['LD'] = ENV['CC'] - ENV['AR'] = 'libtool -o' if RUBY_PLATFORM =~ /darwin/ +ENV['AR'] = 'libtool -o' if RUBY_PLATFORM =~ /darwin/ - ENV['EMBED_OPENSSL'] = 'true' - ENV['EMBED_ZLIB'] = 'true' - ENV['ARCH_FLAGS'] = RbConfig::CONFIG['ARCH_FLAG'] - ENV['ARCH_FLAGS'] = '-arch i386 -arch x86_64' if RUBY_PLATFORM =~ /darwin/ - ENV['CFLAGS'] = '-DGPR_BACKWARDS_COMPATIBILITY_MODE' +ENV['EMBED_OPENSSL'] = 'true' +ENV['EMBED_ZLIB'] = 'true' +ENV['ARCH_FLAGS'] = RbConfig::CONFIG['ARCH_FLAG'] +ENV['ARCH_FLAGS'] = '-arch i386 -arch x86_64' if RUBY_PLATFORM =~ /darwin/ +ENV['CFLAGS'] = '-DGPR_BACKWARDS_COMPATIBILITY_MODE' - output_dir = File.expand_path(RbConfig::CONFIG['topdir']) - grpc_lib_dir = File.join(output_dir, 'libs', grpc_config) - ENV['BUILDDIR'] = output_dir +output_dir = File.expand_path(RbConfig::CONFIG['topdir']) +grpc_lib_dir = File.join(output_dir, 'libs', grpc_config) +ENV['BUILDDIR'] = output_dir - puts 'Building internal gRPC into ' + grpc_lib_dir - system("make -j -C #{grpc_root} #{grpc_lib_dir}/libgrpc.a CONFIG=#{grpc_config}") - exit 1 unless $? == 0 -end +puts 'Building internal gRPC into ' + grpc_lib_dir +system("make -j -C #{grpc_root} #{grpc_lib_dir}/libgrpc.a CONFIG=#{grpc_config}") +exit 1 unless $? == 0 $CFLAGS << ' -I' + File.join(grpc_root, 'include') $LDFLAGS << ' ' + File.join(grpc_lib_dir, 'libgrpc.a') unless windows diff --git a/src/ruby/ext/grpc/rb_call.c b/src/ruby/ext/grpc/rb_call.c index f5fdbb2ffd721967dacdee7c26b000395690e1e5..48c49a21e91d5c6a52818b5a847c877c0598e1f3 100644 --- a/src/ruby/ext/grpc/rb_call.c +++ b/src/ruby/ext/grpc/rb_call.c @@ -214,6 +214,35 @@ static VALUE grpc_rb_call_get_peer(VALUE self) { return res; } +/* Called to obtain the x509 cert of an authenticated peer. */ +static VALUE grpc_rb_call_get_peer_cert(VALUE self) { + grpc_call *call = NULL; + VALUE res = Qnil; + grpc_auth_context *ctx = NULL; + TypedData_Get_Struct(self, grpc_call, &grpc_call_data_type, call); + + ctx = grpc_call_auth_context(call); + + if (!ctx || !grpc_auth_context_peer_is_authenticated(ctx)) { + return Qnil; + } + + { + grpc_auth_property_iterator it = + grpc_auth_context_find_properties_by_name(ctx, GRPC_X509_PEM_CERT_PROPERTY_NAME); + const grpc_auth_property *prop = grpc_auth_property_iterator_next(&it); + if (prop == NULL) { + return Qnil; + } + + res = rb_str_new2(prop->value); + } + + grpc_auth_context_release(ctx); + + return res; +} + /* call-seq: status = call.status @@ -861,6 +890,7 @@ void Init_grpc_call() { rb_define_method(grpc_rb_cCall, "run_batch", grpc_rb_call_run_batch, 4); rb_define_method(grpc_rb_cCall, "cancel", grpc_rb_call_cancel, 0); rb_define_method(grpc_rb_cCall, "peer", grpc_rb_call_get_peer, 0); + rb_define_method(grpc_rb_cCall, "peer_cert", grpc_rb_call_get_peer_cert, 0); rb_define_method(grpc_rb_cCall, "status", grpc_rb_call_get_status, 0); rb_define_method(grpc_rb_cCall, "status=", grpc_rb_call_set_status, 1); rb_define_method(grpc_rb_cCall, "metadata", grpc_rb_call_get_metadata, 0); diff --git a/src/ruby/ext/grpc/rb_channel_credentials.c b/src/ruby/ext/grpc/rb_channel_credentials.c index 10391bc96359c98e3c837ff45d1f2a7101c9944c..09bd3093a94d90c4edeb7414c86592feaf0b150f 100644 --- a/src/ruby/ext/grpc/rb_channel_credentials.c +++ b/src/ruby/ext/grpc/rb_channel_credentials.c @@ -31,6 +31,8 @@ * */ +#include <string.h> + #include <ruby/ruby.h> #include "rb_grpc_imports.generated.h" #include "rb_channel_credentials.h" @@ -39,6 +41,7 @@ #include <grpc/grpc.h> #include <grpc/grpc_security.h> +#include <grpc/support/alloc.h> #include <grpc/support/log.h> #include "rb_call_credentials.h" @@ -48,6 +51,8 @@ grpc_channel_credentials. */ static VALUE grpc_rb_cChannelCredentials = Qnil; +static char *pem_root_certs = NULL; + /* grpc_rb_channel_credentials wraps a grpc_channel_credentials. It provides a * mark object that is used to hold references to any objects used to create * the credentials. */ @@ -236,6 +241,25 @@ static VALUE grpc_rb_channel_credentials_compose(int argc, VALUE *argv, return grpc_rb_wrap_channel_credentials(creds, mark); } +static grpc_ssl_roots_override_result get_ssl_roots_override( + char **pem_root_certs_ptr) { + *pem_root_certs_ptr = pem_root_certs; + if (pem_root_certs == NULL) { + return GRPC_SSL_ROOTS_OVERRIDE_FAIL; + } else { + return GRPC_SSL_ROOTS_OVERRIDE_OK; + } +} + +static VALUE grpc_rb_set_default_roots_pem(VALUE self, VALUE roots) { + char *roots_ptr = StringValueCStr(roots); + size_t length = strlen(roots_ptr); + (void)self; + pem_root_certs = gpr_malloc((length + 1) * sizeof(char)); + memcpy(pem_root_certs, roots_ptr, length + 1); + return Qnil; +} + void Init_grpc_channel_credentials() { grpc_rb_cChannelCredentials = rb_define_class_under(grpc_rb_mGrpcCore, "ChannelCredentials", rb_cObject); @@ -251,6 +275,11 @@ void Init_grpc_channel_credentials() { grpc_rb_channel_credentials_init_copy, 1); rb_define_method(grpc_rb_cChannelCredentials, "compose", grpc_rb_channel_credentials_compose, -1); + rb_define_module_function(grpc_rb_cChannelCredentials, + "set_default_roots_pem", + grpc_rb_set_default_roots_pem, 1); + + grpc_set_ssl_roots_override_callback(get_ssl_roots_override); id_pem_cert_chain = rb_intern("__pem_cert_chain"); id_pem_private_key = rb_intern("__pem_private_key"); diff --git a/src/ruby/ext/grpc/rb_grpc_imports.generated.c b/src/ruby/ext/grpc/rb_grpc_imports.generated.c index e2068d752aba6567247e53544b3a507f3a3cf634..bc43f9d36b57aef34a7971d9cf4750474e060ca5 100644 --- a/src/ruby/ext/grpc/rb_grpc_imports.generated.c +++ b/src/ruby/ext/grpc/rb_grpc_imports.generated.c @@ -124,6 +124,7 @@ grpc_tracer_set_enabled_type grpc_tracer_set_enabled_import; 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_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; @@ -389,6 +390,7 @@ void grpc_rb_load_imports(HMODULE library) { grpc_header_key_is_legal_import = (grpc_header_key_is_legal_type) GetProcAddress(library, "grpc_header_key_is_legal"); 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_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 c8d21333ba2906c756cf52364bc48a8a1001bae9..b67361ca25b96988054831aec05c924aa73017b9 100644 --- a/src/ruby/ext/grpc/rb_grpc_imports.generated.h +++ b/src/ruby/ext/grpc/rb_grpc_imports.generated.h @@ -322,6 +322,9 @@ extern grpc_header_nonbin_value_is_legal_type grpc_header_nonbin_value_is_legal_ typedef int(*grpc_is_binary_header_type)(const char *key, size_t length); extern grpc_is_binary_header_type grpc_is_binary_header_import; #define grpc_is_binary_header 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 const grpc_auth_property *(*grpc_auth_property_iterator_next_type)(grpc_auth_property_iterator *it); extern grpc_auth_property_iterator_next_type grpc_auth_property_iterator_next_import; #define grpc_auth_property_iterator_next grpc_auth_property_iterator_next_import diff --git a/src/ruby/lib/grpc.rb b/src/ruby/lib/grpc.rb index 4e23cd7af2d94593cb8bc15d8ccc6578ca5470ab..79fa705b1c9c812558e8edb21b5a6830d402bef2 100644 --- a/src/ruby/lib/grpc.rb +++ b/src/ruby/lib/grpc.rb @@ -28,17 +28,22 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ssl_roots_path = File.expand_path('../../../../etc/roots.pem', __FILE__) -unless ENV['GRPC_DEFAULT_SSL_ROOTS_FILE_PATH'] - ENV['GRPC_DEFAULT_SSL_ROOTS_FILE_PATH'] = ssl_roots_path -end -require 'grpc/errors' -require 'grpc/grpc' -require 'grpc/logconfig' -require 'grpc/notifier' -require 'grpc/version' -require 'grpc/core/time_consts' -require 'grpc/generic/active_call' -require 'grpc/generic/client_stub' -require 'grpc/generic/service' -require 'grpc/generic/rpc_server' +require_relative 'grpc/errors' +require_relative 'grpc/grpc' +require_relative 'grpc/logconfig' +require_relative 'grpc/notifier' +require_relative 'grpc/version' +require_relative 'grpc/core/time_consts' +require_relative 'grpc/generic/active_call' +require_relative 'grpc/generic/client_stub' +require_relative 'grpc/generic/service' +require_relative 'grpc/generic/rpc_server' + +begin + file = File.open(ssl_roots_path) + roots = file.read + GRPC::Core::ChannelCredentials.set_default_roots_pem roots +ensure + file.close +end diff --git a/src/ruby/lib/grpc/core/time_consts.rb b/src/ruby/lib/grpc/core/time_consts.rb index 3b8c2daa07e616d181801e5f2d4d65f684d61d1c..5be7ed2cb7948061eef014edda6c80645fd6a624 100644 --- a/src/ruby/lib/grpc/core/time_consts.rb +++ b/src/ruby/lib/grpc/core/time_consts.rb @@ -27,7 +27,7 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -require 'grpc/grpc' +require_relative '../grpc' # GRPC contains the General RPC module. module GRPC diff --git a/src/ruby/lib/grpc/errors.rb b/src/ruby/lib/grpc/errors.rb index 1d7588c18dfe7ba73a79b435c4c3d6acd846a199..a1dd1e3e9d8d18d8c87945b7fbbece5a21d73d8e 100644 --- a/src/ruby/lib/grpc/errors.rb +++ b/src/ruby/lib/grpc/errors.rb @@ -27,7 +27,7 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -require 'grpc/grpc' +require_relative './grpc' # GRPC contains the General RPC module. module GRPC diff --git a/src/ruby/lib/grpc/generic/active_call.rb b/src/ruby/lib/grpc/generic/active_call.rb index e80d24edc9b487993c368ee693d61b8685d91c64..ecf3cc3293559409a94d22c2fbb361fde2e53a22 100644 --- a/src/ruby/lib/grpc/generic/active_call.rb +++ b/src/ruby/lib/grpc/generic/active_call.rb @@ -28,7 +28,7 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. require 'forwardable' -require 'grpc/generic/bidi_call' +require_relative 'bidi_call' class Struct # BatchResult is the struct returned by calls to call#start_batch. @@ -59,7 +59,8 @@ module GRPC include Core::CallOps extend Forwardable attr_reader(:deadline) - def_delegators :@call, :cancel, :metadata, :write_flag, :write_flag= + def_delegators :@call, :cancel, :metadata, :write_flag, :write_flag=, + :peer, :peer_cert # client_invoke begins a client invocation. # @@ -472,7 +473,7 @@ module GRPC # SingleReqView limits access to an ActiveCall's methods for use in server # handlers that receive just one request. SingleReqView = view_class(:cancelled, :deadline, :metadata, - :output_metadata) + :output_metadata, :peer, :peer_cert) # MultiReqView limits access to an ActiveCall's methods for use in # server client_streamer handlers. diff --git a/src/ruby/lib/grpc/generic/bidi_call.rb b/src/ruby/lib/grpc/generic/bidi_call.rb index 6b9b7856933cb94dd86144b4f80ad9cc0b904f43..1f6d5f365d75c98011f4ef4c09ebc718431d78aa 100644 --- a/src/ruby/lib/grpc/generic/bidi_call.rb +++ b/src/ruby/lib/grpc/generic/bidi_call.rb @@ -28,7 +28,7 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. require 'forwardable' -require 'grpc/grpc' +require_relative '../grpc' # GRPC contains the General RPC module. module GRPC diff --git a/src/ruby/lib/grpc/generic/client_stub.rb b/src/ruby/lib/grpc/generic/client_stub.rb index a6bb92d72c847b34a4aafead9f297bc87697418a..68e167a69fcc08368a429661b5b6e96f91d00391 100644 --- a/src/ruby/lib/grpc/generic/client_stub.rb +++ b/src/ruby/lib/grpc/generic/client_stub.rb @@ -27,8 +27,8 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -require 'grpc/generic/active_call' -require 'grpc/version' +require_relative 'active_call' +require_relative '../version' # GRPC contains the General RPC module. module GRPC diff --git a/src/ruby/lib/grpc/generic/rpc_desc.rb b/src/ruby/lib/grpc/generic/rpc_desc.rb index dd90d8d91dca71e0da0b33a28afb4e5a13d149e3..cc21ffd3c5b77d715c0521f21f375fa60b00a99b 100644 --- a/src/ruby/lib/grpc/generic/rpc_desc.rb +++ b/src/ruby/lib/grpc/generic/rpc_desc.rb @@ -27,7 +27,7 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -require 'grpc/grpc' +require_relative '../grpc' # GRPC contains the General RPC module. module GRPC diff --git a/src/ruby/lib/grpc/generic/rpc_server.rb b/src/ruby/lib/grpc/generic/rpc_server.rb index 5ba77db17373893f7965969dc90406adab0017e7..7f3a38a9f46e51ff0720f555c1ba5e0e2b339e82 100644 --- a/src/ruby/lib/grpc/generic/rpc_server.rb +++ b/src/ruby/lib/grpc/generic/rpc_server.rb @@ -27,9 +27,9 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -require 'grpc/grpc' -require 'grpc/generic/active_call' -require 'grpc/generic/service' +require_relative '../grpc' +require_relative 'active_call' +require_relative 'service' require 'thread' # A global that contains signals the gRPC servers should respond to. @@ -332,10 +332,15 @@ module GRPC # the current thread to terminate it. def run_till_terminated GRPC.trap_signals - t = Thread.new { run } + stopped = false + t = Thread.new do + run + stopped = true + end wait_till_running loop do sleep SIGNAL_CHECK_PERIOD + break if stopped break unless GRPC.handle_signals end stop @@ -434,7 +439,6 @@ module GRPC begin an_rpc = @server.request_call(@cq, loop_tag, INFINITE_FUTURE) break if (!an_rpc.nil?) && an_rpc.call.nil? - active_call = new_active_server_call(an_rpc) unless active_call.nil? @pool.schedule(active_call) do |ac| diff --git a/src/ruby/lib/grpc/generic/service.rb b/src/ruby/lib/grpc/generic/service.rb index 410e1add7dc4c88a40f57289e1708050405f77aa..8e940b5b13ee4e0a0a9f9ace61f03e3b1840d01b 100644 --- a/src/ruby/lib/grpc/generic/service.rb +++ b/src/ruby/lib/grpc/generic/service.rb @@ -27,8 +27,8 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -require 'grpc/generic/client_stub' -require 'grpc/generic/rpc_desc' +require_relative 'client_stub' +require_relative 'rpc_desc' # GRPC contains the General RPC module. module GRPC diff --git a/src/ruby/lib/grpc/grpc.rb b/src/ruby/lib/grpc/grpc.rb index 250f6dd30d4875e518b4f8ce4f434d7b678d9664..b60a828d666f5229fc7a6c15e9ec1bd6a903a4b7 100644 --- a/src/ruby/lib/grpc/grpc.rb +++ b/src/ruby/lib/grpc/grpc.rb @@ -28,7 +28,7 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. begin - require "grpc/#{RUBY_VERSION.sub(/\.\d$/, '')}/grpc_c" + require_relative "#{RUBY_VERSION.sub(/\.\d$/, '')}/grpc_c" rescue LoadError - require 'grpc/grpc_c' + require_relative 'grpc_c' end diff --git a/src/ruby/pb/grpc/testing/metrics.rb b/src/ruby/pb/grpc/testing/metrics.rb new file mode 100644 index 0000000000000000000000000000000000000000..3b3c8cd61bbae356fa14ae003bea2b51901beb0e --- /dev/null +++ b/src/ruby/pb/grpc/testing/metrics.rb @@ -0,0 +1,28 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: grpc/testing/metrics.proto + +require 'google/protobuf' + +Google::Protobuf::DescriptorPool.generated_pool.build do + add_message "grpc.testing.GaugeResponse" do + optional :name, :string, 1 + oneof :value do + optional :long_value, :int64, 2 + optional :double_value, :double, 3 + optional :string_value, :string, 4 + end + end + add_message "grpc.testing.GaugeRequest" do + optional :name, :string, 1 + end + add_message "grpc.testing.EmptyMessage" do + end +end + +module Grpc + module Testing + GaugeResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.GaugeResponse").msgclass + GaugeRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.GaugeRequest").msgclass + EmptyMessage = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.EmptyMessage").msgclass + end +end diff --git a/src/ruby/pb/grpc/testing/metrics_services.rb b/src/ruby/pb/grpc/testing/metrics_services.rb new file mode 100644 index 0000000000000000000000000000000000000000..f5778bbbb191429587357c33726e19290382142a --- /dev/null +++ b/src/ruby/pb/grpc/testing/metrics_services.rb @@ -0,0 +1,27 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# Source: grpc/testing/metrics.proto for package 'grpc.testing' + +require 'grpc' +require 'grpc/testing/metrics' + +module Grpc + module Testing + module MetricsService + + # TODO: add proto service documentation here + class Service + + include GRPC::GenericService + + self.marshal_class_method = :encode + self.unmarshal_class_method = :decode + self.service_name = 'grpc.testing.MetricsService' + + rpc :GetAllGauges, EmptyMessage, stream(GaugeResponse) + rpc :GetGauge, GaugeRequest, GaugeResponse + end + + Stub = Service.rpc_stub_class + end + end +end diff --git a/src/ruby/pb/test/client.rb b/src/ruby/pb/test/client.rb index 2f83e67c5248226375d83f45054d44d25c638382..95b059a18ef6a95bde60396a755fbd2bd222cdba 100755 --- a/src/ruby/pb/test/client.rb +++ b/src/ruby/pb/test/client.rb @@ -38,23 +38,23 @@ # --server_port=<port> \ # --test_case=<testcase_name> +# These lines are required for the generated files to load grpc this_dir = File.expand_path(File.dirname(__FILE__)) lib_dir = File.join(File.dirname(File.dirname(this_dir)), 'lib') -pb_dir = File.dirname(File.dirname(this_dir)) +pb_dir = File.dirname(this_dir) $LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir) $LOAD_PATH.unshift(pb_dir) unless $LOAD_PATH.include?(pb_dir) -$LOAD_PATH.unshift(this_dir) unless $LOAD_PATH.include?(this_dir) require 'optparse' require 'logger' -require 'grpc' +require_relative '../../lib/grpc' require 'googleauth' require 'google/protobuf' -require 'test/proto/empty' -require 'test/proto/messages' -require 'test/proto/test_services' +require_relative 'proto/empty' +require_relative 'proto/messages' +require_relative 'proto/test_services' AUTH_ENV = Google::Auth::CredentialsLoader::ENV_VAR @@ -208,12 +208,10 @@ class NamedTests def empty_unary resp = @stub.empty_call(Empty.new) assert('empty_unary: invalid response') { resp.is_a?(Empty) } - p 'OK: empty_unary' end def large_unary perform_large_unary - p 'OK: large_unary' end def service_account_creds @@ -230,7 +228,6 @@ class NamedTests assert("#{__callee__}: bad oauth scope") do @args.oauth_scope.include?(resp.oauth_scope) end - p "OK: #{__callee__}" end def jwt_token_creds @@ -238,7 +235,6 @@ class NamedTests wanted_email = MultiJson.load(json_key)['client_email'] resp = perform_large_unary(fill_username: true) assert("#{__callee__}: bad username") { wanted_email == resp.username } - p "OK: #{__callee__}" end def compute_engine_creds @@ -247,7 +243,6 @@ class NamedTests assert("#{__callee__}: bad username") do @args.default_service_account == resp.username end - p "OK: #{__callee__}" end def oauth2_auth_token @@ -259,7 +254,6 @@ class NamedTests assert("#{__callee__}: bad oauth scope") do @args.oauth_scope.include?(resp.oauth_scope) end - p "OK: #{__callee__}" end def per_rpc_creds @@ -279,7 +273,6 @@ class NamedTests assert("#{__callee__}: bad oauth scope") do @args.oauth_scope.include?(resp.oauth_scope) end - p "OK: #{__callee__}" end def client_streaming @@ -293,7 +286,6 @@ class NamedTests assert("#{__callee__}: aggregate payload size is incorrect") do wanted_aggregate_size == resp.aggregated_payload_size end - p "OK: #{__callee__}" end def server_streaming @@ -311,7 +303,6 @@ class NamedTests :COMPRESSABLE == r.payload.type end end - p "OK: #{__callee__}" end def ping_pong @@ -319,7 +310,6 @@ class NamedTests ppp = PingPongPlayer.new(msg_sizes) resps = @stub.full_duplex_call(ppp.each_item) resps.each { |r| ppp.queue.push(r) } - p "OK: #{__callee__}" end def timeout_on_sleeping_server @@ -332,7 +322,6 @@ class NamedTests assert("#{__callee__}: status was wrong") do e.code == GRPC::Core::StatusCodes::DEADLINE_EXCEEDED end - p "OK: #{__callee__}" end def empty_stream @@ -346,7 +335,6 @@ class NamedTests assert("#{__callee__}: too many responses expected 0") do count == 0 end - p "OK: #{__callee__}" end def cancel_after_begin @@ -361,7 +349,6 @@ class NamedTests fail 'Should have raised GRPC:Cancelled' rescue GRPC::Cancelled assert("#{__callee__}: call operation should be CANCELLED") { op.cancelled } - p "OK: #{__callee__}" end def cancel_after_first_response @@ -374,7 +361,6 @@ class NamedTests rescue GRPC::Cancelled assert("#{__callee__}: call operation should be CANCELLED") { op.cancelled } op.wait - p "OK: #{__callee__}" end def all @@ -442,7 +428,7 @@ def parse_args opts.on('--use_tls USE_TLS', ['false', 'true'], 'require a secure connection?') do |v| args['secure'] = v == 'true' - end +p end opts.on('--use_test_ca USE_TEST_CA', ['false', 'true'], 'if secure, use the test certificate?') do |v| args['use_test_ca'] = v == 'true' @@ -464,6 +450,9 @@ def main opts = parse_args stub = create_stub(opts) NamedTests.new(stub, opts).method(opts['test_case']).call + p "OK: #{opts['test_case']}" end -main +if __FILE__ == $0 + main +end diff --git a/src/ruby/pb/test/server.rb b/src/ruby/pb/test/server.rb index 851e8152224188fa6b7eaeaf65b54b01a568c353..914c7cc79d7756c0b75a3e44f7a9699567a52546 100755 --- a/src/ruby/pb/test/server.rb +++ b/src/ruby/pb/test/server.rb @@ -39,7 +39,7 @@ this_dir = File.expand_path(File.dirname(__FILE__)) lib_dir = File.join(File.dirname(File.dirname(this_dir)), 'lib') -pb_dir = File.dirname(File.dirname(this_dir)) +pb_dir = File.dirname(this_dir) $LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir) $LOAD_PATH.unshift(pb_dir) unless $LOAD_PATH.include?(pb_dir) $LOAD_PATH.unshift(this_dir) unless $LOAD_PATH.include?(this_dir) diff --git a/src/ruby/qps/src/proto/grpc/testing/control.rb b/src/ruby/qps/src/proto/grpc/testing/control.rb index b81e22659d03f9cec9af7b280ae5cd6b762c1099..958fca320bca8c9d10c92c08f6969d74129f1bb4 100644 --- a/src/ruby/qps/src/proto/grpc/testing/control.rb +++ b/src/ruby/qps/src/proto/grpc/testing/control.rb @@ -34,6 +34,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do optional :histogram_params, :message, 12, "grpc.testing.HistogramParams" repeated :core_list, :int32, 13 optional :core_limit, :int32, 14 + optional :other_client_api, :string, 15 end add_message "grpc.testing.ClientStatus" do optional :stats, :message, 1, "grpc.testing.ClientStats" @@ -55,6 +56,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do optional :core_limit, :int32, 8 optional :payload_config, :message, 9, "grpc.testing.PayloadConfig" repeated :core_list, :int32, 10 + optional :other_server_api, :string, 11 end add_message "grpc.testing.ServerArgs" do oneof :argtype do @@ -111,11 +113,13 @@ Google::Protobuf::DescriptorPool.generated_pool.build do add_enum "grpc.testing.ClientType" do value :SYNC_CLIENT, 0 value :ASYNC_CLIENT, 1 + value :OTHER_CLIENT, 2 end add_enum "grpc.testing.ServerType" do value :SYNC_SERVER, 0 value :ASYNC_SERVER, 1 value :ASYNC_GENERIC_SERVER, 2 + value :OTHER_SERVER, 3 end add_enum "grpc.testing.RpcType" do value :UNARY, 0 diff --git a/src/ruby/stress/metrics_server.rb b/src/ruby/stress/metrics_server.rb new file mode 100644 index 0000000000000000000000000000000000000000..13638c4d211df470465481f532d518406a3e2f2c --- /dev/null +++ b/src/ruby/stress/metrics_server.rb @@ -0,0 +1,83 @@ +# 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. + +require_relative '../pb/grpc/testing/metrics.rb' +require_relative '../pb/grpc/testing/metrics_services.rb' + +class Gauge + def get_name + raise NoMethodError.new + end + + def get_type + raise NoMethodError.new + end + + def get_value + raise NoMethodError.new + end +end + +class MetricsServiceImpl < Grpc::Testing::MetricsService::Service + include Grpc::Testing + @gauges + + def initialize + @gauges = {} + end + + def register_gauge(gauge) + @gauges[gauge.get_name] = gauge + end + + def make_gauge_response(gauge) + response = GaugeResponse.new(:name => gauge.get_name) + value = gauge.get_value + case gauge.get_type + when 'long' + response.long_value = value + when 'double' + response.double_value = value + when 'string' + response.string_value = value + end + response + end + + def get_all_gauges(_empty, _call) + @gauges.values.map do |gauge| + make_gauge_response gauge + end + end + + def get_gauge(gauge_req, _call) + gauge = @gauges[gauge_req.name] + make_gauge_response gauge + end +end diff --git a/src/ruby/stress/stress_client.rb b/src/ruby/stress/stress_client.rb new file mode 100755 index 0000000000000000000000000000000000000000..698f9f1b871d50ec3ec72fc506106b30d07a74ef --- /dev/null +++ b/src/ruby/stress/stress_client.rb @@ -0,0 +1,155 @@ +#!/usr/bin/env ruby + +# Copyright 2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +require 'optparse' +require 'thread' +require_relative '../pb/test/client' +require_relative './metrics_server' +require_relative '../lib/grpc' + +class QpsGauge < Gauge + @query_count + @query_mutex + @start_time + + def initialize + @query_count = 0 + @query_mutex = Mutex.new + @start_time = Time.now + end + + def increment_queries + @query_mutex.synchronize { @query_count += 1} + end + + def get_name + 'qps' + end + + def get_type + 'long' + end + + def get_value + (@query_mutex.synchronize { @query_count / (Time.now - @start_time) }).to_i + end +end + +def start_metrics_server(port) + host = "0.0.0.0:#{port}" + server = GRPC::RpcServer.new + server.add_http2_port(host, :this_port_is_insecure) + service = MetricsServiceImpl.new + server.handle(service) + server_thread = Thread.new { server.run_till_terminated } + [server, service, server_thread] +end + +StressArgs = Struct.new(:server_addresses, :test_cases, :duration, + :channels_per_server, :concurrent_calls, :metrics_port) + +def start(stress_args) + running = true + threads = [] + qps_gauge = QpsGauge.new + metrics_server, metrics_service, metrics_thread = + start_metrics_server(stress_args.metrics_port) + metrics_service.register_gauge(qps_gauge) + stress_args.server_addresses.each do |address| + stress_args.channels_per_server.times do + client_args = Args.new + client_args.host, client_args.port = address.split(':') + client_args.secure = false + client_args.test_case = '' + stub = create_stub(client_args) + named_tests = NamedTests.new(stub, client_args) + stress_args.concurrent_calls.times do + threads << Thread.new do + while running + named_tests.method(stress_args.test_cases.sample).call + qps_gauge.increment_queries + end + end + end + end + end + if stress_args.duration >= 0 + sleep stress_args.duration + running = false + metrics_server.stop + p "QPS: #{qps_gauge.get_value}" + threads.each { |thd| thd.join; } + end + metrics_thread.join +end + +def parse_stress_args + stress_args = StressArgs.new + stress_args.server_addresses = ['localhost:8080'] + stress_args.test_cases = [] + stress_args.duration = -1 + stress_args.channels_per_server = 1 + stress_args.concurrent_calls = 1 + stress_args.metrics_port = '8081' + OptionParser.new do |opts| + opts.on('--server_addresses [LIST]', Array) do |addrs| + stress_args.server_addresses = addrs + end + opts.on('--test_cases cases', Array) do |cases| + stress_args.test_cases = (cases.map do |item| + split = item.split(':') + [split[0]] * split[1].to_i + end).reduce([], :+) + end + opts.on('--test_duration_secs [INT]', OptionParser::DecimalInteger) do |time| + stress_args.duration = time + end + opts.on('--num_channels_per_server [INT]', OptionParser::DecimalInteger) do |channels| + stress_args.channels_per_server = channels + end + opts.on('--num_stubs_per_channel [INT]', OptionParser::DecimalInteger) do |stubs| + stress_args.concurrent_calls = stubs + end + opts.on('--metrics_port [port]') do |port| + stress_args.metrics_port = port + end + end.parse! + stress_args +end + +def main + opts = parse_stress_args + start(opts) +end + +if __FILE__ == $0 + main +end diff --git a/src/ruby/tools/README.md b/src/ruby/tools/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e43f223c893e6e26c2788afd65ba2c8f85c85c52 --- /dev/null +++ b/src/ruby/tools/README.md @@ -0,0 +1,12 @@ +# Ruby gRPC Tools + +This package distributes protoc and the Ruby gRPC protoc plugin for Windows, Linux, and Mac. + +Before this package is published, the following directories should be filled with the corresponding `protoc` and `grpc_ruby_plugin` executables. + + - `bin/x86-linux` + - `bin/x86_64-linux` + - `bin/x86-macos` + - `bin/x86_64-macos` + - `bin/x86-windows` + - `bin/x86_64-windows` diff --git a/src/python/grpcio/grpc/framework/base/__init__.py b/src/ruby/tools/bin/protoc.rb old mode 100644 new mode 100755 similarity index 80% rename from src/python/grpcio/grpc/framework/base/__init__.py rename to src/ruby/tools/bin/protoc.rb index bff74be2c7bbc79e3e32103436c9fbd708bf2c03..3a2a5b8dc967baeac7bab975710e68b3f63a8b03 --- a/src/python/grpcio/grpc/framework/base/__init__.py +++ b/src/ruby/tools/bin/protoc.rb @@ -1,4 +1,5 @@ -# Copyright 2015, Google Inc. +#!/usr/bin/env ruby +# Copyright 2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -27,9 +28,14 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -import warnings +require 'rbconfig' -warnings.simplefilter('always', DeprecationWarning) -warnings.warn('the alpha API (includes this package) is deprecated, ' - 'unmaintained, and no longer tested. Please migrate to the beta ' - 'API.', DeprecationWarning, stacklevel=2) +require_relative '../os_check' + +protoc_name = 'protoc' + RbConfig::CONFIG['EXEEXT'] + +protoc_path = File.join(File.dirname(__FILE__), + RbConfig::CONFIG['host_cpu'] + '-' + OS.os_name, + protoc_name) + +exec([ protoc_path, protoc_path ], *ARGV) diff --git a/src/ruby/tools/bin/protoc_grpc_ruby_plugin.rb b/src/ruby/tools/bin/protoc_grpc_ruby_plugin.rb new file mode 100755 index 0000000000000000000000000000000000000000..4b296dedc75cca2c554532b2da7056c5b9ad82f4 --- /dev/null +++ b/src/ruby/tools/bin/protoc_grpc_ruby_plugin.rb @@ -0,0 +1,41 @@ +#!/usr/bin/env ruby +# Copyright 2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +require 'rbconfig' + +require_relative '../os_check' + +plugin_name = 'grpc_ruby_plugin' + RbConfig::CONFIG['EXEEXT'] + +plugin_path = File.join(File.dirname(__FILE__), + RbConfig::CONFIG['host_cpu'] + '-' + OS.os_name, + plugin_name) + +exec([ plugin_path, plugin_path ], *ARGV) diff --git a/src/ruby/tools/grpc-tools.gemspec b/src/ruby/tools/grpc-tools.gemspec new file mode 100644 index 0000000000000000000000000000000000000000..af904de4a91006ef68832eea54e5df324c6683fd --- /dev/null +++ b/src/ruby/tools/grpc-tools.gemspec @@ -0,0 +1,22 @@ +# -*- ruby -*- +# encoding: utf-8 +require_relative 'version.rb' +Gem::Specification.new do |s| + s.name = 'grpc-tools' + s.version = GRPC::Tools::VERSION + s.authors = ['grpc Authors'] + s.email = 'grpc-io@googlegroups.com' + s.homepage = 'https://github.com/google/grpc/tree/master/src/ruby/tools' + s.summary = 'Development tools for Ruby gRPC' + s.description = 'protoc and the Ruby gRPC protoc plugin' + s.license = 'BSD-3-Clause' + + s.files = %w( version.rb os_check.rb README.md ) + s.files += Dir.glob('bin/**/*') + + s.bindir = 'bin' + + s.platform = Gem::Platform::RUBY + + s.executables = %w( protoc.rb protoc_grpc_ruby_plugin.rb ) +end diff --git a/src/python/grpcio/grpc/framework/base/exceptions.py b/src/ruby/tools/os_check.rb similarity index 82% rename from src/python/grpcio/grpc/framework/base/exceptions.py rename to src/ruby/tools/os_check.rb index b8f4752184775b877967ca79cd9d490998abfb2c..2677306457b10d54f6e2094dfe9a887fbd69fcf9 100644 --- a/src/python/grpcio/grpc/framework/base/exceptions.py +++ b/src/ruby/tools/os_check.rb @@ -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,8 +27,19 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -"""Exceptions defined and used by the base layer of RPC Framework.""" +# This is based on http://stackoverflow.com/a/171011/159388 by Aaron Hinni +require 'rbconfig' -class NoSuchMethodError(Exception): - """Indicates that an operation with an unrecognized name has been called.""" +module OS + def OS.os_name + case RbConfig::CONFIG['host_os'] + when /cygwin|mswin|mingw|bccwin|wince|emx/ + 'windows' + when /darwin/ + 'macos' + else + 'linux' + end + end +end diff --git a/src/ruby/bin/grpc_ruby_interop_server b/src/ruby/tools/version.rb old mode 100755 new mode 100644 similarity index 93% rename from src/ruby/bin/grpc_ruby_interop_server rename to src/ruby/tools/version.rb index 656a5f7c998cc8c7be38407d007a9a02ad65a649..12ad21b80eb20607db107b699f2fa288783cdfce --- a/src/ruby/bin/grpc_ruby_interop_server +++ b/src/ruby/tools/version.rb @@ -1,5 +1,3 @@ -#!/usr/bin/env ruby - # Copyright 2015, Google Inc. # All rights reserved. # @@ -29,5 +27,8 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# Provides a gem binary entry point for the interop server -require 'test/server' +module GRPC + module Tools + VERSION = '0.14.0.dev' + end +end diff --git a/templates/grpc.gemspec.template b/templates/grpc.gemspec.template index 6f8d1fb9e6cd2c0c9f7596e4bb70a2413d7f8fee..ce775ffb90bf7f10cb8767f792fd2a7d72dc2f48 100644 --- a/templates/grpc.gemspec.template +++ b/templates/grpc.gemspec.template @@ -26,10 +26,6 @@ s.files += Dir.glob('include/grpc/**/*') s.test_files = Dir.glob('src/ruby/spec/**/*') s.bindir = 'src/ruby/bin' - ${'%'}w(math noproto).each do |b| - s.executables += ["#{b}_client.rb", "#{b}_server.rb"] - end - s.executables += %w(grpc_ruby_interop_client grpc_ruby_interop_server) s.require_paths = %w( src/ruby/bin src/ruby/lib src/ruby/pb ) s.platform = Gem::Platform::RUBY diff --git a/templates/package.json.template b/templates/package.json.template index 5db270608b011259c34b15307496255c7e714130..11718b1ccbd407e2b86229b1496fa189c248a276 100644 --- a/templates/package.json.template +++ b/templates/package.json.template @@ -21,7 +21,7 @@ "lib": "src/node/src" }, "scripts": { - "lint": "node ./node_modules/jshint/bin/jshint src/node/src src/node/test src/node/interop src/node/index.js", + "lint": "node ./node_modules/jshint/bin/jshint src/node/src src/node/test src/node/interop src/node/index.js --exclude-path=src/node/.jshintignore", "test": "./node_modules/.bin/mocha src/node/test && npm run-script lint", "gen_docs": "./node_modules/.bin/jsdoc -c src/node/jsdoc_conf.json", "coverage": "./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha src/node/test", @@ -37,6 +37,7 @@ "devDependencies": { "async": "^1.5.0", "google-auth-library": "^0.9.2", + "google-protobuf": "^3.0.0-alpha.5", "istanbul": "^0.3.21", "jsdoc": "^3.3.2", "jshint": "^2.5.0", @@ -74,5 +75,25 @@ "binding.gyp" ], "main": "src/node/index.js", - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "jshintConfig" : { + "bitwise": true, + "curly": true, + "eqeqeq": true, + "esnext": true, + "freeze": true, + "immed": true, + "indent": 2, + "latedef": "nofunc", + "maxlen": 80, + "mocha": true, + "newcap": true, + "node": true, + "noarg": true, + "quotmark": "single", + "strict": true, + "trailing": true, + "undef": true, + "unused": "vars" + } } diff --git a/templates/package.xml.template b/templates/package.xml.template index 2f498c02f45661de1a67232aa412e291828d9b3e..63132dac947a96fd706a0b7566898237137883f0 100644 --- a/templates/package.xml.template +++ b/templates/package.xml.template @@ -12,7 +12,7 @@ <email>grpc-packages@google.com</email> <active>yes</active> </lead> - <date>2016-03-01</date> + <date>2016-04-19</date> <time>16:06:07</time> <version> <release>${settings.php_version.php()}</release> @@ -24,7 +24,7 @@ </stability> <license>BSD</license> <notes> - - Increase unit test code coverage #5225 + - destroy grpc_byte_buffer after startBatch #6096 </notes> <contents> <dir baseinstalldir="/" name="/"> @@ -157,8 +157,8 @@ </release> <release> <version> - <release>${settings.php_version.php()}</release> - <api>${settings.php_version.php()}</api> + <release>0.8.1</release> + <api>0.8.1</api> </version> <stability> <release>beta</release> @@ -170,5 +170,20 @@ - Increase unit test code coverage #5225 </notes> </release> + <release> + <version> + <release>${settings.php_version.php()}</release> + <api>${settings.php_version.php()}</api> + </version> + <stability> + <release>beta</release> + <api>beta</api> + </stability> + <date>2016-04-19</date> + <license>BSD</license> + <notes> + - destroy grpc_byte_buffer after startBatch #6096 + </notes> + </release> </changelog> </package> diff --git a/templates/src/csharp/Grpc.Core/VersionInfo.cs.template b/templates/src/csharp/Grpc.Core/VersionInfo.cs.template index 3ca111e72b13867d2e386a5b4340289ce21c372a..96cf2ee17f4701961fbbf8a5cbbe29dc29bcaffe 100644 --- a/templates/src/csharp/Grpc.Core/VersionInfo.cs.template +++ b/templates/src/csharp/Grpc.Core/VersionInfo.cs.template @@ -37,13 +37,20 @@ { /// <summary> /// Provides info about current version of gRPC. + /// See https://codingforsmarties.wordpress.com/2016/01/21/how-to-version-assemblies-destined-for-nuget/ + /// for rationale about assembly versioning. /// </summary> public static class VersionInfo { /// <summary> - /// Current version of gRPC C# assemblies + /// Current <c>AssemblyVersion</c> attribute of gRPC C# assemblies /// </summary> - public const string CurrentAssemblyVersion = "${settings.version.major}.${settings.version.minor}.${settings.version.patch}.0"; + public const string CurrentAssemblyVersion = "1.0.0.0"; + + /// <summary> + /// Current <c>AssemblyFileVersion</c> of gRPC C# assemblies + /// </summary> + public const string CurrentAssemblyFileVersion = "${settings.version.major}.${settings.version.minor}.${settings.version.patch}.0"; /// <summary> /// Current version of gRPC C# diff --git a/templates/src/node/tools/package.json.template b/templates/src/node/tools/package.json.template index c69de7c989f3a8979597b07c2f3d7ce6a7db8d29..4f673c48d1cdbda004efa7372d4de2f98a805835 100644 --- a/templates/src/node/tools/package.json.template +++ b/templates/src/node/tools/package.json.template @@ -18,7 +18,8 @@ } ], "bin": { - "grpc-tools-protoc": "./bin/protoc.js" + "grpc-tools-protoc": "./bin/protoc.js", + "grpc-tools-plugin": "./bin/protoc_plugin.js" }, "scripts": { "install": "./node_modules/.bin/node-pre-gyp install" @@ -34,6 +35,7 @@ "files": [ "index.js", "bin/protoc.js", + "bin/protoc_plugin.js", "LICENSE" ], "main": "index.js" diff --git a/templates/src/ruby/tools/version.rb.template b/templates/src/ruby/tools/version.rb.template new file mode 100644 index 0000000000000000000000000000000000000000..dbc5f48cf5189ede6e42c43fc80a3a1cb48d18ca --- /dev/null +++ b/templates/src/ruby/tools/version.rb.template @@ -0,0 +1,36 @@ +%YAML 1.2 +--- | + # 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. + + module GRPC + module Tools + VERSION = '${settings.ruby_version.ruby()}' + end + end diff --git a/templates/tools/dockerfile/interoptest/grpc_interop_csharp/Dockerfile.template b/templates/tools/dockerfile/interoptest/grpc_interop_csharp/Dockerfile.template new file mode 100644 index 0000000000000000000000000000000000000000..4cb8d3b088fdbf3b5c30be283870849b589ac169 --- /dev/null +++ b/templates/tools/dockerfile/interoptest/grpc_interop_csharp/Dockerfile.template @@ -0,0 +1,39 @@ +%YAML 1.2 +--- | + # 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. + + FROM debian:jessie + + <%include file="../../apt_get_basic.include"/> + <%include file="../../csharp_deps.include"/> + <%include file="../../run_tests_addons.include"/> + # Define the default command. + CMD ["bash"] + diff --git a/templates/tools/dockerfile/interoptest/grpc_interop_cxx/Dockerfile.template b/templates/tools/dockerfile/interoptest/grpc_interop_cxx/Dockerfile.template new file mode 100644 index 0000000000000000000000000000000000000000..e39175a1ea8e01744d9e54135a8ea0e400b38ad1 --- /dev/null +++ b/templates/tools/dockerfile/interoptest/grpc_interop_cxx/Dockerfile.template @@ -0,0 +1,39 @@ +%YAML 1.2 +--- | + # 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. + + FROM debian:jessie + + <%include file="../../apt_get_basic.include"/> + <%include file="../../cxx_deps.include"/> + <%include file="../../run_tests_addons.include"/> + # Define the default command. + CMD ["bash"] + diff --git a/templates/tools/dockerfile/interoptest/grpc_interop_go/Dockerfile.template b/templates/tools/dockerfile/interoptest/grpc_interop_go/Dockerfile.template new file mode 100644 index 0000000000000000000000000000000000000000..542c81d614c1255c379753939cfffd38fe4ba820 --- /dev/null +++ b/templates/tools/dockerfile/interoptest/grpc_interop_go/Dockerfile.template @@ -0,0 +1,37 @@ +%YAML 1.2 +--- | + # 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. + + FROM golang:1.5 + + <%include file="../../go_path.include"/> + # Define the default command. + CMD ["bash"] + diff --git a/templates/tools/dockerfile/interoptest/grpc_interop_http2/Dockerfile.template b/templates/tools/dockerfile/interoptest/grpc_interop_http2/Dockerfile.template new file mode 100644 index 0000000000000000000000000000000000000000..542c81d614c1255c379753939cfffd38fe4ba820 --- /dev/null +++ b/templates/tools/dockerfile/interoptest/grpc_interop_http2/Dockerfile.template @@ -0,0 +1,37 @@ +%YAML 1.2 +--- | + # 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. + + FROM golang:1.5 + + <%include file="../../go_path.include"/> + # Define the default command. + CMD ["bash"] + diff --git a/templates/tools/dockerfile/interoptest/grpc_interop_java/Dockerfile.template b/templates/tools/dockerfile/interoptest/grpc_interop_java/Dockerfile.template new file mode 100644 index 0000000000000000000000000000000000000000..c286e80826c2cf85df96f325873a0316bf7a1fa4 --- /dev/null +++ b/templates/tools/dockerfile/interoptest/grpc_interop_java/Dockerfile.template @@ -0,0 +1,44 @@ +%YAML 1.2 +--- | + # 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. + + FROM debian:jessie + + <%include file="../../java_deps.include"/> + + # Trigger download of as many Gradle artifacts as possible. + RUN git clone --recursive --depth 1 https://github.com/grpc/grpc-java.git && ${'\\'} + cd grpc-java && ${'\\'} + ./gradlew :grpc-interop-testing:installDist -PskipCodegen=true && ${'\\'} + rm -r "$(pwd)" + + # Define the default command. + CMD ["bash"] + diff --git a/templates/tools/dockerfile/interoptest/grpc_interop_node/Dockerfile.template b/templates/tools/dockerfile/interoptest/grpc_interop_node/Dockerfile.template new file mode 100644 index 0000000000000000000000000000000000000000..89bb9acc1afc29d076e3e8629a485774110ca0ae --- /dev/null +++ b/templates/tools/dockerfile/interoptest/grpc_interop_node/Dockerfile.template @@ -0,0 +1,39 @@ +%YAML 1.2 +--- | + # 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. + + FROM debian:jessie + + <%include file="../../apt_get_basic.include"/> + <%include file="../../node_deps.include"/> + <%include file="../../run_tests_addons.include"/> + # Define the default command. + CMD ["bash"] + diff --git a/templates/tools/dockerfile/interoptest/grpc_interop_php/Dockerfile.template b/templates/tools/dockerfile/interoptest/grpc_interop_php/Dockerfile.template new file mode 100644 index 0000000000000000000000000000000000000000..476f9d3d3eb01ed6c52d1a0eaf6235e91a02d179 --- /dev/null +++ b/templates/tools/dockerfile/interoptest/grpc_interop_php/Dockerfile.template @@ -0,0 +1,64 @@ +%YAML 1.2 +--- | + # 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. + + FROM debian:jessie + + <%include file="../../apt_get_basic.include"/> + <%include file="../../ruby_deps.include"/> + <%include file="../../php_deps.include"/> + <%include file="../../run_tests_addons.include"/> + # ronn: a ruby tool used to convert markdown to man pages, used during the + # install of Protobuf extensions + # + # rake: a ruby version of make used to build the PHP Protobuf extension + RUN /bin/bash -l -c "rvm all do gem install ronn rake" + + # Install composer + RUN curl -sS https://getcomposer.org/installer | php + RUN mv composer.phar /usr/local/bin/composer + + # As an attempt to work around #4212, try to prefetch Protobuf-PHP dependency + # into composer cache to prevent "composer install" from cloning on each build. + RUN git clone --mirror https://github.com/stanley-cheung/Protobuf-PHP.git ${'\\'} + /root/.composer/cache/vcs/git-github.com-stanley-cheung-Protobuf-PHP.git/ + + # Download the patched PHP protobuf so that PHP gRPC clients can be generated + # from proto3 schemas. + RUN git clone https://github.com/stanley-cheung/Protobuf-PHP.git /var/local/git/protobuf-php + + RUN /bin/bash -l -c "rvm use ruby-2.1 ${'\\'} + && cd /var/local/git/protobuf-php ${'\\'} + && rvm all do rake pear:package version=1.0 ${'\\'} + && pear install Protobuf-1.0.tgz" + + # Define the default command. + CMD ["bash"] + diff --git a/templates/tools/dockerfile/interoptest/grpc_interop_python/Dockerfile.template b/templates/tools/dockerfile/interoptest/grpc_interop_python/Dockerfile.template new file mode 100644 index 0000000000000000000000000000000000000000..4e816ce5b6039b49dd03b16dcd79e35fc5038736 --- /dev/null +++ b/templates/tools/dockerfile/interoptest/grpc_interop_python/Dockerfile.template @@ -0,0 +1,39 @@ +%YAML 1.2 +--- | + # 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. + + FROM debian:jessie + + <%include file="../../apt_get_basic.include"/> + <%include file="../../python_deps.include"/> + <%include file="../../run_tests_addons.include"/> + # Define the default command. + CMD ["bash"] + diff --git a/templates/tools/dockerfile/interoptest/grpc_interop_ruby/Dockerfile.template b/templates/tools/dockerfile/interoptest/grpc_interop_ruby/Dockerfile.template new file mode 100644 index 0000000000000000000000000000000000000000..c3625b91fcc4a4285c3910b7bdc53849d58762b6 --- /dev/null +++ b/templates/tools/dockerfile/interoptest/grpc_interop_ruby/Dockerfile.template @@ -0,0 +1,39 @@ +%YAML 1.2 +--- | + # 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. + + FROM debian:jessie + + <%include file="../../apt_get_basic.include"/> + <%include file="../../ruby_deps.include"/> + <%include file="../../run_tests_addons.include"/> + # Define the default command. + CMD ["bash"] + diff --git a/templates/tools/dockerfile/stress_test/grpc_interop_stress_csharp/Dockerfile.template b/templates/tools/dockerfile/stress_test/grpc_interop_stress_csharp/Dockerfile.template new file mode 100644 index 0000000000000000000000000000000000000000..074178252d0b31b16f97af1b4f5b51cff7e6e925 --- /dev/null +++ b/templates/tools/dockerfile/stress_test/grpc_interop_stress_csharp/Dockerfile.template @@ -0,0 +1,41 @@ +%YAML 1.2 +--- | + # 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. + + FROM debian:jessie + + <%include file="../../apt_get_basic.include"/> + <%include file="../../ccache_setup.include"/> + <%include file="../../cxx_deps.include"/> + <%include file="../../gcp_api_libraries.include"/> + <%include file="../../csharp_deps.include"/> + # Define the default command. + CMD ["bash"] + diff --git a/test/core/bad_client/tests/server_registered_method.headers b/test/core/bad_client/tests/server_registered_method.headers index 06ee73c82ee54bb49eaa9285802b4203bfd54067..2640cc9cb8d5081d9ec605ba670778f06cf8dcd9 100644 --- a/test/core/bad_client/tests/server_registered_method.headers +++ b/test/core/bad_client/tests/server_registered_method.headers @@ -1,4 +1,4 @@ -# headers used in simple_request.c +# headers used in server_registered_method.c # use tools/codegen/core/gen_header_frame.py to generate the binary strings # contained in the source code :path: /registered/bar diff --git a/test/core/bad_client/tests/simple_request.c b/test/core/bad_client/tests/simple_request.c index ac0fdde876fd245432b08df1b831466853dcd675..3ae6eb3592d2fcb0e38b9862e15c9e69e3458f24 100644 --- a/test/core/bad_client/tests/simple_request.c +++ b/test/core/bad_client/tests/simple_request.c @@ -77,6 +77,27 @@ "\x10\x0cgrpc-timeout\x02" \ "5S" +#define PFX_STR_UNUSUAL2 \ + "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" \ + "\x00\x00\x00\x04\x00\x00\x00\x00\x00" /* settings frame */ \ + "\x00\x00\xf4\x01\x04\x00\x00\x00\x01" /* headers: generated from \ + simple_request_unusual2.headers \ + in this directory */ \ + "\x10\x05:path\x08/foo/bar" \ + "\x10\x07:scheme\x04http" \ + "\x10\x07:method\x04POST" \ + "\x10\x04host\x09localhost" \ + "\x10\x0c" \ + "content-type\x1e" \ + "application/grpc;this-is-valid" \ + "\x10\x14grpc-accept-encoding\x15identity,deflate,gzip" \ + "\x10\x02te\x08trailers" \ + "\x10\x0auser-agent\"bad-client grpc-c/0.12.0.0 (linux)" \ + "\x10\x0cgrpc-timeout\x03" \ + "10S" \ + "\x10\x0cgrpc-timeout\x02" \ + "5S" + static void *tag(intptr_t t) { return (void *)t; } static void verifier(grpc_server *server, grpc_completion_queue *cq, @@ -120,6 +141,7 @@ int main(int argc, char **argv) { /* basic request: check that things are working */ GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR, 0); GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR_UNUSUAL, 0); + GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR_UNUSUAL2, 0); /* push an illegal data frame */ GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR diff --git a/test/core/bad_client/tests/simple_request_unusual2.headers b/test/core/bad_client/tests/simple_request_unusual2.headers new file mode 100644 index 0000000000000000000000000000000000000000..f70920f3725151d7662a585d024f6bbb3893218b --- /dev/null +++ b/test/core/bad_client/tests/simple_request_unusual2.headers @@ -0,0 +1,13 @@ +# headers used in simple_request.c +# use tools/codegen/core/gen_header_frame.py to generate the binary strings +# contained in the source code +:path: /foo/bar +:scheme: http +:method: POST +host: localhost +content-type: application/grpc;this-is-valid +grpc-accept-encoding: deflate,identity,gzip +te: trailers +user-agent: bad-client grpc-c/0.12.0.0 (linux) +grpc-timeout: 10S +grpc-timeout: 5S diff --git a/test/core/channel/channel_stack_test.c b/test/core/channel/channel_stack_test.c index 81e3927a00646866e9a3acbb0f4d35b922e8ca60..1a5594bde86a87934f6295a0f6f14b3b32267ad4 100644 --- a/test/core/channel/channel_stack_test.c +++ b/test/core/channel/channel_stack_test.c @@ -62,8 +62,8 @@ static void call_init_func(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, static void channel_destroy_func(grpc_exec_ctx *exec_ctx, grpc_channel_element *elem) {} -static void call_destroy_func(grpc_exec_ctx *exec_ctx, - grpc_call_element *elem) { +static void call_destroy_func(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, + void *ignored) { ++*(int *)(elem->channel_data); } @@ -87,7 +87,7 @@ static void free_channel(grpc_exec_ctx *exec_ctx, void *arg, bool success) { } static void free_call(grpc_exec_ctx *exec_ctx, void *arg, bool success) { - grpc_call_stack_destroy(exec_ctx, arg); + grpc_call_stack_destroy(exec_ctx, arg, NULL); gpr_free(arg); } diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/04a5f10d2ebc712cf13c05b5ed0fafb31b42737c b/test/core/end2end/fuzzers/api_fuzzer_corpus/04a5f10d2ebc712cf13c05b5ed0fafb31b42737c new file mode 100644 index 0000000000000000000000000000000000000000..d46856deb1aca93384f486786efdef63284a482b Binary files /dev/null and b/test/core/end2end/fuzzers/api_fuzzer_corpus/04a5f10d2ebc712cf13c05b5ed0fafb31b42737c differ diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/38a55e83e685617cdf72e95f1303857b627ae346 b/test/core/end2end/fuzzers/api_fuzzer_corpus/38a55e83e685617cdf72e95f1303857b627ae346 new file mode 100644 index 0000000000000000000000000000000000000000..3c8c2c1c84922d0bed209730139d36a8cc13353e Binary files /dev/null and b/test/core/end2end/fuzzers/api_fuzzer_corpus/38a55e83e685617cdf72e95f1303857b627ae346 differ diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/40b4b92460c4e76a39af9042fb3d86d491a98e16 b/test/core/end2end/fuzzers/api_fuzzer_corpus/40b4b92460c4e76a39af9042fb3d86d491a98e16 new file mode 100644 index 0000000000000000000000000000000000000000..44a2b9e30ff9c9d351bc7be555944c7f73f16ffb Binary files /dev/null and b/test/core/end2end/fuzzers/api_fuzzer_corpus/40b4b92460c4e76a39af9042fb3d86d491a98e16 differ diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/6914f5f380c83ff9e3e90fc60d5048e47e5e77d9 b/test/core/end2end/fuzzers/api_fuzzer_corpus/6914f5f380c83ff9e3e90fc60d5048e47e5e77d9 new file mode 100644 index 0000000000000000000000000000000000000000..da0c78ebc07c6f4b42058e62aea8716b3e473166 Binary files /dev/null and b/test/core/end2end/fuzzers/api_fuzzer_corpus/6914f5f380c83ff9e3e90fc60d5048e47e5e77d9 differ diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7abe8c414aa1418157c2d7ae5e70a84ffb61c027 b/test/core/end2end/fuzzers/api_fuzzer_corpus/7abe8c414aa1418157c2d7ae5e70a84ffb61c027 new file mode 100644 index 0000000000000000000000000000000000000000..6b06ce291a5e7f07e95cabe10f25d6b9457c9c0a Binary files /dev/null and b/test/core/end2end/fuzzers/api_fuzzer_corpus/7abe8c414aa1418157c2d7ae5e70a84ffb61c027 differ diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/8c5bbcc6935d43c94a0c4ce4a5da01c04fd223d8 b/test/core/end2end/fuzzers/api_fuzzer_corpus/8c5bbcc6935d43c94a0c4ce4a5da01c04fd223d8 new file mode 100644 index 0000000000000000000000000000000000000000..a0b621b9fc2a4165006ffdbfdc3c8663338b5f70 Binary files /dev/null and b/test/core/end2end/fuzzers/api_fuzzer_corpus/8c5bbcc6935d43c94a0c4ce4a5da01c04fd223d8 differ diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/b5bcc7f39420e997ec6f8e3c70ef49b8f1afb361 b/test/core/end2end/fuzzers/api_fuzzer_corpus/b5bcc7f39420e997ec6f8e3c70ef49b8f1afb361 new file mode 100644 index 0000000000000000000000000000000000000000..80aa9b8a3d92444102d081272b5aed3093752bd3 Binary files /dev/null and b/test/core/end2end/fuzzers/api_fuzzer_corpus/b5bcc7f39420e997ec6f8e3c70ef49b8f1afb361 differ diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/f755b44ff2221c971ca2bfaffc69e002ba982730 b/test/core/end2end/fuzzers/api_fuzzer_corpus/f755b44ff2221c971ca2bfaffc69e002ba982730 new file mode 100644 index 0000000000000000000000000000000000000000..32dab3be54740cd1b8178d2e21bda6e0771310fe Binary files /dev/null and b/test/core/end2end/fuzzers/api_fuzzer_corpus/f755b44ff2221c971ca2bfaffc69e002ba982730 differ diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/1e64080289ea4168304417f3fbd86b01d7d6f431 b/test/core/end2end/fuzzers/client_fuzzer_corpus/1e64080289ea4168304417f3fbd86b01d7d6f431 new file mode 100644 index 0000000000000000000000000000000000000000..374b283186cb2fc5f9d5af3719728057b26308bc Binary files /dev/null and b/test/core/end2end/fuzzers/client_fuzzer_corpus/1e64080289ea4168304417f3fbd86b01d7d6f431 differ diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/20ee437b7f456ebb19d98d94d9feb1d5e9174c65 b/test/core/end2end/fuzzers/client_fuzzer_corpus/20ee437b7f456ebb19d98d94d9feb1d5e9174c65 new file mode 100644 index 0000000000000000000000000000000000000000..29243f999626e72e2f64aad3f36ef406173dca84 Binary files /dev/null and b/test/core/end2end/fuzzers/client_fuzzer_corpus/20ee437b7f456ebb19d98d94d9feb1d5e9174c65 differ diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/2c1ecf05c5dde692ed16502294e9570ac3b02600 b/test/core/end2end/fuzzers/client_fuzzer_corpus/2c1ecf05c5dde692ed16502294e9570ac3b02600 new file mode 100644 index 0000000000000000000000000000000000000000..0f30385492e93c1eef80915d82fb364a1f5fb5bb Binary files /dev/null and b/test/core/end2end/fuzzers/client_fuzzer_corpus/2c1ecf05c5dde692ed16502294e9570ac3b02600 differ diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/aa878edb0100e876e00e310ae221b220fdb5e028 b/test/core/end2end/fuzzers/client_fuzzer_corpus/aa878edb0100e876e00e310ae221b220fdb5e028 new file mode 100644 index 0000000000000000000000000000000000000000..bc6a44485273bf3b4b1f77dcaf439759afcbedd3 Binary files /dev/null and b/test/core/end2end/fuzzers/client_fuzzer_corpus/aa878edb0100e876e00e310ae221b220fdb5e028 differ diff --git a/test/core/end2end/fuzzers/client_fuzzer_corpus/slow-unit-53cf4d25741d5f6e7ad9147b286ff0b40cb500a9 b/test/core/end2end/fuzzers/client_fuzzer_corpus/slow-unit-53cf4d25741d5f6e7ad9147b286ff0b40cb500a9 new file mode 100644 index 0000000000000000000000000000000000000000..997b3d360b14675a7a4d6006619af2187c431234 Binary files /dev/null and b/test/core/end2end/fuzzers/client_fuzzer_corpus/slow-unit-53cf4d25741d5f6e7ad9147b286ff0b40cb500a9 differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/03a304b82629155af693978c2b53439e553f6450 b/test/core/end2end/fuzzers/server_fuzzer_corpus/03a304b82629155af693978c2b53439e553f6450 new file mode 100644 index 0000000000000000000000000000000000000000..d4072c69216efd1baabae8515fcea67703600252 Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/03a304b82629155af693978c2b53439e553f6450 differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/03a72675e1969f836094f1ecfec2a7b34418e306 b/test/core/end2end/fuzzers/server_fuzzer_corpus/03a72675e1969f836094f1ecfec2a7b34418e306 new file mode 100644 index 0000000000000000000000000000000000000000..503af15fe81ccba6a1300796531f278f34d9be84 Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/03a72675e1969f836094f1ecfec2a7b34418e306 differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/0416afd6875d9ba55f1e5f86a6456a5445d5e576 b/test/core/end2end/fuzzers/server_fuzzer_corpus/0416afd6875d9ba55f1e5f86a6456a5445d5e576 new file mode 100644 index 0000000000000000000000000000000000000000..30229f98fd3e7479f61635c604dbb259dddfd23f Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/0416afd6875d9ba55f1e5f86a6456a5445d5e576 differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/052c8f28e5884bb48f0d504461272cd3a5893215 b/test/core/end2end/fuzzers/server_fuzzer_corpus/052c8f28e5884bb48f0d504461272cd3a5893215 new file mode 100644 index 0000000000000000000000000000000000000000..5cbafc457ca08c481d645cbd34d90ab13436c63e Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/052c8f28e5884bb48f0d504461272cd3a5893215 differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/08c42ef29eff83052c5887855f2fa3e07ebe470c b/test/core/end2end/fuzzers/server_fuzzer_corpus/08c42ef29eff83052c5887855f2fa3e07ebe470c new file mode 100644 index 0000000000000000000000000000000000000000..828275ee3c3c46584136c653f39bac7885b6e912 Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/08c42ef29eff83052c5887855f2fa3e07ebe470c differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/1ba889ea1543297824e99e641e6ca8b91f45732e b/test/core/end2end/fuzzers/server_fuzzer_corpus/1ba889ea1543297824e99e641e6ca8b91f45732e new file mode 100644 index 0000000000000000000000000000000000000000..6ed060d1e33cc75aa2a1c2e40990d19970c94819 Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/1ba889ea1543297824e99e641e6ca8b91f45732e differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/2c4c7e2ed6d977ec119b040b328ad09808909a70 b/test/core/end2end/fuzzers/server_fuzzer_corpus/2c4c7e2ed6d977ec119b040b328ad09808909a70 new file mode 100644 index 0000000000000000000000000000000000000000..1d73a923c3e36e1171829f6b1582732ef740230b Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/2c4c7e2ed6d977ec119b040b328ad09808909a70 differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/3b09bf453c6f93983c24c4d5481e55d66213f93a b/test/core/end2end/fuzzers/server_fuzzer_corpus/3b09bf453c6f93983c24c4d5481e55d66213f93a new file mode 100644 index 0000000000000000000000000000000000000000..1a7a213cd715ecf7e3b2bbef1becd953cf6ce4b4 Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/3b09bf453c6f93983c24c4d5481e55d66213f93a differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/49cb33cbb60f041e8e99dd718993acd2c3354416 b/test/core/end2end/fuzzers/server_fuzzer_corpus/49cb33cbb60f041e8e99dd718993acd2c3354416 new file mode 100644 index 0000000000000000000000000000000000000000..7f975251ddc4dcbabc73068dc55220f700ed5502 Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/49cb33cbb60f041e8e99dd718993acd2c3354416 differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/4d982c41efad2242f8c06630c23c68146153b47b b/test/core/end2end/fuzzers/server_fuzzer_corpus/4d982c41efad2242f8c06630c23c68146153b47b new file mode 100644 index 0000000000000000000000000000000000000000..fa1d5f081e4e59fcf3d9b0836eb8fcee2ab1a9ff Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/4d982c41efad2242f8c06630c23c68146153b47b differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/59743fe120be6ae1aed1c02230ee1bb460f621ee b/test/core/end2end/fuzzers/server_fuzzer_corpus/59743fe120be6ae1aed1c02230ee1bb460f621ee new file mode 100644 index 0000000000000000000000000000000000000000..3038fde54719db4a3f0ce804f452a626f38a0ca2 Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/59743fe120be6ae1aed1c02230ee1bb460f621ee differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/830e3f794c53f7b284eb5c635b2943db9ee9aaee b/test/core/end2end/fuzzers/server_fuzzer_corpus/830e3f794c53f7b284eb5c635b2943db9ee9aaee new file mode 100644 index 0000000000000000000000000000000000000000..366077e52821a1dd5180f7f96882cc64eb06864f Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/830e3f794c53f7b284eb5c635b2943db9ee9aaee differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/a5ccb8f124d8ddb5350b90bc0d6b96db280cb7c9 b/test/core/end2end/fuzzers/server_fuzzer_corpus/a5ccb8f124d8ddb5350b90bc0d6b96db280cb7c9 new file mode 100644 index 0000000000000000000000000000000000000000..9d39854fc970a412a7822e0bae9030fa900e56e2 Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/a5ccb8f124d8ddb5350b90bc0d6b96db280cb7c9 differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/a7fac1265a384fe9e45a9ee3d708b79c4e80505e b/test/core/end2end/fuzzers/server_fuzzer_corpus/a7fac1265a384fe9e45a9ee3d708b79c4e80505e new file mode 100644 index 0000000000000000000000000000000000000000..338f61bdce7de24e9f547fea219d7e330cf4cd55 Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/a7fac1265a384fe9e45a9ee3d708b79c4e80505e differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/aaf049720c707d4e14e47e7eb31d6a2dda60e66a b/test/core/end2end/fuzzers/server_fuzzer_corpus/aaf049720c707d4e14e47e7eb31d6a2dda60e66a new file mode 100644 index 0000000000000000000000000000000000000000..dab9c75822fa7c75554351917d686c8e18ddad75 Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/aaf049720c707d4e14e47e7eb31d6a2dda60e66a differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/c4e4c7572e005e18d56eac407033da058737a5ab b/test/core/end2end/fuzzers/server_fuzzer_corpus/c4e4c7572e005e18d56eac407033da058737a5ab new file mode 100644 index 0000000000000000000000000000000000000000..070a581b37eaef8e50d072c59c07435c9044d109 Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/c4e4c7572e005e18d56eac407033da058737a5ab differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/crash-dae0f07934a527989f23f06e630710ff6ca8c809 b/test/core/end2end/fuzzers/server_fuzzer_corpus/crash-dae0f07934a527989f23f06e630710ff6ca8c809 new file mode 100644 index 0000000000000000000000000000000000000000..b6dfd77e676bc7c6dc4500e2b4533846853e1dcc Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/crash-dae0f07934a527989f23f06e630710ff6ca8c809 differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/e96ad9c17795e52edc810a08d4fc61fe8790002a b/test/core/end2end/fuzzers/server_fuzzer_corpus/e96ad9c17795e52edc810a08d4fc61fe8790002a new file mode 100644 index 0000000000000000000000000000000000000000..df9241dd0c6f33819a08674d0a1514907cf16c66 Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/e96ad9c17795e52edc810a08d4fc61fe8790002a differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/fa202a5f51cd49f8ea5af60c5f403f797c01c504 b/test/core/end2end/fuzzers/server_fuzzer_corpus/fa202a5f51cd49f8ea5af60c5f403f797c01c504 new file mode 100644 index 0000000000000000000000000000000000000000..0ba5935164ce79aad888bbb5bb41a191d02e561e Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/fa202a5f51cd49f8ea5af60c5f403f797c01c504 differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-0aa52e00ddd54f8e129430852c2da95650c354b0 b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-0aa52e00ddd54f8e129430852c2da95650c354b0 new file mode 100644 index 0000000000000000000000000000000000000000..15d6f17cd386af5d553052a0a29d390ef739ec00 Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-0aa52e00ddd54f8e129430852c2da95650c354b0 differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-3cec540a680b108dda1e0a8e0bfb2d44e5a4a4e8 b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-3cec540a680b108dda1e0a8e0bfb2d44e5a4a4e8 new file mode 100644 index 0000000000000000000000000000000000000000..ca94f4b84365f1b07bac8982f266c477ccc9564b Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-3cec540a680b108dda1e0a8e0bfb2d44e5a4a4e8 differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-84f22ffca68c6e1590a44aa9f6dd0cef1f680c77 b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-84f22ffca68c6e1590a44aa9f6dd0cef1f680c77 new file mode 100644 index 0000000000000000000000000000000000000000..9e7b0022381185ac6afc7b52c155ee91d126d51f Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-84f22ffca68c6e1590a44aa9f6dd0cef1f680c77 differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-adaac86cf1aa1e98e95240c5f92c3708456c3624 b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-adaac86cf1aa1e98e95240c5f92c3708456c3624 new file mode 100644 index 0000000000000000000000000000000000000000..c525f76ce3cb9ae6637a942c04214db0ef6d633d Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-adaac86cf1aa1e98e95240c5f92c3708456c3624 differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-b281f018cc919301131cf3ed28449cfbd24b6bbf b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-b281f018cc919301131cf3ed28449cfbd24b6bbf new file mode 100644 index 0000000000000000000000000000000000000000..380cd877caed9a240848c26392c54ed431deb082 Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-b281f018cc919301131cf3ed28449cfbd24b6bbf differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-ba0016a62a8576a57f000b90c364847ef6b12dcc b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-ba0016a62a8576a57f000b90c364847ef6b12dcc new file mode 100644 index 0000000000000000000000000000000000000000..cbd18291f10c97dfef925dbcaf1751bc65daf17b Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-ba0016a62a8576a57f000b90c364847ef6b12dcc differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-ba17346b8e46e6a05aaa7342a959a7c5ab0f1471 b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-ba17346b8e46e6a05aaa7342a959a7c5ab0f1471 new file mode 100644 index 0000000000000000000000000000000000000000..3f5b83987ce833cabbe398606a8498bd07db3c6b Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-ba17346b8e46e6a05aaa7342a959a7c5ab0f1471 differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-ccafab6afdc6474610023b47bd7b3e1b9ea4647b b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-ccafab6afdc6474610023b47bd7b3e1b9ea4647b new file mode 100644 index 0000000000000000000000000000000000000000..65737bfeacfc7dcc8a4d28cc46fb237b920a7782 Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-ccafab6afdc6474610023b47bd7b3e1b9ea4647b differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-dc57e96cd02ba32fa4a99c97b6490e9879d30be5 b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-dc57e96cd02ba32fa4a99c97b6490e9879d30be5 new file mode 100644 index 0000000000000000000000000000000000000000..6c4ed6d13e132724e518133cb292889647330355 Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-dc57e96cd02ba32fa4a99c97b6490e9879d30be5 differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-f6c1042f96e15183dcc13b9658d971cc29426d53 b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-f6c1042f96e15183dcc13b9658d971cc29426d53 new file mode 100644 index 0000000000000000000000000000000000000000..414dc698e916c484b84bb568da92c8f3a109408e Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-f6c1042f96e15183dcc13b9658d971cc29426d53 differ diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-f9a2773d6502fd4b1ffa73df3c550b0da63af833 b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-f9a2773d6502fd4b1ffa73df3c550b0da63af833 new file mode 100644 index 0000000000000000000000000000000000000000..bf38fac345d5abf9b2e29bec704d8077b3fc2691 Binary files /dev/null and b/test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-f9a2773d6502fd4b1ffa73df3c550b0da63af833 differ diff --git a/test/core/end2end/tests/filter_causes_close.c b/test/core/end2end/tests/filter_causes_close.c index 9f9ee856485c455f82f286e5905d50ac8278d2de..99049aa6bd5b7580aab702a1baabe219c261d159 100644 --- a/test/core/end2end/tests/filter_causes_close.c +++ b/test/core/end2end/tests/filter_causes_close.c @@ -232,8 +232,8 @@ static void start_transport_stream_op(grpc_exec_ctx *exec_ctx, static void init_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, grpc_call_element_args *args) {} -static void destroy_call_elem(grpc_exec_ctx *exec_ctx, - grpc_call_element *elem) {} +static void destroy_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem, + void *and_free_memory) {} static void init_channel_elem(grpc_exec_ctx *exec_ctx, grpc_channel_element *elem, diff --git a/test/core/http/parser_test.c b/test/core/http/parser_test.c index 10936754d9625ad37a99a239d4f08ba356d0a4a6..7fdf60cc2b145d7511bf78b418f96f0f68ce4bbb 100644 --- a/test/core/http/parser_test.c +++ b/test/core/http/parser_test.c @@ -238,6 +238,11 @@ int main(int argc, char **argv) { "\r\n" "hello world!", 200, "hello world!", "xyz", "abc", NULL); + test_succeeds(split_modes[i], + "HTTP/1.1 200 OK\n" + "\n" + "abc", + 200, "abc", NULL); test_request_succeeds(split_modes[i], "GET / HTTP/1.0\r\n" "\r\n", @@ -264,6 +269,11 @@ int main(int argc, char **argv) { "xyz", "GET", GRPC_HTTP_HTTP10, "/", "xyz", "xyz", "abc", NULL); + test_request_succeeds(split_modes[i], + "GET / HTTP/1.0\n" + "\n" + "xyz", + "GET", GRPC_HTTP_HTTP10, "/", "xyz", NULL); test_fails(split_modes[i], "HTTP/1.0\r\n"); test_fails(split_modes[i], "HTTP/1.2\r\n"); test_fails(split_modes[i], "HTTP/1.0 000 XYX\r\n"); @@ -281,6 +291,7 @@ int main(int argc, char **argv) { test_fails(split_modes[i], "GET / HTTP/0.0\r\n"); test_fails(split_modes[i], "GET / ____/1.0\r\n"); test_fails(split_modes[i], "GET / HTTP/1.2\r\n"); + test_fails(split_modes[i], "GET / HTTP/1.0\n"); tmp1 = gpr_malloc(2 * GRPC_HTTP_PARSER_MAX_HEADER_LENGTH); memset(tmp1, 'a', 2 * GRPC_HTTP_PARSER_MAX_HEADER_LENGTH - 1); diff --git a/test/core/surface/concurrent_connectivity_test.c b/test/core/surface/concurrent_connectivity_test.c index a2fdf735962905a87d56984cfc0f0a6fe34b462e..28ddf58cc84535de8e718bf1d358293ca3753982 100644 --- a/test/core/surface/concurrent_connectivity_test.c +++ b/test/core/surface/concurrent_connectivity_test.c @@ -142,6 +142,12 @@ void bad_server_thread(void *vargs) { gpr_free(args->addr); } +static void done_pollset_shutdown(grpc_exec_ctx *exec_ctx, void *pollset, + bool success) { + grpc_pollset_destroy(pollset); + gpr_free(pollset); +} + int main(int argc, char **argv) { struct server_thread_args args; memset(&args, 0, sizeof(args)); @@ -207,8 +213,11 @@ int main(int argc, char **argv) { gpr_atm_rel_store(&args.stop, 1); gpr_thd_join(server); - grpc_pollset_destroy(args.pollset); - gpr_free(args.pollset); + grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; + grpc_pollset_shutdown( + &exec_ctx, args.pollset, + grpc_closure_create(done_pollset_shutdown, args.pollset)); + grpc_exec_ctx_finish(&exec_ctx); grpc_shutdown(); return 0; diff --git a/test/core/util/passthru_endpoint.c b/test/core/util/passthru_endpoint.c index 168ae59e9175e42cf9484a7e1e6b5f66fd84b43d..ae955b1f685120b024b879a08b4c895e3d8a1173 100644 --- a/test/core/util/passthru_endpoint.c +++ b/test/core/util/passthru_endpoint.c @@ -83,11 +83,15 @@ static void me_write(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep, if (m->parent->shutdown) { ok = false; } else if (m->on_read != NULL) { - gpr_slice_buffer_addn(m->on_read_out, slices->slices, slices->count); + for (size_t i = 0; i < slices->count; i++) { + gpr_slice_buffer_add(m->on_read_out, gpr_slice_ref(slices->slices[i])); + } grpc_exec_ctx_enqueue(exec_ctx, m->on_read, true, NULL); m->on_read = NULL; } else { - gpr_slice_buffer_addn(&m->read_buffer, slices->slices, slices->count); + for (size_t i = 0; i < slices->count; i++) { + gpr_slice_buffer_add(&m->read_buffer, gpr_slice_ref(slices->slices[i])); + } } gpr_mu_unlock(&m->parent->mu); grpc_exec_ctx_enqueue(exec_ctx, cb, ok, NULL); diff --git a/test/core/util/port_windows.c b/test/core/util/port_windows.c index 2b6d3dd223c8839c471a1f5f0137c67708e6e75d..154d607ec7c545c62ebcc2ecd4e3d20ac982d257 100644 --- a/test/core/util/port_windows.c +++ b/test/core/util/port_windows.c @@ -51,6 +51,11 @@ #include "src/core/lib/support/env.h" #include "test/core/util/port_server_client.h" +#if GPR_GETPID_IN_UNISTD_H +#include <sys/unistd.h> +static int _getpid() { return getpid(); } +#endif + #define NUM_RANDOM_PORTS_TO_PICK 100 static int *chosen_ports = NULL; @@ -114,7 +119,7 @@ static int is_port_available(int *port, int is_tcp) { /* Try binding to port */ addr.sin_family = AF_INET; addr.sin_addr.s_addr = INADDR_ANY; - addr.sin_port = htons(*port); + addr.sin_port = htons((u_short)*port); if (bind(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) { gpr_log(GPR_DEBUG, "bind(port=%d) failed: %s", *port, strerror(errno)); closesocket(fd); @@ -127,7 +132,7 @@ static int is_port_available(int *port, int is_tcp) { closesocket(fd); return 0; } - GPR_ASSERT(alen <= sizeof(addr)); + GPR_ASSERT(alen <= (socklen_t)sizeof(addr)); actual_port = ntohs(addr.sin_port); GPR_ASSERT(actual_port > 0); if (*port == 0) { diff --git a/test/core/util/test_config.c b/test/core/util/test_config.c index 3155a4ece6aad2e7ff40ba67520f2837e5b51e05..270d16600d31b026a6cdcc324aef06cfed1c18dc 100644 --- a/test/core/util/test_config.c +++ b/test/core/util/test_config.c @@ -50,7 +50,7 @@ static unsigned seed(void) { return (unsigned)getpid(); } #if GPR_GETPID_IN_PROCESS_H #include <process.h> -static unsigned seed(void) { return _getpid(); } +static unsigned seed(void) { return (unsigned)_getpid(); } #endif #if GPR_WINDOWS_CRASH_HANDLER @@ -210,7 +210,7 @@ static void install_crash_handler() { #include <stdio.h> #include <string.h> -static char g_alt_stack[MINSIGSTKSZ]; +static char g_alt_stack[GPR_MAX(MINSIGSTKSZ, 65536)]; #define MAX_FRAMES 32 diff --git a/test/cpp/codegen/compiler_test_golden b/test/cpp/codegen/compiler_test_golden new file mode 100644 index 0000000000000000000000000000000000000000..ef3d1aaa510495992ac431a7eacc9bb3fe51fec3 --- /dev/null +++ b/test/cpp/codegen/compiler_test_golden @@ -0,0 +1,294 @@ +// Generated by the gRPC protobuf plugin. +// If you make any local change, they will be lost. +// source: src/proto/grpc/testing/compiler_test.proto +// Original file comments: +// 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. +// +// File detached comment 1 +// +// File detached comment 2 +// +// File leading comment 1 +#ifndef GRPC_src_2fproto_2fgrpc_2ftesting_2fcompiler_5ftest_2eproto__INCLUDED +#define GRPC_src_2fproto_2fgrpc_2ftesting_2fcompiler_5ftest_2eproto__INCLUDED + +#include "src/proto/grpc/testing/compiler_test.pb.h" + +#include <grpc++/impl/codegen/async_stream.h> +#include <grpc++/impl/codegen/async_unary_call.h> +#include <grpc++/impl/codegen/proto_utils.h> +#include <grpc++/impl/codegen/rpc_method.h> +#include <grpc++/impl/codegen/service_type.h> +#include <grpc++/impl/codegen/status.h> +#include <grpc++/impl/codegen/stub_options.h> +#include <grpc++/impl/codegen/sync_stream.h> + +namespace grpc { +class CompletionQueue; +class Channel; +class RpcService; +class ServerCompletionQueue; +class ServerContext; +} // namespace grpc + +namespace grpc { +namespace testing { + +// ServiceA detached comment 1 +// +// ServiceA detached comment 2 +// +// ServiceA leading comment 1 +class ServiceA GRPC_FINAL { + public: + class StubInterface { + public: + virtual ~StubInterface() {} + // MethodA1 leading comment 1 + virtual ::grpc::Status MethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::testing::Response* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>> AsyncMethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>>(AsyncMethodA1Raw(context, request, cq)); + } + // MethodA1 trailing comment 1 + // MethodA2 detached leading comment 1 + // + // Method A2 leading comment 1 + // Method A2 leading comment 2 + std::unique_ptr< ::grpc::ClientWriterInterface< ::grpc::testing::Request>> MethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response) { + return std::unique_ptr< ::grpc::ClientWriterInterface< ::grpc::testing::Request>>(MethodA2Raw(context, response)); + } + std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>> AsyncMethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag) { + return std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>>(AsyncMethodA2Raw(context, response, cq, tag)); + } + // MethodA2 trailing comment 1 + private: + virtual ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>* AsyncMethodA1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientWriterInterface< ::grpc::testing::Request>* MethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response) = 0; + virtual ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>* AsyncMethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag) = 0; + }; + class Stub GRPC_FINAL : public StubInterface { + public: + Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel); + ::grpc::Status MethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::testing::Response* response) GRPC_OVERRIDE; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>> AsyncMethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>>(AsyncMethodA1Raw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientWriter< ::grpc::testing::Request>> MethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response) { + return std::unique_ptr< ::grpc::ClientWriter< ::grpc::testing::Request>>(MethodA2Raw(context, response)); + } + std::unique_ptr< ::grpc::ClientAsyncWriter< ::grpc::testing::Request>> AsyncMethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag) { + return std::unique_ptr< ::grpc::ClientAsyncWriter< ::grpc::testing::Request>>(AsyncMethodA2Raw(context, response, cq, tag)); + } + + private: + std::shared_ptr< ::grpc::ChannelInterface> channel_; + ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>* AsyncMethodA1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) GRPC_OVERRIDE; + ::grpc::ClientWriter< ::grpc::testing::Request>* MethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response) GRPC_OVERRIDE; + ::grpc::ClientAsyncWriter< ::grpc::testing::Request>* AsyncMethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag) GRPC_OVERRIDE; + const ::grpc::RpcMethod rpcmethod_MethodA1_; + const ::grpc::RpcMethod rpcmethod_MethodA2_; + }; + static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + + class Service : public ::grpc::Service { + public: + Service(); + virtual ~Service(); + // MethodA1 leading comment 1 + virtual ::grpc::Status MethodA1(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response); + // MethodA1 trailing comment 1 + // MethodA2 detached leading comment 1 + // + // Method A2 leading comment 1 + // Method A2 leading comment 2 + virtual ::grpc::Status MethodA2(::grpc::ServerContext* context, ::grpc::ServerReader< ::grpc::testing::Request>* reader, ::grpc::testing::Response* response); + // MethodA2 trailing comment 1 + }; + template <class BaseClass> + class WithAsyncMethod_MethodA1 : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithAsyncMethod_MethodA1() { + ::grpc::Service::MarkMethodAsync(0); + } + ~WithAsyncMethod_MethodA1() GRPC_OVERRIDE { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status MethodA1(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response) GRPC_FINAL GRPC_OVERRIDE { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestMethodA1(::grpc::ServerContext* context, ::grpc::testing::Request* request, ::grpc::ServerAsyncResponseWriter< ::grpc::testing::Response>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template <class BaseClass> + class WithAsyncMethod_MethodA2 : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithAsyncMethod_MethodA2() { + ::grpc::Service::MarkMethodAsync(1); + } + ~WithAsyncMethod_MethodA2() GRPC_OVERRIDE { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status MethodA2(::grpc::ServerContext* context, ::grpc::ServerReader< ::grpc::testing::Request>* reader, ::grpc::testing::Response* response) GRPC_FINAL GRPC_OVERRIDE { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestMethodA2(::grpc::ServerContext* context, ::grpc::ServerAsyncReader< ::grpc::testing::Response, ::grpc::testing::Request>* reader, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncClientStreaming(1, context, reader, new_call_cq, notification_cq, tag); + } + }; + typedef WithAsyncMethod_MethodA1<WithAsyncMethod_MethodA2<Service > > AsyncService; + template <class BaseClass> + class WithGenericMethod_MethodA1 : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithGenericMethod_MethodA1() { + ::grpc::Service::MarkMethodGeneric(0); + } + ~WithGenericMethod_MethodA1() GRPC_OVERRIDE { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status MethodA1(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response) GRPC_FINAL GRPC_OVERRIDE { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template <class BaseClass> + class WithGenericMethod_MethodA2 : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithGenericMethod_MethodA2() { + ::grpc::Service::MarkMethodGeneric(1); + } + ~WithGenericMethod_MethodA2() GRPC_OVERRIDE { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status MethodA2(::grpc::ServerContext* context, ::grpc::ServerReader< ::grpc::testing::Request>* reader, ::grpc::testing::Response* response) GRPC_FINAL GRPC_OVERRIDE { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; +}; + +// ServiceB leading comment 1 +class ServiceB GRPC_FINAL { + public: + class StubInterface { + public: + virtual ~StubInterface() {} + // MethodB1 leading comment 1 + virtual ::grpc::Status MethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::testing::Response* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>> AsyncMethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>>(AsyncMethodB1Raw(context, request, cq)); + } + // MethodB1 trailing comment 1 + private: + virtual ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>* AsyncMethodB1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) = 0; + }; + class Stub GRPC_FINAL : public StubInterface { + public: + Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel); + ::grpc::Status MethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::testing::Response* response) GRPC_OVERRIDE; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>> AsyncMethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>>(AsyncMethodB1Raw(context, request, cq)); + } + + private: + std::shared_ptr< ::grpc::ChannelInterface> channel_; + ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>* AsyncMethodB1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) GRPC_OVERRIDE; + const ::grpc::RpcMethod rpcmethod_MethodB1_; + }; + static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + + class Service : public ::grpc::Service { + public: + Service(); + virtual ~Service(); + // MethodB1 leading comment 1 + virtual ::grpc::Status MethodB1(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response); + // MethodB1 trailing comment 1 + }; + template <class BaseClass> + class WithAsyncMethod_MethodB1 : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithAsyncMethod_MethodB1() { + ::grpc::Service::MarkMethodAsync(0); + } + ~WithAsyncMethod_MethodB1() GRPC_OVERRIDE { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status MethodB1(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response) GRPC_FINAL GRPC_OVERRIDE { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestMethodB1(::grpc::ServerContext* context, ::grpc::testing::Request* request, ::grpc::ServerAsyncResponseWriter< ::grpc::testing::Response>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + typedef WithAsyncMethod_MethodB1<Service > AsyncService; + template <class BaseClass> + class WithGenericMethod_MethodB1 : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithGenericMethod_MethodB1() { + ::grpc::Service::MarkMethodGeneric(0); + } + ~WithGenericMethod_MethodB1() GRPC_OVERRIDE { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status MethodB1(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response) GRPC_FINAL GRPC_OVERRIDE { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; +}; +// ServiceB trailing comment 1 + +} // namespace testing +} // namespace grpc + + +#endif // GRPC_src_2fproto_2fgrpc_2ftesting_2fcompiler_5ftest_2eproto__INCLUDED diff --git a/test/cpp/codegen/golden_file_test.cc b/test/cpp/codegen/golden_file_test.cc new file mode 100644 index 0000000000000000000000000000000000000000..ec08d08de6677ac2cd816e7b702147b6eed09158 --- /dev/null +++ b/test/cpp/codegen/golden_file_test.cc @@ -0,0 +1,64 @@ +/* + * + * 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 <fstream> +#include <sstream> + +#include <gtest/gtest.h> + +// These paths rely on the fact that we run our tests under grpc/ +const char kGeneratedFilePath[] = + "gens/src/proto/grpc/testing/compiler_test.grpc.pb.h"; +const char kGoldenFilePath[] = "test/cpp/codegen/compiler_test_golden"; + +TEST(GoldenFileTest, TestGeneratedFile) { + std::ifstream generated(kGeneratedFilePath); + std::ifstream golden(kGoldenFilePath); + + ASSERT_TRUE(generated.good()); + ASSERT_TRUE(golden.good()); + + std::ostringstream gen_oss; + std::ostringstream gold_oss; + gen_oss << generated.rdbuf(); + gold_oss << golden.rdbuf(); + EXPECT_EQ(gold_oss.str(), gen_oss.str()); + + generated.close(); + golden.close(); +} + +int main(int argc, char **argv) { + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/test/cpp/interop/stress_interop_client.cc b/test/cpp/interop/stress_interop_client.cc index 04671fb935ed39d28f53d9c33a16d6dc36d48497..f287a5aa3b47386e2ecd6992013bc17725a5c2ca 100644 --- a/test/cpp/interop/stress_interop_client.cc +++ b/test/cpp/interop/stress_interop_client.cc @@ -84,49 +84,37 @@ StressTestInteropClient::StressTestInteropClient( int test_id, const grpc::string& server_address, std::shared_ptr<Channel> channel, const WeightedRandomTestSelector& test_selector, long test_duration_secs, - long sleep_duration_ms, long metrics_collection_interval_secs) + long sleep_duration_ms) : test_id_(test_id), server_address_(server_address), channel_(channel), interop_client_(new InteropClient(channel, false)), test_selector_(test_selector), test_duration_secs_(test_duration_secs), - sleep_duration_ms_(sleep_duration_ms), - metrics_collection_interval_secs_(metrics_collection_interval_secs) {} + sleep_duration_ms_(sleep_duration_ms) {} -void StressTestInteropClient::MainLoop(std::shared_ptr<Gauge> qps_gauge) { +void StressTestInteropClient::MainLoop(std::shared_ptr<QpsGauge> qps_gauge) { gpr_log(GPR_INFO, "Running test %d. ServerAddr: %s", test_id_, server_address_.c_str()); - gpr_timespec test_end_time = - gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), - gpr_time_from_seconds(test_duration_secs_, GPR_TIMESPAN)); + gpr_timespec test_end_time; + if (test_duration_secs_ < 0) { + test_end_time = gpr_inf_future(GPR_CLOCK_REALTIME); + } else { + test_end_time = + gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), + gpr_time_from_seconds(test_duration_secs_, GPR_TIMESPAN)); + } - gpr_timespec current_time = gpr_now(GPR_CLOCK_REALTIME); - gpr_timespec next_stat_collection_time = current_time; - gpr_timespec collection_interval = - gpr_time_from_seconds(metrics_collection_interval_secs_, GPR_TIMESPAN); - long num_calls_per_interval = 0; + qps_gauge->Reset(); - while (test_duration_secs_ < 0 || - gpr_time_cmp(gpr_now(GPR_CLOCK_REALTIME), test_end_time) < 0) { + while (gpr_time_cmp(gpr_now(GPR_CLOCK_REALTIME), test_end_time) < 0) { // Select the test case to execute based on the weights and execute it TestCaseType test_case = test_selector_.GetNextTest(); gpr_log(GPR_DEBUG, "%d - Executing the test case %d", test_id_, test_case); RunTest(test_case); - num_calls_per_interval++; - - // See if its time to collect stats yet - current_time = gpr_now(GPR_CLOCK_REALTIME); - if (gpr_time_cmp(next_stat_collection_time, current_time) < 0) { - qps_gauge->Set(num_calls_per_interval / - metrics_collection_interval_secs_); - - num_calls_per_interval = 0; - next_stat_collection_time = - gpr_time_add(current_time, collection_interval); - } + qps_gauge->Incr(); // Sleep between successive calls if needed if (sleep_duration_ms_ > 0) { diff --git a/test/cpp/interop/stress_interop_client.h b/test/cpp/interop/stress_interop_client.h index 6fd303d6b791db003564638327d9cab9b828fc6f..cb0cd988214e5298e39955a8087169a279207263 100644 --- a/test/cpp/interop/stress_interop_client.h +++ b/test/cpp/interop/stress_interop_client.h @@ -87,12 +87,11 @@ class StressTestInteropClient { StressTestInteropClient(int test_id, const grpc::string& server_address, std::shared_ptr<Channel> channel, const WeightedRandomTestSelector& test_selector, - long test_duration_secs, long sleep_duration_ms, - long metrics_collection_interval_secs); + long test_duration_secs, long sleep_duration_ms); // The main function. Use this as the thread entry point. - // qps_gauge is the Gauge to record the requests per second metric - void MainLoop(std::shared_ptr<Gauge> qps_gauge); + // qps_gauge is the QpsGauge to record the requests per second metric + void MainLoop(std::shared_ptr<QpsGauge> qps_gauge); private: void RunTest(TestCaseType test_case); @@ -104,7 +103,6 @@ class StressTestInteropClient { const WeightedRandomTestSelector& test_selector_; long test_duration_secs_; long sleep_duration_ms_; - long metrics_collection_interval_secs_; }; } // namespace testing diff --git a/test/cpp/interop/stress_test.cc b/test/cpp/interop/stress_test.cc index 38caf31b76a9ce1fc14d127dbe22acbcf7e34419..d9e3fd25c512960837171939f8b00c6a00733575 100644 --- a/test/cpp/interop/stress_test.cc +++ b/test/cpp/interop/stress_test.cc @@ -56,9 +56,6 @@ extern void gpr_default_log(gpr_log_func_args* args); DEFINE_int32(metrics_port, 8081, "The metrics server port."); -DEFINE_int32(metrics_collection_interval_secs, 5, - "How often (in seconds) should metrics be recorded."); - DEFINE_int32(sleep_duration_ms, 0, "The duration (in millisec) between two" " consecutive test calls (per server) issued by the server."); @@ -275,19 +272,19 @@ int main(int argc, char** argv) { stub_idx++) { StressTestInteropClient* client = new StressTestInteropClient( ++thread_idx, *it, channel, test_selector, FLAGS_test_duration_secs, - FLAGS_sleep_duration_ms, FLAGS_metrics_collection_interval_secs); + FLAGS_sleep_duration_ms); - bool is_already_created; - // Gauge name + bool is_already_created = false; + // QpsGauge name std::snprintf(buffer, sizeof(buffer), "/stress_test/server_%d/channel_%d/stub_%d/qps", server_idx, channel_idx, stub_idx); test_threads.emplace_back(grpc::thread( &StressTestInteropClient::MainLoop, client, - metrics_service.CreateGauge(buffer, &is_already_created))); + metrics_service.CreateQpsGauge(buffer, &is_already_created))); - // The Gauge should not have been already created + // The QpsGauge should not have been already created GPR_ASSERT(!is_already_created); } } diff --git a/test/cpp/qps/client.h b/test/cpp/qps/client.h index 5a9027a4a23cf8f7b939acd6e7684f1fe542a70c..175529f01b2051d72d5addae054a9ed13d1be9c7 100644 --- a/test/cpp/qps/client.h +++ b/test/cpp/qps/client.h @@ -39,6 +39,7 @@ #include <vector> #include <grpc++/support/byte_buffer.h> +#include <grpc++/support/channel_arguments.h> #include <grpc++/support/slice.h> #include <grpc/support/log.h> #include <grpc/support/time.h> @@ -280,7 +281,7 @@ class ClientImpl : public Client { create_stub_(create_stub) { for (int i = 0; i < config.client_channels(); i++) { channels_[i].init(config.server_targets(i % config.server_targets_size()), - config, create_stub_); + config, create_stub_, i); } ClientRequestCreator<RequestType> create_req(&request_, @@ -303,14 +304,17 @@ class ClientImpl : public Client { } void init(const grpc::string& target, const ClientConfig& config, std::function<std::unique_ptr<StubType>(std::shared_ptr<Channel>)> - create_stub) { + create_stub, + int shard) { // We have to use a 2-phase init like this with a default // constructor followed by an initializer function to make // old compilers happy with using this in std::vector + ChannelArguments args; + args.SetInt("shard_to_ensure_no_subchannel_merges", shard); channel_ = CreateTestChannel( target, config.security_params().server_host_override(), - config.has_security_params(), - !config.security_params().use_test_ca()); + config.has_security_params(), !config.security_params().use_test_ca(), + std::shared_ptr<CallCredentials>(), args); stub_ = create_stub(channel_); } Channel* get_channel() { return channel_.get(); } diff --git a/test/cpp/qps/driver.cc b/test/cpp/qps/driver.cc index 2583ceb8192693ee253a639f3b856ac8b827290d..04b2b453f9e0604072d18e485d320d487afa17ef 100644 --- a/test/cpp/qps/driver.cc +++ b/test/cpp/qps/driver.cc @@ -83,6 +83,7 @@ static std::unordered_map<string, std::deque<int>> get_hosts_and_cores( auto stub = WorkerService::NewStub( CreateChannel(*it, InsecureChannelCredentials())); grpc::ClientContext ctx; + ctx.set_fail_fast(false); CoreRequest dummy; CoreResponse cores; grpc::Status s = stub->CoreCount(&ctx, dummy, &cores); @@ -166,6 +167,7 @@ namespace runsc { static ClientContext* AllocContext(list<ClientContext>* contexts) { contexts->emplace_back(); auto context = &contexts->back(); + context->set_fail_fast(false); return context; } @@ -435,6 +437,7 @@ void RunQuit() { CreateChannel(workers[i], InsecureChannelCredentials())); Void dummy; grpc::ClientContext ctx; + ctx.set_fail_fast(false); GPR_ASSERT(stub->QuitWorker(&ctx, dummy, &dummy).ok()); } } diff --git a/test/cpp/util/metrics_server.cc b/test/cpp/util/metrics_server.cc index d9b44a6a925b71f760f195c9d5373f6cd2689777..cc6b39b7532ff81c27dafc4dfff329be7ba1c0b0 100644 --- a/test/cpp/util/metrics_server.cc +++ b/test/cpp/util/metrics_server.cc @@ -42,16 +42,26 @@ namespace grpc { namespace testing { -Gauge::Gauge(long initial_val) : val_(initial_val) {} +QpsGauge::QpsGauge() + : start_time_(gpr_now(GPR_CLOCK_REALTIME)), num_queries_(0) {} -void Gauge::Set(long new_val) { - std::lock_guard<std::mutex> lock(val_mu_); - val_ = new_val; +void QpsGauge::Reset() { + std::lock_guard<std::mutex> lock(num_queries_mu_); + num_queries_ = 0; + start_time_ = gpr_now(GPR_CLOCK_REALTIME); } -long Gauge::Get() { - std::lock_guard<std::mutex> lock(val_mu_); - return val_; +void QpsGauge::Incr() { + std::lock_guard<std::mutex> lock(num_queries_mu_); + num_queries_++; +} + +long QpsGauge::Get() { + std::lock_guard<std::mutex> lock(num_queries_mu_); + gpr_timespec time_diff = + gpr_time_sub(gpr_now(GPR_CLOCK_REALTIME), start_time_); + long duration_secs = time_diff.tv_sec > 0 ? time_diff.tv_sec : 1; + return num_queries_ / duration_secs; } grpc::Status MetricsServiceImpl::GetAllGauges( @@ -60,7 +70,7 @@ grpc::Status MetricsServiceImpl::GetAllGauges( gpr_log(GPR_DEBUG, "GetAllGauges called"); std::lock_guard<std::mutex> lock(mu_); - for (auto it = gauges_.begin(); it != gauges_.end(); it++) { + for (auto it = qps_gauges_.begin(); it != qps_gauges_.end(); it++) { GaugeResponse resp; resp.set_name(it->first); // Gauge name resp.set_long_value(it->second->Get()); // Gauge value @@ -75,8 +85,8 @@ grpc::Status MetricsServiceImpl::GetGauge(ServerContext* context, GaugeResponse* response) { std::lock_guard<std::mutex> lock(mu_); - const auto it = gauges_.find(request->name()); - if (it != gauges_.end()) { + const auto it = qps_gauges_.find(request->name()); + if (it != qps_gauges_.end()) { response->set_name(it->first); response->set_long_value(it->second->Get()); } @@ -84,16 +94,17 @@ grpc::Status MetricsServiceImpl::GetGauge(ServerContext* context, return Status::OK; } -std::shared_ptr<Gauge> MetricsServiceImpl::CreateGauge(const grpc::string& name, - bool* already_present) { +std::shared_ptr<QpsGauge> MetricsServiceImpl::CreateQpsGauge( + const grpc::string& name, bool* already_present) { std::lock_guard<std::mutex> lock(mu_); - std::shared_ptr<Gauge> gauge(new Gauge(0)); - const auto p = gauges_.emplace(name, gauge); + std::shared_ptr<QpsGauge> qps_gauge(new QpsGauge()); + const auto p = qps_gauges_.emplace(name, qps_gauge); - // p.first is an iterator pointing to <name, shared_ptr<Gauge>> pair. p.second - // is a boolean which is set to 'true' if the Gauge is inserted in the guages_ - // map and 'false' if it is already present in the map + // p.first is an iterator pointing to <name, shared_ptr<QpsGauge>> pair. + // p.second is a boolean which is set to 'true' if the QpsGauge is + // successfully inserted in the guages_ map and 'false' if it is already + // present in the map *already_present = !p.second; return p.first->second; } diff --git a/test/cpp/util/metrics_server.h b/test/cpp/util/metrics_server.h index ce05e0be64c58a0d55f1599a61cc717635deeab9..aa9bfed23d84849de38f2461f762f2effb1616e8 100644 --- a/test/cpp/util/metrics_server.h +++ b/test/cpp/util/metrics_server.h @@ -48,10 +48,13 @@ * Example: * MetricsServiceImpl metricsImpl; * .. - * // Create Gauge(s). Note: Gauges can be created even after calling + * // Create QpsGauge(s). Note: QpsGauges can be created even after calling * // 'StartServer'. - * Gauge gauge1 = metricsImpl.CreateGauge("foo",is_present); - * // gauge1 can now be used anywhere in the program to set values. + * QpsGauge qps_gauge1 = metricsImpl.CreateQpsGauge("foo", is_present); + * // qps_gauge1 can now be used anywhere in the program by first making a + * // one-time call qps_gauge1.Reset() and then calling qps_gauge1.Incr() + * // every time to increment a query counter + * * ... * // Create the metrics server * std::unique_ptr<grpc::Server> server = metricsImpl.StartServer(port); @@ -60,17 +63,24 @@ namespace grpc { namespace testing { -// TODO(sreek): Add support for other types of Gauges like Double, String in -// future -class Gauge { +class QpsGauge { public: - Gauge(long initial_val); - void Set(long new_val); + QpsGauge(); + + // Initialize the internal timer and reset the query count to 0 + void Reset(); + + // Increment the query count by 1 + void Incr(); + + // Return the current qps (i.e query count divided by the time since this + // QpsGauge object created (or Reset() was called)) long Get(); private: - long val_; - std::mutex val_mu_; + gpr_timespec start_time_; + long num_queries_; + std::mutex num_queries_mu_; }; class MetricsServiceImpl GRPC_FINAL : public MetricsService::Service { @@ -81,17 +91,17 @@ class MetricsServiceImpl GRPC_FINAL : public MetricsService::Service { grpc::Status GetGauge(ServerContext* context, const GaugeRequest* request, GaugeResponse* response) GRPC_OVERRIDE; - // Create a Gauge with name 'name'. is_present is set to true if the Gauge + // Create a QpsGauge with name 'name'. is_present is set to true if the Gauge // is already present in the map. - // NOTE: CreateGauge can be called anytime (i.e before or after calling + // NOTE: CreateQpsGauge can be called anytime (i.e before or after calling // StartServer). - std::shared_ptr<Gauge> CreateGauge(const grpc::string& name, - bool* already_present); + std::shared_ptr<QpsGauge> CreateQpsGauge(const grpc::string& name, + bool* already_present); std::unique_ptr<grpc::Server> StartServer(int port); private: - std::map<string, std::shared_ptr<Gauge>> gauges_; + std::map<string, std::shared_ptr<QpsGauge>> qps_gauges_; std::mutex mu_; }; diff --git a/tools/buildgen/plugins/expand_version.py b/tools/buildgen/plugins/expand_version.py index dd77f7af125ba0788823a5ed6c03748bc3738429..c6cc5621c97d105b605ddfe8a56e4e95e0a9fc65 100755 --- a/tools/buildgen/plugins/expand_version.py +++ b/tools/buildgen/plugins/expand_version.py @@ -27,10 +27,10 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -"""Buildgen .proto files list plugin. +"""Buildgen package version plugin This parses the list of targets from the yaml build file, and creates -a list called "protos" that contains all of the proto file names. +a custom version string for each language's package. """ diff --git a/tools/buildgen/plugins/list_api.py b/tools/buildgen/plugins/list_api.py index ff937a0ab837acd0b2365f3a16153eadbbc9dcab..1fc4f4123ca11b16564e2346af725883d985cd2b 100755 --- a/tools/buildgen/plugins/list_api.py +++ b/tools/buildgen/plugins/list_api.py @@ -64,12 +64,13 @@ def headers_under(directory): def mako_plugin(dictionary): apis = [] + headers = [] -# for lib in dictionary['libs']: -# if lib['name'] == 'grpc': -# apis.extend(list_c_apis(lib['public_headers'])) - apis.extend(list_c_apis(sorted(headers_under('include/grpc')))) + for lib in dictionary['libs']: + if lib['name'] in ['grpc', 'gpr']: + headers.extend(lib['public_headers']) + apis.extend(list_c_apis(sorted(set(headers)))) dictionary['c_apis'] = apis diff --git a/tools/buildgen/plugins/make_fuzzer_tests.py b/tools/buildgen/plugins/make_fuzzer_tests.py index e8e1bd0aa62f5861aeac9e0f1456ef3973cfb018..9d0006973ad50644a6940017a479e504f8af2a53 100644 --- a/tools/buildgen/plugins/make_fuzzer_tests.py +++ b/tools/buildgen/plugins/make_fuzzer_tests.py @@ -50,8 +50,8 @@ def mako_plugin(dictionary): 'name': new_target['name'], 'args': [fn], 'exclude_configs': [], - 'platforms': ['linux', 'mac', 'windows', 'posix'], - 'ci_platforms': ['linux', 'mac', 'windows', 'posix'], + 'platforms': ['linux'], + 'ci_platforms': ['linux'], 'flaky': False, 'language': 'c', 'cpu_cost': 0.1, diff --git a/tools/dockerfile/grpc_base/Dockerfile b/tools/dockerfile/grpc_base/Dockerfile deleted file mode 100644 index 91862773d5789bfc3a858a66f84f78283b9decff..0000000000000000000000000000000000000000 --- a/tools/dockerfile/grpc_base/Dockerfile +++ /dev/null @@ -1,68 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# Base Dockerfile for gRPC dev images -FROM debian:latest - -# Install Git. -RUN apt-get update && apt-get install -y \ - autoconf \ - autotools-dev \ - build-essential \ - bzip2 \ - curl \ - gcc \ - git \ - libc6 \ - libc6-dbg \ - libc6-dev \ - libgtest-dev \ - libtool \ - make \ - strace \ - python-dev \ - python-setuptools \ - telnet \ - unzip \ - wget \ - zip && apt-get clean - -# Install useful useful python modules -RUN easy_install -U pip -RUN pip install -U crcmod # makes downloads from cloud storage faster - -# Install GCloud -RUN wget https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.zip \ - && unzip google-cloud-sdk.zip && rm google-cloud-sdk.zip -ENV CLOUD_SDK /google-cloud-sdk -RUN $CLOUD_SDK/install.sh --usage-reporting=true --path-update=true --bash-completion=true --rc-path=/.bashrc --disable-installation-options -ENV PATH $CLOUD_SDK/bin:$PATH - -# Define the default command. -CMD ["bash"] diff --git a/tools/dockerfile/grpc_base/README.md b/tools/dockerfile/grpc_base/README.md deleted file mode 100644 index 5c81b02425d65b82b3a3cc32ccf5faf90c77eaf8..0000000000000000000000000000000000000000 --- a/tools/dockerfile/grpc_base/README.md +++ /dev/null @@ -1,11 +0,0 @@ -Base GRPC Dockerfile -==================== - -Dockerfile for creating the base gRPC development Docker instance. -For now, this assumes that the development will be done on GCE instances, -with source code on GitHub. - -As of 2015/02/02, it includes -- git -- some useful tools like curl, emacs, strace, telnet etc -- a patched version of protoc, to allow protos with stream tags to work diff --git a/tools/dockerfile/grpc_linuxbrew/Dockerfile b/tools/dockerfile/grpc_linuxbrew/Dockerfile deleted file mode 100644 index 848489e091ce7efddd8577136206d37e22aa6cdc..0000000000000000000000000000000000000000 --- a/tools/dockerfile/grpc_linuxbrew/Dockerfile +++ /dev/null @@ -1,62 +0,0 @@ -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# A work-in-progress Dockerfile that allows running gRPC homebrew -# installations inside docker containers -FROM debian:jessie - -# Core dependencies -RUN apt-get update && apt-get install -y \ - bzip2 curl git ruby wget - -# Install linuxbrew -ENV PATH /home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$PATH -RUN git clone https://github.com/Homebrew/linuxbrew.git /home/linuxbrew/.linuxbrew -RUN brew doctor || true - -# Python dependency -RUN apt-get update && apt-get install -y python-dev -RUN curl https://bootstrap.pypa.io/get-pip.py | python - -# NodeJS dependency -RUN touch .profile -RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash -RUN /bin/bash -l -c "nvm install 0.12" - -# Ruby dependency -RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 -RUN /bin/bash -l -c "\curl -sSL https://get.rvm.io | bash -s stable" -RUN /bin/bash -l -c "rvm install ruby-2.1" - -# PHP dependency -RUN apt-get update && apt-get install -y php5 php5-dev php-pear phpunit unzip - -RUN /bin/bash -l -c "echo 'export PATH=/home/linuxbrew/.linuxbrew/bin:\$PATH' >> ~/.bashrc" - -CMD ["bash"] diff --git a/tools/dockerfile/grpc_interop_csharp/Dockerfile b/tools/dockerfile/interoptest/grpc_interop_csharp/Dockerfile similarity index 89% rename from tools/dockerfile/grpc_interop_csharp/Dockerfile rename to tools/dockerfile/interoptest/grpc_interop_csharp/Dockerfile index 93cd25010efab73f6ef6ace10c92305746db0cfd..baab2f5638040b5d19b6382f0c9eec1def4e2690 100644 --- a/tools/dockerfile/grpc_interop_csharp/Dockerfile +++ b/tools/dockerfile/interoptest/grpc_interop_csharp/Dockerfile @@ -27,12 +27,9 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# A work-in-progress Dockerfile that allows running gRPC test suites -# inside a docker container. - FROM debian:jessie -# Install Git. +# Install Git and basic packages. RUN apt-get update && apt-get install -y \ autoconf \ autotools-dev \ @@ -43,13 +40,16 @@ RUN apt-get update && apt-get install -y \ gcc \ gcc-multilib \ git \ + golang \ gyp \ + lcov \ libc6 \ libc6-dbg \ libc6-dev \ libgtest-dev \ libtool \ make \ + perl \ strace \ python-dev \ python-setuptools \ @@ -59,15 +59,11 @@ RUN apt-get update && apt-get install -y \ wget \ zip && apt-get clean -# Prepare ccache -RUN ln -s /usr/bin/ccache /usr/local/bin/gcc -RUN ln -s /usr/bin/ccache /usr/local/bin/g++ -RUN ln -s /usr/bin/ccache /usr/local/bin/cc -RUN ln -s /usr/bin/ccache /usr/local/bin/c++ -RUN ln -s /usr/bin/ccache /usr/local/bin/clang -RUN ln -s /usr/bin/ccache /usr/local/bin/clang++ +#================ +# Build profiling +RUN apt-get update && apt-get install -y time && apt-get clean -################# +#================ # C# dependencies # Update to a newer version of mono @@ -84,5 +80,20 @@ RUN apt-get update && apt-get -y dist-upgrade && apt-get install -y \ nuget \ && apt-get clean +# Prepare ccache +RUN ln -s /usr/bin/ccache /usr/local/bin/gcc +RUN ln -s /usr/bin/ccache /usr/local/bin/g++ +RUN ln -s /usr/bin/ccache /usr/local/bin/cc +RUN ln -s /usr/bin/ccache /usr/local/bin/c++ +RUN ln -s /usr/bin/ccache /usr/local/bin/clang +RUN ln -s /usr/bin/ccache /usr/local/bin/clang++ + +#====================== +# Zookeeper dependencies +# TODO(jtattermusch): is zookeeper still needed? +RUN apt-get install -y libzookeeper-mt-dev + +RUN mkdir /var/local/jenkins + # Define the default command. CMD ["bash"] diff --git a/tools/dockerfile/grpc_interop_csharp/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_csharp/build_interop.sh similarity index 100% rename from tools/dockerfile/grpc_interop_csharp/build_interop.sh rename to tools/dockerfile/interoptest/grpc_interop_csharp/build_interop.sh diff --git a/tools/dockerfile/grpc_interop_cxx/Dockerfile b/tools/dockerfile/interoptest/grpc_interop_cxx/Dockerfile similarity index 85% rename from tools/dockerfile/grpc_interop_cxx/Dockerfile rename to tools/dockerfile/interoptest/grpc_interop_cxx/Dockerfile index 1fa190753304cc86466d738391f8ef89c0e8c055..2bbccca9e51d3189f6de5cbee6ece257747bee8a 100644 --- a/tools/dockerfile/grpc_interop_cxx/Dockerfile +++ b/tools/dockerfile/interoptest/grpc_interop_cxx/Dockerfile @@ -27,12 +27,9 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# A work-in-progress Dockerfile that allows running gRPC test suites -# inside a docker container. - FROM debian:jessie -# Install Git. +# Install Git and basic packages. RUN apt-get update && apt-get install -y \ autoconf \ autotools-dev \ @@ -43,13 +40,16 @@ RUN apt-get update && apt-get install -y \ gcc \ gcc-multilib \ git \ + golang \ gyp \ + lcov \ libc6 \ libc6-dbg \ libc6-dev \ libgtest-dev \ libtool \ make \ + perl \ strace \ python-dev \ python-setuptools \ @@ -59,6 +59,14 @@ RUN apt-get update && apt-get install -y \ wget \ zip && apt-get clean +#================ +# Build profiling +RUN apt-get update && apt-get install -y time && apt-get clean + +#================= +# C++ dependencies +RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang && apt-get clean + # Prepare ccache RUN ln -s /usr/bin/ccache /usr/local/bin/gcc RUN ln -s /usr/bin/ccache /usr/local/bin/g++ @@ -67,9 +75,12 @@ RUN ln -s /usr/bin/ccache /usr/local/bin/c++ RUN ln -s /usr/bin/ccache /usr/local/bin/clang RUN ln -s /usr/bin/ccache /usr/local/bin/clang++ -################## -# C++ dependencies -RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang +#====================== +# Zookeeper dependencies +# TODO(jtattermusch): is zookeeper still needed? +RUN apt-get install -y libzookeeper-mt-dev + +RUN mkdir /var/local/jenkins # Define the default command. CMD ["bash"] diff --git a/tools/dockerfile/grpc_interop_cxx/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_cxx/build_interop.sh similarity index 100% rename from tools/dockerfile/grpc_interop_cxx/build_interop.sh rename to tools/dockerfile/interoptest/grpc_interop_cxx/build_interop.sh diff --git a/tools/dockerfile/grpc_interop_go/Dockerfile b/tools/dockerfile/interoptest/grpc_interop_go/Dockerfile similarity index 100% rename from tools/dockerfile/grpc_interop_go/Dockerfile rename to tools/dockerfile/interoptest/grpc_interop_go/Dockerfile diff --git a/tools/dockerfile/grpc_interop_go/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_go/build_interop.sh similarity index 100% rename from tools/dockerfile/grpc_interop_go/build_interop.sh rename to tools/dockerfile/interoptest/grpc_interop_go/build_interop.sh diff --git a/tools/dockerfile/grpc_interop_http2/Dockerfile b/tools/dockerfile/interoptest/grpc_interop_http2/Dockerfile similarity index 100% rename from tools/dockerfile/grpc_interop_http2/Dockerfile rename to tools/dockerfile/interoptest/grpc_interop_http2/Dockerfile diff --git a/tools/dockerfile/grpc_interop_http2/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_http2/build_interop.sh similarity index 100% rename from tools/dockerfile/grpc_interop_http2/build_interop.sh rename to tools/dockerfile/interoptest/grpc_interop_http2/build_interop.sh diff --git a/tools/dockerfile/grpc_interop_java/Dockerfile b/tools/dockerfile/interoptest/grpc_interop_java/Dockerfile similarity index 92% rename from tools/dockerfile/grpc_interop_java/Dockerfile rename to tools/dockerfile/interoptest/grpc_interop_java/Dockerfile index 370657b651f6ac811dbeb3da24d361b1bca7b2b8..252c9bc928629e05d4d32ecdaaf6978f80a25974 100644 --- a/tools/dockerfile/grpc_interop_java/Dockerfile +++ b/tools/dockerfile/interoptest/grpc_interop_java/Dockerfile @@ -31,23 +31,23 @@ FROM debian:jessie # Install JDK 8 and Git # -# TODO(temiola): simplify this if/when a simpler process is available. -# RUN echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections && \ echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee /etc/apt/sources.list.d/webupd8team-java.list && \ echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list && \ - apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886 && \ - apt-get update && \ - apt-get -y install \ + apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886 + +RUN apt-get update && apt-get -y install \ git \ libapr1 \ oracle-java8-installer \ && \ - apt-get clean && rm -r /var/cache/oracle-jdk8-installer/ + apt-get clean && rm -r /var/cache/oracle-jdk8-installer/ ENV JAVA_HOME /usr/lib/jvm/java-8-oracle ENV PATH $PATH:$JAVA_HOME/bin + + # Trigger download of as many Gradle artifacts as possible. RUN git clone --recursive --depth 1 https://github.com/grpc/grpc-java.git && \ cd grpc-java && \ diff --git a/tools/dockerfile/grpc_interop_java/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_java/build_interop.sh similarity index 100% rename from tools/dockerfile/grpc_interop_java/build_interop.sh rename to tools/dockerfile/interoptest/grpc_interop_java/build_interop.sh diff --git a/tools/dockerfile/grpc_interop_node/Dockerfile b/tools/dockerfile/interoptest/grpc_interop_node/Dockerfile similarity index 84% rename from tools/dockerfile/grpc_interop_node/Dockerfile rename to tools/dockerfile/interoptest/grpc_interop_node/Dockerfile index db5aff844de1aa96584e56d7a3ee3b474c7cf345..64314f88642bd1f30834da87e68283f63c0e7e51 100644 --- a/tools/dockerfile/grpc_interop_node/Dockerfile +++ b/tools/dockerfile/interoptest/grpc_interop_node/Dockerfile @@ -27,12 +27,9 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# A work-in-progress Dockerfile that allows running gRPC test suites -# inside a docker container. - FROM debian:jessie -# Install Git. +# Install Git and basic packages. RUN apt-get update && apt-get install -y \ autoconf \ autotools-dev \ @@ -43,14 +40,16 @@ RUN apt-get update && apt-get install -y \ gcc \ gcc-multilib \ git \ + golang \ gyp \ + lcov \ libc6 \ libc6-dbg \ libc6-dev \ libgtest-dev \ - libssl-dev \ libtool \ make \ + perl \ strace \ python-dev \ python-setuptools \ @@ -60,6 +59,18 @@ RUN apt-get update && apt-get install -y \ wget \ zip && apt-get clean +#================ +# Build profiling +RUN apt-get update && apt-get install -y time && apt-get clean + +#================== +# Node dependencies + +# Install nvm +RUN touch .profile +RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash +RUN /bin/bash -l -c "nvm install 0.12 && npm config set cache /tmp/npm-cache" + # Prepare ccache RUN ln -s /usr/bin/ccache /usr/local/bin/gcc RUN ln -s /usr/bin/ccache /usr/local/bin/g++ @@ -68,13 +79,12 @@ RUN ln -s /usr/bin/ccache /usr/local/bin/c++ RUN ln -s /usr/bin/ccache /usr/local/bin/clang RUN ln -s /usr/bin/ccache /usr/local/bin/clang++ -################## -# Node dependencies +#====================== +# Zookeeper dependencies +# TODO(jtattermusch): is zookeeper still needed? +RUN apt-get install -y libzookeeper-mt-dev -# Install nvm -RUN touch .profile -RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash -RUN /bin/bash -l -c "nvm install 0.12" +RUN mkdir /var/local/jenkins # Define the default command. CMD ["bash"] diff --git a/tools/dockerfile/grpc_interop_node/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_node/build_interop.sh similarity index 99% rename from tools/dockerfile/grpc_interop_node/build_interop.sh rename to tools/dockerfile/interoptest/grpc_interop_node/build_interop.sh index 4d4290d0b4112671f7d32d8971c6169169be7c7b..b99fd444eeadfce07819a60d1cd752fc3054953f 100755 --- a/tools/dockerfile/grpc_interop_node/build_interop.sh +++ b/tools/dockerfile/interoptest/grpc_interop_node/build_interop.sh @@ -41,8 +41,6 @@ cd /var/local/git/grpc nvm use 0.12 nvm alias default 0.12 # prevent the need to run 'nvm use' in every shell -make install-certs - # build Node interop client & server npm install -g node-gyp npm install --unsafe-perm --build-from-source diff --git a/tools/dockerfile/grpc_interop_php/Dockerfile b/tools/dockerfile/interoptest/grpc_interop_php/Dockerfile similarity index 85% rename from tools/dockerfile/grpc_interop_php/Dockerfile rename to tools/dockerfile/interoptest/grpc_interop_php/Dockerfile index cf3e79176a55d1e188cc6b3779f003b01f904661..e27a6a23013b9bb9bff2c46f0aa061b04757f2b7 100644 --- a/tools/dockerfile/grpc_interop_php/Dockerfile +++ b/tools/dockerfile/interoptest/grpc_interop_php/Dockerfile @@ -27,12 +27,9 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# A work-in-progress Dockerfile that allows running gRPC test suites -# inside a docker container. - FROM debian:jessie -# Install Git. +# Install Git and basic packages. RUN apt-get update && apt-get install -y \ autoconf \ autotools-dev \ @@ -43,13 +40,16 @@ RUN apt-get update && apt-get install -y \ gcc \ gcc-multilib \ git \ + golang \ gyp \ + lcov \ libc6 \ libc6-dbg \ libc6-dev \ libgtest-dev \ libtool \ make \ + perl \ strace \ python-dev \ python-setuptools \ @@ -59,15 +59,11 @@ RUN apt-get update && apt-get install -y \ wget \ zip && apt-get clean -# Prepare ccache -RUN ln -s /usr/bin/ccache /usr/local/bin/gcc -RUN ln -s /usr/bin/ccache /usr/local/bin/g++ -RUN ln -s /usr/bin/ccache /usr/local/bin/cc -RUN ln -s /usr/bin/ccache /usr/local/bin/c++ -RUN ln -s /usr/bin/ccache /usr/local/bin/clang -RUN ln -s /usr/bin/ccache /usr/local/bin/clang++ +#================ +# Build profiling +RUN apt-get update && apt-get install -y time && apt-get clean -################## +#================== # Ruby dependencies # Install rvm @@ -82,14 +78,35 @@ RUN /bin/bash -l -c "echo 'export PATH=/usr/local/rvm/bin:$PATH' >> ~/.bashrc" RUN /bin/bash -l -c "echo 'rvm --default use ruby-2.1' >> ~/.bashrc" RUN /bin/bash -l -c "gem install bundler --no-ri --no-rdoc" -################## +#================= # PHP dependencies # Install dependencies +RUN /bin/bash -l -c "echo 'deb http://packages.dotdeb.org wheezy-php55 all' \ + >> /etc/apt/sources.list.d/dotdeb.list" +RUN /bin/bash -l -c "echo 'deb-src http://packages.dotdeb.org wheezy-php55 all' \ + >> /etc/apt/sources.list.d/dotdeb.list" +RUN wget http://www.dotdeb.org/dotdeb.gpg -O- | apt-key add - + RUN apt-get update && apt-get install -y \ git php5 php5-dev phpunit unzip +# Prepare ccache +RUN ln -s /usr/bin/ccache /usr/local/bin/gcc +RUN ln -s /usr/bin/ccache /usr/local/bin/g++ +RUN ln -s /usr/bin/ccache /usr/local/bin/cc +RUN ln -s /usr/bin/ccache /usr/local/bin/c++ +RUN ln -s /usr/bin/ccache /usr/local/bin/clang +RUN ln -s /usr/bin/ccache /usr/local/bin/clang++ + +#====================== +# Zookeeper dependencies +# TODO(jtattermusch): is zookeeper still needed? +RUN apt-get install -y libzookeeper-mt-dev + +RUN mkdir /var/local/jenkins + # ronn: a ruby tool used to convert markdown to man pages, used during the # install of Protobuf extensions # diff --git a/tools/dockerfile/grpc_interop_php/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_php/build_interop.sh similarity index 100% rename from tools/dockerfile/grpc_interop_php/build_interop.sh rename to tools/dockerfile/interoptest/grpc_interop_php/build_interop.sh diff --git a/tools/dockerfile/grpc_interop_python/Dockerfile b/tools/dockerfile/interoptest/grpc_interop_python/Dockerfile similarity index 77% rename from tools/dockerfile/grpc_interop_python/Dockerfile rename to tools/dockerfile/interoptest/grpc_interop_python/Dockerfile index 047604b1b7975b11c0cf0d719ad1ae46e4990965..071fb2c93b139292026f106e8802535f4ab7e7d6 100644 --- a/tools/dockerfile/grpc_interop_python/Dockerfile +++ b/tools/dockerfile/interoptest/grpc_interop_python/Dockerfile @@ -27,12 +27,9 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# A work-in-progress Dockerfile that allows running gRPC test suites -# inside a docker container. - FROM debian:jessie -# Install Git. +# Install Git and basic packages. RUN apt-get update && apt-get install -y \ autoconf \ autotools-dev \ @@ -43,17 +40,18 @@ RUN apt-get update && apt-get install -y \ gcc \ gcc-multilib \ git \ + golang \ gyp \ + lcov \ libc6 \ libc6-dbg \ libc6-dev \ libgtest-dev \ - libssl-dev \ libtool \ make \ + perl \ strace \ python-dev \ - python-pip \ python-setuptools \ python-yaml \ telnet \ @@ -61,6 +59,25 @@ RUN apt-get update && apt-get install -y \ wget \ zip && apt-get clean +#================ +# Build profiling +RUN apt-get update && apt-get install -y time && apt-get clean + +#==================== +# Python dependencies + +# Install dependencies + +RUN apt-get update && apt-get install -y \ + python-all-dev \ + python3-all-dev \ + python-pip + +# Install Python packages from PyPI +RUN pip install pip --upgrade +RUN pip install virtualenv +RUN pip install futures==2.2.0 enum34==1.0.4 protobuf==3.0.0a2 tox + # Prepare ccache RUN ln -s /usr/bin/ccache /usr/local/bin/gcc RUN ln -s /usr/bin/ccache /usr/local/bin/g++ @@ -69,14 +86,12 @@ RUN ln -s /usr/bin/ccache /usr/local/bin/c++ RUN ln -s /usr/bin/ccache /usr/local/bin/clang RUN ln -s /usr/bin/ccache /usr/local/bin/clang++ +#====================== +# Zookeeper dependencies +# TODO(jtattermusch): is zookeeper still needed? +RUN apt-get install -y libzookeeper-mt-dev -##################### -# Python dependencies - -# Install Python requisites -RUN /bin/bash -l -c "pip install --upgrade pip" -RUN /bin/bash -l -c "pip install virtualenv" -RUN /bin/bash -l -c "pip install tox" +RUN mkdir /var/local/jenkins # Define the default command. CMD ["bash"] diff --git a/tools/dockerfile/grpc_interop_python/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_python/build_interop.sh similarity index 95% rename from tools/dockerfile/grpc_interop_python/build_interop.sh rename to tools/dockerfile/interoptest/grpc_interop_python/build_interop.sh index 6454a4f5e25c8cf91c8c0c08bdc4a8cf9a8f2e08..f29c59da8e8d6e7e6e80efb7dfe31cdd0451855e 100755 --- a/tools/dockerfile/grpc_interop_python/build_interop.sh +++ b/tools/dockerfile/interoptest/grpc_interop_python/build_interop.sh @@ -39,8 +39,4 @@ cp -r /var/local/jenkins/service_account $HOME || true cd /var/local/git/grpc -make - -# build Python interop client and server -CONFIG=opt ./tools/run_tests/build_python.sh - +tools/run_tests/run_tests.py -l python -c opt --build_only diff --git a/tools/dockerfile/grpc_interop_ruby/Dockerfile b/tools/dockerfile/interoptest/grpc_interop_ruby/Dockerfile similarity index 88% rename from tools/dockerfile/grpc_interop_ruby/Dockerfile rename to tools/dockerfile/interoptest/grpc_interop_ruby/Dockerfile index ff201fa291e52147bb4d68465144bd7d483dad5a..df8eef54385292da68685464894d61b56cb60af4 100644 --- a/tools/dockerfile/grpc_interop_ruby/Dockerfile +++ b/tools/dockerfile/interoptest/grpc_interop_ruby/Dockerfile @@ -27,12 +27,9 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# A work-in-progress Dockerfile that allows running gRPC test suites -# inside a docker container. - FROM debian:jessie -# Install Git. +# Install Git and basic packages. RUN apt-get update && apt-get install -y \ autoconf \ autotools-dev \ @@ -43,13 +40,16 @@ RUN apt-get update && apt-get install -y \ gcc \ gcc-multilib \ git \ + golang \ gyp \ + lcov \ libc6 \ libc6-dbg \ libc6-dev \ libgtest-dev \ libtool \ make \ + perl \ strace \ python-dev \ python-setuptools \ @@ -59,16 +59,11 @@ RUN apt-get update && apt-get install -y \ wget \ zip && apt-get clean -# Prepare ccache -RUN ln -s /usr/bin/ccache /usr/local/bin/gcc -RUN ln -s /usr/bin/ccache /usr/local/bin/g++ -RUN ln -s /usr/bin/ccache /usr/local/bin/cc -RUN ln -s /usr/bin/ccache /usr/local/bin/c++ -RUN ln -s /usr/bin/ccache /usr/local/bin/clang -RUN ln -s /usr/bin/ccache /usr/local/bin/clang++ - +#================ +# Build profiling +RUN apt-get update && apt-get install -y time && apt-get clean -################## +#================== # Ruby dependencies # Install rvm @@ -83,5 +78,20 @@ RUN /bin/bash -l -c "echo 'export PATH=/usr/local/rvm/bin:$PATH' >> ~/.bashrc" RUN /bin/bash -l -c "echo 'rvm --default use ruby-2.1' >> ~/.bashrc" RUN /bin/bash -l -c "gem install bundler --no-ri --no-rdoc" +# Prepare ccache +RUN ln -s /usr/bin/ccache /usr/local/bin/gcc +RUN ln -s /usr/bin/ccache /usr/local/bin/g++ +RUN ln -s /usr/bin/ccache /usr/local/bin/cc +RUN ln -s /usr/bin/ccache /usr/local/bin/c++ +RUN ln -s /usr/bin/ccache /usr/local/bin/clang +RUN ln -s /usr/bin/ccache /usr/local/bin/clang++ + +#====================== +# Zookeeper dependencies +# TODO(jtattermusch): is zookeeper still needed? +RUN apt-get install -y libzookeeper-mt-dev + +RUN mkdir /var/local/jenkins + # Define the default command. CMD ["bash"] diff --git a/tools/dockerfile/grpc_interop_ruby/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_ruby/build_interop.sh similarity index 98% rename from tools/dockerfile/grpc_interop_ruby/build_interop.sh rename to tools/dockerfile/interoptest/grpc_interop_ruby/build_interop.sh index 685397bac2d4f4f71f93a6f0aeb57d721cd28008..97b3860f9813a5158aeb658e802a9a292cd6243e 100755 --- a/tools/dockerfile/grpc_interop_ruby/build_interop.sh +++ b/tools/dockerfile/interoptest/grpc_interop_ruby/build_interop.sh @@ -40,7 +40,5 @@ cp -r /var/local/jenkins/service_account $HOME || true cd /var/local/git/grpc rvm --default use ruby-2.1 -make install-certs - # build Ruby interop client and server (cd src/ruby && gem update bundler && bundle && rake compile) diff --git a/tools/dockerfile/stress_test/grpc_interop_stress_csharp/Dockerfile b/tools/dockerfile/stress_test/grpc_interop_stress_csharp/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..823fe948fb29a0dcfbb8fea970f5f5977d985164 --- /dev/null +++ b/tools/dockerfile/stress_test/grpc_interop_stress_csharp/Dockerfile @@ -0,0 +1,101 @@ +# 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. + +FROM debian:jessie + +# Install Git and basic packages. +RUN apt-get update && apt-get install -y \ + autoconf \ + autotools-dev \ + build-essential \ + bzip2 \ + ccache \ + curl \ + gcc \ + gcc-multilib \ + git \ + golang \ + gyp \ + lcov \ + libc6 \ + libc6-dbg \ + libc6-dev \ + libgtest-dev \ + libtool \ + make \ + perl \ + strace \ + python-dev \ + python-setuptools \ + python-yaml \ + telnet \ + unzip \ + wget \ + zip && apt-get clean + +#================ +# Build profiling +RUN apt-get update && apt-get install -y time && apt-get clean + +# Prepare ccache +RUN ln -s /usr/bin/ccache /usr/local/bin/gcc +RUN ln -s /usr/bin/ccache /usr/local/bin/g++ +RUN ln -s /usr/bin/ccache /usr/local/bin/cc +RUN ln -s /usr/bin/ccache /usr/local/bin/c++ +RUN ln -s /usr/bin/ccache /usr/local/bin/clang +RUN ln -s /usr/bin/ccache /usr/local/bin/clang++ + +#================= +# C++ dependencies +RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang && apt-get clean + +# Google Cloud platform API libraries +RUN apt-get update && apt-get install -y python-pip && apt-get clean +RUN pip install --upgrade google-api-python-client + + +#================ +# C# dependencies + +# Update to a newer version of mono +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF +RUN echo "deb http://download.mono-project.com/repo/debian wheezy main" | tee /etc/apt/sources.list.d/mono-xamarin.list +RUN echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" | tee -a /etc/apt/sources.list.d/mono-xamarin.list +RUN echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" | tee -a /etc/apt/sources.list.d/mono-xamarin.list +RUN echo "deb http://download.mono-project.com/repo/debian wheezy-libtiff-compat main" | tee -a /etc/apt/sources.list.d/mono-xamarin.list + +# Install dependencies +RUN apt-get update && apt-get -y dist-upgrade && apt-get install -y \ + mono-devel \ + ca-certificates-mono \ + nuget \ + && apt-get clean + +# Define the default command. +CMD ["bash"] diff --git a/src/python/grpcio/grpc/framework/alpha/exceptions.py b/tools/dockerfile/stress_test/grpc_interop_stress_csharp/build_interop_stress.sh old mode 100644 new mode 100755 similarity index 76% rename from src/python/grpcio/grpc/framework/alpha/exceptions.py rename to tools/dockerfile/stress_test/grpc_interop_stress_csharp/build_interop_stress.sh index 09359c5e94fd8ec8ab59730456ee32b6c0b6b7e6..1f4bf893cce2f297a8f00f0e5812b572c85513c1 --- a/src/python/grpcio/grpc/framework/alpha/exceptions.py +++ b/tools/dockerfile/stress_test/grpc_interop_stress_csharp/build_interop_stress.sh @@ -1,3 +1,4 @@ +#!/bin/bash # Copyright 2015, Google Inc. # All rights reserved. # @@ -26,22 +27,21 @@ # 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. +# +# Builds C# interop server and client in a base image. +set -e -"""Exceptions raised by GRPC. - -Only GRPC should instantiate and raise these exceptions. -""" -import abc - -import six +mkdir -p /var/local/git +git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc -class RpcError(six.with_metaclass(abc.ABCMeta, Exception)): - """Common super type for all exceptions raised by GRPC.""" +# Copy service account keys if available +cp -r /var/local/jenkins/service_account $HOME || true +cd /var/local/git/grpc -class CancellationError(RpcError): - """Indicates that an RPC has been cancelled.""" +# Build C++ metrics client (to query the metrics from csharp stress client) +make metrics_client -j +# Build C# interop client & server +tools/run_tests/run_tests.py -l csharp -c dbg --build_only -class ExpirationError(RpcError): - """Indicates that an RPC has expired ("timed out").""" diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal index e02bb6f02f374c6f813f89aecc20b2c7ff2d69d6..6d8f800540bde4593bbf2201c660ede900761fea 100644 --- a/tools/doxygen/Doxyfile.core.internal +++ b/tools/doxygen/Doxyfile.core.internal @@ -1172,6 +1172,7 @@ src/core/lib/support/slice_buffer.c \ src/core/lib/support/stack_lockfree.c \ src/core/lib/support/string.c \ src/core/lib/support/string_posix.c \ +src/core/lib/support/string_util_win32.c \ src/core/lib/support/string_win32.c \ src/core/lib/support/subprocess_posix.c \ src/core/lib/support/subprocess_windows.c \ @@ -1186,6 +1187,7 @@ src/core/lib/support/time_posix.c \ src/core/lib/support/time_precise.c \ src/core/lib/support/time_win32.c \ src/core/lib/support/tls_pthread.c \ +src/core/lib/support/tmpfile_msys.c \ src/core/lib/support/tmpfile_posix.c \ src/core/lib/support/tmpfile_win32.c \ src/core/lib/support/wrap_memcpy.c diff --git a/tools/gce/linux_performance_worker_init.sh b/tools/gce/linux_performance_worker_init.sh index 478e04ef37095e7565c3770d5de274050714fe2f..25ac3bcedea29789148f7497e5f098546315bb84 100755 --- a/tools/gce/linux_performance_worker_init.sh +++ b/tools/gce/linux_performance_worker_init.sh @@ -83,11 +83,13 @@ sudo apt-get install -y libgflags-dev libgtest-dev libc++-dev clang # Python dependencies sudo pip install tabulate sudo pip install google-api-python-client +sudo pip install tox curl -O https://bootstrap.pypa.io/get-pip.py sudo pypy get-pip.py sudo pypy -m pip install tabulate sudo pip install google-api-python-client +sudo pip install tox # Node dependencies (nvm has to be installed under user jenkins) touch .profile diff --git a/tools/jenkins/build_interop_image.sh b/tools/jenkins/build_interop_image.sh index 26687a5a855949211c65388544425a92242a9924..d2ba97c3de8c219cdd23b3bc302e665047dee8b6 100755 --- a/tools/jenkins/build_interop_image.sh +++ b/tools/jenkins/build_interop_image.sh @@ -71,10 +71,10 @@ then fi # Use image name based on Dockerfile checksum -BASE_IMAGE=${BASE_NAME}_base:`sha1sum tools/dockerfile/$BASE_NAME/Dockerfile | cut -f1 -d\ ` +BASE_IMAGE=${BASE_NAME}_base:`sha1sum tools/dockerfile/interoptest/$BASE_NAME/Dockerfile | cut -f1 -d\ ` # Make sure base docker image has been built. Should be instantaneous if so. -docker build -t $BASE_IMAGE --force-rm=true tools/dockerfile/$BASE_NAME || exit $? +docker build -t $BASE_IMAGE --force-rm=true tools/dockerfile/interoptest/$BASE_NAME || exit $? # Create a local branch so the child Docker script won't complain git branch -f jenkins-docker @@ -92,7 +92,7 @@ CONTAINER_NAME="build_${BASE_NAME}_$(uuidgen)" -v /tmp/ccache:/tmp/ccache \ --name=$CONTAINER_NAME \ $BASE_IMAGE \ - bash -l /var/local/jenkins/grpc/tools/dockerfile/$BASE_NAME/build_interop.sh \ + bash -l /var/local/jenkins/grpc/tools/dockerfile/interoptest/$BASE_NAME/build_interop.sh \ && docker commit $CONTAINER_NAME $INTEROP_IMAGE \ && echo "Successfully built image $INTEROP_IMAGE") EXITCODE=$? diff --git a/tools/jenkins/run_distribution.sh b/tools/jenkins/run_distribution.sh deleted file mode 100755 index 306b85b045c8eda4474c4b905d4d9ae8ae7db32c..0000000000000000000000000000000000000000 --- a/tools/jenkins/run_distribution.sh +++ /dev/null @@ -1,144 +0,0 @@ -#!/bin/bash -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# This script is invoked by Jenkins and triggers a test run of -# linuxbrew installation of a selected language -set -ex - -# Our homebrew installation script command, per language -# Can be used in both linux and macos -if [ "$language" == "core" ]; then - command="curl -fsSL https://goo.gl/getgrpc | bash -" -elif [[ "python nodejs ruby php" =~ "$language" ]]; then - command="curl -fsSL https://goo.gl/getgrpc | bash -s $language" -else - echo "unsupported language $language" - exit 1 -fi - -if [ "$platform" == "linux" ]; then - - if [ "$dist_channel" == "homebrew" ]; then - - sha1=$(sha1sum tools/dockerfile/grpc_linuxbrew/Dockerfile | cut -f1 -d\ ) - DOCKER_IMAGE_NAME=grpc_linuxbrew_$sha1 - - # build docker image, contains all pre-requisites - docker build -t $DOCKER_IMAGE_NAME tools/dockerfile/grpc_linuxbrew - - # run per-language homebrew installation script - docker run --rm=true $DOCKER_IMAGE_NAME bash -l \ - -c "nvm use 0.12; \ - npm set unsafe-perm true; \ - rvm use ruby-2.1; \ - $command" - - else - echo "Unsupported $platform dist_channel $dist_channel" - exit 1 - fi - -elif [ "$platform" == "macos" ]; then - - if [ "$dist_channel" == "homebrew" ]; then - - echo "Formulas installed by system-wide homebrew (before)" - brew list -l - - # Save the original PATH so that we can run the system `brew` command - # again at the end of the script - export ORIGINAL_PATH=$PATH - - # Set up temp directories for test installation of homebrew - brew_root=/tmp/homebrew-test-$language - rm -rf $brew_root - mkdir -p $brew_root - git clone https://github.com/Homebrew/homebrew.git $brew_root - - # Make sure we are operating at the right copy of temp homebrew - # installation - export PATH=$brew_root/bin:$PATH - - # Set up right environment for each language - case $language in - *python*) - rm -rf jenkins_python_venv - virtualenv jenkins_python_venv - source jenkins_python_venv/bin/activate - ;; - *nodejs*) - export PATH=$HOME/.nvm/versions/node/v0.12.7/bin:$PATH - ;; - *ruby*) - export PATH=/usr/local/rvm/rubies/ruby-2.2.1/bin:$PATH - ;; - *php*) - export CFLAGS="-Wno-parentheses-equality" - ;; - esac - - # Run our homebrew installation script - bash -c "$command" - - # Uninstall / clean up per-language modules/extensions after the test - case $language in - *python*) - deactivate - rm -rf jenkins_python_venv - ;; - *nodejs*) - npm list -g | grep grpc - npm uninstall -g grpc - ;; - *ruby*) - gem list | grep grpc - gem uninstall grpc - ;; - *php*) - rm grpc.so - ;; - esac - - # Clean up - rm -rf $brew_root - - echo "Formulas installed by system-wide homebrew (after, should be unaffected)" - export PATH=$ORIGINAL_PATH - brew list -l - - else - echo "Unsupported $platform dist_channel $dist_channel" - exit 1 - fi - -else - echo "unsupported platform $platform" - exit 1 -fi diff --git a/tools/jenkins/run_performance.sh b/tools/jenkins/run_performance.sh index 903a14421512889660e17c16941ad93a1d65894b..13a332751b22bd5b0f532282ee5213d9dbb50d44 100755 --- a/tools/jenkins/run_performance.sh +++ b/tools/jenkins/run_performance.sh @@ -34,4 +34,4 @@ set -ex # Enter the gRPC repo root cd $(dirname $0)/../.. -tools/run_tests/run_performance_tests.py -l c++ node ruby csharp +tools/run_tests/run_performance_tests.py -l c++ node ruby csharp python diff --git a/tools/run_tests/build_package_node.sh b/tools/run_tests/build_package_node.sh index 540c8263117384e6802e7aebdfed13aad5d44acd..6bc9466b6337c604727c131950ff47fc49cfb329 100755 --- a/tools/run_tests/build_package_node.sh +++ b/tools/run_tests/build_package_node.sh @@ -35,10 +35,54 @@ set -ex cd $(dirname $0)/../.. -mkdir -p artifacts/ -cp -r $EXTERNAL_GIT_ROOT/architecture={x86,x64},language=node,platform={windows,linux,macos}/artifacts/* artifacts/ || true +base=$(pwd) +artifacts=$base/artifacts + +mkdir -p $artifacts +cp -r $EXTERNAL_GIT_ROOT/architecture={x86,x64},language=node,platform={windows,linux,macos}/artifacts/* $artifacts/ || true + +npm update +npm pack + +cp grpc-*.tgz $artifacts/grpc.tgz + +mkdir -p bin + +cd src/node/tools npm update npm pack +cp grpc-tools-*.tgz $artifacts/ +tools_version=$(npm list | grep -oP '(?<=grpc-tools@)\S+') + +output_dir=$artifacts/grpc-precompiled-binaries/node/grpc-tools/$tools_version +mkdir -p $output_dir -cp grpc-*.tgz artifacts/grpc.tgz +for arch in {x86,x64}; do + case arch in + x86) + node_arch=ia32 + ;; + *) + node_arch=$arch + ;; + esac + for plat in {windows,linux,macos}; do + case plat in + windows) + node_plat=win32 + ;; + macos) + node_plat=darwin + ;; + *) + node_plat=$plat + ;; + esac + rm bin/* + input_dir="$EXTERNAL_GIT_ROOT/architecture=$arch,language=protoc,platform=$plat/artifacts" + cp $input_dir/protoc* bin/ + cp $input_dir/grpc_node_plugin* bin/ + tar -czf $output_dir/$node_plat-$node_arch.tar.gz bin/ + done +done diff --git a/tools/run_tests/build_package_ruby.sh b/tools/run_tests/build_package_ruby.sh index 1a5b94348d8b1017c08e67120fad28d154b8a999..e44428bf7e395421e394e45316610852a4572674 100755 --- a/tools/run_tests/build_package_ruby.sh +++ b/tools/run_tests/build_package_ruby.sh @@ -32,6 +32,8 @@ set -ex cd $(dirname $0)/../.. +base=$(pwd) + mkdir -p artifacts/ # All the ruby packages have been built in the artifact phase already @@ -41,3 +43,25 @@ cp -r $EXTERNAL_GIT_ROOT/architecture={x86,x64},language=ruby,platform={windows, # TODO: all the artifact builder configurations generate a grpc-VERSION.gem # source distribution package, and only one of them will end up # in the artifacts/ directory. They should be all equivalent though. + +for arch in {x86,x64}; do + case $arch in + x64) + ruby_arch=x86_64 + ;; + *) + ruby_arch=$arch + ;; + esac + for plat in {windows,linux,macos}; do + input_dir="$EXTERNAL_GIT_ROOT/architecture=$arch,language=protoc,platform=$plat/artifacts" + output_dir="$base/src/ruby/tools/bin/${ruby_arch}-${plat}" + mkdir -p $output_dir + cp $input_dir/protoc* $output_dir/ + cp $input_dir/grpc_ruby_plugin* $output_dir/ + done +done + +cd $base/src/ruby/tools +gem build grpc-tools.gemspec +cp ./grpc-tools*.gem $base/artifacts/ diff --git a/tools/run_tests/build_python.sh b/tools/run_tests/build_python.sh index 30d121007fb460ef9dcbf2433401d115f3c21cec..594c20b14c3393cf952b9fc90074c07454fb5e2e 100755 --- a/tools/run_tests/build_python.sh +++ b/tools/run_tests/build_python.sh @@ -33,6 +33,8 @@ set -ex # change to grpc repo root cd $(dirname $0)/../.. +TOX_PYTHON_ENV="$1" + ROOT=`pwd` export LD_LIBRARY_PATH=$ROOT/libs/$CONFIG export DYLD_LIBRARY_PATH=$ROOT/libs/$CONFIG @@ -47,9 +49,9 @@ then export GRPC_PYTHON_ENABLE_CYTHON_TRACING=1 fi -tox --notest +tox -e ${TOX_PYTHON_ENV} --notest -$ROOT/.tox/py27/bin/python $ROOT/setup.py build -$ROOT/.tox/py27/bin/python $ROOT/setup.py build_py -$ROOT/.tox/py27/bin/python $ROOT/setup.py build_ext --inplace -$ROOT/.tox/py27/bin/python $ROOT/setup.py gather --test +$ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/setup.py build +$ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/setup.py build_py +$ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/setup.py build_ext --inplace +$ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/setup.py gather --test diff --git a/src/python/grpcio/grpc/framework/base/null.py b/tools/run_tests/performance/kill_workers.sh old mode 100644 new mode 100755 similarity index 71% rename from src/python/grpcio/grpc/framework/base/null.py rename to tools/run_tests/performance/kill_workers.sh index 1e30d4557b1f4608537f89ff809a2e66d7b2d73e..7a8763424dcf3dede31d277e8f8210bdc6af19c1 --- a/src/python/grpcio/grpc/framework/base/null.py +++ b/tools/run_tests/performance/kill_workers.sh @@ -1,3 +1,4 @@ +#!/bin/bash # Copyright 2015, Google Inc. # All rights reserved. # @@ -27,30 +28,27 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -"""Null links that ignore tickets passed to them.""" +set -ex -from grpc.framework.base import interfaces +cd $(dirname $0)/../../.. +# Make sure there are no pre-existing QPS workers around before starting +# the performance test suite -class _NullForeLink(interfaces.ForeLink): - """A do-nothing ForeLink.""" +# C++ +killall -9 qps_worker || true - def accept_back_to_front_ticket(self, ticket): - pass +# C# +ps -C mono -o pid=,cmd= | grep QpsWorker | awk '{print $1}' | xargs kill -9 - def join_rear_link(self, rear_link): - raise NotImplementedError() +# Ruby +ps -C ruby -o pid=,cmd= | grep 'qps/worker.rb' | awk '{print $1}' | xargs kill -9 +# Node +ps -C node -o pid=,cmd= | grep 'performance/worker.js' | awk '{print $1}' | xargs kill -9 -class _NullRearLink(interfaces.RearLink): - """A do-nothing RearLink.""" +# Python +ps -C python -o pid=,cmd= | grep 'qps_worker.py' | awk '{print $1}' | xargs kill -9 - def accept_front_to_back_ticket(self, ticket): - pass - - def join_fore_link(self, fore_link): - raise NotImplementedError() - - -NULL_FORE_LINK = _NullForeLink() -NULL_REAR_LINK = _NullRearLink() +# Java +jps | grep LoadWorker | awk '{print $1}' | xargs kill -9 diff --git a/tools/run_tests/performance/remote_host_prepare.sh b/tools/run_tests/performance/remote_host_prepare.sh index 17cfa1a59981f295b3ca7a535e4c773cdab85058..d7f539a74e8e50d2483139f25e81e3607b48312c 100755 --- a/tools/run_tests/performance/remote_host_prepare.sh +++ b/tools/run_tests/performance/remote_host_prepare.sh @@ -41,10 +41,9 @@ ssh "${USER_AT_HOST}" "rm -rf ~/performance_workspace && mkdir -p ~/performance_ # could also kill jenkins. ssh "${USER_AT_HOST}" "killall -9 qps_worker mono node ruby || true" -# Kill all java LoadWorker processes. We can't just killall java -# as one of the processes might be jenkins. -ssh "${USER_AT_HOST}" 'kill -9 $(jps | grep LoadWorker | cut -f1 -d" ") || true' - # push the current sources to the slave and unpack it. scp ../grpc.tar "${USER_AT_HOST}:~/performance_workspace" ssh "${USER_AT_HOST}" "tar -xf ~/performance_workspace/grpc.tar -C ~/performance_workspace" + +# For consistency with local run, invoke the kill_workers script remotely. +ssh "${USER_AT_HOST}" "~/performance_workspace/grpc/tools/run_tests/performance/kill_workers.sh" diff --git a/src/ruby/bin/grpc_ruby_interop_client b/tools/run_tests/performance/run_worker_python.sh similarity index 88% rename from src/ruby/bin/grpc_ruby_interop_client rename to tools/run_tests/performance/run_worker_python.sh index e79fd33aa5011146969618b648f7c4a455f0fe5b..0da8deda58e909deaacdf88d8cf891e61a862fe1 100755 --- a/src/ruby/bin/grpc_ruby_interop_client +++ b/tools/run_tests/performance/run_worker_python.sh @@ -1,6 +1,5 @@ -#!/usr/bin/env ruby - -# Copyright 2015, Google Inc. +#!/bin/bash +# Copyright 2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -29,5 +28,8 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# Provides a gem binary entry point for the interop client. -require 'test/client' +set -ex + +cd $(dirname $0)/../../.. + +PYTHONPATH=src/python/grpcio:src/python/gens .tox/py27/bin/python src/python/grpcio/tests/qps/qps_worker.py $@ diff --git a/tools/run_tests/performance/scenario_config.py b/tools/run_tests/performance/scenario_config.py index 55657f8d8a2dcd57da8105cda87fe40b0fb12c21..ddbe2375691b01f21890b71891eb98d18825769a 100644 --- a/tools/run_tests/performance/scenario_config.py +++ b/tools/run_tests/performance/scenario_config.py @@ -456,6 +456,128 @@ class NodeLanguage: def __str__(self): return 'node' +class PythonLanguage: + + def __init__(self): + self.safename = 'python' + + def worker_cmdline(self): + return ['tools/run_tests/performance/run_worker_python.sh'] + + def worker_port_offset(self): + return 500 + + def scenarios(self): + yield { + 'name': 'python_to_cpp_protobuf_streaming_ping_pong', + 'num_servers': 1, + 'num_clients': 1, + 'client_config': { + 'client_type': 'ASYNC_CLIENT', + 'security_params': SECURE_SECARGS, + 'outstanding_rpcs_per_channel': 1, + 'client_channels': 1, + 'async_client_threads': 1, + 'rpc_type': 'STREAMING', + 'load_params': { + 'closed_loop': {} + }, + 'payload_config': EMPTY_PROTO_PAYLOAD, + 'histogram_params': HISTOGRAM_PARAMS, + }, + 'server_config': { + 'server_type': 'SYNC_SERVER', + 'security_params': SECURE_SECARGS, + 'core_limit': 0, + 'async_server_threads': 1, + }, + 'warmup_seconds': WARMUP_SECONDS, + 'benchmark_seconds': BENCHMARK_SECONDS, + 'SERVER_LANGUAGE': 'c++' + } + yield { + 'name': 'python_protobuf_sync_unary_ping_pong', + 'num_servers': 1, + 'num_clients': 1, + 'client_config': { + 'client_type': 'SYNC_CLIENT', + 'security_params': SECURE_SECARGS, + 'outstanding_rpcs_per_channel': 1, + 'client_channels': 1, + 'async_client_threads': 1, + 'rpc_type': 'UNARY', + 'load_params': { + 'closed_loop': {} + }, + 'payload_config': EMPTY_PROTO_PAYLOAD, + 'histogram_params': HISTOGRAM_PARAMS, + }, + 'server_config': { + 'server_type': 'SYNC_SERVER', + 'security_params': SECURE_SECARGS, + 'core_limit': 0, + 'async_server_threads': 1, + }, + 'warmup_seconds': WARMUP_SECONDS, + 'benchmark_seconds': BENCHMARK_SECONDS, + } + yield { + 'name': 'python_protobuf_async_unary_ping_pong', + 'num_servers': 1, + 'num_clients': 1, + 'client_config': { + 'client_type': 'ASYNC_CLIENT', + 'security_params': SECURE_SECARGS, + 'outstanding_rpcs_per_channel': 1, + 'client_channels': 1, + 'async_client_threads': 1, + 'rpc_type': 'UNARY', + 'load_params': { + 'closed_loop': {} + }, + 'payload_config': EMPTY_PROTO_PAYLOAD, + 'histogram_params': HISTOGRAM_PARAMS, + }, + 'server_config': { + 'server_type': 'SYNC_SERVER', + 'security_params': SECURE_SECARGS, + 'core_limit': 0, + 'async_server_threads': 1, + }, + 'warmup_seconds': WARMUP_SECONDS, + 'benchmark_seconds': BENCHMARK_SECONDS, + } + yield { + 'name': 'python_to_cpp_single_channel_throughput', + 'num_servers': 1, + 'num_clients': 1, + 'client_config': { + 'client_type': 'ASYNC_CLIENT', + 'security_params': SECURE_SECARGS, + 'outstanding_rpcs_per_channel': 1, + 'client_channels': 1, + 'async_client_threads': 1, + 'rpc_type': 'STREAMING', + 'load_params': { + 'closed_loop': {} + }, + 'payload_config': BIG_GENERIC_PAYLOAD, + 'histogram_params': HISTOGRAM_PARAMS, + }, + 'server_config': { + 'server_type': 'ASYNC_GENERIC_SERVER', + 'security_params': SECURE_SECARGS, + 'core_limit': SINGLE_MACHINE_CORES/2, + 'async_server_threads': 1, + 'payload_config': BIG_GENERIC_PAYLOAD, + }, + 'warmup_seconds': WARMUP_SECONDS, + 'benchmark_seconds': BENCHMARK_SECONDS, + 'SERVER_LANGUAGE': 'c++' + } + + def __str__(self): + return 'python' class RubyLanguage: @@ -562,4 +684,5 @@ LANGUAGES = { 'node' : NodeLanguage(), 'ruby' : RubyLanguage(), 'java' : JavaLanguage(), + 'python' : PythonLanguage(), } diff --git a/tools/run_tests/run_interop_tests.py b/tools/run_tests/run_interop_tests.py index 28b91f8b623be7ce13d381c89824ba7c632a3fa0..758be9304d6e0450c69ee97f5b757747566def73 100755 --- a/tools/run_tests/run_interop_tests.py +++ b/tools/run_tests/run_interop_tests.py @@ -111,8 +111,7 @@ class CSharpLanguage: return {} def unimplemented_test_cases(self): - # TODO: status_code_and_message doesn't work against node_server - return _SKIP_COMPRESSION + ['status_code_and_message'] + return _SKIP_COMPRESSION def unimplemented_test_cases_server(self): return _SKIP_COMPRESSION @@ -270,13 +269,13 @@ class RubyLanguage: self.safename = str(self) def client_cmd(self, args): - return ['ruby', 'src/ruby/bin/interop/interop_client.rb'] + args + return ['ruby', 'src/ruby/pb/test/client.rb'] + args def cloud_to_prod_env(self): return {} def server_cmd(self, args): - return ['ruby', 'src/ruby/bin/interop/interop_server.rb', '--use_tls=true'] + args + return ['ruby', 'src/ruby/pb/test/server.rb', '--use_tls=true'] + args def global_env(self): return {} @@ -314,7 +313,8 @@ class PythonLanguage: ] def global_env(self): - return {'LD_LIBRARY_PATH': '{}/libs/opt'.format(DOCKER_WORKDIR_ROOT)} + return {'LD_LIBRARY_PATH': '{}/libs/opt'.format(DOCKER_WORKDIR_ROOT), + 'PYTHONPATH': '{}/src/python/gens'.format(DOCKER_WORKDIR_ROOT)} def unimplemented_test_cases(self): return _SKIP_ADVANCED + _SKIP_COMPRESSION + ['jwt_token_creds', @@ -590,8 +590,8 @@ prod_servers = { False), 'cloud_gateway_v2': ('216.239.32.255', 'grpc-test2.sandbox.googleapis.com', True), - 'gateway_v4': ('grpc-test4.sandbox.googleapis.com', - 'grpc-test4.sandbox.googleapis.com', True), + 'gateway_v4': ('grpc-test4.sandbox.googleapis.com', + 'grpc-test4.sandbox.googleapis.com', True), 'cloud_gateway_v4': ('216.239.32.255', 'grpc-test4.sandbox.googleapis.com', True), } diff --git a/tools/run_tests/run_performance_tests.py b/tools/run_tests/run_performance_tests.py index ada341abf54bcfbc27e7cb026dd9ce1d88f4a6b9..5519666e847a8dbe7f8f37d4a4c93d7a1111888b 100755 --- a/tools/run_tests/run_performance_tests.py +++ b/tools/run_tests/run_performance_tests.py @@ -157,8 +157,9 @@ def archive_repo(languages): sys.exit(1) -def prepare_remote_hosts(hosts): - """Prepares remote hosts.""" +def prepare_remote_hosts(hosts, prepare_local=False): + """Prepares remote hosts (and maybe prepare localhost as well).""" + prepare_timeout = 5*60 prepare_jobs = [] for host in hosts: user_at_host = '%s@%s' % (_REMOTE_HOST_USERNAME, host) @@ -167,13 +168,20 @@ def prepare_remote_hosts(hosts): cmdline=['tools/run_tests/performance/remote_host_prepare.sh'], shortname='remote_host_prepare.%s' % host, environ = {'USER_AT_HOST': user_at_host}, - timeout_seconds=5*60)) - jobset.message('START', 'Preparing remote hosts.', do_newline=True) + timeout_seconds=prepare_timeout)) + if prepare_local: + # Prepare localhost as well + prepare_jobs.append( + jobset.JobSpec( + cmdline=['tools/run_tests/performance/kill_workers.sh'], + shortname='local_prepare', + timeout_seconds=prepare_timeout)) + jobset.message('START', 'Preparing hosts.', do_newline=True) num_failures, _ = jobset.run( prepare_jobs, newline_on_success=True, maxjobs=10) if num_failures == 0: jobset.message('SUCCESS', - 'Remote hosts ready to start build.', + 'Prepare step completed successfully.', do_newline=True) else: jobset.message('FAILED', 'Failed to prepare remote hosts.', @@ -238,6 +246,9 @@ def start_qpsworkers(languages, worker_hosts): def create_scenarios(languages, workers_by_lang, remote_host=None, regex='.*', bq_result_table=None): """Create jobspecs for scenarios to run.""" + all_workers = [worker + for workers in workers_by_lang.values() + for worker in workers] scenarios = [] for language in languages: for scenario_json in language.scenarios(): @@ -263,9 +274,6 @@ def create_scenarios(languages, workers_by_lang, remote_host=None, regex='.*', scenarios.append(scenario) # the very last scenario requests shutting down the workers. - all_workers = [worker - for workers in workers_by_lang.values() - for worker in workers] scenarios.append(create_quit_jobspec(all_workers, remote_host=remote_host)) return scenarios @@ -322,7 +330,9 @@ if args.remote_driver_host: if remote_hosts: archive_repo(languages=[str(l) for l in languages]) - prepare_remote_hosts(remote_hosts) + prepare_remote_hosts(remote_hosts, prepare_local=True) +else: + prepare_remote_hosts([], prepare_local=True) build_local = False if not args.remote_driver_host: diff --git a/tools/run_tests/run_python.sh b/tools/run_tests/run_python.sh index a93ef2576db75a7acb41c6366caad7bceac897dd..7a3ce6b821a8da54db16485eb910b1388a2eca29 100755 --- a/tools/run_tests/run_python.sh +++ b/tools/run_tests/run_python.sh @@ -33,6 +33,8 @@ set -ex # change to grpc repo root cd $(dirname $0)/../.. +TOX_PYTHON_ENV="$1" + ROOT=`pwd` export LD_LIBRARY_PATH=$ROOT/libs/$CONFIG export DYLD_LIBRARY_PATH=$ROOT/libs/$CONFIG @@ -45,9 +47,9 @@ export GRPC_PYTHON_USE_PRECOMPILED_BINARIES=0 if [ "$CONFIG" = "gcov" ] then export GRPC_PYTHON_ENABLE_CYTHON_TRACING=1 - tox + tox -e ${TOX_PYTHON_ENV} else - $ROOT/.tox/py27/bin/python $ROOT/setup.py test_lite + $ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/setup.py test_lite fi mkdir -p $ROOT/reports diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index 9dff686bbf6953e8f35f7de88975935c8983a8f4..dea481ef90ddcbafce4f2ae476201c669f03dd8b 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -356,24 +356,20 @@ class PhpLanguage(object): class PythonLanguage(object): - def __init__(self): - self._build_python_versions = ['2.7'] - self._has_python_versions = [] - def configure(self, config, args): self.config = config self.args = args - _check_compiler(self.args.compiler, ['default']) + self._tox_env = self._get_tox_env(self.args.compiler) def test_specs(self): # load list of known test suites with open('src/python/grpcio/tests/tests.json') as tests_json_file: tests_json = json.load(tests_json_file) environment = dict(_FORCE_ENVIRON_FOR_WRAPPERS) - environment['PYVER'] = '2.7' + environment['PYTHONPATH'] = os.path.abspath('src/python/gens') if self.config.build_config != 'gcov': return [self.config.job_spec( - ['tools/run_tests/run_python.sh'], + ['tools/run_tests/run_python.sh', self._tox_env], None, environ=dict(environment.items() + [('GRPC_PYTHON_TESTRUNNER_FILTER', suite_name)]), @@ -398,18 +394,7 @@ class PythonLanguage(object): return [] def build_steps(self): - commands = [] - for python_version in self._build_python_versions: - try: - with open(os.devnull, 'w') as output: - subprocess.check_call(['which', 'python' + python_version], - stdout=output, stderr=output) - commands.append(['tools/run_tests/build_python.sh', python_version]) - self._has_python_versions.append(python_version) - except: - jobset.message('WARNING', 'Missing Python ' + python_version, - do_newline=True) - return commands + return [['tools/run_tests/build_python.sh', self._tox_env]] def post_tests_steps(self): return [] @@ -420,6 +405,15 @@ class PythonLanguage(object): def dockerfile_dir(self): return 'tools/dockerfile/test/python_jessie_%s' % _docker_arch_suffix(self.args.arch) + def _get_tox_env(self, compiler): + """Returns name of tox environment based on selected compiler.""" + if compiler == 'python2.7' or compiler == 'default': + return 'py27' + elif compiler == 'python3.4': + return 'py34' + else: + raise Exception('Compiler %s not supported.' % compiler) + def __str__(self): return 'python' @@ -807,7 +801,8 @@ argp.add_argument('--compiler', choices=['default', 'gcc4.4', 'gcc4.9', 'gcc5.3', 'clang3.4', 'clang3.6', - 'vs2010', 'vs2013', 'vs2015'], + 'vs2010', 'vs2013', 'vs2015', + 'python2.7', 'python3.4'], default='default', help='Selects compiler to use. Allowed values depend on the platform and language.') argp.add_argument('--build_only', diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 2b140a4270129b6dae999e083165fc6c201c8280..25d9c5df9466e63d7891fe57e70854d74528d8d1 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -2125,6 +2125,24 @@ "third_party": false, "type": "target" }, + { + "deps": [ + "gpr", + "grpc", + "grpc++" + ], + "headers": [ + "src/proto/grpc/testing/compiler_test.grpc.pb.h", + "src/proto/grpc/testing/compiler_test.pb.h" + ], + "language": "c++", + "name": "golden_file_test", + "src": [ + "test/cpp/codegen/golden_file_test.cc" + ], + "third_party": false, + "type": "target" + }, { "deps": [ "gpr", @@ -2170,6 +2188,19 @@ "third_party": false, "type": "target" }, + { + "deps": [ + "grpc_plugin_support" + ], + "headers": [], + "language": "c++", + "name": "grpc_node_plugin", + "src": [ + "src/compiler/node_plugin.cc" + ], + "third_party": false, + "type": "target" + }, { "deps": [ "grpc_plugin_support" @@ -4363,6 +4394,8 @@ "src/compiler/csharp_generator.h", "src/compiler/csharp_generator_helpers.h", "src/compiler/generator_helpers.h", + "src/compiler/node_generator.h", + "src/compiler/node_generator_helpers.h", "src/compiler/objective_c_generator.h", "src/compiler/objective_c_generator_helpers.h", "src/compiler/python_generator.h", @@ -4382,6 +4415,9 @@ "src/compiler/csharp_generator.h", "src/compiler/csharp_generator_helpers.h", "src/compiler/generator_helpers.h", + "src/compiler/node_generator.cc", + "src/compiler/node_generator.h", + "src/compiler/node_generator_helpers.h", "src/compiler/objective_c_generator.cc", "src/compiler/objective_c_generator.h", "src/compiler/objective_c_generator_helpers.h", @@ -5479,6 +5515,7 @@ "src/core/lib/support/string.c", "src/core/lib/support/string.h", "src/core/lib/support/string_posix.c", + "src/core/lib/support/string_util_win32.c", "src/core/lib/support/string_win32.c", "src/core/lib/support/string_win32.h", "src/core/lib/support/subprocess_posix.c", @@ -5497,6 +5534,7 @@ "src/core/lib/support/time_win32.c", "src/core/lib/support/tls_pthread.c", "src/core/lib/support/tmpfile.h", + "src/core/lib/support/tmpfile_msys.c", "src/core/lib/support/tmpfile_posix.c", "src/core/lib/support/tmpfile_win32.c", "src/core/lib/support/wrap_memcpy.c" diff --git a/tools/run_tests/stress_test/STRESS_CLIENT_SPEC.md b/tools/run_tests/stress_test/STRESS_CLIENT_SPEC.md index 62ca8aff2cd30e1239447b9ee7cf87217dd05478..9f079beebc012d6a8f2e5a672d87cebbba49f0bb 100644 --- a/tools/run_tests/stress_test/STRESS_CLIENT_SPEC.md +++ b/tools/run_tests/stress_test/STRESS_CLIENT_SPEC.md @@ -6,8 +6,8 @@ This document specifies the features a stress test client should implement in or -------------- **1.** A stress test client should be able to repeatedly execute one or more of the existing 'interop test cases'. It may just be a wrapper around the existing interop test client. The exact command line arguments the client should support are listed in _Table 1_ below. -**2.** The stress test client must implement a metrics server defined by _[metrics.proto](https://github.com/grpc/grpc/blob/master/src/proto/grpc/testing/metrics.proto)_ and must expose _qps_ as a long-valued Gauge. The client can track the overall _qps_ in one Gauge or in multiple Gauges (for example: One per Channel or Stub). - The framework periodically queries the _qps_ by calling the `GetAllGauges()` method (the framework assumes that all the returned Gauges are _qps_ Gauges) and uses this to determine if the stress test client is running or crashed or stalled. +**2.** The stress test client must implement a metrics server defined by _[metrics.proto](https://github.com/grpc/grpc/blob/master/src/proto/grpc/testing/metrics.proto)_ and must expose _qps_ as a `Long`-valued Gauge. The client can track the overall _qps_ in one Gauge or in multiple Gauges (for example: One per Channel or Stub). + The framework periodically queries the _qps_ by calling the `GetAllGauges()` method (the framework assumes that all the returned Gauges are _qps_ Gauges and adds them up to determine the final qps) and uses this to determine if the stress test client is running or crashed or stalled. > *Note:* In this context, the term _**qps**_ means _interop test cases per second_ (not _messages per second_ or _rpc calls per second_) diff --git a/tools/run_tests/stress_test/configs/asan.json b/tools/run_tests/stress_test/configs/asan.json index c5588553147984480b8bc4256227406884def335..cb9f55763b18973f50a8269a17aa8d95e6175185 100644 --- a/tools/run_tests/stress_test/configs/asan.json +++ b/tools/run_tests/stress_test/configs/asan.json @@ -16,8 +16,7 @@ "num_channels_per_server":5, "num_stubs_per_channel":10, "test_cases": "empty_unary:1,large_unary:1,client_streaming:1,server_streaming:1,empty_stream:1", - "metrics_port": 8081, - "metrics_collection_interval_secs":120 + "metrics_port": 8081 }, "metricsPort": 8081, "metricsArgs": { diff --git a/tools/run_tests/stress_test/configs/csharp.json b/tools/run_tests/stress_test/configs/csharp.json new file mode 100644 index 0000000000000000000000000000000000000000..b7090696b4f7e6e2ad25ad62677f906c1d9cee01 --- /dev/null +++ b/tools/run_tests/stress_test/configs/csharp.json @@ -0,0 +1,90 @@ +{ + "dockerImages": { + "grpc_stress_csharp" : { + "buildScript": "tools/jenkins/build_interop_stress_image.sh", + "dockerFileDir": "grpc_interop_stress_csharp" + } + }, + + "clientTemplates": { + "baseTemplates": { + "default": { + "wrapperScriptPath": "/var/local/git/grpc/tools/gcp/stress_test/run_client.py", + "pollIntervalSecs": 60, + "clientArgs": { + "num_channels_per_server":5, + "num_stubs_per_channel":10, + "test_cases": "empty_unary:1,large_unary:1,client_streaming:1,server_streaming:1,empty_stream:1", + "metrics_port": 8081 + }, + "metricsPort": 8081, + "metricsArgs": { + "metrics_server_address": "localhost:8081", + "total_only": "true" + } + } + }, + "templates": { + "csharp_client": { + "baseTemplate": "default", + "stressClientCmd": [ + "mono", + "/var/local/git/grpc/src/csharp/Grpc.IntegrationTesting.StressClient/bin/Debug/Grpc.IntegrationTesting.StressClient.exe" + ], + "metricsClientCmd": ["/var/local/git/grpc/bins/opt/metrics_client"] + } + } + }, + + "serverTemplates": { + "baseTemplates":{ + "default": { + "wrapperScriptPath": "/var/local/git/grpc/tools/gcp/stress_test/run_server.py", + "serverPort": 8080, + "serverArgs": { + "port": 8080 + } + } + }, + "templates": { + "csharp_server": { + "baseTemplate": "default", + "stressServerCmd": [ + "mono", + "/var/local/git/grpc/src/csharp/Grpc.IntegrationTesting.Server/bin/Debug/Grpc.IntegrationTesting.Server.exe" + ] + } + } + }, + + "testMatrix": { + "serverPodSpecs": { + "stress-server-csharp": { + "serverTemplate": "csharp_server", + "dockerImage": "grpc_stress_csharp", + "numInstances": 1 + } + }, + + "clientPodSpecs": { + "stress-client-csharp": { + "clientTemplate": "csharp_client", + "dockerImage": "grpc_stress_csharp", + "numInstances": 10, + "serverPodSpec": "stress-server-csharp" + } + } + }, + + "globalSettings": { + "buildDockerImages": true, + "pollIntervalSecs": 60, + "testDurationSecs": 7200, + "kubernetesProxyPort": 8001, + "datasetIdNamePrefix": "stress_test_csharp", + "summaryTableId": "summary", + "qpsTableId": "qps", + "podWarmupSecs": 60 + } +} + diff --git a/tools/run_tests/stress_test/configs/opt-tsan-asan.json b/tools/run_tests/stress_test/configs/opt-tsan-asan.json index 4f172ef30bcb7ff8b7c2be063c716c4b0c48555b..936d15169e1c07e7879009a49c0e180dbb746768 100644 --- a/tools/run_tests/stress_test/configs/opt-tsan-asan.json +++ b/tools/run_tests/stress_test/configs/opt-tsan-asan.json @@ -26,8 +26,7 @@ "num_channels_per_server":5, "num_stubs_per_channel":10, "test_cases": "empty_unary:1,large_unary:1,client_streaming:1,server_streaming:1,empty_stream:1", - "metrics_port": 8081, - "metrics_collection_interval_secs": 60 + "metrics_port": 8081 }, "metricsPort": 8081, "metricsArgs": { diff --git a/tools/run_tests/stress_test/configs/opt.json b/tools/run_tests/stress_test/configs/opt.json index 75505186f20edc0dcd90c416d18d8cbab8eca022..f45b82404876bd1483f20c29144aabf739b1fa1e 100644 --- a/tools/run_tests/stress_test/configs/opt.json +++ b/tools/run_tests/stress_test/configs/opt.json @@ -16,8 +16,7 @@ "num_channels_per_server":5, "num_stubs_per_channel":10, "test_cases": "empty_unary:1,large_unary:1,client_streaming:1,server_streaming:1,empty_stream:1", - "metrics_port": 8081, - "metrics_collection_interval_secs": 60 + "metrics_port": 8081 }, "metricsPort": 8081, "metricsArgs": { diff --git a/tools/run_tests/stress_test/configs/tsan.json b/tools/run_tests/stress_test/configs/tsan.json index a7ec08313d689c0e587a85c60ad9ed5fa45c89be..6ef3bdf7ea7a3487fe66e637ade7fed96c7e8a48 100644 --- a/tools/run_tests/stress_test/configs/tsan.json +++ b/tools/run_tests/stress_test/configs/tsan.json @@ -16,8 +16,7 @@ "num_channels_per_server":5, "num_stubs_per_channel":10, "test_cases": "empty_unary:1,large_unary:1,client_streaming:1,server_streaming:1,empty_stream:1", - "metrics_port": 8081, - "metrics_collection_interval_secs":120 + "metrics_port": 8081 }, "metricsPort": 8081, "metricsArgs": { diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index 97d43d7894b101c000aff2de45ea2f2926713e16..cf1154426f46ca8f75253d0ef0f9e5e1db62ba78 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -2267,6 +2267,27 @@ "windows" ] }, + { + "args": [], + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "cpu_cost": 1.0, + "exclude_configs": [], + "flaky": false, + "gtest": true, + "language": "c++", + "name": "golden_file_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "args": [], "ci_platforms": [ @@ -23261,10 +23282,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/00.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23272,10 +23290,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23283,10 +23298,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/01.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23294,10 +23306,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23305,10 +23314,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0159f564d91869bc07239f5551a493c2845a4524" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23316,10 +23322,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23327,10 +23330,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/02.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23338,10 +23338,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23349,10 +23346,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0211f960c2da343c3cde6406e650d73278e01e47" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23360,10 +23354,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23371,10 +23362,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0236f28708dcc2e044d67ecf93539ce6c33a727a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23382,10 +23370,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23393,10 +23378,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/02434dcdaca96b9eacee76eb351e99f015eaa05e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23404,10 +23386,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23415,10 +23394,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/03.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23426,10 +23402,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23437,10 +23410,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0302b90625ac9f61f45b45d043fda23b5472d711" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23448,10 +23418,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23459,10 +23426,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/04.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23470,10 +23434,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23481,10 +23442,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0433cabb8c28820bda0a6eac35d17d120f1b6865" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23492,10 +23450,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23503,10 +23458,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0452ea591951af85724608917fda16926dad7451" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23514,10 +23466,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23525,10 +23474,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0468ab4bf4f7e10b680f43efae4bf9686834d220" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23536,10 +23482,23 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/api_fuzzer_corpus/04a5f10d2ebc712cf13c05b5ed0fafb31b42737c" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "api_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -23547,10 +23506,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/04e01f399f194434b2b724877df64828e8f52c14" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23558,10 +23514,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23569,10 +23522,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/05.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23580,10 +23530,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23591,10 +23538,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0539bf31b2310091ce30d0123142d63589939105" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23602,10 +23546,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23613,10 +23554,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0542a0e5aeb1658cc965724bfced56770569263b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23624,10 +23562,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23635,10 +23570,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/056e56878b249c7fd0b95576b352ab2f4d46582e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23646,10 +23578,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23657,10 +23586,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/05dee1c3847f2bca29bd14ed701ce64999b298b2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23668,10 +23594,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23679,10 +23602,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/06.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23690,10 +23610,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23701,10 +23618,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/064d3beeef29a647deb1b345426ea7212de71cfe" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23712,10 +23626,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23723,10 +23634,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/067298a97640cc5e212647864d21bc1fa6bb7e75" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23734,10 +23642,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23745,10 +23650,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/07.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23756,10 +23658,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23767,10 +23666,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/070c7005e63abba72c6bc1a0ee6d44e340f2d2be" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23778,10 +23674,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23789,10 +23682,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/07674d39538e07c29342cb2ee8856bc71fc06638" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23800,10 +23690,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23811,10 +23698,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/07aa7d6c71878eb78b25ca12d79082f70ae7f64c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23822,10 +23706,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23833,10 +23714,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/07ae5ed3dedbd83e376c892a9546cc0cd733c26f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23844,10 +23722,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23855,10 +23730,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/07cc8b298d1502d0c30f3f160871e66e5a1f3fe1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23866,10 +23738,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23877,10 +23746,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/08.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23888,10 +23754,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23899,10 +23762,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/085865a209776911782f592c9f30ffe0ad3814a0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23910,10 +23770,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23921,10 +23778,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/09.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23932,10 +23786,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23943,10 +23794,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/092b85d1f5c922287e476e6e75ad8a0a80c779a6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23954,10 +23802,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23965,10 +23810,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/09923e3ef02243b1902406c637f9516cbe99d7cb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23976,10 +23818,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -23987,10 +23826,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0a.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -23998,10 +23834,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24009,10 +23842,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0a71ae781345f9ee2b08008a81f9055e6c1d5256" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24020,10 +23850,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24031,10 +23858,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0a7aad5682c304b0cbda31445b221238e0293a9f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24042,10 +23866,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24053,10 +23874,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0b.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24064,10 +23882,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24075,10 +23890,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0b6f0ea99a329e054032e6c292b99c3bcad0c9f2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24086,10 +23898,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24097,10 +23906,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0bbd89b21cfd192174c25803c7f1afeec88e6524" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24108,10 +23914,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24119,10 +23922,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0c.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24130,10 +23930,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24141,10 +23938,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0d.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24152,10 +23946,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24163,10 +23954,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0d16d6c2c128ac4ee7b596b763822b4194968533" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24174,10 +23962,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24185,10 +23970,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0d8bd296d63a5aca5f80d7a7d00387048babda36" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24196,10 +23978,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24207,10 +23986,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0d9d8241c5568fea586d21f91ae1891dac31ba24" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24218,10 +23994,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24229,10 +24002,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0e.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24240,10 +24010,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24251,10 +24018,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0e2a9ad3aacba320563095a874768a9e546a3db2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24262,10 +24026,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24273,10 +24034,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0f.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24284,10 +24042,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24295,10 +24050,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0f2831e0f73521a0991e11115c16847afca16bb3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24306,10 +24058,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24317,10 +24066,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/0fa216ec645b3973b5e6d28baedd5acc1542e69e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24328,10 +24074,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24339,10 +24082,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/10302aa7598eb36d0ac22d0478eb0f2a6b010ea6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24350,10 +24090,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24361,10 +24098,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/1109cb814fd134862a3f5ef5c9b2244585882b8f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24372,10 +24106,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24383,10 +24114,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/119410315423e5f37919886ced7f03235e5792aa" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24394,10 +24122,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24405,10 +24130,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/12083209096187575021a775826b08b70b39ed4c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24416,10 +24138,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24427,10 +24146,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/1254c9256157e6362003c97c8c93d8cd67a28772" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24438,10 +24154,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24449,10 +24162,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/12a97827d0f817e3ffd8d9cf1bdba0f945b6fda4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24460,10 +24170,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24471,10 +24178,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/12ef45f6beba92677a2a7508fc5e1bfef30ded66" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24482,10 +24186,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24493,10 +24194,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/130c41e2dd87c36b4079c8e5bd380dbe3e0a2b38" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24504,10 +24202,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24515,10 +24210,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/13c409dcf7752c25b2b51ac5fad9201b505d7059" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24526,10 +24218,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24537,10 +24226,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/143789594154049441d565b65ce725fc4f8c12bc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24548,10 +24234,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24559,10 +24242,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/149044286608a7945721c61f12196bebd5adb2ee" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24570,10 +24250,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24581,10 +24258,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/157586c7c0ba8fd0dc9bfc2426229a7da934cec2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24592,10 +24266,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24603,10 +24274,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/15c37fe5be9f23c0f0e59e12ee7666007acdb3c5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24614,10 +24282,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24625,10 +24290,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/1661d0799cbf2015fd64e9f648ebb49281d41c6d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24636,10 +24298,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24647,10 +24306,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/1671cf01e5baf796c5572b7b0e15d226a5c93f23" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24658,10 +24314,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24669,10 +24322,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/16a9beb811f836a444172a5da9290b47d77c32ef" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24680,10 +24330,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24691,10 +24338,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/16d52016278caebf92ba455f7ac8a8c7482c3563" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24702,10 +24346,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24713,10 +24354,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/173ebf4139ee6d7a574b6767059d82375674bbf4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24724,10 +24362,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24735,10 +24370,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/17cfb281eaa8a17d77e08c3648bb93f3b5aa5297" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24746,10 +24378,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24757,10 +24386,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/183c878064b6a0ddf6a22dc4a2aa0d33a2d802d0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24768,10 +24394,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24779,10 +24402,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/1887558eb48d6a4341610fd0395cef8e87744044" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24790,10 +24410,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24801,10 +24418,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/18c856af1e2ebb934401e523043eaf80aecc8363" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24812,10 +24426,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24823,10 +24434,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/18f2d7626b6ad4859e735e448b00b6916f1d3e2e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24834,10 +24442,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24845,10 +24450,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/19dcc3082c76b85177ce6a56d195473aaa285268" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24856,10 +24458,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24867,10 +24466,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/1a6b907bfa02ceebeb80aab47b3c3c51161eb868" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24878,10 +24474,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24889,10 +24482,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/1b699132724acab3d42fb5210c07b74343449873" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24900,10 +24490,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24911,10 +24498,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/1c0417c96e6408d2902ef8fe4b8cd05f1ce4a50f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24922,10 +24506,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24933,10 +24514,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/1c6e5ad8dbff133707cc85b05a0057abf55d08ad" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24944,10 +24522,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24955,10 +24530,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/1c73564518349ebc87c4023b9d9a3cbc4fbc6cdd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24966,10 +24538,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24977,10 +24546,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/1c98433d827ea4aae2ba8a68c4d11bc2527cb15d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -24988,10 +24554,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -24999,10 +24562,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/1ccd81836f26b7ececde2b02a22b19ab2a498631" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25010,10 +24570,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25021,10 +24578,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/1d8b40b4798e652184df3bcffe1b1d7e32648f79" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25032,10 +24586,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25043,10 +24594,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/1e4a2a6998218ea8f475aa2ee27869207b33b612" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25054,10 +24602,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25065,10 +24610,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/1e55e5f47b550bab133099e5a98d7c751a0a2d7b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25076,10 +24618,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25087,10 +24626,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/1e7d2d8f6109f4c02815ce8582c799134f2ff5dc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25098,10 +24634,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25109,10 +24642,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/1fda93a85f7b5b7a0c2d68a03123e58a6d20f124" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25120,10 +24650,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25131,10 +24658,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/20322515ebf6df572cb2f596d8a20d3d8893193d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25142,10 +24666,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25153,10 +24674,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/207c5a0f80f052ac7b48f6dd45cd33987be27f32" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25164,10 +24682,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25175,10 +24690,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2099db589f606dd8932a950280f5d2b23751af9f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25186,10 +24698,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25197,10 +24706,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/21f3be485826850e4f4670bb81982e2827815426" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25208,10 +24714,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25219,10 +24722,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/240afe42d3e2834c46a79d9df0dd6ca018831398" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25230,10 +24730,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25241,10 +24738,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/24a87af0954c808fbd3f2c55185d4b1fa9459f4e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25252,10 +24746,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25263,10 +24754,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/24df70902c288fcac060365c2e6f61269a3606b4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25274,10 +24762,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25285,10 +24770,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2500fc12d5d1b5ed99fc3fe518c28849d1c8d6e8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25296,10 +24778,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25307,10 +24786,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2501c7c3f78829725e6bf556277785588318106b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25318,10 +24794,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25329,10 +24802,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2507810915aecd3adf1287edf8c9f54b23a8ebd5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25340,10 +24810,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25351,10 +24818,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/253b8946a7cf403dd466f1685df2f741d4660a34" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25362,10 +24826,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25373,10 +24834,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/26865cd90c1461694d94d96232436372df2a91fb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25384,10 +24842,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25395,10 +24850,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2743ee5a764fb0c4e04cdf84c9b3810ac8093998" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25406,10 +24858,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25417,10 +24866,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2748d28f2e03d740a89f7a50ea52450d0c5523f1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25428,10 +24874,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25439,10 +24882,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2837baed2fbf1612f88224e91ddc46241dd9d972" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25450,10 +24890,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25461,10 +24898,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/28f8c7af6aab3bbabe028f780e174b27b924a146" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25472,10 +24906,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25483,10 +24914,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2942908b7973da7113098a0ea25487e3372db173" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25494,10 +24922,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25505,10 +24930,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/296c3f5b9880fe7ccff4d2a67f489b38b5b6fd6e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25516,10 +24938,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25527,10 +24946,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2a600cae342e8e9e23406bb1e76133f48d936766" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25538,10 +24954,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25549,10 +24962,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2ab009994e603404e194ebe0120840d388fb765e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25560,10 +24970,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25571,10 +24978,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2ad5ed48b598bd9e2d486a21eed5314736e5b56a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25582,10 +24986,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25593,10 +24994,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2aee21e4d1175963fa719d376406bb10d4818bdd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25604,10 +25002,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25615,10 +25010,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2af392765963966f2d1ddd5d5af4fcadd93c3b06" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25626,10 +25018,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25637,10 +25026,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2af4e625522d128d03252f35b5fa5094cbcebc9f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25648,10 +25034,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25659,10 +25042,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2b931953e9bd02c3310a05234e91550bcd8ddf62" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25670,10 +25050,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25681,10 +25058,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2b933a0ede25a06e32c7d9cc5a3eda78086f3060" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25692,10 +25066,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25703,10 +25074,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2bbe5b2c12a964b53a5e6f78cdd5f595d95082a9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25714,10 +25082,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25725,10 +25090,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2bc326b3ecf6d069595bc27cc1bca76b374c8e85" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25736,10 +25098,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25747,10 +25106,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2c917a39d34aad10d611a1647a6df6502b4d4d59" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25758,10 +25114,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25769,10 +25122,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2d61ec2cff75eadbc47e0932998b8a797e0cd96c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25780,10 +25130,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25791,10 +25138,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2d9440daa210b9298f34982dcf7adc3564ad965c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25802,10 +25146,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25813,10 +25154,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2d974f9fd1c57bce55cb9f1bbc25eb1e7a10454b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25824,10 +25162,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25835,10 +25170,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2db3a358c43c179a728f0650a00be295e88f8060" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25846,10 +25178,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25857,10 +25186,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2e21a2f9bff2514667aaec75629c82daa067ff57" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25868,10 +25194,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25879,10 +25202,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2e82bfb7e8eede401ce75f6afe8c15ffd06130db" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25890,10 +25210,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25901,10 +25218,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2f0a8f0f96402ba1681ab3a9095a3dea47cdc53f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25912,10 +25226,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25923,10 +25234,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2f120ceed5250084f62010df9bf8fe8e8f3f643b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25934,10 +25242,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25945,10 +25250,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2f44fd38efef5818750f9adc9b133e40f9cdec71" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25956,10 +25258,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25967,10 +25266,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2f57224df35ff1583d14436a477330db23d70b0a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -25978,10 +25274,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -25989,10 +25282,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/2fa6a874e625ca4d71941408d94698f898be4ea1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26000,10 +25290,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26011,10 +25298,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/301c057536319f49dcec68ab96677714e3dbf793" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26022,10 +25306,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26033,10 +25314,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/30694ac08ff5a6a10cc781b9042c89f4019cfe0a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26044,10 +25322,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26055,10 +25330,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/307a91e344b94923837e01a1657ff277f44db07d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26066,10 +25338,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26077,10 +25346,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/30fbe0ac4c74e2be3edd4f21b72bcae02e6c623f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26088,10 +25354,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26099,10 +25362,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/313001e1cc15ef9887b43e0c6de398eea2f20e00" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26110,10 +25370,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26121,10 +25378,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/31429d04a34cc6643eebed7eeb8a807a83b57b1f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26132,10 +25386,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26143,10 +25394,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/3230d9876d770657d86dfb768b80494cda52abc8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26154,10 +25402,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26165,10 +25410,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/32594aaa716c1a04b0f927ef964f1593735cb289" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26176,10 +25418,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26187,10 +25426,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/32b9de8461fd32b1236abb86abc91c82652d6e2c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26198,10 +25434,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26209,10 +25442,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/32c108ead009572fbe9a216b372e5c0b3843238e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26220,10 +25450,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26231,10 +25458,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/3399ac8bb9e0d3a2cbf22a95d1e20c70e2415e41" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26242,10 +25466,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26253,10 +25474,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/342d148e59fb500ad76d583cf828c16cd3d3ed2e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26264,10 +25482,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26275,10 +25490,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/3465fb573ac3c59a0804aadeba2f205870abcc3d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26286,10 +25498,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26297,10 +25506,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/364f77bffd55805e2be9d2b3a071012e8fc3a083" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26308,10 +25514,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26319,10 +25522,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/368d2b5d4c6776afbed8e5e76cc3a4ccdde1df42" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26330,10 +25530,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26341,10 +25538,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/383043f6c05edc5a18f5c8e7b9d0314db63eab5e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26352,10 +25546,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26363,10 +25554,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/3850b085a0a33fa2a08630dddb03e0f1adb1bee9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26374,10 +25562,23 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/api_fuzzer_corpus/38a55e83e685617cdf72e95f1303857b627ae346" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "api_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -26385,10 +25586,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/38c609f72f5a2cf977788afef9c34652f754add0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26396,10 +25594,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26407,10 +25602,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/3a287590e2d38d5dbc0b85d29ae2497d27aa0305" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26418,10 +25610,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26429,10 +25618,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/3a4fa4e81b78cae093b2d53b0a6f272a398a7cda" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26440,10 +25626,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26451,10 +25634,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/3aee5ced2869452b8ed65313d01b9b9c87144cd4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26462,10 +25642,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26473,10 +25650,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/3b002ab57ff8080fbb1e72d985ca6f59f96a171e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26484,10 +25658,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26495,10 +25666,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/3c84d21c46b89e7573750dd4517ea2eb58e37e27" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26506,10 +25674,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26517,10 +25682,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/3c8e6352f6c2a07bd5ef2b9a93c103935c8eaf0d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26528,10 +25690,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26539,10 +25698,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/3d8c66be71e0ae0dfb0c2c7b84e4d8336f92b7ab" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26550,10 +25706,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26561,10 +25714,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/3dedcaf501bc9718e5d372862b081fc9fdfb3959" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26572,10 +25722,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26583,10 +25730,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/3df06a68edfc53fa88634c657a50cc6820354165" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26594,10 +25738,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26605,10 +25746,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/3f36ae935255c4bbd2bd8d4a85bfa92bba02225c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26616,10 +25754,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26627,10 +25762,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/3f47ad9ab401599f42d3c4f37ab9f702e3ff0fc9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26638,10 +25770,23 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/api_fuzzer_corpus/40b4b92460c4e76a39af9042fb3d86d491a98e16" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "api_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -26649,10 +25794,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/42324d3d9e013cd43d4feeed1b48fbe1ea18a732" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26660,10 +25802,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26671,10 +25810,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/42a8e7c267f66a0747f30b4053ec79325074dc97" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26682,10 +25818,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26693,10 +25826,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/42c3c4a4e7d21e79d1e36494d5324f10a5ecbb04" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26704,10 +25834,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26715,10 +25842,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/43676969fb81dcc1699b6a17eb465ef3cd4c2ab8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26726,10 +25850,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26737,10 +25858,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/439d4e4ed3ab9fe77e2bbda5b2be3d123beefa00" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26748,10 +25866,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26759,10 +25874,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/441c94c010d19206c337d3c850cc449523ab480d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26770,10 +25882,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26781,10 +25890,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/4449ec3eda232c394fad83e34b002e9bb46862e1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26792,10 +25898,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26803,10 +25906,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/449ece0109a8543f26311f3ddc23525a2f288b64" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26814,10 +25914,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26825,10 +25922,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/44bf16b9eb7302a6b02a600ac92dadf916c4e629" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26836,10 +25930,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26847,10 +25938,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/44e1fdcc46db56bf61a6702fd10766b56d35bc74" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26858,10 +25946,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26869,10 +25954,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/45657516294c5426c490e6aa522a79077c972856" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26880,10 +25962,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26891,10 +25970,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/465b299ab3509b61016406e0d1d93f7774c03c8c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26902,10 +25978,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26913,10 +25986,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/46efabc911aab09a5e7a34a19ef97ce710594a77" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26924,10 +25994,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26935,10 +26002,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/472adcbc2a1970f2392e596c28bd44087b8f3431" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26946,10 +26010,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26957,10 +26018,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/47e402f3386843e0055431750f30b710e10295dd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26968,10 +26026,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -26979,10 +26034,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/47ecf4079ea23d4de5fd9282f733eb5429f7ab05" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -26990,10 +26042,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27001,10 +26050,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/484ab9d070fffe7e3d1a1704c9fa2ce01e192450" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27012,10 +26058,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27023,10 +26066,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/4905b3fb0f7d2196a5612e8e432abda666e4317d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27034,10 +26074,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27045,10 +26082,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/490f5aa97dc05ef1ce089fa9d4fd377bacafcf18" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27056,10 +26090,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27067,10 +26098,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/4a3eae69f4c5dc768b166620af348316c9fac3e6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27078,10 +26106,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27089,10 +26114,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/4c3dcb9cb14f89b3616fc7cca78f2ebc502907eb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27100,10 +26122,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27111,10 +26130,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/4c686a41d4d2226b3cc76b8154d8df090d075f00" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27122,10 +26138,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27133,10 +26146,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/4d472e5a8e8ee92be6f23a101babbc601dd2512c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27144,10 +26154,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27155,10 +26162,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/4d4aa6ddd6404300e5278682e560f25292e9804e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27166,10 +26170,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27177,10 +26178,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/4e36813fde9b5de1b62de95f498f2e0a48b5c5f7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27188,10 +26186,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27199,10 +26194,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/4ef22ea5b0aa8b80a180a9654f5aef121c5aad83" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27210,10 +26202,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27221,10 +26210,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/4f53cc7b3ed0c77c3b5e4478f54caa40e0bf64b6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27232,10 +26218,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27243,10 +26226,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/5000fa3e29de15e7533b0e04b37eb1985ae69891" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27254,10 +26234,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27265,10 +26242,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/50841095cafd9f9de6684fb3d89cd5fe148494ef" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27276,10 +26250,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27287,10 +26258,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/50bfe6100bf11339372ba29fe0c9b38c3ec2ebf0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27298,10 +26266,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27309,10 +26274,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/51d7466ac65468db7094bdedc60d1604231acc05" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27320,10 +26282,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27331,10 +26290,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/51ed796a5f8d8fccebe013ccccdc1ed5d8b8b4c0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27342,10 +26298,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27353,10 +26306,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/528cc09294d2288fc91a4bab7cf6ec621c6621b0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27364,10 +26314,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27375,10 +26322,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/5298ce28a7eab28c99964c0d838b017355607c92" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27386,10 +26330,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27397,10 +26338,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/52dba1b997f903c5fa3d7da71421b36d96d9f55c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27408,10 +26346,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27419,10 +26354,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/53e68cd362f3c8d64941efbb0b527c52da5e8424" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27430,10 +26362,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27441,10 +26370,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/546fe2e2b1e2756c3f121d0545866798c85c9b8b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27452,10 +26378,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27463,10 +26386,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/54a0a2c37ce1830f241f6e2828adc8057cfa385f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27474,10 +26394,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27485,10 +26402,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/55ed466781b547db5957233bd8db0ce1f189183f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27496,10 +26410,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27507,10 +26418,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/5677b3500e9353856c8d87fbe1476a22df4231f8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27518,10 +26426,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27529,10 +26434,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/56f3ca8174d263240113de88e7547e7b1c5cb2cf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27540,10 +26442,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27551,10 +26450,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/57798cc4375de344391221fd07d591f5c64d646d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27562,10 +26458,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27573,10 +26466,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/57da1745490c2f21ecb86370f1f72f77752bc739" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27584,10 +26474,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27595,10 +26482,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/57dea4528141649208fa2af10c18e98e80c1758b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27606,10 +26490,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27617,10 +26498,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/588f9166c839baf3102185d38f77f9a750e62c7f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27628,10 +26506,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27639,10 +26514,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/5939ec5fd8f4e02ff0720cfa3ef685876bb3549d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27650,10 +26522,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27661,10 +26530,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/594d676c8c05d75ba8587d9e900850dff5e21ff8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27672,10 +26538,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27683,10 +26546,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/595603f4ed37e3716cbe53b3ef180e5cdf8005f0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27694,10 +26554,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27705,10 +26562,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/5a3c9d98651a315b5bde737482ff54f6b90361e0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27716,10 +26570,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27727,10 +26578,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/5a6491ab9c23fae58967d4a4b5d5cfb23f620001" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27738,10 +26586,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27749,10 +26594,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/5a85c9bd6a6d7a2f753dd315e4747fc0249c8799" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27760,10 +26602,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27771,10 +26610,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/5a8ca84c7d4d9b055f05c55b1f707f223979d387" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27782,10 +26618,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27793,10 +26626,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/5be956066b72ea1799e333a7bd17fb0b8fc2b91c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27804,10 +26634,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27815,10 +26642,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/5d0137a19ae57cfdf5172a8b51e8ea0a0a893690" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27826,10 +26650,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27837,10 +26658,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/5d2f29b31d78b47077b15779d620747034d18c05" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27848,10 +26666,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27859,10 +26674,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/5d765c856a9a8650e1b17813340b9b6ba0989b58" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27870,10 +26682,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27881,10 +26690,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/5e1391f44f904fa54e66ec174e4c8879921e842a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27892,10 +26698,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27903,10 +26706,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/5ea01efbec747fc55ae29eb2b779f00889ca6922" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27914,10 +26714,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27925,10 +26722,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/60e8618c075ec5fd47a1699271c6da1b5befd579" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27936,10 +26730,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27947,10 +26738,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/6184ea16753b0827f728285f18dad4b3bde00024" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27958,10 +26746,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27969,10 +26754,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/6186bfc21ff7df3982e5d9757e5c7160da0f493a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -27980,10 +26762,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -27991,10 +26770,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/6230cce2862a18c4c92dc6fb4e034a1d15e1ff18" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28002,10 +26778,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28013,10 +26786,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/62fbfe90a1b9ac471bc2644c896f64515f6b3c7e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28024,10 +26794,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28035,10 +26802,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/638c36cfe098b98008e594eddf90fdacfc078fae" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28046,10 +26810,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28057,10 +26818,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/6421db654fff309bc191aba0330fbcd1347655e3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28068,10 +26826,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28079,10 +26834,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/646c501021c79bf6eb1a39a9bcc82e018f31bca2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28090,10 +26842,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28101,10 +26850,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/64c572e594c2d491a902e8fdff7b617ac0c6881b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28112,10 +26858,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28123,10 +26866,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/64eb970cc80162a4b80d49364f4227db3429e156" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28134,10 +26874,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28145,10 +26882,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/655b880459e6e00100727af9df52b64f6d77a653" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28156,10 +26890,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28167,10 +26898,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/660c071578cbdccb503317ecbf2fd331bc4ac82d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28178,10 +26906,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28189,10 +26914,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/66ac31199d08e7a3b066059cd409457a850847b2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28200,10 +26922,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28211,10 +26930,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/66ef59d5da68fdb5e55b60fc8a8a764afb021b4b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28222,10 +26938,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28233,10 +26946,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/682cb8ad9fe4641e7a140ae3d3ee27c841ba397f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28244,10 +26954,23 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/api_fuzzer_corpus/6914f5f380c83ff9e3e90fc60d5048e47e5e77d9" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "api_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -28255,10 +26978,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/696ea30e2e1490f2f31b153641b2c29152ded5c2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28266,10 +26986,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28277,10 +26994,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/6a10118289fe7179c4e9bb6a1b466ba34c582bfb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28288,10 +27002,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28299,10 +27010,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/6bfbea131237606756a12f275e736045c0956536" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28310,10 +27018,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28321,10 +27026,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/6c1c2177f3483086607c717d0c6c35a81d79e18e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28332,10 +27034,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28343,10 +27042,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/6ded157ecd3fce79fa69c51ee9ecb4639013e6ba" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28354,10 +27050,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28365,10 +27058,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/6e1cf196e7c8ad4226d89f3ca2c6f7949598bec2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28376,10 +27066,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28387,10 +27074,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/6ef96bc0c5b6ab5f8a4453b9cf5784fd55e3b59f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28398,10 +27082,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28409,10 +27090,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/6f88ae246aa4af9c74732d87a758ba5ca0f40caf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28420,10 +27098,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28431,10 +27106,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/6f8ffc96f9ebe390929165e32bdc187afb7a40ce" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28442,10 +27114,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28453,10 +27122,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/70bd921a3d4700d49ad6b99e0cfee42c36a13b3a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28464,10 +27130,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28475,10 +27138,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/710f61e5765c91bcf9cf2e07264771cf2feae48d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28486,10 +27146,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28497,10 +27154,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/71c01818823d5c5fd8a3d1cb4c5db4aca51efdb2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28508,10 +27162,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28519,10 +27170,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/71e2b03b503dbbdc0d2e724c562b9f1c77f972fa" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28530,10 +27178,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28541,10 +27186,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/7240f3408714c2dcdcb448f234efef4f08e6b2fb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28552,10 +27194,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28563,10 +27202,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/727f43500183aec9c0d9be7d2363fa1761cda5d5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28574,10 +27210,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28585,10 +27218,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/72a3729a9bb74378156dcd42171e39ec348c71d7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28596,10 +27226,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28607,10 +27234,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/72c363848fe754c23e1f9f2acc2f025666417d2d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28618,10 +27242,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28629,10 +27250,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/73889340124f1f88859aab4e6ce36c0019a44218" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28640,10 +27258,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28651,10 +27266,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/7462e4d1834938e8a5fb975da6865cc7d6b225f3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28662,10 +27274,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28673,10 +27282,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/74b69a49c2df95009ff18d820bbe7fe6ae797aae" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28684,10 +27290,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28695,10 +27298,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/74cc62178f9c631dc49cf09b0ff5884322d33969" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28706,10 +27306,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28717,10 +27314,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/74eef5817db3984a020b2868f3c9979d0220c829" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28728,10 +27322,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28739,10 +27330,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/758ce3af56f75edb8faa20ef78ffda5511dffb3a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28750,10 +27338,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28761,10 +27346,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/761f683f6486e3efb606bf08fa527a4c1a51f302" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28772,10 +27354,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28783,10 +27362,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/76487a234f6f7276d8eba4edabef7623a592fdf6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28794,10 +27370,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28805,10 +27378,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/767c4f399ccca740ea3032eeade86851f12e7f9a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28816,10 +27386,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28827,10 +27394,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/767d136ac4b3e33d9aa5320d941693e09648e59b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28838,10 +27402,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28849,10 +27410,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/768b6302130ac824947f956e062184afaafcdbab" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28860,10 +27418,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28871,10 +27426,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/77d4480781e1e1a9d5d5c02ff53fba10127f8b6a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28882,10 +27434,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28893,10 +27442,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/77e8407dfe09892312213f7d6b2ad8a961b6b88e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28904,10 +27450,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28915,10 +27458,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/792276ed826b9078ecfbd51e0136962f5e10ed6e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28926,10 +27466,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28937,10 +27474,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/7a0b2f8659484409af6a76d1df273b8dc66e3439" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28948,10 +27482,23 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/api_fuzzer_corpus/7abe8c414aa1418157c2d7ae5e70a84ffb61c027" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "api_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -28959,10 +27506,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/7be89fb64b3d931387e8a5b1ef51bf9cda18006a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28970,10 +27514,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -28981,10 +27522,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/7c026422a34cb34de673a1d6702cbde67d112d27" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -28992,10 +27530,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29003,10 +27538,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/7c58daa09675ba2b11e69636bb78dc0d1343bb51" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29014,10 +27546,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29025,10 +27554,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/7c9b4e2ea03542254235893edd042a822145e504" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29036,10 +27562,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29047,10 +27570,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/7cdff0948ef64e551ad02f857acd5956d91530c9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29058,10 +27578,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29069,10 +27586,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/7d33039255c9611d0e9e0cc7e230f87ad55c007f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29080,10 +27594,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29091,10 +27602,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/7d6713afac17551fc2628c0f9f18c41a1aa9c2f1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29102,10 +27610,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29113,10 +27618,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/7d88455cc77259c8bf17c1cdc0b24edf5667c79c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29124,10 +27626,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29135,10 +27634,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/7de73ddcb20d0940b937323599a5094bfb26ae6c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29146,10 +27642,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29157,10 +27650,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/7e8f7517bb0bb95011b48f1f4f4a631d4d756a5f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29168,10 +27658,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29179,10 +27666,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/80a249d17248e0dc7dcc9fb64d8ac2dd0320a544" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29190,10 +27674,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29201,10 +27682,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/80a56bd23287d856a653f22f57f7d1442235b713" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29212,10 +27690,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29223,10 +27698,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/80b6a3cf5bb7cdeffcb6cbaaa10889168542a25a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29234,10 +27706,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29245,10 +27714,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/811533455c494627bb5b5802f4ed7a386f57cb1e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29256,10 +27722,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29267,10 +27730,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8123e9dc4d43115412f07fcf9946c99d9a1a55c3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29278,10 +27738,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29289,10 +27746,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/820d5ba2e9d91563dae39a1b02833fbef1e6d8f1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29300,10 +27754,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29311,10 +27762,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/83c29132911949c65d508753420708e9a0ffd6ab" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29322,10 +27770,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29333,10 +27778,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8492f54a92f9a2a05af1a078489a3a68145d8985" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29344,10 +27786,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29355,10 +27794,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/84c995b299f8d6fa0733d11f0b1a0b4414a7e232" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29366,10 +27802,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29377,10 +27810,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/85220ed0c63891f376bee53c785b407fd9548f8b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29388,10 +27818,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29399,10 +27826,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8554d0f8fc68c84fbd8515165a3d98aad0dfab3e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29410,10 +27834,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29421,10 +27842,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/856fb7cd57f36cfcc8a2cad0cf61f9fff9696776" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29432,10 +27850,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29443,10 +27858,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8711e2f477871e3ca68642bbb388e7f473f25394" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29454,10 +27866,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29465,10 +27874,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8713d28e8cf45d3670ad40829a83b1fc7cd41a75" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29476,10 +27882,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29487,10 +27890,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8778868ac7a23d552d93772aa8566cf427a0c1f1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29498,10 +27898,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29509,10 +27906,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8791b58ad0dbfdf9c37d48bc60940f86c6c7e3b4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29520,10 +27914,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29531,10 +27922,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/87add83a18a25fe585df8adc124eae6d70733f74" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29542,10 +27930,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29553,10 +27938,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/880070b48f04fd1c8ffafd750e1c4d37ff404c6c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29564,10 +27946,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29575,10 +27954,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/885267691bb42bc807b6e578571430a81513eee0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29586,10 +27962,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29597,10 +27970,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/88be31c841a66f523045f7bd1708ce64272e4276" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29608,10 +27978,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29619,10 +27986,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/893ea11ec0c4425940d18a32acf23d5967d98dd9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29630,10 +27994,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29641,10 +28002,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8949e5c946cf6ec7d1981d553972d4f3a6026987" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29652,10 +28010,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29663,10 +28018,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8a034b07b9baf1b441c0fb0322652772973f20ff" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29674,10 +28026,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29685,10 +28034,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8a912877743b165b233303efaf502f5092b3c5b0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29696,10 +28042,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29707,10 +28050,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8a9f7329b30a562837353767313df7fa9a1f31f7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29718,10 +28058,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29729,10 +28066,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8b253ba946d6768c147f5d52552e150b703437e0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29740,10 +28074,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29751,10 +28082,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8b53f252f8558726dc0daaee84e2b4d2f0835f44" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29762,10 +28090,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29773,10 +28098,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8b7ebe7fb16e63e2584595ee77afb19359356eda" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29784,10 +28106,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29795,10 +28114,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8c501e1c87c42c4b7765ab027bd537ef72656605" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29806,10 +28122,23 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/api_fuzzer_corpus/8c5bbcc6935d43c94a0c4ce4a5da01c04fd223d8" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "api_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -29817,10 +28146,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8d7bb385d6b13b0e689a1e81e29113746218ba99" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29828,10 +28154,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29839,10 +28162,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8d951b7ab0231fb1dc573433b354eac58c699c36" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29850,10 +28170,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29861,10 +28178,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8e94dd64fdbf453f06b351d6a8f77a43cc34e4bc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29872,10 +28186,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29883,10 +28194,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8ea86819b4ac803bb12fd6b63e6496238aa329c1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29894,10 +28202,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29905,10 +28210,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8f43b11f10961dcce8eaa8340c96d10bdbc937ad" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29916,10 +28218,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29927,10 +28226,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8f8b66436bade06813ec9ed4fce6774914b73db3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29938,10 +28234,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29949,10 +28242,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/8ff5277cdbe1417da64bfdb342747a23f5e4f956" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29960,10 +28250,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29971,10 +28258,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/901c9a33205897999e7e78063ccdc5d363267568" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -29982,10 +28266,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -29993,10 +28274,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/90230730fae07c8eeb6b5bd571a119b486a21473" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30004,10 +28282,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30015,10 +28290,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/90cd72030567bddbce06152fa0af1a024d542fa7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30026,10 +28298,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30037,10 +28306,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/91e2f574e7ceb7f69a93011aac68903cd014a6c7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30048,10 +28314,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30059,10 +28322,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/92273cf09f18534ae700c1f35dfab49faa091c54" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30070,10 +28330,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30081,10 +28338,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/929980ce480ca47855bdebb8f6ebef7fa447fd5b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30092,10 +28346,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30103,10 +28354,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/9379dd6ade6947a59a1786435a2d55a705161ae5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30114,10 +28362,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30125,10 +28370,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/950511efda7aea60b3bfae95e31683210a88792c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30136,10 +28378,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30147,10 +28386,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/9538327ef9f0a8d380a473bd25114b6859acf9b7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30158,10 +28394,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30169,10 +28402,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/9629c9a0c98f15eec2b7fd114fa5ff9ff5c61a19" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30180,10 +28410,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30191,10 +28418,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/96a80511d8ef3ffdd370a3cc9467713a538259bb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30202,10 +28426,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30213,10 +28434,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/984b6ee241b92be62923c6dc5bacaadb36183b89" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30224,10 +28442,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30235,10 +28450,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/98b88c0751f1d9e5dc3d4751d2cb52ed8f0b008d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30246,10 +28458,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30257,10 +28466,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/9a0de0d63d44e00fc88e6cb88f4b8665db3b4b5e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30268,10 +28474,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30279,10 +28482,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/9a24710002a240ad32b7adb5310f4970c09cc8ca" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30290,10 +28490,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30301,10 +28498,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/9a425eda58b05407e671f6b86a6664eb728843cb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30312,10 +28506,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30323,10 +28514,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/9b6f00dd2752afbd223aad960168e4e535330d30" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30334,10 +28522,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30345,10 +28530,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/9bc5b4a9a81905cbc7ee4a25482068dcab93898d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30356,10 +28538,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30367,10 +28546,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/9bfd723bfa4162bb5801a6050af0a8b2db10d4ab" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30378,10 +28554,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30389,10 +28562,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/9c0911c1a4b91f842670082c14af67d1f4b7bb6f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30400,10 +28570,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30411,10 +28578,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/9c5538a5492013e6bdbcce2a373be19fc97c4f20" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30422,10 +28586,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30433,10 +28594,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/9c837f4e6cb572b3431b3a5065b889273712810e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30444,10 +28602,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30455,10 +28610,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/9d91fac343dd8a7848746ca5472fb1452052bfb7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30466,10 +28618,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30477,10 +28626,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/9ebd34b96faba2fea70a50533df78a8c1dc35247" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30488,10 +28634,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30499,10 +28642,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/9f1db4144e46f913ca02e0abe2ccd5c7481e2a92" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30510,10 +28650,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30521,10 +28658,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/9f77859f13bbe482011164f7a5e1a2a77d8596f2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30532,10 +28666,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30543,10 +28674,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/9fb07d3aba4e2d39eff7d31111515d7df2c981ab" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30554,10 +28682,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30565,10 +28690,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a074a30fc5c627e8093a8f860d67661df22f8148" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30576,10 +28698,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30587,10 +28706,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a10775155c8eb3a834d067c0978753513d5e1d75" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30598,10 +28714,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30609,10 +28722,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a1b04c2504a75f50d47875bd1db804cef3674cf0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30620,10 +28730,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30631,10 +28738,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a1b153e4cde45a7302094f6c751e3248d2f0fb8e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30642,10 +28746,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30653,10 +28754,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a1dffc6b0fabef88188bc4c140bc2d331d73f997" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30664,10 +28762,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30675,10 +28770,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a25eb9c166a097ea3afa590e3584eb9986bd9445" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30686,10 +28778,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30697,10 +28786,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a2ac5153026b26fcbea42786e238b15017a684be" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30708,10 +28794,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30719,10 +28802,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a3026496fa01a4cae2682da4b3e7cfae09929698" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30730,10 +28810,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30741,10 +28818,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a3c9b6e89b534d02bdad07207c4fdcda536f28a4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30752,10 +28826,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30763,10 +28834,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a3cc00f1a2020ff2e2d53bc91a212b5fdbe5c006" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30774,10 +28842,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30785,10 +28850,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a55fb292d4e1ffcdaf933f2dbdd8410628eb7acc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30796,10 +28858,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30807,10 +28866,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a6914c7bbe81fd2138bc20e63b27c0cadd0471ee" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30818,10 +28874,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30829,10 +28882,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a693801403d7721b5b3d7d4525cc0b830ab35e06" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30840,10 +28890,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30851,10 +28898,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a6f614d434a1fe2162f7872100baef21b2051b53" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30862,10 +28906,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30873,10 +28914,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a78a65e7bd4c3cf41fce74155e97a758658fe8b4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30884,10 +28922,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30895,10 +28930,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a8d353c157cc3788a86a0d572adcc7744e7e902a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30906,10 +28938,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30917,10 +28946,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a8f87a7038125bd0e3b753c2a42ebdc3e4c75cba" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30928,10 +28954,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30939,10 +28962,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a9548cec37ad3c54d4bff10c9127db3638065d77" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30950,10 +28970,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30961,10 +28978,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a967ca556a517366de03b8a9d21e991783f0896c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30972,10 +28986,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -30983,10 +28994,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a96e54f84588c424c5ff2615fb0745684a11de39" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -30994,10 +29002,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31005,10 +29010,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/a994ed559126fb75d245d34816a727d8585045ac" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31016,10 +29018,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31027,10 +29026,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/aa926963580066aa503c5433dad9889fabc4ee08" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31038,10 +29034,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31049,10 +29042,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/aabcb4ea803e0b5399cb7a2cca8d28baa3f6c4ae" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31060,10 +29050,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31071,10 +29058,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/aaf2bf9eaf71df9e0c597335e8d6f8c2d370b093" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31082,10 +29066,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31093,10 +29074,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ab013aca29d6027d443e9dc0c550a26e7a23f01d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31104,10 +29082,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31115,10 +29090,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ab1a75a7dec4c780749be5afa45fdb9e7e7907ee" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31126,10 +29098,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31137,10 +29106,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ab4a63521f8afd81d6f5bf117597039cb02d453a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31148,10 +29114,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31159,10 +29122,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ab850ea6858b0b4798d8d8c60cf7d715b9064c85" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31170,10 +29130,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31181,10 +29138,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ab8c19341f57f87c38055a9aaee515f8e65a33f3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31192,10 +29146,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31203,10 +29154,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/abe27eee1a472ac0dafe73619602ff44bf7d0657" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31214,10 +29162,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31225,10 +29170,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/acb49fc7f5d61f15e2e0b8f391678365381c5ab9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31236,10 +29178,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31247,10 +29186,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ad8f14d76933f67a10d9e8442eaa1b88b2395cd7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31258,10 +29194,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31269,10 +29202,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/af042d0ae8cd624acfa12788ffc0154e6f49394b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31280,10 +29210,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31291,10 +29218,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/af0a181159725d308833841738c5d14d478228e8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31302,10 +29226,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31313,10 +29234,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b05cbc7820c94bb3ee46dd3869ea39923338b4ba" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31324,10 +29242,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31335,10 +29250,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b0ff62377b87b846f720a70f0b7f7bdc76aa1315" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31346,10 +29258,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31357,10 +29266,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b12be9771ea0f5b687f50fa9abe5cb8bb688fa6a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31368,10 +29274,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31379,10 +29282,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b23f1233d0e21c4aaaebe2fe5931903698b2408c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31390,10 +29290,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31401,10 +29298,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b29d3c87c76355ce07ea4d4c354bf9d40294abb3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31412,10 +29306,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31423,10 +29314,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b33f833f291ebba4d777c2bae51193553c27d138" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31434,10 +29322,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31445,10 +29330,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b37f3e85a80b5dcde6b48b46f162418fd2ee83ec" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31456,10 +29338,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31467,10 +29346,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b3b9e307ce3af6fa515a33668374e15fcc909ae5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31478,10 +29354,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31489,10 +29362,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b4037205abce710935a93d656f69928ecc814b50" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31500,10 +29370,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31511,10 +29378,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b436d6ea729dd071f87b21819cf1f32979216aee" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31522,10 +29386,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31533,10 +29394,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b46794fb4115e84da13a79153b2ea44d89d952a5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31544,10 +29402,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31555,10 +29410,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b49df296137b4c86eef0fd5fc55bbdd1cb3c4a7e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31566,10 +29418,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31577,10 +29426,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b4dfbd50da81516e8afcd93def813b4b813c3ae1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31588,10 +29434,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31599,10 +29442,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b51853fe4f799f7f959922fda1b3500668a45157" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31610,10 +29450,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31621,10 +29458,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b56db2235df5a81ff15d0c07612de7eee0272304" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31632,10 +29466,23 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/api_fuzzer_corpus/b5bcc7f39420e997ec6f8e3c70ef49b8f1afb361" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "api_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -31643,10 +29490,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b5daec8e0821e8626c9b93ece56ccfef0511346b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31654,10 +29498,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31665,10 +29506,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b61f6be57dd30d8c76aae7b966ffee26093f49ea" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31676,10 +29514,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31687,10 +29522,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b766e4a3e84ee0a2f57fccbc3a7f7f812b2032d3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31698,10 +29530,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31709,10 +29538,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b77ca0306f700c8c88854e73ccbdf470fba3f820" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31720,10 +29546,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31731,10 +29554,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b792b464ceb568355e80a4588a3ae1b43f05a34d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31742,10 +29562,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31753,10 +29570,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b7f282fbd77193d822df9c8156370398e1fd099c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31764,10 +29578,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31775,10 +29586,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b821e8d3e12441e1120723cf4eda4d939794b17f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31786,10 +29594,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31797,10 +29602,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b8a74cc440fbfaa2a523f20ca964976bde128fd0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31808,10 +29610,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31819,10 +29618,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b8cd185f946c392f8fb5adca4851043df849ac6e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31830,10 +29626,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31841,10 +29634,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b93e4c7538558dfe92d2925646029b5dafe653d0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31852,10 +29642,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31863,10 +29650,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b94adf31dbe157a38e8b3a873658b8dace55f517" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31874,10 +29658,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31885,10 +29666,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/b96fd7809c6f18c465e834a96dd60b43b32fac73" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31896,10 +29674,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31907,10 +29682,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/bad.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31918,10 +29690,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31929,10 +29698,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/bb349c691efa909b4c5412b9210e1acf4a4b7505" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31940,10 +29706,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31951,10 +29714,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/bbf053837b7e0e2adc868be62fc91248b8dce176" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31962,10 +29722,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31973,10 +29730,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/bbf7ccb14d60a1d4fa79e572464c687530ca6c2a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -31984,10 +29738,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -31995,10 +29746,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/bc5e743f85f6632110277f09847381a402e1624c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32006,10 +29754,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32017,10 +29762,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/bc6770a9bad24599ea4970735e9b17702a12b651" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32028,10 +29770,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32039,10 +29778,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/bc7f0b79a1781772d7f48e168462f99da27b03e2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32050,10 +29786,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32061,10 +29794,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/bc96b9415e9bb48d27f37d91c51d10ec08139974" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32072,10 +29802,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32083,10 +29810,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/bc9b5b6ba4b6ccbb9e5ff75edd0df8eef9c36d4c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32094,10 +29818,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32105,10 +29826,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/bcae3229d884c5cfc36ae28c672f9b960e30042f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32116,10 +29834,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32127,10 +29842,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/bcc7eb464ff05cd0cd2669611776e55ca4dcb2b4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32138,10 +29850,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32149,10 +29858,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/bd1ed73f6cf97f980d23ff2e9f4f4e78b80bda57" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32160,10 +29866,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32171,10 +29874,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/bd459204c5fee8000abc7d895a317028351d0dec" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32182,10 +29882,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32193,10 +29890,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/bd4786be14d852c68e605eaefa782f79064f32e2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32204,10 +29898,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32215,10 +29906,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/bd5c6df9c2cfaa96d768b1fe6e8fff57bf1d02c9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32226,10 +29914,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32237,10 +29922,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/bd7314ef323557ccf3a97c1b1ba4bed0a9b24de2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32248,10 +29930,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32259,10 +29938,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/bd891b3b4256f1c4207c3bbe5bd86f5e90a49ee2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32270,10 +29946,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32281,10 +29954,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/bde8a553b10a613c32f800429a07f0b5a2d37e53" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32292,10 +29962,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32303,10 +29970,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/be0ccf7b9b4581e01a42e9cad6343c93ccf6f362" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32314,10 +29978,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32325,10 +29986,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/be40890ee61e101a7429d53cd9ffd59ee600e0f6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32336,10 +29994,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32347,10 +30002,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/bef8cedf1a792786a027114c85a89a1bef3155c4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32358,10 +30010,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32369,10 +30018,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/bf0d70e0d09e5c2ddd79b55dbabdd58b385307f2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32380,10 +30026,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32391,10 +30034,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/c004d2a6d36524db9e0c18c5df6170366dd2b6f1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32402,10 +30042,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32413,10 +30050,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/c17ca23726e7bca7b0d92398f827cfb25c7f0d40" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32424,10 +30058,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32435,10 +30066,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/c1937db2c3dff32ff22a53a8b76614602cf41d73" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32446,10 +30074,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32457,10 +30082,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/c2d14ed959df62d2f6dbe46c71489bed68e3c0f0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32468,10 +30090,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32479,10 +30098,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/c343ddb31042500e460861abc70e98ce3088ceed" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32490,10 +30106,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32501,10 +30114,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/c45cc40cc387134dec06733a01bde8fc44a2c9d9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32512,10 +30122,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32523,10 +30130,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/c4a63251d65cb186242e7aba5ab3d4709d3f0065" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32534,10 +30138,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32545,10 +30146,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/c53efcb830c4ae5cba7b3e0803635445e1469103" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32556,10 +30154,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32567,10 +30162,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/c56726277ddeb233e30b6223158042aafb944191" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32578,10 +30170,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32589,10 +30178,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/c5e5b4c1e4e2bae55c1355950c3c7a593cb3fc04" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32600,10 +30186,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32611,10 +30194,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/c69863dd21c782e609d6ecdb9150f887a0f39989" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32622,10 +30202,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32633,10 +30210,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/c73e85bdaa195d9659ae9b08995a9fb716f9c92a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32644,10 +30218,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32655,10 +30226,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/c73fbc2e78f496b5666da99bccac9445ac9feeac" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32666,10 +30234,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32677,10 +30242,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/c76a1cca503160ca659aad6f7a05ca8fe5db439e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32688,10 +30250,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32699,10 +30258,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/c7c13a37189ce2482f5517f6ef0903431194e11b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32710,10 +30266,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32721,10 +30274,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/c837e4dc49146de843c9556c1b3c886abb552db7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32732,10 +30282,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32743,10 +30290,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/c918b9e3e9cdfdb21d94ef0fba85b25f3ed9d098" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32754,10 +30298,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32765,10 +30306,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/c957b37c99c5bb22b2c1f6dd050c57e685505599" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32776,10 +30314,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32787,10 +30322,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/c978dc651b961f2d48aad95b40ac761b3467f212" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32798,10 +30330,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32809,10 +30338,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/c9bda5eb1a93526b4809d147647cc78452988e29" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32820,10 +30346,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32831,10 +30354,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ca086cf78308275212c52012f06edf3b4152204a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32842,10 +30362,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32853,10 +30370,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ca6add6699d063e2212335264ad3e004327afc1a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32864,10 +30378,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32875,10 +30386,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ca6b20544c093b14703410d792c8f73e73205bce" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32886,10 +30394,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32897,10 +30402,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/cc34f9a0d85a22556faffadf90182f7c44bf168a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32908,10 +30410,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32919,10 +30418,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/cc7087fd7c7398e7c2afe3fb03e705262b5e843a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32930,10 +30426,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32941,10 +30434,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/cca20202993dda83570ac83c0b1967ce225c78b9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32952,10 +30442,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32963,10 +30450,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ccdff5940d61b708f67fcc55dc26ac1ad4f4c298" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32974,10 +30458,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -32985,10 +30466,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/cd0e7c4cd361b786b6f27c481ed601fd373cb221" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -32996,10 +30474,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33007,10 +30482,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/cd4f2c59f0cf55d9a73fb0b96d701c784c446048" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33018,10 +30490,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33029,10 +30498,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/cdc064f39a9a67210b1be6b195d38d5d0d73eaa0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33040,10 +30506,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33051,10 +30514,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ce02561c4cfd1ec7e272cf81678149350f8a066c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33062,10 +30522,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33073,10 +30530,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/cf26c6969c0f649a2ccd780edb8b3dc314ff7701" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33084,10 +30538,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33095,10 +30546,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-0a0ee428270236e707457b9560a91c233ed2326c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33106,10 +30554,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33117,10 +30562,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-0b1b50227d01f99998b01ed218f5d4dc3839d44f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33128,10 +30570,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33139,10 +30578,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-14359c8f754c2ecdae21deeeec033ae10360033a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33150,10 +30586,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33161,10 +30594,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-1b9aeaf762bb1a972dda8f3a455df2628efd693b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33172,10 +30602,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33183,10 +30610,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-1bc1a02532d212c8975e0cdcd5127c98fcaf752b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33194,10 +30618,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33205,10 +30626,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-212c3b09f310867e1e8ffa7faecac75c12f4cda3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33216,10 +30634,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33227,10 +30642,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-2ccee0e61103a767acec12b9146d478202b93b27" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33238,10 +30650,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33249,10 +30658,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-2f1092c48db455fbe1ae5e275f8d221dc8c52f00" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33260,10 +30666,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33271,10 +30674,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-4ae4941b4c3f857966a0e3c05f789a0a5ae15bbf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33282,10 +30682,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33293,10 +30690,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-4e4d7a383785c83b78ed6597bfed360079a49a08" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33304,10 +30698,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33315,10 +30706,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-5c774460d2dc7ae9d471ef4b87609b13e4e95219" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33326,10 +30714,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33337,10 +30722,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-6db86c556caf542fe8c3345ef396467b1d609d32" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33348,10 +30730,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33359,10 +30738,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-72ab4efc255cfc55ed03c1002187a68e2e18e33b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33370,10 +30746,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33381,10 +30754,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-7ca23a3e10cdbf579cf81a50e51af358f86631eb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33392,10 +30762,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33403,10 +30770,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-82b2ae1d2174f5782b32c89ce60f68bf5a30c0e1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33414,10 +30778,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33425,10 +30786,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-89e1b03278bad9790ae0f8614a8389414d1eab37" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33436,10 +30794,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33447,10 +30802,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-8ab0b6e57b90ab4c6b8d5de8278464eb428f4668" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33458,10 +30810,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33469,10 +30818,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-8e2e3975a865fb107fff8060f4f949aa235727d5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33480,10 +30826,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33491,10 +30834,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-916f6ab61cd358be9a241e2eb09851f700335eda" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33502,10 +30842,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33513,10 +30850,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-97ec5404605d0d7bed44c2b845e06f6d9479c152" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33524,10 +30858,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33535,10 +30866,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-9862337313ff89e8dd6fbd6f870a568ec4bd6ecc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33546,10 +30874,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33557,10 +30882,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-9e53b8c6ea7f6ae5c53e5834c50eac8e9f33259a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33568,10 +30890,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33579,10 +30898,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-a6224f954d8234d45e6f6ea27aca4d65ca77b6c7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33590,10 +30906,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33601,10 +30914,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-ba2c1509ff87865d9e23c056b9c7fe2732825ef0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33612,10 +30922,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33623,10 +30930,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-bac7a77b50e53ff71b0f52ce635e64ac15a787dc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33634,10 +30938,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33645,10 +30946,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-bebee7dd27c149af9e7b573300c686969fde9eb3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33656,10 +30954,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33667,10 +30962,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-ca8aa113c22037a2a552c1763f845609d555ef9b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33678,10 +30970,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33689,10 +30978,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-cce6ffed471344173c135e536b454f469bd07e03" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33700,10 +30986,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33711,10 +30994,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-dc6abf90d5e8e1b96f7e25f418b1a7f572e6a738" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33722,10 +31002,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33733,10 +31010,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-e45753da8952c41715a65010250efba0a4a4d243" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33744,10 +31018,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33755,10 +31026,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-e7930097a989131890a316b0b1ed85801699562b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33766,10 +31034,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33777,10 +31042,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-ed3086c0ca03a427fca1817b52a4d6530fb4096b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33788,10 +31050,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33799,10 +31058,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-ed7959740df2fdcf62626e370dcd7eb43963731b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33810,10 +31066,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33821,10 +31074,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-ef09afe157880d7f363fb87f6bc194ce1a72554c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33832,10 +31082,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33843,10 +31090,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-f40dcae7e7cc52e44d49c7fd5452e33a77ef4499" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33854,10 +31098,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33865,10 +31106,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-f8bf4b7d89c07d661b695a3e4fdf269b853fe168" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33876,10 +31114,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33887,10 +31122,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-fb41c97305a2c94d367e40863dc046c8f78a57c9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33898,10 +31130,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33909,10 +31138,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d00326f1b0a93acb1cb7fe02ba0342cc6e1875e6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33920,10 +31146,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33931,10 +31154,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d0692d73e38ed8c154ebddd627ce99890a1cf798" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33942,10 +31162,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33953,10 +31170,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d0fcc9d6dc91ead9fd27f0c613ea031f21fb4de4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33964,10 +31178,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33975,10 +31186,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d17e7451bcef39ce542d84f2539f9586ea35f21e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -33986,10 +31194,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -33997,10 +31202,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d18b5e648be40b0ea52fc8b10bcbae9bd4325f0e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34008,10 +31210,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34019,10 +31218,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d194d6aa501f75ed24fc399ee594fb77341e5d38" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34030,10 +31226,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34041,10 +31234,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d1ade96319d9de82cf3b0480d226a5ad9f31eaa1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34052,10 +31242,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34063,10 +31250,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d1b53c2a386259ce958c34e2cb281514e14e0d03" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34074,10 +31258,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34085,10 +31266,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d290717010121ba2745e551e7a80be6e9f6d59e2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34096,10 +31274,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34107,10 +31282,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d2956eabd7b8b9d6b136731a3a4fa077f184aa13" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34118,10 +31290,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34129,10 +31298,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d2c828ee88b3e352fad3263f1e1ff901a41fc7a6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34140,10 +31306,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34151,10 +31314,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d3124f8fe39ebe943d0d5a7087a51d7e852505bd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34162,10 +31322,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34173,10 +31330,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d333dc3999c6dcca82d85f72e65e10c07f12d978" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34184,10 +31338,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34195,10 +31346,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d3bec93d378e7466bacd95be431500ed30cba449" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34206,10 +31354,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34217,10 +31362,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d48a5cefe695d0494df4540ea395dcdd90a332ef" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34228,10 +31370,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34239,10 +31378,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d4c3ed789ef8a888244504601964f0a0c994a66d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34250,10 +31386,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34261,10 +31394,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d4caa070bca058455b68c7b96961e3ca0f151b32" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34272,10 +31402,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34283,10 +31410,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d63251b34cf38052b657d62e353aa42d905e52c4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34294,10 +31418,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34305,10 +31426,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d65f32b4af92080a496fb0965075c060c70ee444" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34316,10 +31434,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34327,10 +31442,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d712d007679af5438c7bda723ddc724c2e57b0c1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34338,10 +31450,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34349,10 +31458,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d80ba5bbc230065821c0c6530f70bdf205e817cc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34360,10 +31466,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34371,10 +31474,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d8137be32de0a676678672fe6f82992b2ca61fef" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34382,10 +31482,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34393,10 +31490,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d8bbba8dd44b71161c835cb09610e47401de44e3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34404,10 +31498,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34415,10 +31506,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d913cc4e8f2900d7035d196fd62707cf1194e02b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34426,10 +31514,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34437,10 +31522,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d91e9bf6b6c78f35a68ba877f3325b3c1ee3db35" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34448,10 +31530,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34459,10 +31538,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d97ade864dccd3eea245411665e5126f97302063" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34470,10 +31546,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34481,10 +31554,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/d9f752e6e02987d7bfe6f0f4c4d70644d357fef5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34492,10 +31562,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34503,10 +31570,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/da23c62c70f6c1174adc08093c429f1ec657921a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34514,10 +31578,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34525,10 +31586,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/dab32e8bb17a9bd7b04b8b895b7b48c27d38ef51" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34536,10 +31594,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34547,10 +31602,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/dacc3689e0a7b90aeebfaee000adf89e95e50cf9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34558,10 +31610,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34569,10 +31618,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/dad2c9af972d2e21c4437f0d94fdeacd7c8c7641" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34580,10 +31626,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34591,10 +31634,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/db7c4b56e701832634e61cc0b3ab5206fabf518d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34602,10 +31642,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34613,10 +31650,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/dd0e562fcf5edda051585b70d3b3780a9a6a2818" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34624,10 +31658,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34635,10 +31666,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/dddf3303e3e8e558ca6f147ec11d8195b6de30bb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34646,10 +31674,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34657,10 +31682,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/dde3b1c08399b61df7de4997194d9392c2e4c3cb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34668,10 +31690,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34679,10 +31698,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/de838de0352fc7ee32452bc83043cf587176e120" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34690,10 +31706,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34701,10 +31714,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/deeec423355ed885b906c6770c96d3f17583fdf3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34712,10 +31722,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34723,10 +31730,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/df616ee922cc89908b771e5276e47abcbaff1346" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34734,10 +31738,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34745,10 +31746,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/df8ef8bf4069afd375066fbb74cbe137f73db829" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34756,10 +31754,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34767,10 +31762,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/df949398b0b614309219c4128b167746e16a1ead" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34778,10 +31770,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34789,10 +31778,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/dfe6d60fd53eb8f4174366d1515c5a90ce10bf1b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34800,10 +31786,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34811,10 +31794,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/dfefc5d84c18606a3aefd5bb721a06e192b4420e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34822,10 +31802,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34833,10 +31810,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e022322a04b3ac1452055563bb41976a03a146ad" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34844,10 +31818,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34855,10 +31826,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e06db057637f6738a48464cc2d65d7399fe296e8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34866,10 +31834,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34877,10 +31842,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e0e7112238b555fdc12a1c5e9adb50703ae56a43" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34888,10 +31850,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34899,10 +31858,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e140f7efd72850d181a0145bb9ea7d92e61dec95" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34910,10 +31866,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34921,10 +31874,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e1a0398910c28ad61e065e98e884a7492f6dc594" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34932,10 +31882,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34943,10 +31890,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e212833dd63750f436254c0c81f1ddd42fb9a17e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34954,10 +31898,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34965,10 +31906,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e23c0abb4f625880dbae1cc81ce5b146992f5d36" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34976,10 +31914,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -34987,10 +31922,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e33f7d7998fe6e12ecc4014c8434e4ca591371b3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -34998,10 +31930,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35009,10 +31938,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e401c1abdd1ef0458dd46e35167c4734667ebcc0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35020,10 +31946,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35031,10 +31954,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e42a9e07845680b8aad95408657c87b01873bcbe" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35042,10 +31962,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35053,10 +31970,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e42fc248764aac6f6e0af5b5705272f82101287f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35064,10 +31978,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35075,10 +31986,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e4ba9f46387c5687fb9003724893c0b199debf2d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35086,10 +31994,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35097,10 +32002,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e55693473101ac4626e04012beb1b9b6d93a0a94" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35108,10 +32010,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35119,10 +32018,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e57acbf9e36c755cc50b00bc868c01ca1c1f6842" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35130,10 +32026,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35141,10 +32034,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e590a42febe0442ddf632b05cda112b3aca43380" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35152,10 +32042,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35163,10 +32050,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e5afbabdb437dfc44f06ddf8b9f793868e8fdde0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35174,10 +32058,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35185,10 +32066,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e5d120938961b8ed1e0f46e342683432b9081dd1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35196,10 +32074,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35207,10 +32082,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e62f5243dd375cb4b71c864a18ddd50b5b99762f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35218,10 +32090,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35229,10 +32098,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e6660a661f0adb7be809c558ca15573add24f686" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35240,10 +32106,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35251,10 +32114,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e66b054263dd9e7ea90d7dfaee555e2f24bfb60f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35262,10 +32122,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35273,10 +32130,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e72218971bac83f556e86b0a65ec303e2a05eac8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35284,10 +32138,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35295,10 +32146,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e73a05b1cf7dfeeada6356bb18ec4381485bb3d0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35306,10 +32154,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35317,10 +32162,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e75fa90650f1d67ff9849024e88a91300690778c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35328,10 +32170,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35339,10 +32178,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e79ffffd4bd565b2b5bb8d0f191c8e34385de085" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35350,10 +32186,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35361,10 +32194,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e8c24e95b095fee6053a49f51326479b60949424" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35372,10 +32202,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35383,10 +32210,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e8fd7c4270b5f2cb56fb06684858c39c7ccfa909" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35394,10 +32218,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35405,10 +32226,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/e921037de2e963b653e881fba095eeb33799d749" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35416,10 +32234,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35427,10 +32242,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ea2cf809383d8725bec1b44ab774f04b3e6d5ae5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35438,10 +32250,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35449,10 +32258,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ea351febbe2c4e73fb0e0d34e7d2a23ff46b79f4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35460,10 +32266,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35471,10 +32274,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ea6cc4b0a83ac8d578c4927f3c9d5a57a4464df3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35482,10 +32282,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35493,10 +32290,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/eb342f6fd92411d7beb1f82983a19849d45ff46f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35504,10 +32298,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35515,10 +32306,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/eb9367a74ba61abe8d5f5fdb7c1c840b2d27dab7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35526,10 +32314,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35537,10 +32322,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/eb9faf5efb229c562a6825f930b8316f2aff2864" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35548,10 +32330,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35559,10 +32338,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ebbc2aa89ec745a7201eb4aa1aded15d35e4206c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35570,10 +32346,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35581,10 +32354,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ec012a94d14659f311451e89e757bd06a93d30b8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35592,10 +32362,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35603,10 +32370,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/eca1d41de5486c09c6aa7767289daa7185379220" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35614,10 +32378,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35625,10 +32386,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ed9a1a597bad76e9ed9e52ba2e5c80304583c006" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35636,10 +32394,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35647,10 +32402,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/eda5d435276e002a08358fd67a2bbd75902236a3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35658,10 +32410,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35669,10 +32418,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/edfcf299569efc4788937d2cd4ca0e625fb9e527" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35680,10 +32426,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35691,10 +32434,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ef264406b5a2263cd7a9145f7ca68ed8fd6c50ad" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35702,10 +32442,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35713,10 +32450,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ef4127bfbb6d1b7490a076c4af795b1e40b2bcd8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35724,10 +32458,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35735,10 +32466,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ef930a505edebc0ff6ca7eef7549bbaa21d95b4a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35746,10 +32474,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35757,10 +32482,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/efa80ac7daa93de08fc91bdf2a912269a3f2396a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35768,10 +32490,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35779,10 +32498,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f0a7e39c194ee3f30312ae2f4827bdbd43416a42" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35790,10 +32506,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35801,10 +32514,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f0e8450c85a3c6dfaa50ee65399270c59a127088" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35812,10 +32522,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35823,10 +32530,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f0ee077bc982be02a547d81d85e5c69e36fe38fc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35834,10 +32538,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35845,10 +32546,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f1a6421ddd077ba6971eee7ba1084ed66fd1bee3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35856,10 +32554,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35867,10 +32562,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f1b592b7e1a5af83eea1bccc2d7bcca302173d57" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35878,10 +32570,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35889,10 +32578,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f224ca8baea51bbc26a3814af9253483c66ad8f8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35900,10 +32586,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35911,10 +32594,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f238d0b5973d8d4081ba7036711d8c3091554e28" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35922,10 +32602,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35933,10 +32610,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f2bb9fb90c0fb7dfd765e1c528330881e721c7d8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35944,10 +32618,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35955,10 +32626,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f37b108d4dca7cdd24f464ad880a57aa038528ae" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35966,10 +32634,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35977,10 +32642,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f3c0468b37c09b998096d18cd13a522dec09888b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -35988,10 +32650,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -35999,10 +32658,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f47f636b8e22e8db428ea956d9336bd12b928a9e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36010,10 +32666,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36021,10 +32674,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f4d74d507a7171e5f116bf750a20435eeaf81f3f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36032,10 +32682,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36043,10 +32690,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f4dc057d97c34f31ea542d67593b8d3a295bf52a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36054,10 +32698,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36065,10 +32706,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f59e8ceab587254d408a4af86cd938d896eb0b6d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36076,10 +32714,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36087,10 +32722,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f65e41c8021049c4ca8782902de25d6791bae63a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36098,10 +32730,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36109,10 +32738,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f693fbf860c6cd1090a6dc220c20eb5c51543208" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36120,10 +32746,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36131,10 +32754,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f71de0dac54e25fe658e8c78208b855d3f0db23c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36142,10 +32762,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36153,10 +32770,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f73f63e243ea6484a97ece29bb8d4f33841410fc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36164,10 +32778,23 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/api_fuzzer_corpus/f755b44ff2221c971ca2bfaffc69e002ba982730" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "api_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -36175,10 +32802,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f788d2b893fe39fe24582acffa6a70f1ca4e3037" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36186,10 +32810,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36197,10 +32818,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f7b309af25b6ae5029a9548142333a905e3c99be" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36208,10 +32826,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36219,10 +32834,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f7c45ab223810b0b6b77042055a86800e5ec213a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36230,10 +32842,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36241,10 +32850,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f7c686af20a3cf5b5c569a570656df83db3fe165" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36252,10 +32858,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36263,10 +32866,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f8373fd74d8a4eafc7d015e2643c2a277656b716" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36274,10 +32874,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36285,10 +32882,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f861e708b6d0e0ca691d88a31e73f3d2643deacd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36296,10 +32890,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36307,10 +32898,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f8a02d7d9317428fd142c05f9428840d3d30aff4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36318,10 +32906,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36329,10 +32914,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f91f27afa6e72fd653eb41b316ad2d2e88fc0bb7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36340,10 +32922,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36351,10 +32930,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f9540ce65b08ec33d9157d03bf5231b767460d4a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36362,10 +32938,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36373,10 +32946,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f96f406763e8d6a53de319e67e942696cc10a4b4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36384,10 +32954,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36395,10 +32962,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/f97d97545054500e8035ac3c73957d0f75b2715b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36406,10 +32970,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36417,10 +32978,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/fa423921deeaeda55d2ff74e9541e5d89ddc7d36" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36428,10 +32986,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36439,10 +32994,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/fa45cfbecd8680693570d90f214abd9febf681a6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36450,10 +33002,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36461,10 +33010,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/fa99f1f9be3384be1229657b26374545228c2318" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36472,10 +33018,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36483,10 +33026,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/fae6e98220e0943926fe570bd32ea7f0dcd34feb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36494,10 +33034,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36505,10 +33042,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/fb0bfb049d4a99a529ff339218a5d962983118d0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36516,10 +33050,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36527,10 +33058,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/fb9505e4511c982f4f26675979a138a3408d80e2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36538,10 +33066,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36549,10 +33074,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/fc0cb8a6287528bfbe1e43d452fc40a180c221f2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36560,10 +33082,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36571,10 +33090,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/fc2bb278363a5f7d4dbfe8d123a8092a99d5a9f4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36582,10 +33098,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36593,10 +33106,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/fc37856ff6d7a1cce83efad8cc7727f5aac44200" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36604,10 +33114,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36615,10 +33122,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/fc9879794ab7f7cdc4959c204788fce6146c0579" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36626,10 +33130,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36637,10 +33138,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/fda1618a9c7d2d7c22234b3c7f996116bc5e6e4b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36648,10 +33146,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36659,10 +33154,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/fe680903482b870b820690f61cc607e5d26a652a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36670,10 +33162,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36681,10 +33170,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/fef5208b90316cac47bdc95ffd384b9c9a8a7c78" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36692,10 +33178,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36703,10 +33186,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ff6138cc4a36bad9a76401072dbd41fd2ad437cc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36714,10 +33194,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36725,10 +33202,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/ffd263ba66c7dd7180f5b8e13a3f7b8bf169dd79" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36736,10 +33210,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36747,10 +33218,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/timeout-0fa0559576ad2a45b06d0bfb84115963d7d48206" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36758,10 +33226,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36769,10 +33234,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/timeout-82b2ae1d2174f5782b32c89ce60f68bf5a30c0e1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36780,10 +33242,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36791,10 +33250,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/timeout-e45753da8952c41715a65010250efba0a4a4d243" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36802,10 +33258,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36813,10 +33266,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/timeout-f1536451f002afe7a6ff34a3755026e4ace1fee3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36824,10 +33274,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36835,10 +33282,7 @@ "test/core/end2end/fuzzers/api_fuzzer_corpus/timeout-f40dcae7e7cc52e44d49c7fd5452e33a77ef4499" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36846,10 +33290,7 @@ "language": "c", "name": "api_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36857,10 +33298,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/001946397b463a3562c5951f6325069d8a3a2ded" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36868,10 +33306,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36879,10 +33314,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/00c8446b230bebbae2b473552b174a06b446337a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36890,10 +33322,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36901,10 +33330,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/01b05a9eaa95950f697627264bbd5006060f68e5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36912,10 +33338,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36923,10 +33346,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/01c9569f5835a576fc50ea03141662c7ef1aa088" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36934,10 +33354,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36945,10 +33362,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/025215e11687c7d2e0055e5b2b902d08e0436f78" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36956,10 +33370,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36967,10 +33378,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/02ba99615d1d69eb328adce99670f659959c1bc1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -36978,10 +33386,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -36989,10 +33394,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/03abf728ac1d833c2d4a9ff7e0c912b949edc04c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37000,10 +33402,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37011,10 +33410,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/03beeae554ed6952e94a0bf32cdbe9f97eb3ba43" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37022,10 +33418,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37033,10 +33426,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/05b4eaa1e1a759aa6b23521c06d915174e8fec88" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37044,10 +33434,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37055,10 +33442,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/05cfa5deaead322efce84b710758a24440cef16e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37066,10 +33450,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37077,10 +33458,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/07048654244e377ddf246e8cc18f71443035cd2b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37088,10 +33466,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37099,10 +33474,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/078232947d7ff25557e836b4e9e907214e99b320" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37110,10 +33482,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37121,10 +33490,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/08a8a647b6a8f47ae10852322d14832fc15021f1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37132,10 +33498,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37143,10 +33506,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/0949f4ac376808482be6ab2dcb18a2ecb08d9a52" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37154,10 +33514,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37165,10 +33522,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/0b6fa6330bce65dfe7f758bcbfca2a2844dd07a6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37176,10 +33530,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37187,10 +33538,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/0c30868720d5e1a19ff23c53740749c37a43540d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37198,10 +33546,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37209,10 +33554,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/0c5e0660ddf5f14af8f3fbcc754a967506994c9b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37220,10 +33562,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37231,10 +33570,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/0d36da88698737ec1ca7b55b30fe2b2036de7e19" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37242,10 +33578,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37253,10 +33586,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/0d8c547f1d261ba07c2648bae009636c17709600" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37264,10 +33594,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37275,10 +33602,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/0dd33527db106a3e84172e8f2189734b00ced4ed" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37286,10 +33610,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37297,10 +33618,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/0e354d89d02c6c5cbba2f140dab7b609bf00793e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37308,10 +33626,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37319,10 +33634,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/0e3a18f0f08dcb9dd174627bc997f74a5c7a1390" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37330,10 +33642,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37341,10 +33650,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/0f83cbec19c834f534f353f4fce20c0cd88231f5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37352,10 +33658,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37363,10 +33666,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/0f98d7d56e9a99b97e5dc7eb122ef22e9684077b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37374,10 +33674,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37385,10 +33682,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/0fd8859246740606c498755ab00d6147abcfec00" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37396,10 +33690,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37407,10 +33698,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/100bb8f2e6a0b41da13f4edb5c15d4a04e564840" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37418,10 +33706,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37429,10 +33714,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/101305ccd08c7a8bd0c2913c37d3dd0d39d4bb64" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37440,10 +33722,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37451,10 +33730,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/10f5d1937cb068fee7f85e2654be2bfe77498bb9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37462,10 +33738,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37473,10 +33746,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/110074f658208166d52897c9266fc46cbaa8af36" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37484,10 +33754,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37495,10 +33762,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/1160214cdb23e8fc187078a8d6796656c1ade925" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37506,10 +33770,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37517,10 +33778,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/118ffddb43ccf9dae8bdb4702232d1dc39b021f7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37528,10 +33786,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37539,10 +33794,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/1306c4c6ea714d4db0e4d814c944d8d40335e0fa" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37550,10 +33802,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37561,10 +33810,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/1402bbcac6fa24eeb0475250e33f704096e2fb45" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37572,10 +33818,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37583,10 +33826,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/143e0d4f546bbb984a7c3ac1c60a37dcf85ea58d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37594,10 +33834,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37605,10 +33842,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/1576c915ee38f5bd19f285ed0ed47e36026518f2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37616,10 +33850,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37627,10 +33858,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/1602788cf33d0354d6d48ead549e5137cd211979" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37638,10 +33866,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37649,10 +33874,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/17b1758fc7cd69a00d140f113b1ac894023ff20b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37660,10 +33882,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37671,10 +33890,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/18185cbf9e9cfc1fd28d27ed0d651d7cee6a2c06" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37682,10 +33898,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37693,10 +33906,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/1875a4acdcffe505ca92ea8af8d9d6b174736e80" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37704,10 +33914,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37715,10 +33922,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/18850965807039500c7f5450a907e86825cf823d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37726,10 +33930,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37737,10 +33938,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/18926cdc608599e8df6b0f4df99d4ad856ef4373" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37748,10 +33946,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37759,10 +33954,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/1965cd58fc41578a837231c69075994da2e871d9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37770,10 +33962,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37781,10 +33970,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/19e984af62c36fe982284c87421d8ee46173e9f0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37792,10 +33978,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37803,10 +33986,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/1aee32faadffa3c2ec508e8fd30006423665488f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37814,10 +33994,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37825,10 +34002,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/1ba08b63181066ffab948eb301a6a2363a81872d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37836,10 +34010,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37847,10 +34018,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/1c222dae4e2cde1fca9f9bf6226200f70d625342" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37858,10 +34026,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37869,10 +34034,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/1ca51ab2fefef4f549c4a8e7f4910c6b5a4b4b1d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37880,10 +34042,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37891,10 +34050,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/1cbcaad71950c62d41bab50f9c242d014cc0d904" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37902,10 +34058,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37913,10 +34066,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/1d19042e6db2a90c52fcc3cb0aa76f2fd335014e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37924,10 +34074,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37935,10 +34082,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/1d458954e8174bbb5dd4d0053df47d6b7adf290a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37946,10 +34090,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -37957,10 +34098,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/1dc86d0febe4adc5353230cea24b5f7cce829283" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37968,10 +34106,23 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/client_fuzzer_corpus/1e64080289ea4168304417f3fbd86b01d7d6f431" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "client_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -37979,10 +34130,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/1e84d42fcf18bbf81ef6e8a16a0c57abbf8d292a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -37990,10 +34138,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38001,10 +34146,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/1f040e756f76357979f317e0c6541f72fd93df06" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38012,10 +34154,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38023,10 +34162,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/1fe7d16ffc2084d5d3c5f23d16902ae8810a5393" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38034,10 +34170,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38045,10 +34178,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/1ffc4952225dda41de59603e487ff7fd3026b958" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38056,10 +34186,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38067,10 +34194,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/20216d27af2b3dcc83d944e5f7a489ed2eff98fd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38078,10 +34202,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38089,10 +34210,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/204093594b568ada9c7857a971f2a4b42123ee1c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38100,10 +34218,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38111,10 +34226,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/20539e464ced1a0a63d74bae731ca0a75db05967" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38122,10 +34234,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38133,10 +34242,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/205cf2b6994f10b783aa0a06938a5e47cb581126" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38144,10 +34250,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38155,10 +34258,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/207e12d6a84dc8fa020b3a60b3f75932ca4f8fa5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38166,10 +34266,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38177,10 +34274,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/20ea73876cc9cd5b3d3efa1bda21deb5eac2d61e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38188,10 +34282,23 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/client_fuzzer_corpus/20ee437b7f456ebb19d98d94d9feb1d5e9174c65" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "client_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -38199,10 +34306,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/2166c7093c424a2136c4cb8b10d0b124047320d4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38210,10 +34314,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38221,10 +34322,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/21a6a133f3d1e06c077032ba56a7df4161f62efe" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38232,10 +34330,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38243,10 +34338,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/224fa2e83fd8ecaa9059ad37a55238f74b8e0829" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38254,10 +34346,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38265,10 +34354,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/230527b90b0179139c961aca426187893191fdf2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38276,10 +34362,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38287,10 +34370,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/2467fa0f8a9f4bd121f544892f0782498b2df533" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38298,10 +34378,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38309,10 +34386,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/246dcf347eba7f4d4e04d97dabc002f0acf2164e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38320,10 +34394,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38331,10 +34402,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/252de25a5237c830ad8c5e4732c176e03785042b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38342,10 +34410,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38353,10 +34418,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/25761748660a64111a8daa46f72ea1f336c2046a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38364,10 +34426,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38375,10 +34434,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/2585dc7b6c095e978b56e0249fe9b5c61a4840af" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38386,10 +34442,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38397,10 +34450,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/25949b623930511f9d43fea4aa56a4389a28e11a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38408,10 +34458,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38419,10 +34466,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/26110f21dcb0fde99942e631366ebbd9d895860d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38430,10 +34474,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38441,10 +34482,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/2663ce44ca5832381cbbdf7b252e39d6df021a93" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38452,10 +34490,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38463,10 +34498,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/269afce3bfff993c05c2a3b28c6cf3dfb3f461d7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38474,10 +34506,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38485,10 +34514,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/26b8a9d27cef1ce4c3c5aefa2dee50001aab4b13" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38496,10 +34522,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38507,10 +34530,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/27f37037525aac7a41ffbadd6ce52e5a1851a2b7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38518,10 +34538,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38529,10 +34546,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/289cdf83f89f70a13e9078259f764a339617c827" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38540,10 +34554,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38551,10 +34562,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/28ee8cae75efa07da9649933a9482d00643b5395" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38562,10 +34570,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38573,10 +34578,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/299034b9e0cc8d91c049c489dca6d1a2b8b08959" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38584,10 +34586,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38595,10 +34594,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/29952a15459cce9c647255ab5d7486df0507eff4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38606,10 +34602,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38617,10 +34610,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/299faa82b90ef12421d160148dfb6cd0077b57c0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38628,10 +34618,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38639,10 +34626,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/29be7d33920998bae7329d77d4c81989eae91647" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38650,10 +34634,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38661,10 +34642,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/2a8260b23460f90f770cedcafa14868d24db201e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38672,10 +34650,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38683,10 +34658,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/2b230a7b55b17f2f8e89c4be73a662d781f7fb3c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38694,10 +34666,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38705,10 +34674,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/2b71439e9ebf611a92386b9f21ad44bde7926184" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38716,10 +34682,23 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/client_fuzzer_corpus/2c1ecf05c5dde692ed16502294e9570ac3b02600" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "client_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -38727,10 +34706,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/2c342f8715556398d49bcf3343b5a249d968e19e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38738,10 +34714,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38749,10 +34722,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/2c6e69067c68c145dc5d3a60b86d8081fdf95d0d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38760,10 +34730,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38771,10 +34738,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/2c79128c697b53256c56b9c57c7259866e0e2347" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38782,10 +34746,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38793,10 +34754,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/2d83097b3cbd2245b085e749fe923fb590790e0c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38804,10 +34762,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38815,10 +34770,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/2dce4a1fc4bb00bfcd43d549a3785913c9280369" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38826,10 +34778,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38837,10 +34786,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/2deb1aeb93c2abca4177b1fe886eb354c83fe8af" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38848,10 +34794,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38859,10 +34802,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/2e9860242d55a74cec244bb5c5445eb2797a3157" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38870,10 +34810,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38881,10 +34818,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/2f288409c5f3cf2a10b3e1970a9c3d037dabe080" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38892,10 +34826,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38903,10 +34834,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/2f5f6d281a3d0473a04a17cbcbc6fd06cb73fd8b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38914,10 +34842,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38925,10 +34850,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/301e10bb6d9f60d91efde4e0c48893203a5b8b88" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38936,10 +34858,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38947,10 +34866,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/302a11eb9b9687464b88c9a670da371f6a6c57e7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38958,10 +34874,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38969,10 +34882,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/3128887b8e02f1873ed6b36766a870543269ea00" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -38980,10 +34890,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -38991,10 +34898,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/31545e9fe4c6aa43329dc0d4a735842574fcaaed" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39002,10 +34906,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39013,10 +34914,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/31d12a2b1378120d15b4097371d792daa95de0a9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39024,10 +34922,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39035,10 +34930,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/320dc10f64b59b0eb0ae140912eded1ef9276556" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39046,10 +34938,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39057,10 +34946,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/3336748264594689041e4080b51bc56f716d0689" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39068,10 +34954,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39079,10 +34962,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/333d0554d91872e693d118d6988132d95b7920ae" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39090,10 +34970,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39101,10 +34978,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/337d579ab5eb157d7d58e9287d447976062cbd8d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39112,10 +34986,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39123,10 +34994,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/33c32a80db0ec311ee8744991c5b19345bfd8fe9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39134,10 +35002,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39145,10 +35010,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/35fbd748458e3fd6068957d46a9fbb2b0113d2b3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39156,10 +35018,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39167,10 +35026,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/361c6f4374443671f039fd9659577e4460178020" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39178,10 +35034,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39189,10 +35042,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/368c75135a7341a96627d0dcfc4b2081003d8979" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39200,10 +35050,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39211,10 +35058,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/370b2c16cc353621091eda4964d4c4329205ffc3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39222,10 +35066,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39233,10 +35074,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/370f893353f792c99754ece93baed2105decd71e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39244,10 +35082,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39255,10 +35090,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/375c2462d6ae891222686f9519294811fa5de010" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39266,10 +35098,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39277,10 +35106,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/379b177d55b1eb86ddb66dc3a037fd8283ee07c0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39288,10 +35114,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39299,10 +35122,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/3a01c85934363bd2067f76d0d40c491f9f846c8a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39310,10 +35130,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39321,10 +35138,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/3a3eb65d51f30f4cd16cc6f8436a5b00702a5712" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39332,10 +35146,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39343,10 +35154,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/3ae87e3150628c422ada13002b08f2d9c5a9d78e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39354,10 +35162,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39365,10 +35170,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/3afbc4c35885b79c6e6628afce93ce852d7767de" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39376,10 +35178,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39387,10 +35186,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/3b3b4f9a985ec49f6c54bae798208625e5adb777" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39398,10 +35194,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39409,10 +35202,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/3c7b516e302ad3503a933b5dcfb8c58acaea07a0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39420,10 +35210,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39431,10 +35218,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/3d4d961511c1de95a81b129f2fe96390209de2e7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39442,10 +35226,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39453,10 +35234,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/3da7577acd806e1d92d48211b22fd9db352fd834" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39464,10 +35242,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39475,10 +35250,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/3e8f531043a07df2280bca73fe4a7987d82ce67e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39486,10 +35258,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39497,10 +35266,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/3fcc2da89f438b247cb5b4b41e15aceccfa75b36" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39508,10 +35274,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39519,10 +35282,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/4040224f3df361afe45bce682d56d26f13829413" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39530,10 +35290,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39541,10 +35298,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/41aad2f11a7ab418213352e84de872d9997db8d2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39552,10 +35306,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39563,10 +35314,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/41b499e86caed7b48c59aaaf51360c3c71029400" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39574,10 +35322,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39585,10 +35330,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/42554ddbe59429d30d718282ca606ed8b5a90eb3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39596,10 +35338,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39607,10 +35346,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/42c395ab373346fb283ace021bdc1f6428f92f80" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39618,10 +35354,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39629,10 +35362,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/43202ad9b1a689d919ab9ae91c2d0223394867bf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39640,10 +35370,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39651,10 +35378,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/438789ebe8a5d676f6f03ef8329c3d77579aeba4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39662,10 +35386,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39673,10 +35394,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/44153f8b7af5a3b27625a46af89e1712daa3ae8a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39684,10 +35402,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39695,10 +35410,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/44d64196fb2e8d9506734a81304f6ef17b9bc29d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39706,10 +35418,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39717,10 +35426,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/44f0973ec77d6fb9eac931e84fa7ec6fdadccca6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39728,10 +35434,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39739,10 +35442,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/450f9f56c80c8b71e37302a254ba7c3f7298dfd7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39750,10 +35450,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39761,10 +35458,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/451e69ab65e0fe0a5731622ed21ab2b5380df677" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39772,10 +35466,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39783,10 +35474,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/46dcb1c399e5a514267fbbd5a50939f34e0ad6be" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39794,10 +35482,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39805,10 +35490,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/47e8aee44c2c7bd870f15b50fc085c5a8030edfc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39816,10 +35498,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39827,10 +35506,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/489e9830136adcc53f4b191199c33504685b3737" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39838,10 +35514,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39849,10 +35522,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/49112bf1277d93601eb6526fe9ee9d45864d759e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39860,10 +35530,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39871,10 +35538,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/4a11af9ef42aeb36691185520be281c4760ad27b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39882,10 +35546,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39893,10 +35554,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/4a4553c2e939cd50981bc38e8ddb1f2109ddb3a4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39904,10 +35562,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39915,10 +35570,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/4b2ce115b15082ed951f4dc0b432da6a9d37bf85" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39926,10 +35578,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39937,10 +35586,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/4b585eb75ebca2187c0aa5a6abe4c8125aa80127" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39948,10 +35594,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39959,10 +35602,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/4b611a3748757e2fa89fcd2fb22d34444fbf5b42" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39970,10 +35610,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -39981,10 +35618,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/4e21c4b5c454df51c102f09ea1ba78c42133ee16" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -39992,10 +35626,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40003,10 +35634,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/4eaff3c3515a1ca019d46b9be0b7318eaffb63d1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40014,10 +35642,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40025,10 +35650,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/4ec113a0126fc5746fa3f955727d009040e8377f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40036,10 +35658,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40047,10 +35666,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/4f5b9d5c707a35084918c272efd1295d301ca0b5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40058,10 +35674,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40069,10 +35682,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/4f8b5b7489cca36225acec0f9aa7f5c556d79d8d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40080,10 +35690,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40091,10 +35698,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/50ece7ea16659b4e1a2284cea963fab662c19e6b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40102,10 +35706,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40113,10 +35714,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/514c9cd7b6519b596900d924ff2caa173d688f4b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40124,10 +35722,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40135,10 +35730,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/51c6c5297acebf9d21a8a7d6261d0a17c2adfb56" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40146,10 +35738,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40157,10 +35746,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/52c00bde7f4af95a86deb0a6717d1faf2828a939" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40168,10 +35754,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40179,10 +35762,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/534c900ade27c8f7fccb1f3b7e7703f77f13a8f5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40190,10 +35770,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40201,10 +35778,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/5360327e8bc8969f31b364df3081b51a1e03900c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40212,10 +35786,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40223,10 +35794,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/542c958c84d1e319b9ba23c52de2c4bca08a8dc7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40234,10 +35802,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40245,10 +35810,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/5482dc4af170def9c183315efaa48f9c186926a1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40256,10 +35818,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40267,10 +35826,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/54e67ed1036f3f5b315e0e3c02948c30eba900fd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40278,10 +35834,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40289,10 +35842,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/55ca8f6d9928c239a7abb32554463e6e1e1ee084" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40300,10 +35850,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40311,10 +35858,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/570ca8d2555dde94aa3b3121e8f5256e83eabe5e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40322,10 +35866,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40333,10 +35874,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/57ee6efc38f4c544a3ea3e5e73987e825bdf2980" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40344,10 +35882,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40355,10 +35890,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/58a067ec6eda7191a5a910d8120633271d3af074" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40366,10 +35898,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40377,10 +35906,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/58d6dffb65a1fe1bc4e3fa970a15459587a32f77" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40388,10 +35914,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40399,10 +35922,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/591ef436ef8cc982b48fd827a4555b57cd9780e5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40410,10 +35930,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40421,10 +35938,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/59d78f6397f0483d139f5bd0a9f264156f34acc4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40432,10 +35946,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40443,10 +35954,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/5a2447fdfdbf123f4592c1284007b7d50a01750b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40454,10 +35962,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40465,10 +35970,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/5ca233a53e3e425cc12e04b466a49789291eaa00" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40476,10 +35978,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40487,10 +35986,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/5dc7b2086a39f56d8b9135f524d34a01fcabafd8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40498,10 +35994,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40509,10 +36002,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/5e1659e7cd840ab3f958273ebffdd215f2c81da6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40520,10 +36010,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40531,10 +36018,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/605e474e9d9436488dfe084d348908e4dfab81a3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40542,10 +36026,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40553,10 +36034,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/6066fc9e28b4ce704230f0e8cf21e7c3195aa2a3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40564,10 +36042,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40575,10 +36050,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/607dac8012f188cb035b189fc3637028137023e0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40586,10 +36058,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40597,10 +36066,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/611343a6b8879b393ba2f38ed41c7f5355355920" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40608,10 +36074,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40619,10 +36082,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/62c843359941660da3fc9eea62a5732aaa3be283" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40630,10 +36090,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40641,10 +36098,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/636a19b8f50c4efccccea83ab78a933d999e41fa" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40652,10 +36106,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40663,10 +36114,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/64696e93ead18265cdac3fb37dae29ad3be6d764" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40674,10 +36122,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40685,10 +36130,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/64c0e0b4d9c2d25fdcb1e2bdcb999487fc096dad" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40696,10 +36138,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40707,10 +36146,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/64cad305e1858eae27cd723778fb9f4b7052eaa5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40718,10 +36154,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40729,10 +36162,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/64d27dc9f984c49d421a5b0cb0391992d5aac1a4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40740,10 +36170,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40751,10 +36178,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/653ec14661c40ea25bdbab4a7cb9371c669d10d9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40762,10 +36186,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40773,10 +36194,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/66145518601b1405361df12570f6e0b2b9a2e5b3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40784,10 +36202,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40795,10 +36210,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/662d81374a2c96f867ccd88a4295190827c45453" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40806,10 +36218,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40817,10 +36226,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/669256f857011c32f5757ec19b2e5b9a372f6c23" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40828,10 +36234,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40839,10 +36242,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/6749752b02f7d14fff9ac35f6b68dd62f5b49fcd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40850,10 +36250,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40861,10 +36258,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/67e72cea2b7042f08e8dfba5191d27bb390e4d00" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40872,10 +36266,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40883,10 +36274,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/685fbddd9ea612b25e325a50bd659997b4d77da1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40894,10 +36282,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40905,10 +36290,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/69542ed81b00a5ec8daaf4e8d509201eecd502c5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40916,10 +36298,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40927,10 +36306,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/69be4179b28e408a0574935e893c6986bbca0de9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40938,10 +36314,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40949,10 +36322,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/69e52eef5dd0c51012b5c974cf70f4074ba814a9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40960,10 +36330,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40971,10 +36338,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/6b1698d096095d4035ce67a8680b52eada00cce2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -40982,10 +36346,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -40993,10 +36354,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/6bfd3679f4e30aaaa1808e96c980edcfa9cac1c0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41004,10 +36362,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41015,10 +36370,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/6e2796549e29e5066f780a5e926fd6e3bb362450" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41026,10 +36378,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41037,10 +36386,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/6e71553967212dfea2c9995f3641e582d8c2105b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41048,10 +36394,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41059,10 +36402,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/71106770243ccca03f5025aadb298ee3a825824b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41070,10 +36410,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41081,10 +36418,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/717695057d76b81c344ed8c23cc024195caa9405" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41092,10 +36426,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41103,10 +36434,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/7353a7b2ea9f61325728b2f118416549e89dd79b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41114,10 +36442,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41125,10 +36450,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/739228a1400cd69c47f110002c34dbe1661e8c41" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41136,10 +36458,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41147,10 +36466,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/7465a4955a064e8f1bb777d4b0de5b3df8469831" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41158,10 +36474,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41169,10 +36482,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/74e6831be67485fb59b8e226fb8a48d88faf57d6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41180,10 +36490,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41191,10 +36498,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/753efc088d6023ca113a12acc54015a22f7daf9f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41202,10 +36506,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41213,10 +36514,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/759a1e2e34cad14321a5e5790b1e6a783312fea1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41224,10 +36522,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41235,10 +36530,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/77ea9180617391d8503427a1c060538182f7729f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41246,10 +36538,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41257,10 +36546,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/7885df741c88ca4b539798d9985c445f41cc2929" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41268,10 +36554,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41279,10 +36562,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/7af3156d286a32a6a6fede46d93ec12ded1ac138" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41290,10 +36570,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41301,10 +36578,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/7af41e5391204f4596cb1461792e2e23f9390b7b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41312,10 +36586,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41323,10 +36594,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/7c2e48b0d08aaeb95b5ca26036384aa2cec9de77" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41334,10 +36602,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41345,10 +36610,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/7c73c0671308e37a8075a20863e70e180ef8b6ea" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41356,10 +36618,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41367,10 +36626,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/7e18989175bba8d9aea34413d6f328549e1c6825" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41378,10 +36634,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41389,10 +36642,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/8021c689f0078c5c59419c9959f5c58472245bc7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41400,10 +36650,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41411,10 +36658,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/807b8c4ca068cff4bc0fc8e854c1215a2fe65960" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41422,10 +36666,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41433,10 +36674,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/80bd4827db81a1da28fae8c150f5e2d46651c598" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41444,10 +36682,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41455,10 +36690,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/813d2c34c0df8d4a918e68e58cf0ae3703d0d46f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41466,10 +36698,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41477,10 +36706,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/824152f7bd022996b41327002f6971cd9900b265" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41488,10 +36714,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41499,10 +36722,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/829a1dc2bcb22a230df8aa20540def0e16864983" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41510,10 +36730,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41521,10 +36738,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/82c0e02a867a5fdfb805e01ebf1a008220311e27" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41532,10 +36746,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41543,10 +36754,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/831248cea079b629bf0ef6d9d02c159d6f8ed41b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41554,10 +36762,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41565,10 +36770,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/834527ef0bc1572c584938ca7fe5336961754708" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41576,10 +36778,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41587,10 +36786,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/8382c249fc9c7a248833d89de554e63807c475f7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41598,10 +36794,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41609,10 +36802,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/83baaee9b46770d9eef0e161a6e52cda76e3b043" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41620,10 +36810,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41631,10 +36818,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/842cea88bccc41d7e2625dae8ff7268ee79e9f57" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41642,10 +36826,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41653,10 +36834,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/850c639595eae3cc9c2cfef473e28fd4e8174dc8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41664,10 +36842,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41675,10 +36850,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/857ce08213a5106c746767352c6863d7bd134208" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41686,10 +36858,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41697,10 +36866,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/86eb156ff8ddd7edc535840d412342ada6f3b184" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41708,10 +36874,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41719,10 +36882,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/871a2e4d73a7fbb50f71558517a2f704b7fdb868" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41730,10 +36890,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41741,10 +36898,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/8795e24f23db36e4f9ab609c9faff601b984eb6f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41752,10 +36906,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41763,10 +36914,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/87e97b460042d045629263ad10ff3de7b000f0a1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41774,10 +36922,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41785,10 +36930,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/89cf42c02d7135afa6c81d8a0c2bc4c3df557769" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41796,10 +36938,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41807,10 +36946,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/8b7b914723bfc23ec650cb91d209141641fba09f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41818,10 +36954,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41829,10 +36962,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/8b8b9fcdfff1f891b1694614b7309cb4a2098f4b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41840,10 +36970,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41851,10 +36978,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/8b8f6d58dff9ab0c37183ec93c9a600d5ba5d9e6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41862,10 +36986,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41873,10 +36994,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/8ba00963037c9ff548b7a702497441799075f14b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41884,10 +37002,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41895,10 +37010,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/8bacacba71bfa5c74fd74cb6577a49a7aec9cf1f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41906,10 +37018,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41917,10 +37026,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/8c527bdf0f304a31866f71cdb298511041ecd320" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41928,10 +37034,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41939,10 +37042,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/8d352ea63259e26e1bb61f5a8f78254be4e3e7b1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41950,10 +37050,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41961,10 +37058,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/8dfc4e78007040009f37109f9ca928c31b3ebb49" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41972,10 +37066,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -41983,10 +37074,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/8ea624983d766ed45780378a3eec24eb2faeb229" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -41994,10 +37082,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42005,10 +37090,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/8eeb8cf054ebd546ca0555ef1cd4ac6a08628917" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42016,10 +37098,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42027,10 +37106,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/90a9c3390752b94ca19a58cb2fe6267bc818f718" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42038,10 +37114,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42049,10 +37122,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/9125277ed9ec5d59e51f3e1a8d97d25ef88a5d4f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42060,10 +37130,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42071,10 +37138,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/91916df7c8f04d8c2b6b8f4aeaeee6972ce0de74" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42082,10 +37146,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42093,10 +37154,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/92cce6dc5c31acd62347b15d89d52ab94b507e0f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42104,10 +37162,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42115,10 +37170,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/92ea0d3200665e1836ac12bed0837425cb9f43de" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42126,10 +37178,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42137,10 +37186,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/9329b80d0125cc994d7ad36540c7a8265d76983c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42148,10 +37194,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42159,10 +37202,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/94108ac8420347598c7cee743b2a158b1270fb8f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42170,10 +37210,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42181,10 +37218,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/954ea72fdbeaf5b46d18c6d5bb77fc1a0f97569d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42192,10 +37226,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42203,10 +37234,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/9552c3f6304af40224b800f3a3a5df3887a530f6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42214,10 +37242,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42225,10 +37250,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/96e5126447131d3d59cc6547f6b91d3433ce37c8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42236,10 +37258,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42247,10 +37266,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/970fccda0b34b59ade44d52e1212699b4d2419a8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42258,10 +37274,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42269,10 +37282,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/97c4b73f72b248b4ebf4bf30892d0db828a85297" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42280,10 +37290,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42291,10 +37298,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/98c0c0a3c8c05aec3082755a4635e65baecf4752" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42302,10 +37306,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42313,10 +37314,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/98da5edafac67704810f093b38c86e4c77b75349" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42324,10 +37322,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42335,10 +37330,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/98dddd3f679af150e9933bd864ae20e20b7aa25a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42346,10 +37338,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42357,10 +37346,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/999d0995c2f09beda8783eac95d7643a11d5c89a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42368,10 +37354,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42379,10 +37362,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/9a43f48d4f6219618f8cc9e876880fe81109ad72" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42390,10 +37370,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42401,10 +37378,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/9a4da2a37a26c114e1226bfbe1cf80ec5ca99a66" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42412,10 +37386,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42423,10 +37394,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/9abf980e8909aeb31936553ca22ccfd8680c4dab" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42434,10 +37402,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42445,10 +37410,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/9b1355c6e2c43ce83001bbead09a79852e04feef" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42456,10 +37418,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42467,10 +37426,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/9b4d4ce0457f5300d6b4b309762acfdbc41e3965" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42478,10 +37434,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42489,10 +37442,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/9bd059ff0a90e86ada1ba7e5b90ae04637ae9e90" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42500,10 +37450,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42511,10 +37458,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/9c4eac3dd734a74673c76e6b21fd9c18cdfa831c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42522,10 +37466,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42533,10 +37474,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/9d2dd744ba59c1e8ec091e23938e46d1bb5ee519" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42544,10 +37482,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42555,10 +37490,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/9d362d2aaeee243a5b54621d8187c4b16f87c9f5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42566,10 +37498,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42577,10 +37506,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/9d6947df24c9ebcbec72c568d9708d7b1ecae63c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42588,10 +37514,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42599,10 +37522,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/9dfdce1b090a559a14f9a5852f78547413b1d1ed" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42610,10 +37530,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42621,10 +37538,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/9e2ab07030bd35a4c31df32c79aca5e76c1d04f8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42632,10 +37546,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42643,10 +37554,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/9f0ab521c728be21e93112b2730c52bc1d6c0021" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42654,10 +37562,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42665,10 +37570,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/9f2316ddcea948c947fbbf35ae87b767b8c1dc55" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42676,10 +37578,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42687,10 +37586,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/9f9ed47f98b4905f1f6ef2b552a66905bdf79b1b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42698,10 +37594,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42709,10 +37602,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/9fee3212240d4bccfdab3696dbbc579b06d39982" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42720,10 +37610,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42731,10 +37618,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/a09ef34c93fe0ffc13045f67b7ecec683fb72e98" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42742,10 +37626,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42753,10 +37634,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/a30fc2605f4e74f7003f902ea4a4c994e3ce9bfd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42764,10 +37642,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42775,10 +37650,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/a33e1b28074a41fc5c2611a67161ae5638a47dd5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42786,10 +37658,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42797,10 +37666,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/a3cd54d43d3b3bdfcf224d636dc11ce1b5ee4d30" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42808,10 +37674,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42819,10 +37682,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/a4874327383ca168f9d9d59cffe327f61e9a6610" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42830,10 +37690,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42841,10 +37698,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/a4e4a0473ac1f2b8de86efdf00fcb382a343126d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42852,10 +37706,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42863,10 +37714,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/a502dbaf3c842bd86e9ae513e8782eb23c70ad7a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42874,10 +37722,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42885,10 +37730,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/a60ae4e21a913e84405814f18555f0c179c24167" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42896,10 +37738,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42907,10 +37746,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/a6603e797695274d10bce000f66ca0a715f7d8c0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42918,10 +37754,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42929,10 +37762,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/a6d4b6043d86c376e9b166d5ca395f3e099ae229" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42940,10 +37770,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42951,10 +37778,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/a6f0d1ed80393ec0a884718b44fe2dc9f852d38a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42962,10 +37786,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42973,10 +37794,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/a706f2067bfbda7837eaad68972d60547e2957c3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -42984,10 +37802,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -42995,10 +37810,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/a814c5743d492b96d2b402f9e819bf8406262224" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43006,10 +37818,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43017,10 +37826,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/a8e67676784506d2e6eab3a0dfa25e53a80b40a0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43028,10 +37834,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43039,10 +37842,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/a9d71e1ff2912d8874e38fc61cbd9a8ef28af4a9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43050,21 +37850,15 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { "args": [ - "test/core/end2end/fuzzers/client_fuzzer_corpus/aaada46c7f3bff58c2dd6f4a8394135ed5f253ee" + "test/core/end2end/fuzzers/client_fuzzer_corpus/aa878edb0100e876e00e310ae221b220fdb5e028" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43072,21 +37866,15 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { "args": [ - "test/core/end2end/fuzzers/client_fuzzer_corpus/ab27fb527771c7d86f74afb6864e95402328ec0e" + "test/core/end2end/fuzzers/client_fuzzer_corpus/aaada46c7f3bff58c2dd6f4a8394135ed5f253ee" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43094,21 +37882,15 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { "args": [ - "test/core/end2end/fuzzers/client_fuzzer_corpus/ab8d6e1ecbd80c6223b8623a386c61023502a57c" + "test/core/end2end/fuzzers/client_fuzzer_corpus/ab27fb527771c7d86f74afb6864e95402328ec0e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43116,10 +37898,23 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/client_fuzzer_corpus/ab8d6e1ecbd80c6223b8623a386c61023502a57c" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "client_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -43127,10 +37922,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/abd52da5882855a63632a6917df3639538928cd3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43138,10 +37930,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43149,10 +37938,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/ac38a6572f8420b4df37d9e39088d1905fced71d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43160,10 +37946,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43171,10 +37954,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/ac727124e46a249419f088c8665324a11b357b84" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43182,10 +37962,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43193,10 +37970,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/adb9bf315315338bcad85929917b9def2aa098cb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43204,10 +37978,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43215,10 +37986,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/ade2d2f0e120a9527487e9b92458ee6844800e4e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43226,10 +37994,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43237,10 +38002,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/ae8c538d4ad7f2996ac724bad7a075e1aea32556" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43248,10 +38010,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43259,10 +38018,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/af8b24ffaecdfaf96c0cd7c76f31dc9e1b4d0935" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43270,10 +38026,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43281,10 +38034,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/afcce9e02e0696a2af073855a386f589cc12c94d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43292,10 +38042,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43303,10 +38050,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/b00a32e8bfb75e75f31410dfe3592da6248275c6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43314,10 +38058,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43325,10 +38066,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/b09f98e13e5b67a4dd7f74eff00bb247b9967844" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43336,10 +38074,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43347,10 +38082,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/b24a0dd1bc0bfabb832f0d1c8410c018c4ddaf4e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43358,10 +38090,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43369,10 +38098,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/b283eb8884c98dd50523995ce221aa1ecb3ca182" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43380,10 +38106,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43391,10 +38114,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/b2a79b262ee3966c5ce7c7b42dcffd55d7d0956b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43402,10 +38122,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43413,10 +38130,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/b2aa4861b5104e8bb8bb173f4b023a2172a7b9a2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43424,10 +38138,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43435,10 +38146,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/b33eb7e1bde4c69671dbbf9489b4d4b87c5d23fd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43446,10 +38154,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43457,10 +38162,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/b39bfaf6a3072d8a50984dcc54967e9246f8d3e5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43468,10 +38170,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43479,10 +38178,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/b3f33b78433af7f607bc99b569b0cef95a1a6ca0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43490,10 +38186,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43501,10 +38194,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/b46e762671a5e28c7061da3baee6fc41dcc0122b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43512,10 +38202,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43523,10 +38210,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/b6d86bedf3cf19441114e463458a454709e627b4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43534,10 +38218,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43545,10 +38226,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/b755933ad6e318ee9e0c430ff69be7a515d44def" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43556,10 +38234,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43567,10 +38242,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/b7b664a39372dd6142b8ef7906857e4ab3f1fc84" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43578,10 +38250,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43589,10 +38258,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/b7c31bb5f6acc65b88e31400dcae71f7be392c86" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43600,10 +38266,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43611,10 +38274,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/ba942f8fb244b60561a067129c242c4bc4fdd5e1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43622,10 +38282,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43633,10 +38290,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/baa28a5baedb645f4430940a4b4b1142f4b03e0f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43644,10 +38298,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43655,10 +38306,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/baf7839388e10ff0c410a58797482cb83693b309" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43666,10 +38314,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43677,10 +38322,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/bbc03bf6274a79528d43e200e8f1aaa770a155d6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43688,10 +38330,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43699,10 +38338,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/bc9e17fed43c5d0668a87e8d6354c344c5b4d00b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43710,10 +38346,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43721,10 +38354,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/bcc7340f8876a7dff381ca676efc39d30eed9f48" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43732,10 +38362,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43743,10 +38370,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/bd0bef14e73aa1073eb5acb6e4cc901c976335f5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43754,10 +38378,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43765,10 +38386,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/be3237e72b3d8d56eec0520145dd7d1a5064eede" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43776,10 +38394,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43787,10 +38402,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/be8cc5bab95e0ea7af538ca11175d710da6207d9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43798,10 +38410,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43809,10 +38418,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/be988fc0c00a8422020dea3dc72451b09e25e1ad" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43820,10 +38426,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43831,10 +38434,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/c0deaead93c9b3f2fc211fb7f0711ac192715a40" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43842,10 +38442,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43853,10 +38450,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/c24143cf5f6f77f002e0ab82e3060906e2e7d062" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43864,10 +38458,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43875,10 +38466,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/c3afa705dab02fea4d892134e7c01c3af270cb6e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43886,10 +38474,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43897,10 +38482,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/c3de41124a14ea562360aabc9e12666851bff2fe" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43908,10 +38490,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43919,10 +38498,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/c4e60ae7c05b12a90dd7c43fbc85ae4be7540f18" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43930,10 +38506,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43941,10 +38514,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/c5d0c169d326d79fc4ee8521b282dbcbf33c1d5c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43952,10 +38522,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43963,10 +38530,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/c5dfb4a82f91d07041d4b0ca6cc34cfa1e9c7199" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43974,10 +38538,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -43985,10 +38546,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/c685689a9d5b259afe237d857b7c6551dc95c176" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -43996,10 +38554,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44007,10 +38562,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/c77087b4651f4c62a780d77a3b4c233490244e8a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44018,10 +38570,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44029,10 +38578,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/c784ad2e205ba49b5bb1302746723dbc57320981" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44040,10 +38586,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44051,10 +38594,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/c84da54dacf04445b50448a70fb0ecdd08e9234a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44062,10 +38602,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44073,10 +38610,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/c8cb20176e427d2e108187924f570ef1df6d440c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44084,10 +38618,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44095,10 +38626,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/c916ea9c6901c1e77af764773bd2843baa2ebdc6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44106,10 +38634,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44117,10 +38642,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/c97ebf43d8a5ce5cdb8e93a5d0362239c284ab4d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44128,10 +38650,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44139,10 +38658,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/ca0db313bf949ba3f87a5254646a7a7dc8a7f89d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44150,10 +38666,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44161,10 +38674,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/cc4197d2381a75b674fe4944b8c690fe69a0b3b1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44172,10 +38682,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44183,10 +38690,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/cceb4c620c02337138e489383db0d4f4e2c7a722" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44194,10 +38698,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44205,10 +38706,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/cd4be18b1ae872c40580edc4fe8cbdf1fe2a3881" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44216,10 +38714,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44227,10 +38722,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/cd76ed6aff7e074b0cfdcc6305ec4e453d8304bb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44238,10 +38730,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44249,10 +38738,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/ce990633c0f2b2a2ddb66144ed942d4bc9bcd8fb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44260,10 +38746,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44271,10 +38754,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/ceb297908903ba0fc24982ad4e6010e79dfbdd5e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44282,10 +38762,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44293,10 +38770,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/cedd54df6d34491dbf7843c2621d6818418aca02" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44304,10 +38778,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44315,10 +38786,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/cf75632ee185df2cbbbe148e2e1ad5410f11d361" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44326,10 +38794,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44337,10 +38802,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/cfa40fccc5ea4304e83ca26f4e567765c2c08627" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44348,10 +38810,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44359,10 +38818,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/crash-12b69708d452b3cefe2da4a708a1030a661d37fc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44370,10 +38826,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44381,10 +38834,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/crash-3bd02c98286bfa7be8e13c5500ddb587bba74fbb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44392,10 +38842,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44403,10 +38850,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/crash-53e93a1906d8442d058500e7107929cdd3e84ff8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44414,10 +38858,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44425,10 +38866,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/crash-570c79624a2e4d36be107745d2b25e74464553af" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44436,10 +38874,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44447,10 +38882,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/crash-8e546795782dffa5d5f5e94c9510aac178fcee39" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44458,10 +38890,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44469,10 +38898,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/crash-d5af12c391b7bf0ce63ee3dc656ee4410fe496eb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44480,10 +38906,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44491,10 +38914,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/crash-d92bb454bbbd415175df541661e3696453ce3e43" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44502,10 +38922,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44513,10 +38930,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/crash-e470e9fd09a5c9ef303813a40361c897650289fd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44524,10 +38938,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44535,10 +38946,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/d194592e6f471dd487ca2625e6c3da7802ea372f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44546,10 +38954,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44557,10 +38962,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/d1b1863b478e1ea71eafac9e03256080c8f0d1c5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44568,10 +38970,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44579,10 +38978,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/d24d1b9d754391fd0b11b0456a2e8c6050cadee6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44590,10 +38986,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44601,10 +38994,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/d250e525e8ff2ae4a9bddb2e478a90a1242155f0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44612,10 +39002,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44623,10 +39010,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/d257c41db22b60cd937de16b9d90a44b9fa8e426" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44634,10 +39018,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44645,10 +39026,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/d2df8e95436cf98ef2189191a75a3d9c78b1be6c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44656,10 +39034,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44667,10 +39042,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/d3386702918881101368cdba2c4967e86ff3a7b9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44678,10 +39050,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44689,10 +39058,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/d363f288f48fba8fde401978b7e764295735645e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44700,10 +39066,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44711,10 +39074,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/d36e015b1e14ecb9559d67bb09c2851699f0aa35" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44722,10 +39082,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44733,10 +39090,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/d49450b97f489f0dea74a9f83c71abeba1066d3c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44744,10 +39098,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44755,10 +39106,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/d4a72650e8218ec551fef6560ddd136d52828a4e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44766,10 +39114,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44777,10 +39122,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/d60469c0b5b385f20d55aa5cca55bc2c801f3b95" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44788,10 +39130,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44799,10 +39138,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/d70b2046ee62676b525490b70812c2157e5a3585" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44810,10 +39146,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44821,10 +39154,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/d727b7edb460c549d7b12b90f581048c9f4747e5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44832,10 +39162,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44843,10 +39170,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/d89026894e6c5f8b5c88dec12950f56c4b6924ba" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44854,10 +39178,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44865,10 +39186,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/d90c312791129dee8c5f85cb3308323d0c39b70d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44876,10 +39194,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44887,10 +39202,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/d91281daad9b821294db204dfc244b2d0d5496e4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44898,10 +39210,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44909,10 +39218,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/da322a6b88da87babb52d1527fe54cb4ac214b32" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44920,10 +39226,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44931,10 +39234,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/da4d300d0a8e6f803ec053e3e7689c4b91eaef90" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44942,10 +39242,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44953,10 +39250,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/da538941f1613c627523cb1be71eb220d1ca2579" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44964,10 +39258,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44975,10 +39266,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/da8d4c7f02dbeaa543c159b3a4e527059978a429" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -44986,10 +39274,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -44997,10 +39282,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/data_frame.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45008,10 +39290,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45019,10 +39298,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/dc4a248fa4c903ce3a571dd18aea575019445740" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45030,10 +39306,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45041,10 +39314,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/dc7ebba06558484af10b5aafd01ec4fd59276b12" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45052,10 +39322,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45063,10 +39330,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/dc815fd6d5e817898238481472f359bc50b510c4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45074,10 +39338,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45085,10 +39346,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/dccd1fd6d3394f5f68c87950ed7356a2e9ef0f6f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45096,10 +39354,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45107,10 +39362,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/dd662353bad317cee7d16191a39e094bfa4898f2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45118,10 +39370,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45129,10 +39378,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/df684493457bc8d87dec2ca0825f7b43978fecfd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45140,10 +39386,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45151,10 +39394,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e0d1ee5e2e169dcae87f790f5c27e84a3453cedb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45162,10 +39402,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45173,10 +39410,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e18cab69ad5cc17c88f8b56ca9929ca8af3eed30" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45184,10 +39418,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45195,10 +39426,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e1bd70aa5c802cd4462ff4833c09ed432ce4c9fa" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45206,10 +39434,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45217,10 +39442,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e1f2e203d39ab2509d4a67f7a44265b1e6364334" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45228,10 +39450,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45239,10 +39458,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e262f378a3d27bc519d472ce3650bdffcd48a055" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45250,10 +39466,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45261,10 +39474,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e309e21c69e4b96ab37f675f4e87a52453512ef8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45272,10 +39482,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45283,10 +39490,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e30c4ef6423bd4d872792fbd6954ff8e47d31a97" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45294,10 +39498,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45305,10 +39506,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e3422e8f5d63a9ef180aab552353955c7aba90b0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45316,10 +39514,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45327,10 +39522,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e40b0fa5d814be8f2081ca2c8e0a4090d4893831" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45338,10 +39530,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45349,10 +39538,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e442f9fd63bc5345de1c14803d4ca4bb6f1152cf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45360,10 +39546,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45371,10 +39554,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e4c0e27cfd3690b8255a8214d6dd055385d1d24e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45382,10 +39562,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45393,10 +39570,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e4dc0a111e77dc495c5db07df5e2917adb674697" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45404,10 +39578,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45415,10 +39586,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e5a7c086208248a15ee6fa5195fc4ce22469de15" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45426,10 +39594,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45437,10 +39602,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e5ac3394971400b6636d029aec7ec665a94ecf29" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45448,10 +39610,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45459,10 +39618,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e61f728210ce72ed8b2c066bd1b1ecf9e6824b77" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45470,10 +39626,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45481,10 +39634,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e6a08259a7d47601eab5c0249cb6547024e002c7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45492,10 +39642,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45503,10 +39650,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e6b3c920b47e00055226d49b9f715c5d4353e3e5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45514,10 +39658,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45525,10 +39666,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e6f5cc0702a5f38b9e7339849e1dd2e4001e547d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45536,10 +39674,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45547,10 +39682,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e7c26599fb2e2b031346ff1ba09294fd758f7abe" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45558,10 +39690,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45569,10 +39698,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e8323c817d18f0c920d3cf53be41a9bc0fd64b76" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45580,10 +39706,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45591,10 +39714,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e969affd8af10a1b87dc63afd3b29cce3e58fbb2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45602,10 +39722,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45613,10 +39730,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/e9f7f7f258c72222397a960652c01d2a37e2afe3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45624,10 +39738,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45635,10 +39746,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/eb969b9ab1b0d6b5d197795223ba7a091ebd8460" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45646,10 +39754,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45657,10 +39762,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/ebb0786acc21c6185356eae9a62490a03fddd1f2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45668,10 +39770,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45679,10 +39778,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/ec180175f0edea0a6c3eea2ae719b006bc029ff8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45690,10 +39786,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45701,10 +39794,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/ed6358fbe6721c9ac01a6f4cab4d2df377eb1f11" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45712,10 +39802,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45723,10 +39810,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/ee436743977b8e31feec22a91b1ce23dee96665e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45734,10 +39818,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45745,10 +39826,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/ef1984d6146670122c7a7246374bca460e7284e5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45756,10 +39834,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45767,10 +39842,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/eff9ad9144a2953fadc019fe72eb1cc3447c33fb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45778,10 +39850,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45789,10 +39858,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/empty" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45800,10 +39866,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45811,10 +39874,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/f03120d1a8376638e071735bf4746454b6ede389" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45822,10 +39882,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45833,10 +39890,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/f09410ab7bc19ee1ff206f94e8eec2931faef15f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45844,10 +39898,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45855,10 +39906,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/f1b9b6803e41beabb1a762d511fc148116e09e78" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45866,10 +39914,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45877,10 +39922,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/f24f925945aaf5e8b5ee470935e5aa7f847e7a72" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45888,10 +39930,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45899,10 +39938,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/f41f9319bda14ef21b925c46945b30728503dfaf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45910,10 +39946,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45921,10 +39954,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/f4499e3d4bf60ae3ae929c485a13ea4dc2713369" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45932,10 +39962,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45943,10 +39970,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/f5b1eab444efb2664a295d4e6d087eb209c0c480" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45954,10 +39978,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45965,10 +39986,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/f66305230042fa83fcd1b98c469d90ffef3ff6da" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45976,10 +39994,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -45987,10 +40002,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/f6af3f46aacee395877d7f7909f8e412a6538efb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -45998,10 +40010,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46009,10 +40018,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/f74143e8160754e40eb4d21a182c970210707979" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46020,10 +40026,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46031,10 +40034,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/f7812b2aca4d12ffbdac67bcacc41b34524de6cb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46042,10 +40042,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46053,10 +40050,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/f8467d9574de94b9bb904f75a6a7e2405c36f105" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46064,10 +40058,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46075,10 +40066,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/f84f5d6188cf099465f0b70337b87ad8aa8efb78" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46086,10 +40074,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46097,10 +40082,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/f8fb1348ec3ceeb75c2a03df6a2ead0de6f4127a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46108,10 +40090,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46119,10 +40098,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/f91f76fa45a23adfed48a10ec9512cf16bfb6636" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46130,10 +40106,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46141,10 +40114,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/f96843fdf2d6fdd661c26201d96ae7bec72c6c3d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46152,10 +40122,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46163,10 +40130,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/f9940356ee9b212849fbdf0d818b17af1a4f3c6c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46174,10 +40138,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46185,10 +40146,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/f9c875c00b7327df5bf21c3e051b55b0d2ed3cc8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46196,10 +40154,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46207,10 +40162,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/fb340fff42a4d7ebf6b82adb9345655ffeeb05d9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46218,10 +40170,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46229,10 +40178,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/fc3ef8b3cb43e4d2721b252e7fb578d83ed6605f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46240,10 +40186,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46251,10 +40194,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/fcc557c9844892675be823fac8788eb694a3a118" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46262,10 +40202,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46273,10 +40210,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/fda07f0de15cac77ccc54ec221d81cdade189bfd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46284,10 +40218,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46295,10 +40226,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/fdb553b8d82e68270a7345b048772bf8367b1224" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46306,10 +40234,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46317,10 +40242,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/fe1390762579b5c335bbdea73e251b95b979c3c9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46328,10 +40250,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46339,10 +40258,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/fecccfc70b1cf1a524b9f28a9ba2c153c8e14d0e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46350,10 +40266,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46361,10 +40274,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/fef80aa34c31700ac8e53bede4a97131176ceef0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46372,10 +40282,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46383,10 +40290,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/hdr_frame.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46394,10 +40298,7 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46405,10 +40306,7 @@ "test/core/end2end/fuzzers/client_fuzzer_corpus/settings_frame_1.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46416,43 +40314,31 @@ "language": "c", "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { "args": [ - "test/core/transport/chttp2/hpack_parser_corpus/0141fcddc9807ee093313b2256f1306fbbdc6cda" + "test/core/end2end/fuzzers/client_fuzzer_corpus/slow-unit-53cf4d25741d5f6e7ad9147b286ff0b40cb500a9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "hpack_parser_fuzzer_test_one_entry", + "name": "client_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { "args": [ - "test/core/transport/chttp2/hpack_parser_corpus/0255050a9ccb25f46d6c1bf6a5a8a4c0c7635599" + "test/core/transport/chttp2/hpack_parser_corpus/0141fcddc9807ee093313b2256f1306fbbdc6cda" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46460,10 +40346,23 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/transport/chttp2/hpack_parser_corpus/0255050a9ccb25f46d6c1bf6a5a8a4c0c7635599" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "hpack_parser_fuzzer_test_one_entry", + "platforms": [ + "linux" ] }, { @@ -46471,10 +40370,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/0320a995a8c76c64c8a0e0297f632b76d9bc92d6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46482,10 +40378,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46493,10 +40386,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/042091aeac4cc255506b96fa11c7354e699fde76" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46504,10 +40394,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46515,10 +40402,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/0696e7bf7837d98de01c915d3c9d80e5d21b30d2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46526,10 +40410,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46537,10 +40418,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/06995c2f3f01c7ec50547415dc324c64030b7a3e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46548,10 +40426,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46559,10 +40434,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/06f7ce769fe07804fc842462d4be8c1aa2ba82c2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46570,10 +40442,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46581,10 +40450,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/0781b055c85ab8fbd0a3d0080a32e394af8761c4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46592,10 +40458,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46603,10 +40466,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/080e1f19e6061c5bcac31add2095f87f6ce46129" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46614,10 +40474,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46625,10 +40482,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/0828169ba82152a8907f1001e3d98804397d4610" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46636,10 +40490,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46647,10 +40498,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/08ffc4a4160e9fe6f322c28870a89a41fd9c37d7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46658,10 +40506,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46669,10 +40514,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/090a7a758898a6e7c9108b7e8a1cb9cda383e707" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46680,10 +40522,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46691,10 +40530,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/0940663729501b750a18542e1041cc26385c6148" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46702,10 +40538,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46713,10 +40546,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/0a10bd140c6c5fb109a0816ca061739688a6db9a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46724,10 +40554,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46735,10 +40562,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/0a4d3fda02cdcb7adad1daa80d65780c9c8d1464" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46746,10 +40570,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46757,10 +40578,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/0ad812832efa33e086874fbf3496664d3f1b4dbe" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46768,10 +40586,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46779,10 +40594,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/0c9996d4fef87bacd7a001e99a515b3ba3d5788f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46790,10 +40602,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46801,10 +40610,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/0d6210208831fe55951af56cdeee3d54a91a5361" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46812,10 +40618,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46823,10 +40626,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/0d784965b2262df7ed7a1eb57b92a718cc76bde8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46834,10 +40634,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46845,10 +40642,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/0dc9e41eedf35ccedf4e2b0d230ead7c4d72fdb2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46856,10 +40650,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46867,10 +40658,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/0dd470c8939ed535de6b36f7b7bfb68aeace493e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46878,10 +40666,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46889,10 +40674,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/0e61e471fa6d3405daef4276ee00cf5fc189f378" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46900,10 +40682,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46911,10 +40690,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/0e9196f951874edbb5ed098739ea5c8b6c0751c2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46922,10 +40698,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46933,10 +40706,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/11442d93a554b9e7f9ab02782bbf9443bf6e1ddc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46944,10 +40714,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46955,10 +40722,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/11833b795d04eda5a3af56ef7b3c3a26a8ee3444" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46966,10 +40730,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46977,10 +40738,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/141272316382b0f3e9ec841c735b84e7aa517c3e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -46988,10 +40746,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -46999,10 +40754,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/15ae43369798e48c396dfe7d53a21878b96e66c8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47010,10 +40762,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47021,10 +40770,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/166bf1843c229d34a2880d234dd166c27bdc11fd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47032,10 +40778,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47043,10 +40786,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/179e8ac763b4051a953a38b6b3b1f1e1f6cc6c9e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47054,10 +40794,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47065,10 +40802,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/17faf0ba8a491a835d35977a9007b90ab7d30d2a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47076,10 +40810,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47087,10 +40818,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/188f6cf2470e95b228341de305ef839b27f01a5c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47098,10 +40826,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47109,10 +40834,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/1ab3e52adace335d02e2b5130eb4f7c918add7fd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47120,10 +40842,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47131,10 +40850,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/1b5150514364e2c17f5a4edac1b7af99b936f55a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47142,10 +40858,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47153,10 +40866,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/1e8befb98cbaba059d6771abd1680e19484e7723" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47164,10 +40874,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47175,10 +40882,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/1e9b962969c359bc2ff766704c8ca8e25f5eccfc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47186,10 +40890,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47197,10 +40898,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/1f80af104acf41b912bf4a48fb938267e3718719" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47208,10 +40906,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47219,10 +40914,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/1fcc4afd6f48e83d61ea74970df3ca9dcd8ec291" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47230,10 +40922,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47241,10 +40930,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/213a734ccdb813b18ad9f2dd99b7f9967ee1460b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47252,10 +40938,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47263,10 +40946,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/2151945f43991c27e123c45dc72b93752a47e65f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47274,10 +40954,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47285,10 +40962,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/21545d998c27a5a1572a89a552937752432b1c14" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47296,10 +40970,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47307,10 +40978,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/23c7443fa1ab713e7c34ec50222b1b8cceaedc65" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47318,10 +40986,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47329,10 +40994,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/2445bb2c6779712dc9e14c01fecb7103f8732858" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47340,10 +41002,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47351,10 +41010,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/244b0a20500e31d3c538418800db816b07f4d210" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47362,10 +41018,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47373,10 +41026,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/2461b9fa6b5bc4b6424dec5b9a18d4ec7c309112" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47384,10 +41034,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47395,10 +41042,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/24ec2f3e17d3850564788f3fed17a5c586c44658" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47406,10 +41050,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47417,10 +41058,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/2537b8d6b902b8dfc6e17f194cf7d05ddecf74cf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47428,10 +41066,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47439,10 +41074,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/253ad01acea4b7038edc3f2a8c4a0c0f5c4dcd05" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47450,10 +41082,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47461,10 +41090,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/256d0bbdbed22f5867a6f503bf082011e61ee12b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47472,10 +41098,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47483,10 +41106,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/26f0e88adbd8f8cdf778131a35b33ecf8711fa49" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47494,10 +41114,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47505,10 +41122,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/2e5dd8fb9d2a31fad9d681eda697d085b647b57c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47516,10 +41130,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47527,10 +41138,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/2fdfd2abf30c636ec8c841f1ac26594e25664f0f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47538,10 +41146,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47549,10 +41154,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/311dac5092e36134d3490f98aa4207425e0ee941" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47560,10 +41162,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47571,10 +41170,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/320fe6224a5b691c0425e34b6b14e8c6fe9f9620" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47582,10 +41178,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47593,10 +41186,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/3255f1c7441a7150dc3c33022bfbe8c956c7b7b1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47604,10 +41194,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47615,10 +41202,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/33bc9db104eb72891fb096f34cbac191b3f9918d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47626,10 +41210,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47637,10 +41218,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/342ff1db70a7616b4ef76c03a42802c6702c18cb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47648,10 +41226,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47659,10 +41234,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/344c011df992ccfc0ec682c14a1cb2d7959998c7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47670,10 +41242,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47681,10 +41250,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/35775efb9d0d68fa07987b9a84934389b528e436" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47692,10 +41258,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47703,10 +41266,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/3650168db6fe115fb1e73eed4b76cd224d977d01" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47714,10 +41274,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47725,10 +41282,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/38228bf98cdb50fd3fa830ba5a9d4c7399063dff" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47736,10 +41290,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47747,10 +41298,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/38717bee901151b22a10beb12c6623ccc844d3c2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47758,10 +41306,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47769,10 +41314,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/3a4bb427a85bdc5bf66ac71db073c99e0dc9f881" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47780,10 +41322,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47791,10 +41330,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/3ab48621d9b8f075369099a8ec7517bd23fd6e70" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47802,10 +41338,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47813,10 +41346,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/3aec8d9311130dfbb6584fe6e619579c21992b5f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47824,10 +41354,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47835,10 +41362,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/3b14837f22905dcb04f93aed2aa69bf95924fb9d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47846,10 +41370,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47857,10 +41378,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/3be63c163805927e04fd7f84d96122c48240e601" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47868,10 +41386,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47879,10 +41394,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/3bf2e349747c0f539181e0d4084a5fe506811a9e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47890,10 +41402,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47901,10 +41410,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/3c5af4d73e94d0e8ad5666b6acb340f929031e95" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47912,10 +41418,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47923,10 +41426,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/3d2b25346a9671d83bd082d170a45eed739bae6b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47934,10 +41434,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47945,10 +41442,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/3de7b860c3fba2bc55707fd6875dce276f2f249b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47956,10 +41450,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47967,10 +41458,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/3e2004ff9f40e398e0f41138a25a8b66e3d843d9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -47978,10 +41466,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -47989,10 +41474,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/3f8983e457033cc85997c356935ba9c21460e86b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48000,10 +41482,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48011,10 +41490,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/4105669086d83a20f8d991088553ba08202478cd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48022,10 +41498,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48033,10 +41506,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/4180619316eef7912d1cf52ffe85897242e1ae88" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48044,10 +41514,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48055,10 +41522,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/420291d7139d9246de747739fd98102434a742dd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48066,10 +41530,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48077,10 +41538,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/4256437fc5897c0cd5d755816e4e68c7be326849" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48088,10 +41546,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48099,10 +41554,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/42b25a5413c536478a3e63da5adef4250babf2f4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48110,10 +41562,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48121,10 +41570,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/42bef44ae751a45c671d9da5b1231d2ac747a48d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48132,10 +41578,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48143,10 +41586,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/438c3c9045c3cf7910aceec34f77b47a70ca4abd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48154,10 +41594,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48165,10 +41602,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/43af96b4f65ed0ace7236427f2f8833c4835989e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48176,10 +41610,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48187,10 +41618,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/44c6119bb91a452d6128ce0ea0d62938800779ea" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48198,10 +41626,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48209,10 +41634,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/46d595331689ae01d77aff387747a98ff3480096" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48220,10 +41642,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48231,10 +41650,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/471a307b81dc37459087d41532741c5c9d7ba836" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48242,10 +41658,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48253,10 +41666,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/48900b4a5557530922ce45c15ad0d3b0a337520d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48264,10 +41674,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48275,10 +41682,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/48bcce2c6487b18706ef0c609ca39c456215bac8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48286,10 +41690,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48297,10 +41698,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/49027bbd3f3f3cafa315843c8fe8280f86985273" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48308,10 +41706,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48319,10 +41714,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/499376c5e291da2f9c25999abf4960fab5a92ec8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48330,10 +41722,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48341,10 +41730,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/4a3b7ce0cdf217963a0b692769e5d6f4befe73b8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48352,10 +41738,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48363,10 +41746,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/4a3fdb96bc8c80f1992f0f72f963f84856cbade8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48374,10 +41754,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48385,10 +41762,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/4aae80e05793d7adb42a7e6e8a5283b677318777" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48396,10 +41770,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48407,10 +41778,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/4c7a034d3a3b4f29d99caf021a0e9bbb89706c2e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48418,10 +41786,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48429,10 +41794,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/4ce8a43fb17a075627160812ad26c25210d8a82d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48440,10 +41802,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48451,10 +41810,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/5032a75a98cd14d4dab75c1c5e2cd981abb19dcf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48462,10 +41818,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48473,10 +41826,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/50b3f4b6aed97f442496d27f3b4315a18ba76d5f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48484,10 +41834,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48495,10 +41842,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/51064b88a98658d48a0da7f1545c2d1293ad9538" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48506,10 +41850,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48517,10 +41858,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/51752f12d59fadaaa0dc72e6370612b84ee1555b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48528,10 +41866,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48539,10 +41874,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/51eff6fcbfe1a51ceb3f5f2140c01eea89b4313d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48550,10 +41882,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48561,10 +41890,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/51f65f681cf3a1218d83ad58642c06deaea86210" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48572,10 +41898,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48583,10 +41906,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/521809903d36db80b1ccd707f354361f2bf05075" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48594,10 +41914,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48605,10 +41922,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/52fe8f0e1fa270ea16f66c93f2ffab265ce059e8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48616,10 +41930,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48627,10 +41938,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/53de87ae94acdc8e58a369459c12a3240f1294fe" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48638,10 +41946,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48649,10 +41954,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/54a2b3993c3483745f6314c870a038a8e58f97a7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48660,10 +41962,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48671,10 +41970,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/55d60c2e5040a38be8ca41de63e137e3fef892a4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48682,10 +41978,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48693,10 +41986,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/5653c44a5b520bdf2bdc599b7966f1d7c44950b3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48704,10 +41994,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48715,10 +42002,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/5838b5a683229ebb6e6277e2810863e642b8afc2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48726,10 +42010,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48737,10 +42018,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/588d225784891ac88e30ac6eb5651d63fac34083" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48748,10 +42026,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48759,10 +42034,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/58d51c21a20b6549567a0ab8fee29d162dd3fc5a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48770,10 +42042,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48781,10 +42050,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/58f1036d8ff855841ec25b3c33e85a8fec0d94b7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48792,10 +42058,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48803,10 +42066,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/5a99df42fb7bbafa2d55714ee235b1c46776b2ad" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48814,10 +42074,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48825,10 +42082,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/5b42793550699b2c015bed677cfcddc052f73513" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48836,10 +42090,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48847,10 +42098,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/5b8ca72ba00231c38b19f582127e6a146eba4282" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48858,10 +42106,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48869,10 +42114,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/5baa13dc95da05e7ba02bbe9583ea24517a29a1a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48880,10 +42122,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48891,10 +42130,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/5bab61eb53176449e25c2c82f172b82cb13ffb9d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48902,10 +42138,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48913,10 +42146,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/5c6f6b6f7f3e7b435f060abb73c20d2b773a7f56" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48924,10 +42154,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48935,10 +42162,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/5c9fd9cc7100feaeead1e0e45201945a6e76fd85" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48946,10 +42170,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48957,10 +42178,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/5ff49c9edc7361797a951585f3e180222c8dd95d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48968,10 +42186,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -48979,10 +42194,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/6129954942e26c2a9ec071b6659675745613cf3c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -48990,10 +42202,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49001,10 +42210,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/61fa69b6b51b0ed91914fe48779173f8d26a1d54" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49012,10 +42218,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49023,10 +42226,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/6362ac61cfb6e964aff78f3cd648475dfd5fd4e9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49034,10 +42234,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49045,10 +42242,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/644deba51c79b6ebd470bd4367452941045d112a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49056,10 +42250,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49067,10 +42258,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/64beae98e2276749b133e6368c9e0f19a79eba96" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49078,10 +42266,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49089,10 +42274,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/64d7add9192301fd878854dc96f9fa9053f03992" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49100,10 +42282,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49111,10 +42290,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/65566df65e8f55428b6672cc351df414fa8f936c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49122,10 +42298,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49133,10 +42306,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/65bb703af35d5afb824cd68c41d7a1aeb3848d35" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49144,10 +42314,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49155,10 +42322,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/66c537bf59cb3667c037b3517be3d31245c9da8a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49166,10 +42330,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49177,10 +42338,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/66f576baeb0c9435a56eb7375dadc5b5d630ed87" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49188,10 +42346,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49199,10 +42354,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/67b4cec5183659aeae0f5bc71b3adf0542a11828" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49210,10 +42362,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49221,10 +42370,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/68c94721eda2f62481bff9f1d183df70498d0c5b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49232,10 +42378,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49243,10 +42386,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/68ee8169a65d58edb9fc1c752ea81dfec383203c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49254,10 +42394,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49265,10 +42402,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/6b203d49bbba6ee74def0d35c2266e06ad3c45d9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49276,10 +42410,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49287,10 +42418,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/6d580f28d785c0bf87ac351a31a89289449feadb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49298,10 +42426,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49309,10 +42434,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/6f231dec759eb2105e09263d53e171de19a92c74" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49320,10 +42442,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49331,10 +42450,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/70ff6621a09e4f641538cb1b27e8b382b2f56a94" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49342,10 +42458,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49353,10 +42466,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/71981b55f27a1eb6274eda247048fa2c597f5004" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49364,10 +42474,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49375,10 +42482,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/71c2b0bebf7f0e916e4ab7eb36d47ccca2b9101c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49386,10 +42490,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49397,10 +42498,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/74610e278a5b90aa12ce1beaf222c4306b02ed43" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49408,10 +42506,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49419,10 +42514,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/748ee9817eba56ec9938601a0e380c74bad4563f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49430,10 +42522,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49441,10 +42530,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/7727e3eeb2a48c46bf5a678c300ff8a38b8ffe3a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49452,10 +42538,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49463,10 +42546,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/78176d80c1d74c4b1b820d386ae483ac4d1d92b7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49474,10 +42554,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49485,10 +42562,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/789abb571563a6795220046f76b7cf0ade90743c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49496,10 +42570,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49507,10 +42578,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/78f5ff40e5554aa9c31b45f79a7ae9699f93e7fd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49518,10 +42586,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49529,10 +42594,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/7a28fc2e9c72d51d29e87eed63ed405c9779b5e1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49540,10 +42602,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49551,10 +42610,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/7a42083be21dce7f96edef1f3b3b2fea0bcaeb3f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49562,10 +42618,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49573,10 +42626,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/7a51275b11ecb1efec9251390531681c8d6f2481" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49584,10 +42634,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49595,10 +42642,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/7b9682cd7a3984698f6eac034c59c0f91b4fb83d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49606,10 +42650,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49617,10 +42658,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/7ba7239a29d6183960e3986abc8f19cfb548b905" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49628,10 +42666,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49639,10 +42674,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/7d3b3d5f23d0ede9f7e5dbd1115db58c8a54a213" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49650,10 +42682,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49661,10 +42690,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/7ff3b6239b04479a9caf67f45b2d0c619f712815" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49672,10 +42698,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49683,10 +42706,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/8035c81c95dedfc27c3649064f98f49e3e72c21f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49694,10 +42714,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49705,10 +42722,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/804e1052842ce4d44b9c775ade2b18fcb8ce7bcf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49716,10 +42730,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49727,10 +42738,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/80514b85933ea9bdd3462595f949c5af24409b87" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49738,10 +42746,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49749,10 +42754,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/8057c32b8bd28a5ec2105d62f2abe8cf69c9f5fc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49760,10 +42762,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49771,10 +42770,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/806a3bd4e078d91adeacedfd3e47ef8ae229244a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49782,10 +42778,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49793,10 +42786,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/8090444f98218e65ff9594789ff22bbea3c0497c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49804,10 +42794,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49815,10 +42802,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/80e516692955d5f224706f268e247858858e16d8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49826,10 +42810,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49837,10 +42818,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/810a1372fa97380265f5529c5043ae96f007f5bb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49848,10 +42826,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49859,10 +42834,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/8127597d3c146b2a89579e44daef9d03a0f941ec" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49870,10 +42842,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49881,10 +42850,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/82ed571f8922caa572d13b4cc9b5c5fabafaade9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49892,10 +42858,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49903,10 +42866,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/8328e86178800f87a3bf6f80749984f45b0cd0e8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49914,10 +42874,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49925,10 +42882,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/84441efd7d8bdb0ce2fac28f218d3d5d4d77f1d4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49936,10 +42890,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49947,10 +42898,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/84cbf70f45a64d5a01d1c96367b6d6160134f1ad" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49958,10 +42906,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49969,10 +42914,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/85eb0f4502a51e646dab4ae08eabd90613cdf8e1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -49980,10 +42922,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -49991,10 +42930,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/86080f33e4eae21b37863c253ce61eaa13021a97" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50002,10 +42938,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50013,10 +42946,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/862e3ccf601ee0f7fbd8b23e6811fd50485a118f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50024,10 +42954,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50035,10 +42962,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/86bae059b18af8ae263e5ae0022b67da0cfc0fbe" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50046,10 +42970,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50057,10 +42978,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/870f9cc4bd89c6c04c6a51ceae1efa8634627cd6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50068,10 +42986,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50079,10 +42994,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/8762a523cdb78d2344d553fa52a229bd63c44e51" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50090,10 +43002,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50101,10 +43010,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/894211571f9153c3c2ea4102541dac69be8aaa9c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50112,10 +43018,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50123,10 +43026,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/894e9b7832c52acb04bfa994ef53c7105d8db206" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50134,10 +43034,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50145,10 +43042,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/8b0e12978b8e2eecf62346e438e47d0993845693" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50156,10 +43050,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50167,10 +43058,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/8b3fa0bd4f289eff6a04a5205e04baaeafbdf637" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50178,10 +43066,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50189,10 +43074,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/8d1deedd1e463f8c95129a6f839c380a7c83ab04" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50200,10 +43082,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50211,10 +43090,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/8d1e029bd72381e382c87e61b4c5a9741d80d644" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50222,10 +43098,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50233,10 +43106,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/8dd1983889b6632228d4897c365a1e6124d101e1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50244,10 +43114,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50255,10 +43122,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/8dfc2183691385432f92957cff0b2538e5a0ebfa" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50266,10 +43130,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50277,10 +43138,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/8eb9b86b4f0aa79b8ef84b44e1fb03094e7bb426" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50288,10 +43146,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50299,10 +43154,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/8ec540c36da3814e93da765bf2ff0825b59c1bd0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50310,10 +43162,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50321,10 +43170,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/8f1bec32f4b8e64062f5405a096543e61d771076" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50332,10 +43178,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50343,10 +43186,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/8f3e48c49d0794909f6e8e61e5a4312edf484c33" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50354,10 +43194,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50365,10 +43202,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/8fbbf3c0eaa25b64d0a97a8ee08006539e649199" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50376,10 +43210,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50387,10 +43218,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/907d0021d42d0fdc867fd02d3609cdce13c8a055" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50398,10 +43226,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50409,10 +43234,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/919511c217a3427c22cad4a71aae31a6cd47b193" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50420,10 +43242,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50431,10 +43250,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/9267c81c3283da8193c198de05e05fa30631a453" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50442,10 +43258,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50453,10 +43266,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/92e80997a4237d76f10b70dae2870b7255c97435" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50464,10 +43274,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50475,10 +43282,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/935322db76f5d4c74c2dc68fc4631915b8e24323" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50486,10 +43290,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50497,10 +43298,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/939f2627ef6263d0176566de267ff3eb910e6a60" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50508,10 +43306,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50519,10 +43314,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/94adea6a0d9a44bee6f5e88adcee57be9e9e3597" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50530,10 +43322,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50541,10 +43330,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/94dcbe0d3352bd9b230096b8dce9c6d8d63f9d51" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50552,10 +43338,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50563,10 +43346,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/95dad738f60e3e5eb0f1cdafd91ad461f4418e8f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50574,10 +43354,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50585,10 +43362,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/960c0a21c9e5c1a61b93b34da3189b0de1c264df" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50596,10 +43370,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50607,10 +43378,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/96903512b1f1dec08206123f024b62d0e31cd4dc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50618,10 +43386,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50629,10 +43394,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/96a89c005e8d9992e34cc149b0be096ad0051446" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50640,10 +43402,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50651,10 +43410,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/97db8a66dd513eea47a5a25115508f4e59984854" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50662,10 +43418,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50673,10 +43426,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/98f2cb84ad89550cf56ee54e11f1448ae7287247" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50684,10 +43434,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50695,10 +43442,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/993497422a59b7f9f0f6db8c867339b5c9e4c978" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50706,10 +43450,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50717,10 +43458,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/999821e3750a7f2c9db663d2d100b4404c225040" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50728,10 +43466,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50739,10 +43474,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/99b2ed83be40cab431d1940e8de2dc3ebfe9352f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50750,10 +43482,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50761,10 +43490,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/99e888b7372b29256dbefd476855ff73584cc00f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50772,10 +43498,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50783,10 +43506,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/9b18087deb3cfafa1b964aa65d8ee980bc61404e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50794,10 +43514,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50805,10 +43522,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/9b3c745ea3e313909a228a07b49aae110b02ae4a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50816,10 +43530,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50827,10 +43538,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/9be1ce0ba77758928ff5e9c45139b1624cbe9c2d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50838,10 +43546,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50849,10 +43554,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/9c703141efd69eb8f32a58133c8035fb585e0f4c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50860,10 +43562,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50871,10 +43570,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/9c7f77981677499f0426a0ffb5cb79d5fe55dcb2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50882,10 +43578,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50893,10 +43586,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/9ca59e6cadaa5be9af30dfe5620d1bcd70f442e5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50904,10 +43594,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50915,10 +43602,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/9d139835d91474e8d8361d65698a31b8b38c4f7b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50926,10 +43610,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50937,10 +43618,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/9e2179564a99e96e179c96f28802a0a2759b581c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50948,10 +43626,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50959,10 +43634,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/9e56bb3b68d2e2617cb2d2f0f3941f7fc832e462" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50970,10 +43642,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -50981,10 +43650,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/9f318b2c2ff9cf4615bd06ba13bdd086b4ad08c6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -50992,10 +43658,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51003,10 +43666,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/9f8d90b1480989fc46ea2f1c66cf687638994587" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51014,10 +43674,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51025,10 +43682,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/a09db5715f0bc3879a0e18e4db5a6b5640b254a3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51036,10 +43690,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51047,10 +43698,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/a0c59a090818bca29d76ccf9843f7e2faf330ddf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51058,10 +43706,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51069,10 +43714,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/a1cf10478e5e01a0d951c743a3dd45aa5fc409f2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51080,10 +43722,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51091,10 +43730,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/a22c0f03f8c005a4612a9dcbcd6a643334c35d2f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51102,10 +43738,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51113,10 +43746,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/a3154b8ed26b3461f2b091c732da00b63ce8bed3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51124,10 +43754,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51135,10 +43762,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/a84a1ed1a24e753a27adfd3ba806f06fc44f899f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51146,10 +43770,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51157,10 +43778,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/a871e7ce66afd4f57702cd1299de06cd08995561" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51168,10 +43786,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51179,10 +43794,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/a8dc736ea964586b7dcbf2bc065ec4675d1daba3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51190,10 +43802,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51201,10 +43810,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/a91a835836c72217824f0b63491d9b623130502a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51212,10 +43818,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51223,10 +43826,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/ab97c1f6033dc7d96f69b9e1461fd594c16f4ebf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51234,10 +43834,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51245,10 +43842,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/ac8a8c23acd8c290a11dc7828f7f397957fa6400" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51256,10 +43850,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51267,10 +43858,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/ac94b2788f5252f9e2e8502c7c75e04bef4c0b76" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51278,10 +43866,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51289,10 +43874,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/ad03b4f58470c43db6593a35be48989486d754f9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51300,10 +43882,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51311,10 +43890,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/af417c83e831a96fda1bdde99a1af6509ef2df3d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51322,10 +43898,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51333,10 +43906,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/affd292cd2ce3306b4651cc7ec0ec0524cbbae3d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51344,10 +43914,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51355,10 +43922,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/b0587e6e319f4b56d877e7ed46bc7da9b1e7249c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51366,10 +43930,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51377,10 +43938,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/b166aa66b5b3ad178bc38aee5768226c8adc082f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51388,10 +43946,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51399,10 +43954,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/b1ade0571262c6e5f1d72f6d25ebb513d2055bc9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51410,10 +43962,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51421,10 +43970,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/b244c690157ff21d073940ef8c77d1898f37cf8e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51432,10 +43978,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51443,10 +43986,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/b523091ee4f17d20f51f9b5cf82293465cf61780" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51454,10 +43994,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51465,10 +44002,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/b7d4d49ac2c530eb8444a449feb689ee50fd210d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51476,10 +44010,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51487,10 +44018,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/b855c161121bfa29c6fb22d3c0236fae4af6984e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51498,10 +44026,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51509,10 +44034,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/bcaa71abf23b2e5130e0cc464755fe769bf4aaa7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51520,10 +44042,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51531,10 +44050,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/bcf4684ce097faa7e9d99b6e93cc2de24f57aee3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51542,10 +44058,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51553,10 +44066,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/bdca6504d2ee7925f62e176355bb481344772075" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51564,10 +44074,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51575,10 +44082,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/beb208fd8675ba7de2ecb12998d2d628d579ca7c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51586,10 +44090,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51597,10 +44098,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/bf0c98689ab81fc32787023300caf9a4175583dc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51608,10 +44106,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51619,10 +44114,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/bf479e97b39b697e715663de6a1e78dd58d64122" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51630,10 +44122,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51641,10 +44130,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/bf826c96be94d1b42eea0666f7239cc5f699a375" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51652,10 +44138,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51663,10 +44146,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/c17650d19ae4a48abb36739c83d8979453f5705f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51674,10 +44154,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51685,10 +44162,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/c1e5307d88feda2c3b15fc221cba92bcf41622bf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51696,10 +44170,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51707,10 +44178,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/c249f408c552a0408eab3fe1d1cbeca95cd537c1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51718,10 +44186,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51729,10 +44194,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/c26b460aebc9082c519539069f7e060042989696" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51740,10 +44202,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51751,10 +44210,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/c2eae71daad0d3561ab4d09b8b85372b8d790bc1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51762,10 +44218,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51773,10 +44226,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/c37fda8d02e99132a1de99f959596c784ab8a53c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51784,10 +44234,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51795,10 +44242,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/c4836760377a7091fb20f4afa9c712875792b9a7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51806,10 +44250,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51817,10 +44258,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/c48caad597176404f776d532d4baf9faf7655ee2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51828,10 +44266,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51839,10 +44274,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/c4eff0f59986fc5ab09d5bd95f394292f2882659" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51850,10 +44282,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51861,10 +44290,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/c5fc2086d167c8c3a7d9ec778db69c5fa14a59fe" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51872,10 +44298,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51883,10 +44306,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/c600877ce547166eb1b9d83afbe128d98767f8a3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51894,10 +44314,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51905,10 +44322,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/c6a98fdaf6de78e59e1a149a43f3e42222d650b7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51916,10 +44330,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51927,10 +44338,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/c8d22f7fb4f37f2d8cc7953fa2d599d38d899aec" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51938,10 +44346,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51949,10 +44354,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/c90951c19b24bac84296e3ec32cdeafe99e99cfb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51960,10 +44362,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51971,10 +44370,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/c95ff2a172626efb50e94aa6781feba609820076" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -51982,10 +44378,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -51993,10 +44386,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/ca6c557afb9c571de62e9b65ca6469a6133760da" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52004,10 +44394,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52015,10 +44402,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/cb2d0fb23f66c968af2e80d59f71d4c1aed96fbd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52026,10 +44410,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52037,10 +44418,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/cc60a642cc2037ad3c459a57381b8f65d8d7aa35" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52048,10 +44426,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52059,10 +44434,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/ccd3b8aa26c52f6d9c607c26ebdf621142aff745" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52070,10 +44442,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52081,10 +44450,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/ccdfd1354997eb117bd76b75440a7e4ff20bf564" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52092,10 +44458,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52103,10 +44466,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/cd7a7b8f08c189e95ae3e2ea44b9015000e823f3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52114,10 +44474,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52125,10 +44482,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/ce05678d812a5f8ae8e115938410116ce9169456" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52136,10 +44490,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52147,10 +44498,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/ce6b642b81373f05baa2a6fe6e9d5d1387046285" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52158,10 +44506,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52169,10 +44514,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/cf84d06e4dddb997a79a41f9b6122bf620bbdb4b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52180,10 +44522,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52191,10 +44530,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/cfbcc3e8cd65aa8b654688145ade34b8789468a6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52202,10 +44538,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52213,10 +44546,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/d000502f32ca5620d7745f39ff6be3b547e26a6d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52224,10 +44554,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52235,10 +44562,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/d131f83ee73450ff45565d0c638be7d8beeb30d9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52246,10 +44570,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52257,10 +44578,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/d1c7ae01a81a122c2fd7c5d8debcae7566e9ee2f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52268,10 +44586,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52279,10 +44594,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/d2817b89d7aaa7fa880c077b1a67168ec2f4f0f7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52290,10 +44602,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52301,10 +44610,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/d3ccd7039dd34baef465c4b78baa7a30312a8f07" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52312,10 +44618,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52323,10 +44626,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/d4cfaf3b59b22b654d7af80ee6715ce5015bfdc0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52334,10 +44634,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52345,10 +44642,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/d5670827c8e8d4c95ac0f738c0790c19916c0336" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52356,10 +44650,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52367,10 +44658,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/d59d7e94863f1ed89cacfbaabf7bc59946036c8f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52378,10 +44666,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52389,10 +44674,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/d76d0c7f24ae3cc3f530d5306b8dcc15290c7ff2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52400,10 +44682,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52411,10 +44690,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/d8b15e9e555ad9900ba4be8cc9f87bef75725b24" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52422,10 +44698,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52433,10 +44706,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/d9748abd540810c2449c3dd39a0ebb62754e520f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52444,10 +44714,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52455,10 +44722,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/da9fc821f0c1e00728b139b36269bc3d21c0a8cc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52466,10 +44730,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52477,10 +44738,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/dcd1bd94ad97b4e67fd7e12ff1bf7c039eb17f66" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52488,10 +44746,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52499,10 +44754,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/dd3ba9b139e13324fc76cd62af84b00ca8b87205" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52510,10 +44762,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52521,10 +44770,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/de0a9dce0ea4e4bfdcb13f788ae728bf979fed25" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52532,10 +44778,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52543,10 +44786,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/deb6f9a930d9b31586ede19fd8fd3caae0e5b1f2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52554,10 +44794,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52565,10 +44802,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/dee95e0280b70681eddfb68e3b418126c5661e18" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52576,10 +44810,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52587,10 +44818,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/df01203edfa2dfe9e108ddde786ae48235624fef" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52598,10 +44826,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52609,10 +44834,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/df0adbe2523508e9afb42a58d98c2657710d6033" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52620,10 +44842,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52631,10 +44850,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/e05fcba1b22f658c8bd6f3c330b2b3c9faebf977" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52642,10 +44858,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52653,10 +44866,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/e145caa75d73e3d819a9cb4b6217f1f53112f3f8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52664,10 +44874,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52675,10 +44882,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/e1d86c0094657386197d191855b5645ac1dd5936" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52686,10 +44890,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52697,10 +44898,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/e25adf8de44f5978d00b7e8c52aee89c5cd1fe93" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52708,10 +44906,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52719,10 +44914,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/e29f05162e3d96d5549f96aa4a54c868535b2847" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52730,10 +44922,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52741,10 +44930,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/e3a970ac8636d29da3ded328b876ed3550cb3209" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52752,10 +44938,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52763,10 +44946,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/e3cfdc862187b4ec28bd4fb2ced5094bb5b09909" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52774,10 +44954,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52785,10 +44962,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/e4ce52007d001806fc9368b62c124dfc56e8471c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52796,10 +44970,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52807,10 +44978,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/e52173f0bc3325629046e85e2dc41acc6ba7d1c3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52818,10 +44986,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52829,10 +44994,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/e6589006e3bda4c57247ad66fcd73ac00ee2cbe2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52840,10 +45002,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52851,10 +45010,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/e6fab7572fb2a1c6e107b6f83cffd103a233d021" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52862,10 +45018,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52873,10 +45026,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/e790f5d312957dbfd20abdefe4b1735779ff9689" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52884,10 +45034,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52895,10 +45042,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/e8809017a4cf6c1e80a93f661166ead961f26bb4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52906,10 +45050,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52917,10 +45058,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/e9733e973c33b38c2087b7f1deb36688b3b14259" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52928,10 +45066,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52939,10 +45074,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/ea8134769855d574f6673bf0301eb2e24632c6eb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52950,10 +45082,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52961,10 +45090,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/eb489536e4e5589a93a17cd36669475b8f2a5e1b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52972,10 +45098,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -52983,10 +45106,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/eb48ebd4d01e5623dd16ae61938b3333fab3ce78" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -52994,10 +45114,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53005,10 +45122,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/eb6ca7624384239c7f7e0d83edb7cc334b7926d7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53016,10 +45130,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53027,10 +45138,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/ec9457ad41ed745ea9377ffdb16ad09f981daa7f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53038,10 +45146,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53049,10 +45154,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/edff5256a2d60d0e51caef25dc1d6f1643dad6d5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53060,10 +45162,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53071,10 +45170,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/ee4d9c5d22512da42726f47213ff56404d1d81d1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53082,10 +45178,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53093,10 +45186,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/eef2f30b5e2ecd98ebefb12d57aba8b4ad52d904" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53104,10 +45194,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53115,10 +45202,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/ef23911de1a27d03d2d4983ca1527e17d6a7092b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53126,10 +45210,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53137,10 +45218,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/ef5b7fc62a2daecf1e8f928b1fa3ebd028413a41" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53148,10 +45226,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53159,10 +45234,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/ef718258ca1870198e91a2fbc1eaa90b620673fb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53170,10 +45242,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53181,10 +45250,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/efb46deb37a78f41dd760f6b7203b20956eb114e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53192,10 +45258,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53203,10 +45266,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/efdd6824bd2456e3e408e0e84369c4fa3aa14f41" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53214,10 +45274,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53225,10 +45282,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/efec040a5de1969df5e37e4bc50a0a8f0de341d8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53236,10 +45290,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53247,10 +45298,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/f1e30464c24dc1d7cec7ec1dd2adec8512232b43" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53258,10 +45306,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53269,10 +45314,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/f27a617b936814476770a3b31a5afb80d0f3b423" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53280,10 +45322,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53291,10 +45330,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/f3f0d99ac2962f8fddb25c65fb4c8c6eb63518a9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53302,10 +45338,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53313,10 +45346,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/f4628084cf46f139babb886a782b4ab5977d5d2e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53324,10 +45354,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53335,10 +45362,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/f4753e8881e4b3c71f2728149be7d04cc648f6a6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53346,10 +45370,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53357,10 +45378,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/f4d6ff635ae4fda497221da4bfa3e593df59a44e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53368,10 +45386,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53379,10 +45394,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/f52f4d51aaaed0f9c3a20936cf5efd25d0692f67" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53390,10 +45402,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53401,10 +45410,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/f7cf30724ab740918eee6e4a6b6658ae3d7706e8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53412,10 +45418,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53423,10 +45426,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/f823828ffd2a60efee36f1de52cb0f024ac5b4bb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53434,10 +45434,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53445,10 +45442,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/f8760761bd5ab7b47376bfbc5a44e16b2d5ca800" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53456,10 +45450,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53467,10 +45458,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/fb15042c268625089ef6c8aa3d8a6f12d1d02c74" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53478,10 +45466,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53489,10 +45474,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/fc3dd4292d6884a770199596f5e9cbc1e869e5fb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53500,10 +45482,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53511,10 +45490,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/fd34ec90fe8f9218fd25c3eac151aec998cff6d8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53522,10 +45498,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53533,10 +45506,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/fdf548cde981fab4fb17bd63a124b75eddc5c836" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53544,10 +45514,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53555,10 +45522,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/fe47fb18b064e26479c3c3140082bd01065e897a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53566,10 +45530,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53577,10 +45538,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/ff2097734bd7bb8451aece13c9336c4624735170" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53588,10 +45546,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53599,10 +45554,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/ff2c949863eb4e14d9e835c51591304403d91b6c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53610,10 +45562,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53621,10 +45570,7 @@ "test/core/transport/chttp2/hpack_parser_corpus/ff7d6ff060e63355701b2e655c802902338497de" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53632,10 +45578,7 @@ "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53643,10 +45586,7 @@ "test/core/http/corpus/0299ca2580e4398d170c4a336e0c33eb2cd9d427" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53654,10 +45594,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53665,10 +45602,7 @@ "test/core/http/corpus/05e613853d64a9669ea3cf41b0de777dc24931ba" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53676,10 +45610,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53687,10 +45618,7 @@ "test/core/http/corpus/069352518a1d1baa05f317c677d275cefda2ac97" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53698,10 +45626,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53709,10 +45634,7 @@ "test/core/http/corpus/0925527c9358b1e10ec0f0387cd99f35204d9a34" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53720,10 +45642,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53731,10 +45650,7 @@ "test/core/http/corpus/0c5b7c2569410b526605e308309a7f36574e530d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53742,10 +45658,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53753,10 +45666,7 @@ "test/core/http/corpus/0ef3d0a84360bb5ad66274f1226f5cb273ecdbcf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53764,10 +45674,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53775,10 +45682,7 @@ "test/core/http/corpus/1e1273f90187fdf5df3625764245610f86af6aa4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53786,10 +45690,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53797,10 +45698,7 @@ "test/core/http/corpus/1fbc57d118f3733287e9a9d808bb8947b3260e55" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53808,10 +45706,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53819,10 +45714,7 @@ "test/core/http/corpus/24756c396bc72894fd720092bb6f9c03e66b469f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53830,10 +45722,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53841,10 +45730,7 @@ "test/core/http/corpus/276def41311933421ae7a9ee42e906c85b6a4d3f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53852,10 +45738,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53863,10 +45746,7 @@ "test/core/http/corpus/29daa75432381937fd005cb25e314e328de6e9f9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53874,10 +45754,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53885,10 +45762,7 @@ "test/core/http/corpus/2a75204bc492084ad853682f8de3fb137d5907bc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53896,10 +45770,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53907,10 +45778,7 @@ "test/core/http/corpus/2d34ba249b755a880525cf53c665633a5e359305" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53918,10 +45786,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53929,10 +45794,7 @@ "test/core/http/corpus/33f4ea0c7ea27c37d8f95cfa64d282370efdafd2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53940,10 +45802,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53951,10 +45810,7 @@ "test/core/http/corpus/35554617ea6418bd43161fe9a2c337ed82d7ec5b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53962,10 +45818,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53973,10 +45826,7 @@ "test/core/http/corpus/35f0c561297cfc840ddaeebb9fc61091f4eadece" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -53984,10 +45834,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -53995,10 +45842,7 @@ "test/core/http/corpus/3787bcc22ef645e665cc5f722b8a633af86de9cf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54006,10 +45850,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54017,10 +45858,7 @@ "test/core/http/corpus/3953688866ccb3b4f371f1a858570d6afdb6452d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54028,10 +45866,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54039,10 +45874,7 @@ "test/core/http/corpus/39b19c41ba537f37511eff7727733715db432e76" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54050,10 +45882,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54061,10 +45890,7 @@ "test/core/http/corpus/3e3c4756d5e40b5aa250954cbac86b826e70a7ac" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54072,10 +45898,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54083,10 +45906,7 @@ "test/core/http/corpus/3f03265921120c6ffa61b944e213e062a5538d4b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54094,10 +45914,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54105,10 +45922,7 @@ "test/core/http/corpus/3fb034e66ee5494a67acae1b4e6ff64ba92a2046" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54116,10 +45930,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54127,10 +45938,7 @@ "test/core/http/corpus/466059ed07a0d55d6ad5e522c7d367cbf278eaf9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54138,10 +45946,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54149,10 +45954,7 @@ "test/core/http/corpus/487725eb38511c79a9340bf4560a1411061fa6fa" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54160,10 +45962,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54171,10 +45970,7 @@ "test/core/http/corpus/48b9b205cae8ac21512a3f26f49fd53e21ee13c5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54182,10 +45978,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54193,10 +45986,7 @@ "test/core/http/corpus/4b1f1f79a0bfa3f942479dd5f8edb59a7c257c55" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54204,10 +45994,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54215,10 +46002,7 @@ "test/core/http/corpus/5028c56a5116a186b7343ff59567b47347a0796d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54226,10 +46010,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54237,10 +46018,7 @@ "test/core/http/corpus/533f62b3f495ce704babf3ee8d840f196a714dff" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54248,10 +46026,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54259,10 +46034,7 @@ "test/core/http/corpus/5892cbb284771fc9761caae37b19cd6e27dbc104" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54270,10 +46042,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54281,10 +46050,7 @@ "test/core/http/corpus/5aeab6e4f7c2a1c09d4ac0dbdb3beac4893607ee" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54292,10 +46058,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54303,10 +46066,7 @@ "test/core/http/corpus/5b6292bdf009b0daecbc90b85cca30a88c36eec5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54314,10 +46074,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54325,10 +46082,7 @@ "test/core/http/corpus/5c1659b77678b41faa4fa13df7772dae3238d1c0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54336,10 +46090,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54347,10 +46098,7 @@ "test/core/http/corpus/5c81f61621e29ec9c6a64ac3af9b3b216141618e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54358,10 +46106,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54369,10 +46114,7 @@ "test/core/http/corpus/657368df512ca6294b9df16adf935a3f374a8be2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54380,10 +46122,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54391,10 +46130,7 @@ "test/core/http/corpus/7fc4520094902ce2c760d70eaad5b674d2817337" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54402,10 +46138,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54413,10 +46146,7 @@ "test/core/http/corpus/81f59a12b458ec3604035cb962165c604d1355e6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54424,10 +46154,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54435,10 +46162,7 @@ "test/core/http/corpus/8f41c50e88ee8c17ecad3d41d63d38fb12aca0b9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54446,10 +46170,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54457,10 +46178,7 @@ "test/core/http/corpus/97c16de7fe3c390a2e6c09ff5c28f17d5c67542c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54468,10 +46186,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54479,10 +46194,7 @@ "test/core/http/corpus/97e4499d450c95660de86747f527e670f2012548" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54490,10 +46202,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54501,10 +46210,7 @@ "test/core/http/corpus/9a996857196e0998a1278994a9bab3d35526e7f1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54512,10 +46218,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54523,10 +46226,7 @@ "test/core/http/corpus/9b7e00049ec356ecd84b1747e4e1941140139ae8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54534,10 +46234,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54545,10 +46242,7 @@ "test/core/http/corpus/9f0c38ec455cc363369b3674a2d32bc21c206de1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54556,10 +46250,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54567,10 +46258,7 @@ "test/core/http/corpus/a1dc7bc235e46eb21d91084d7b52d5ff9f45df85" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54578,10 +46266,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54589,10 +46274,7 @@ "test/core/http/corpus/aa3bbb876eafa8ad8ca4ff2eabc6dd94341d2441" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54600,10 +46282,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54611,10 +46290,7 @@ "test/core/http/corpus/ae8ba95d7dbe99926a8f5bfd80347fd6a4b616a0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54622,10 +46298,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54633,10 +46306,7 @@ "test/core/http/corpus/b04fea5c041c707db0ad9c09a81672557b52cc47" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54644,10 +46314,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54655,10 +46322,7 @@ "test/core/http/corpus/c4acff8aa2ff886f35439f72625d05002990c940" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54666,10 +46330,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54677,10 +46338,7 @@ "test/core/http/corpus/c55ce9995b002e88a102ae2891a71e8bacb346c8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54688,10 +46346,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54699,10 +46354,7 @@ "test/core/http/corpus/ca5a0c00b8969310acb73d15ad0d0c602f1bd0c2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54710,10 +46362,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54721,10 +46370,7 @@ "test/core/http/corpus/cce734f1b263de6994f7950e0df7bf0c81449f70" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54732,10 +46378,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54743,10 +46386,7 @@ "test/core/http/corpus/d39c8ee11a697634a09b309460c0bbd967e7effa" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54754,10 +46394,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54765,10 +46402,7 @@ "test/core/http/corpus/d4c3e4cf5d035596433c30eaabbd2b2925f4b453" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54776,10 +46410,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54787,10 +46418,7 @@ "test/core/http/corpus/d51f7fcc089f269c7afecaaca51966bab5fde629" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54798,10 +46426,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54809,10 +46434,7 @@ "test/core/http/corpus/d936dad71c129cf659097dc3db64550c4dd467f4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54820,10 +46442,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54831,10 +46450,7 @@ "test/core/http/corpus/e275b0466a8fb8d9e0e15856e343ddc7112ae66b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54842,10 +46458,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54853,10 +46466,7 @@ "test/core/http/corpus/e5c364b205855a2991ce07482aebb2a3a6147089" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54864,10 +46474,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54875,10 +46482,7 @@ "test/core/http/corpus/ee2077e08c3cfccd9bd82adb574ac4fc7d429afb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54886,10 +46490,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54897,10 +46498,7 @@ "test/core/http/corpus/fc5d4b9117ba9e87388174aee4f4970bdfe8d066" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54908,10 +46506,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54919,10 +46514,7 @@ "test/core/http/corpus/fdeb2c7daa9e7704f67e141106384e6dd0042c0b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54930,10 +46522,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54941,10 +46530,7 @@ "test/core/http/corpus/request1.txt" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54952,10 +46538,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54963,10 +46546,7 @@ "test/core/http/corpus/request2.txt" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54974,10 +46554,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -54985,10 +46562,7 @@ "test/core/http/corpus/request3.txt" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -54996,10 +46570,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55007,10 +46578,7 @@ "test/core/http/corpus/request4.txt" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55018,10 +46586,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55029,10 +46594,7 @@ "test/core/http/corpus/request5.txt" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55040,10 +46602,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55051,10 +46610,7 @@ "test/core/http/corpus/response1.txt" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55062,10 +46618,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55073,10 +46626,7 @@ "test/core/http/corpus/response2.txt" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55084,10 +46634,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55095,10 +46642,7 @@ "test/core/http/corpus/response3.txt" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55106,10 +46650,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55117,10 +46658,7 @@ "test/core/http/corpus/response4.txt" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55128,10 +46666,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55139,10 +46674,7 @@ "test/core/http/corpus/response5.txt" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55150,10 +46682,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55161,10 +46690,7 @@ "test/core/http/corpus/response6.txt" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55172,10 +46698,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55183,10 +46706,7 @@ "test/core/http/corpus/toolong.txt" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55194,10 +46714,7 @@ "language": "c", "name": "http_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55205,10 +46722,7 @@ "test/core/json/corpus/006d552e952c42b5340baaeb85c2cb80c81e78dd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55216,10 +46730,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55227,10 +46738,7 @@ "test/core/json/corpus/007eb985c44b6089a34995a7d9ebf349f1c2bf18" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55238,10 +46746,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55249,10 +46754,7 @@ "test/core/json/corpus/03b74a08f23734691512cb12d0b38d189a8df905" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55260,10 +46762,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55271,10 +46770,7 @@ "test/core/json/corpus/0495693af07325fb0d52eafd2d4c4d802c6457c6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55282,10 +46778,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55293,10 +46786,7 @@ "test/core/json/corpus/05454ab015cf74e9c3e8574d995517e05dd56751" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55304,10 +46794,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55315,10 +46802,7 @@ "test/core/json/corpus/0716d9708d321ffb6a00818614779e779925365c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55326,10 +46810,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55337,10 +46818,7 @@ "test/core/json/corpus/0a9b3522a8e711e3bd53e2c2eb9d28b34a003acc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55348,10 +46826,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55359,10 +46834,7 @@ "test/core/json/corpus/0ade7c2cf97f75d009975f4d720d1fa6c19f4897" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55370,10 +46842,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55381,10 +46850,7 @@ "test/core/json/corpus/0b1fcf0ac07e1e50cfe27316c7e1c8cc997f1318" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55392,10 +46858,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55403,10 +46866,7 @@ "test/core/json/corpus/0bc13548356d08009703d35e9c8d74397367bdfb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55414,10 +46874,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55425,10 +46882,7 @@ "test/core/json/corpus/0ea9a160c57f2c705dce037196e360bf9be739c5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55436,10 +46890,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55447,10 +46898,7 @@ "test/core/json/corpus/0f20d9c46991c0e97419e2cca07c7389f1d6bdf8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55458,10 +46906,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55469,10 +46914,7 @@ "test/core/json/corpus/0f2e2e6346f70c419300b661251754d50f7ca8ea" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55480,10 +46922,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55491,10 +46930,7 @@ "test/core/json/corpus/108b310facc1a193833fc2971fd83081f775ea0c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55502,10 +46938,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55513,10 +46946,7 @@ "test/core/json/corpus/108e5bcd69b19ad0df743641085163b84f376fe8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55524,10 +46954,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55535,10 +46962,7 @@ "test/core/json/corpus/10e3ecd5624465020fdf0662a67e0f0885536cae" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55546,10 +46970,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55557,10 +46978,7 @@ "test/core/json/corpus/113c8c97cbb0a2b6176d75eaa9ac9baaa7ccddcc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55568,10 +46986,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55579,10 +46994,7 @@ "test/core/json/corpus/11479d936dd006410a5946b6081a94d573bf8efd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55590,10 +47002,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55601,10 +47010,7 @@ "test/core/json/corpus/11aa091189b78d1cc35c7ff4907ac16a73aba547" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55612,10 +47018,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55623,10 +47026,7 @@ "test/core/json/corpus/1227907b2ee5a9492a890beed55332e4560834c8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55634,10 +47034,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55645,10 +47042,7 @@ "test/core/json/corpus/134d65130947ec69cf8df8483424b45e99cf04e3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55656,10 +47050,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55667,10 +47058,7 @@ "test/core/json/corpus/13584505caa892d94982a968bbc4391ebcfe0d06" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55678,10 +47066,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55689,10 +47074,7 @@ "test/core/json/corpus/137f554ee0f6b903acb81ab4e1f98c11fe92b008" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55700,10 +47082,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55711,10 +47090,7 @@ "test/core/json/corpus/1401ea03ec78b8f20dc7be952555004d7147f0f5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55722,10 +47098,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55733,10 +47106,7 @@ "test/core/json/corpus/141d45a59b073aeec4443cd7bcf20f7833ddbc95" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55744,10 +47114,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55755,10 +47122,7 @@ "test/core/json/corpus/15a8f2e7f94aa00b46f1b991416aa015dd633580" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55766,10 +47130,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55777,10 +47138,7 @@ "test/core/json/corpus/15c9c1284c27c8893559e15c9b2a50cbd5bbb56f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55788,10 +47146,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55799,10 +47154,7 @@ "test/core/json/corpus/15d1a6cda48ef569b368a0c4627435bc2c80a988" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55810,10 +47162,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55821,10 +47170,7 @@ "test/core/json/corpus/17a29f2ac6df774585d7713091b299729738030c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55832,10 +47178,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55843,10 +47186,7 @@ "test/core/json/corpus/17b815f1f72cb64481bc40263e91ce063040f739" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55854,10 +47194,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55865,10 +47202,7 @@ "test/core/json/corpus/182d57403d2c973a394055017d35b7621aa0aa05" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55876,10 +47210,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55887,10 +47218,7 @@ "test/core/json/corpus/190fbe2da448f6bdec0706c5301ad13363ae3ad9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55898,10 +47226,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55909,10 +47234,7 @@ "test/core/json/corpus/1b045a24b8f1f1fd6e8234d5019952ee7713a8b7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55920,10 +47242,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55931,10 +47250,7 @@ "test/core/json/corpus/1b6453892473a467d07372d45eb05abc2031647a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55942,10 +47258,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55953,10 +47266,7 @@ "test/core/json/corpus/1c6463aa2dabcb4fadc8e5441d8b418535e768af" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55964,10 +47274,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55975,10 +47282,7 @@ "test/core/json/corpus/1dea95b5050b766274ef80847505c0e4f47f3ebb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -55986,10 +47290,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -55997,10 +47298,7 @@ "test/core/json/corpus/1df0754d3e7970b3afe549b11ca128dcd0d4832b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56008,10 +47306,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56019,10 +47314,7 @@ "test/core/json/corpus/1dfe267b623b20cd97c6e8969d8b9148af9f4a2c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56030,10 +47322,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56041,10 +47330,7 @@ "test/core/json/corpus/1e5c2f367f02e47a8c160cda1cd9d91decbac441" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56052,10 +47338,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56063,10 +47346,7 @@ "test/core/json/corpus/20efdba13ca7a3657d071b3d56997aa3b083068a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56074,10 +47354,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56085,10 +47362,7 @@ "test/core/json/corpus/215a956168f77421253e947c2436371d56aa7ea1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56096,10 +47370,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56107,10 +47378,7 @@ "test/core/json/corpus/2174b9ab6bf4f7c21fe1ed56957f1776ef611959" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56118,10 +47386,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56129,10 +47394,7 @@ "test/core/json/corpus/232f4bced4075545bb1469d5c2360f083ec7ec65" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56140,10 +47402,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56151,10 +47410,7 @@ "test/core/json/corpus/26aca41ee8f199e7c0c7cf31d979952571c53fc9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56162,10 +47418,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56173,10 +47426,7 @@ "test/core/json/corpus/27d84210636e9e83786be9e9b96b69f70b743b86" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56184,10 +47434,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56195,10 +47442,7 @@ "test/core/json/corpus/27da426a5883662d19ea78f306d7a992be52f827" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56206,10 +47450,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56217,10 +47458,7 @@ "test/core/json/corpus/296dcda6f7e6979e68ddef7cbc1206a355084ad3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56228,10 +47466,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56239,10 +47474,7 @@ "test/core/json/corpus/29b08c03ca5a6851fa4604a984cb7ff44433a5a5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56250,10 +47482,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56261,10 +47490,7 @@ "test/core/json/corpus/2a3d964ec4527ad9f02129fcbf087b67a6ea6444" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56272,10 +47498,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56283,10 +47506,7 @@ "test/core/json/corpus/2b04974149815b143afb17af4388d751217e54ec" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56294,10 +47514,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56305,10 +47522,7 @@ "test/core/json/corpus/2b3b1ad952e3acb566e32a84e2d503acde13eb53" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56316,10 +47530,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56327,10 +47538,7 @@ "test/core/json/corpus/2cc301a6ed7f01e2cd339f02bd0fda20c227a17e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56338,10 +47546,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56349,10 +47554,7 @@ "test/core/json/corpus/2d3d5b9275553430b4cfa68114099120ad7809ee" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56360,10 +47562,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56371,10 +47570,7 @@ "test/core/json/corpus/2d5dbf403e0c12e2fe21b04ca3daff171c028ab7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56382,10 +47578,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56393,10 +47586,7 @@ "test/core/json/corpus/2d7c769bed62004270034b976b1d940a5686106b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56404,10 +47594,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56415,10 +47602,7 @@ "test/core/json/corpus/2db120231eea12d9cdc6a00f30839b3cef2046be" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56426,10 +47610,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56437,10 +47618,7 @@ "test/core/json/corpus/2db610e1a230409a205cf22fbad3348a54cbe703" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56448,10 +47626,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56459,10 +47634,7 @@ "test/core/json/corpus/2df1dd2e2f5d57e7d9d4e60a756a86e603573225" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56470,10 +47642,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56481,10 +47650,7 @@ "test/core/json/corpus/2e32faacd3ea4461ec7aace297b4be6904d9a389" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56492,10 +47658,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56503,10 +47666,7 @@ "test/core/json/corpus/2e756d91759d7e74f5b776c0d2a1935292f576d1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56514,10 +47674,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56525,10 +47682,7 @@ "test/core/json/corpus/2f09b24f9f5fa0af2c29b604b4b0f97fa6163895" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56536,10 +47690,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56547,10 +47698,7 @@ "test/core/json/corpus/3027d901361162b38fcaf17f97ba7d9646e32495" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56558,10 +47706,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56569,10 +47714,7 @@ "test/core/json/corpus/30d4467ecb771ece9ed6c78a46adc299072d9db9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56580,10 +47722,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56591,10 +47730,7 @@ "test/core/json/corpus/311048bbf4c4bbabcde73607d7e76915cee9312e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56602,10 +47738,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56613,10 +47746,7 @@ "test/core/json/corpus/323b48969d7bf9a50aacf0912f1b5cb02119e2ab" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56624,10 +47754,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56635,10 +47762,7 @@ "test/core/json/corpus/33400a242baeb5c46ddb1578c28b10d32a9c3cd3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56646,10 +47770,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56657,10 +47778,7 @@ "test/core/json/corpus/356a192b7913b04c54574d18c28d46e6395428ab" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56668,10 +47786,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56679,10 +47794,7 @@ "test/core/json/corpus/35e995c107a71caeb833bb3b79f9f54781b33fa1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56690,10 +47802,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56701,10 +47810,7 @@ "test/core/json/corpus/373769c15c145472c8ec3bdde8fc84e85ec79211" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56712,10 +47818,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56723,10 +47826,7 @@ "test/core/json/corpus/3795d911970a1fd8416b93649051b418948e3edf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56734,10 +47834,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56745,10 +47842,7 @@ "test/core/json/corpus/37d3333e1e2a384c3ba14a52682ca29f061d1ac7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56756,10 +47850,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56767,10 +47858,7 @@ "test/core/json/corpus/38cd33bb390445e35b6514024b1317902cb7ba1b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56778,10 +47866,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56789,10 +47874,7 @@ "test/core/json/corpus/3a90c688f44447a78efc111872b061a001f04d2b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56800,10 +47882,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56811,10 +47890,7 @@ "test/core/json/corpus/3b1e7b56ad4465d126ea994d34d20dcecbb3a50a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56822,10 +47898,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56833,10 +47906,7 @@ "test/core/json/corpus/3c0a8d6c31edaca124714624eb64cb8ec0cbab13" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56844,10 +47914,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56855,10 +47922,7 @@ "test/core/json/corpus/3cc0c9adcf3882f01409c70391c3cd30588ef34c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56866,10 +47930,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56877,10 +47938,7 @@ "test/core/json/corpus/3d0d9878b812ce4634962ba3dd755c0953550200" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56888,10 +47946,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56899,10 +47954,7 @@ "test/core/json/corpus/3d4d5887a2fcdc5dd360b8a6f89dbce6500d8580" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56910,10 +47962,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56921,10 +47970,7 @@ "test/core/json/corpus/3efb5b7ff94c5b9d411c93da9a70e1cc547f4c59" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56932,10 +47978,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56943,10 +47986,7 @@ "test/core/json/corpus/421b7e8ea86e3c07474af16ab3ccef55d1857205" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56954,10 +47994,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56965,10 +48002,7 @@ "test/core/json/corpus/428d051e437dd260f2a2f7ed920d9734ca34dc90" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56976,10 +48010,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -56987,10 +48018,7 @@ "test/core/json/corpus/42adc281578ffb1b8684b78b47aa40a16d10b6e7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -56998,10 +48026,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57009,10 +48034,7 @@ "test/core/json/corpus/43620ecd2e2fd58fe5650da2e9783f980f29ec07" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57020,10 +48042,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57031,10 +48050,7 @@ "test/core/json/corpus/43b1ffcda49477adb1632822202631990ed3a269" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57042,10 +48058,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57053,10 +48066,7 @@ "test/core/json/corpus/45279f85bf2f533a629073caf89403006279fab2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57064,10 +48074,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57075,10 +48082,7 @@ "test/core/json/corpus/455d9bb597f08bf698454157ecd86647b5dec4e0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57086,10 +48090,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57097,10 +48098,7 @@ "test/core/json/corpus/4561eb5c7e43cae048c06aaaad3d5f5218b376e9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57108,10 +48106,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57119,10 +48114,7 @@ "test/core/json/corpus/46417b001eeb87c32b642499fd5e1690d5d88c7f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57130,10 +48122,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57141,10 +48130,7 @@ "test/core/json/corpus/468af040024e96e9878ef33cc52755c5e7f5cbd5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57152,10 +48138,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57163,10 +48146,7 @@ "test/core/json/corpus/469e5ed2547e9e55a96e96eb832c615631e3b576" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57174,10 +48154,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57185,10 +48162,7 @@ "test/core/json/corpus/472b07b9fcf2c2451e8781e944bf5f77cd8457c8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57196,10 +48170,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57207,10 +48178,7 @@ "test/core/json/corpus/486da8aff04083c5e0fe112e733f2ae510e312a1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57218,10 +48186,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57229,10 +48194,7 @@ "test/core/json/corpus/488a5ed641e340ae51992e04ce6590bdec587218" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57240,10 +48202,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57251,10 +48210,7 @@ "test/core/json/corpus/4a0a19218e082a343a1b17e5333409af9d98f0f5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57262,10 +48218,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57273,10 +48226,7 @@ "test/core/json/corpus/4a6644a1a3d5218f4bbd60220cab79c0b7bef45e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57284,10 +48234,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57295,10 +48242,7 @@ "test/core/json/corpus/4b39d4b8a9a04b9469e8fe4016322327fe540882" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57306,10 +48250,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57317,10 +48258,7 @@ "test/core/json/corpus/4bb0294e14946fb1f64213384097a676d3ef94f0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57328,10 +48266,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57339,10 +48274,7 @@ "test/core/json/corpus/4cd66dfabbd964f8c6c4414b07cdb45dae692e19" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57350,10 +48282,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57361,10 +48290,7 @@ "test/core/json/corpus/4d134bc072212ace2df385dae143139da74ec0ef" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57372,10 +48298,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57383,10 +48306,7 @@ "test/core/json/corpus/4efa35221b2088e785048d0ff8fd99b03d5316fc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57394,10 +48314,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57405,10 +48322,7 @@ "test/core/json/corpus/4fa2a4a5a2f7dc4ddbdecae3ee85c787817b4cf8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57416,10 +48330,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57427,10 +48338,7 @@ "test/core/json/corpus/4fed4bf2dc6259d9de54e9fa7db4fd5a61f2535e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57438,10 +48346,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57449,10 +48354,7 @@ "test/core/json/corpus/4ff800de0863adb5851fa26935159aa53b11cba7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57460,10 +48362,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57471,10 +48370,7 @@ "test/core/json/corpus/4ff99a030518a132748c44bc1d836018e5b82cd0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57482,10 +48378,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57493,10 +48386,7 @@ "test/core/json/corpus/531c87b9772e54e3e183ef729f0a7d5a0d584f46" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57504,10 +48394,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57515,10 +48402,7 @@ "test/core/json/corpus/534d66e7b0709d1e7692faae9e7f7299c92bba4b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57526,10 +48410,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57537,10 +48418,7 @@ "test/core/json/corpus/548775f9d7d13339dba3001f8238b84e9a457533" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57548,10 +48426,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57559,10 +48434,7 @@ "test/core/json/corpus/54ec3b2d8a9b7a6d8204712eb1b90da703cf8a79" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57570,10 +48442,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57581,10 +48450,7 @@ "test/core/json/corpus/552cfe1d8958e6d003ec8e883c4983dd67ef255e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57592,10 +48458,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57603,10 +48466,7 @@ "test/core/json/corpus/55f0c61d096a08506076489ded3b868db4086770" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57614,10 +48474,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57625,10 +48482,7 @@ "test/core/json/corpus/56cd60743c2cee939f5f357905bd36ec9363f441" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57636,10 +48490,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57647,10 +48498,7 @@ "test/core/json/corpus/56e5f35e3d08b4e17e3558cacddf9e5ed13a0159" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57658,10 +48506,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57669,10 +48514,7 @@ "test/core/json/corpus/580b03c49fba02bb8e399500eb66f2ff0482b22a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57680,10 +48522,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57691,10 +48530,7 @@ "test/core/json/corpus/5852643fbbcf92b0181327b69b4874c6ba6fa9f4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57702,10 +48538,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57713,10 +48546,7 @@ "test/core/json/corpus/58f497e5efaf9f69080f9eef63b0b9dabcfdbc0d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57724,10 +48554,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57735,10 +48562,7 @@ "test/core/json/corpus/59129aacfb6cebbe2c52f30ef3424209f7252e82" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57746,10 +48570,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57757,10 +48578,7 @@ "test/core/json/corpus/598a287a3e56caae23ed63abc95d5f3457165eef" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57768,10 +48586,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57779,10 +48594,7 @@ "test/core/json/corpus/5a37a26dd2482226f534f79d321d28e7a615ab72" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57790,10 +48602,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57801,10 +48610,7 @@ "test/core/json/corpus/5a710dcd4c78ca1a74ceb9fbfb011f7ac86a5f7b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57812,10 +48618,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57823,10 +48626,7 @@ "test/core/json/corpus/5ae7b87f5377d5ffc16fd3f69b4a4aa7be8b1184" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57834,10 +48634,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57845,10 +48642,7 @@ "test/core/json/corpus/5b3fe86d5a309a6ba745881bd220fe1100b271ce" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57856,10 +48650,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57867,10 +48658,7 @@ "test/core/json/corpus/5c38b7da113ab4535dbc22777ce8a1480c1c9d1e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57878,10 +48666,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57889,10 +48674,7 @@ "test/core/json/corpus/5ca6c45a8d2e11c782806df43e7668beb4aba8f5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57900,10 +48682,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57911,10 +48690,7 @@ "test/core/json/corpus/5da7b543313339f84fd52e96bacf3a73368a1d2c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57922,10 +48698,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57933,10 +48706,7 @@ "test/core/json/corpus/5e12ae9117668bcc22832640cc626315940aeba8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57944,10 +48714,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57955,10 +48722,7 @@ "test/core/json/corpus/5e397439a2680ed827c46704969c6711dabbda84" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57966,10 +48730,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57977,10 +48738,7 @@ "test/core/json/corpus/5e629dfb8b7533c7c2d173d4c3d587c88112cc29" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -57988,10 +48746,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -57999,10 +48754,7 @@ "test/core/json/corpus/5e785c7c26813577f3e30ef8f7e37ab2a9ffe39c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58010,10 +48762,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58021,10 +48770,7 @@ "test/core/json/corpus/5f3394f5058822cc044b92654837625897176480" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58032,10 +48778,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58043,10 +48786,7 @@ "test/core/json/corpus/5fb9bcbbb30a377209eab0541d144e44e71508d7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58054,10 +48794,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58065,10 +48802,7 @@ "test/core/json/corpus/6008213a61d06b4382b223768530c3452968b7b3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58076,10 +48810,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58087,10 +48818,7 @@ "test/core/json/corpus/60ba4b2daa4ed4d070fec06687e249e0e6f9ee45" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58098,10 +48826,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58109,10 +48834,7 @@ "test/core/json/corpus/625ed64c30c8ab2f0b3bc75690f9faa4270f0041" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58120,10 +48842,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58131,10 +48850,7 @@ "test/core/json/corpus/6314c2b304d04dc0108a95d29a93515e85e2b0b0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58142,10 +48858,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58153,10 +48866,7 @@ "test/core/json/corpus/6462d8079d2ea921617e7d073b85cfab706800d3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58164,10 +48874,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58175,10 +48882,7 @@ "test/core/json/corpus/6474383282788e556aa86f57fc8650137ad264d0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58186,10 +48890,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58197,10 +48898,7 @@ "test/core/json/corpus/648c3f58ecc8fb4b8c779e6b11006ab5b1986dad" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58208,10 +48906,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58219,10 +48914,7 @@ "test/core/json/corpus/66328e03a2ccd5e54dab23b816182786e6f518b6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58230,10 +48922,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58241,10 +48930,7 @@ "test/core/json/corpus/683e9045bc95e0cb5fc16ec64b118433475ba559" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58252,10 +48938,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58263,10 +48946,7 @@ "test/core/json/corpus/689f13680f4682303c8aa6828b67955959dc9669" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58274,10 +48954,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58285,10 +48962,7 @@ "test/core/json/corpus/68c6ba7f0602a5410d1fa3c5de24fe264436b993" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58296,10 +48970,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58307,10 +48978,7 @@ "test/core/json/corpus/699cafde80b1e1777306f781186d1253f018ab23" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58318,10 +48986,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58329,10 +48994,7 @@ "test/core/json/corpus/69ab053b59e235fd6af246c5180f15bd95295113" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58340,10 +49002,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58351,10 +49010,7 @@ "test/core/json/corpus/69afa12510b2e653b0af7c7030832647b2d63c37" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58362,10 +49018,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58373,10 +49026,7 @@ "test/core/json/corpus/6b75857f86be5c51b21a97f4a61e69e8bb6cd698" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58384,10 +49034,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58395,10 +49042,7 @@ "test/core/json/corpus/6c75e71ecde9f073a7bad89f4831c8cde0bc1830" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58406,10 +49050,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58417,10 +49058,7 @@ "test/core/json/corpus/6ce5170dc4f2eee3b31a875b6a41f2444959f3dd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58428,10 +49066,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58439,10 +49074,7 @@ "test/core/json/corpus/6d2859436fbbee637f0a5981ca82e8f88a1d0d28" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58450,10 +49082,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58461,10 +49090,7 @@ "test/core/json/corpus/6d63e39f56d1d537bab9c2830303cabab3cd9035" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58472,10 +49098,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58483,10 +49106,7 @@ "test/core/json/corpus/6e05a0a240fe2974e14527bbe390d294564156e2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58494,10 +49114,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58505,10 +49122,7 @@ "test/core/json/corpus/6e6c9d301adb0f0ddffd79cdf3426a2de99bad48" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58516,10 +49130,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58527,10 +49138,7 @@ "test/core/json/corpus/6e989edf725ec64849377681ce02641c3d1870e8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58538,10 +49146,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58549,10 +49154,7 @@ "test/core/json/corpus/70142f66475ae2fb33722d8d4750f386ecfefe7b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58560,10 +49162,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58571,10 +49170,7 @@ "test/core/json/corpus/719edbe667ce2729ac78a22dac29263c91144029" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58582,10 +49178,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58593,10 +49186,7 @@ "test/core/json/corpus/71f99ca2bda6ef2e15b965479a79587f9d794be0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58604,10 +49194,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58615,10 +49202,7 @@ "test/core/json/corpus/743e89b768af4bd591ea7228118550b1bfb8e7d1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58626,10 +49210,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58637,10 +49218,7 @@ "test/core/json/corpus/7714a1a32872442a2eaff472685f3ea69451a732" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58648,10 +49226,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58659,10 +49234,7 @@ "test/core/json/corpus/7719a1c782a1ba91c031a682a0a2f8658209adbf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58670,10 +49242,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58681,10 +49250,7 @@ "test/core/json/corpus/775e8ffda1f5d340dba472d06dc7c8bf8159e379" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58692,10 +49258,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58703,10 +49266,7 @@ "test/core/json/corpus/77de68daecd823babbb58edb1c8e14d7106e83bb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58714,10 +49274,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58725,10 +49282,7 @@ "test/core/json/corpus/7957dc9aac31e6a6783fb3a6ee073688fed6cf9d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58736,10 +49290,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58747,10 +49298,7 @@ "test/core/json/corpus/7ae893cbbf9b11ff411640b80985ce618907559c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58758,10 +49306,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58769,10 +49314,7 @@ "test/core/json/corpus/7b20ac50954063e3ad00813acab4a98b2bfdb858" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58780,10 +49322,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58791,10 +49330,7 @@ "test/core/json/corpus/7b6273145fb090de1c6163586f884a1da4b5cfbf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58802,10 +49338,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58813,10 +49346,7 @@ "test/core/json/corpus/7cf84b5a78281e6c6b5a9884110f3dbc6a40e310" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58824,10 +49354,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58835,10 +49362,7 @@ "test/core/json/corpus/7ef13b83e6bde582d9000be043e729cd3221c150" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58846,10 +49370,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58857,10 +49378,7 @@ "test/core/json/corpus/82059e250904b478f65daa0e647c1647ba6d6a3d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58868,10 +49386,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58879,10 +49394,7 @@ "test/core/json/corpus/8207fdf4bd302d6b6b1894990b353944a8716aa7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58890,10 +49402,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58901,10 +49410,7 @@ "test/core/json/corpus/831a49ad81b59025c241ac9e58bd88463fd798eb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58912,10 +49418,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58923,10 +49426,7 @@ "test/core/json/corpus/84582c1dbe026475319df14c19967d1dd0bf751f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58934,10 +49434,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58945,10 +49442,7 @@ "test/core/json/corpus/860d4ad0b7c026d1fcf51932b5e46500be7860a6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58956,10 +49450,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58967,10 +49458,7 @@ "test/core/json/corpus/865c7cf36a4f4499a6242e51b77b58b868a7447b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -58978,10 +49466,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -58989,10 +49474,7 @@ "test/core/json/corpus/87a2b80f9272583517c0207af176fc40ea55022c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59000,10 +49482,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59011,10 +49490,7 @@ "test/core/json/corpus/887309d048beef83ad3eabf2a79a64a389ab1c9f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59022,10 +49498,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59033,10 +49506,7 @@ "test/core/json/corpus/88d89860ccaf21e5f0f002303a2cd853ecbb2acb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59044,10 +49514,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59055,10 +49522,7 @@ "test/core/json/corpus/88f658400b1870ddf081fb03020c3098b0b1e083" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59066,10 +49530,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59077,10 +49538,7 @@ "test/core/json/corpus/88f8b0984bb2f081918ad883c8f0ffacb5a8ff0a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59088,10 +49546,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59099,10 +49554,7 @@ "test/core/json/corpus/89304953495f060c7abd3584d83cb1c8e6d6653b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59110,10 +49562,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59121,10 +49570,7 @@ "test/core/json/corpus/8a5f6dc6873e3fd51fd866854d85258f8aa83a02" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59132,10 +49578,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59143,10 +49586,7 @@ "test/core/json/corpus/8a87261277c15667e2957dd52c5db6757ebc8e88" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59154,10 +49594,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59165,10 +49602,7 @@ "test/core/json/corpus/8aa61d8bd260942521bb1ba82cd4cce2324fdbee" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59176,10 +49610,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59187,10 +49618,7 @@ "test/core/json/corpus/8d8874439569824e371a0284460440175cdb8a27" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59198,10 +49626,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59209,10 +49634,7 @@ "test/core/json/corpus/8d952ec2e33b2a6a1c7876898719a610f5546388" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59220,10 +49642,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59231,10 +49650,7 @@ "test/core/json/corpus/8e6fec8a05b24f221b6e94fdfe205e5bf7709a2c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59242,10 +49658,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59253,10 +49666,7 @@ "test/core/json/corpus/8e7fda77644ff91578d25243fad51a3cd6d60860" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59264,10 +49674,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59275,10 +49682,7 @@ "test/core/json/corpus/8ea6295ff82bb119acd44a91b463b19fedafb226" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59286,10 +49690,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59297,10 +49698,7 @@ "test/core/json/corpus/8ee51caaa2c2f4ee2e5b4b7ef5a89db7df1068d7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59308,10 +49706,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59319,10 +49714,7 @@ "test/core/json/corpus/8ef4dd9f2d0f9d770c937d9a43413d24df83f09b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59330,10 +49722,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59341,10 +49730,7 @@ "test/core/json/corpus/8efd86fb78a56a5145ed7739dcb00c78581c5375" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59352,10 +49738,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59363,10 +49746,7 @@ "test/core/json/corpus/8f0ba762c2fed0fc993feb91948902ac397b0919" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59374,10 +49754,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59385,10 +49762,7 @@ "test/core/json/corpus/8fe81e450694cac1eb4c4a5c966ffbc56ade3513" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59396,10 +49770,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59407,10 +49778,7 @@ "test/core/json/corpus/902ba3cda1883801594b6e1b452790cc53948fda" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59418,10 +49786,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59429,10 +49794,7 @@ "test/core/json/corpus/910a1528b28ebc6ff2f2a4fedb013c86de4103e2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59440,10 +49802,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59451,10 +49810,7 @@ "test/core/json/corpus/92049bf3d8a0ec93c2d1633631c0082e66ca69e7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59462,10 +49818,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59473,10 +49826,7 @@ "test/core/json/corpus/920a3c318f3127b9c30ab02a077555c7dfbb6edb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59484,10 +49834,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59495,10 +49842,7 @@ "test/core/json/corpus/925fc05dd661aeb4a776dcbc5df3dcb2cefaf0a6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59506,10 +49850,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59517,10 +49858,7 @@ "test/core/json/corpus/9367ba65affd5bf7aabf79c28e783cc5d93518e8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59528,10 +49866,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59539,10 +49874,7 @@ "test/core/json/corpus/939f5049b1eefb91ccbd3fcecaed8cb21ea6b285" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59550,10 +49882,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59561,10 +49890,7 @@ "test/core/json/corpus/9405c2b00eaa5526f71cc78914dbd3ecaf093b6e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59572,10 +49898,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59583,10 +49906,7 @@ "test/core/json/corpus/94d3598751569d2a5be258e59665cbbf0692dfbe" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59594,10 +49914,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59605,10 +49922,7 @@ "test/core/json/corpus/94f96d95d01e98fd2f04ce26c0913e5f9a882fb4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59616,10 +49930,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59627,10 +49938,7 @@ "test/core/json/corpus/95b54a84db75abab401d282fdb04440a879a9708" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59638,10 +49946,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59649,10 +49954,7 @@ "test/core/json/corpus/96189202e587ec951d5795da3e03062f2fb5d708" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59660,10 +49962,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59671,10 +49970,7 @@ "test/core/json/corpus/9711703428704ce2827a719eddb9d54be23a0cb7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59682,10 +49978,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59693,10 +49986,7 @@ "test/core/json/corpus/9734597e96eebe99b2243121a51d178a338ec46f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59704,10 +49994,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59715,10 +50002,7 @@ "test/core/json/corpus/9747c85a9510011bf87c23a80b029b9f2d04c37d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59726,10 +50010,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59737,10 +50018,7 @@ "test/core/json/corpus/97d170e1550eee4afc0af065b78cda302a97674c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59748,10 +50026,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59759,10 +50034,7 @@ "test/core/json/corpus/98e02e7fc96479e8d10ff2cc7610be772e2d6fba" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59770,10 +50042,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59781,10 +50050,7 @@ "test/core/json/corpus/996156b191b619eff79b2fcbb7598518a09b06bc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59792,10 +50058,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59803,10 +50066,7 @@ "test/core/json/corpus/99667fcfa6d583a742fb5450527fc86dfb78ebbf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59814,10 +50074,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59825,10 +50082,7 @@ "test/core/json/corpus/9b1ead2dbeeb1a3e9a7bebcf6964c3cfbc7e8867" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59836,10 +50090,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59847,10 +50098,7 @@ "test/core/json/corpus/9b7669e201574bfb979d56110539a90da5aca2c0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59858,10 +50106,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59869,10 +50114,7 @@ "test/core/json/corpus/9c24b456af3cb51a1ff2780c2d9cbdd7d93f6c76" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59880,10 +50122,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59891,10 +50130,7 @@ "test/core/json/corpus/9d0441f23ae7d5a3a5b1140497868ee6eeab656b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59902,10 +50138,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59913,10 +50146,7 @@ "test/core/json/corpus/9d890bd3139a8f9a44d435ff8edfbeb5b072ded0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59924,10 +50154,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59935,10 +50162,7 @@ "test/core/json/corpus/9e6a55b6b4563e652a23be9d623ca5055c356940" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59946,10 +50170,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59957,10 +50178,7 @@ "test/core/json/corpus/9ec88420ef0408642f6930996e35f5b9f18ec88c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59968,10 +50186,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -59979,10 +50194,7 @@ "test/core/json/corpus/9edd067c569315d5e93b0d14c7eac9fa6d81d3cd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -59990,10 +50202,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60001,10 +50210,7 @@ "test/core/json/corpus/9fbda4f714043d975389b536b4497c6d713452e5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60012,10 +50218,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60023,10 +50226,7 @@ "test/core/json/corpus/9fc8cb8ab3b05e306e5e81d9d949e69f931244ea" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60034,10 +50234,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60045,10 +50242,7 @@ "test/core/json/corpus/a02b857f2eff73e8e188f35529dd91f8144b23b9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60056,10 +50250,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60067,10 +50258,7 @@ "test/core/json/corpus/a060d5bfd1235cbbe4bcecf332fa3b03bc2282e3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60078,10 +50266,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60089,10 +50274,7 @@ "test/core/json/corpus/a0931fae1d43e7887c1cabde83fdfc52eaeedba8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60100,10 +50282,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60111,10 +50290,7 @@ "test/core/json/corpus/a0d4af29c6c223b48fe34d6a09b3a7466242f33c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60122,10 +50298,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60133,10 +50306,7 @@ "test/core/json/corpus/a1abe8a785030d475a7350438fd23a05c382c110" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60144,10 +50314,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60155,10 +50322,7 @@ "test/core/json/corpus/a1fb86293eac950c2b4f5182d9e4b5d9e0982ef6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60166,10 +50330,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60177,10 +50338,7 @@ "test/core/json/corpus/a2d4e3d6f5ba43c9199d5d2011678f82cfd55afc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60188,10 +50346,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60199,10 +50354,7 @@ "test/core/json/corpus/a39653cb3d97c58c44013197f4d7557577700177" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60210,10 +50362,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60221,10 +50370,7 @@ "test/core/json/corpus/a4c74ad56ae0e94e96101a8f2ce9b1e588df5e44" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60232,10 +50378,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60243,10 +50386,7 @@ "test/core/json/corpus/a6b34b06b00e9226f2bd961483f9da81d8de99a8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60254,10 +50394,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60265,10 +50402,7 @@ "test/core/json/corpus/a72c3b9cc71eb7f0e0e4dabcd2dcd2b997f21c07" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60276,10 +50410,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60287,10 +50418,7 @@ "test/core/json/corpus/a749d24bac55bc19465acc92b12244c56ca0f20d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60298,10 +50426,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60309,10 +50434,7 @@ "test/core/json/corpus/a78009ff8b3f4d722ee0eb84795e857e74a58aea" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60320,10 +50442,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60331,10 +50450,7 @@ "test/core/json/corpus/a7ae4b16677806d78d0016c276b6722eba8eef3c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60342,10 +50458,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60353,10 +50466,7 @@ "test/core/json/corpus/a806f43dd48e35e75c27814c13a2a96c12449bd1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60364,10 +50474,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60375,10 +50482,7 @@ "test/core/json/corpus/a90a858013f90d2a94e0d62a7156ffd6848bf238" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60386,10 +50490,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60397,10 +50498,7 @@ "test/core/json/corpus/a94bfbfe16d026b52d7f73cf78fdf7d6a6c5c58b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60408,10 +50506,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60419,10 +50514,7 @@ "test/core/json/corpus/a9718f029d11a9335ef596cbd42794de5b0b18b5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60430,10 +50522,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60441,10 +50530,7 @@ "test/core/json/corpus/aa6e08a488d1ed00aa51f20c2477fc89e7b0a852" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60452,10 +50538,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60463,10 +50546,7 @@ "test/core/json/corpus/aaa038513c192fec501e4e7302156872ce2fde37" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60474,10 +50554,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60485,10 +50562,7 @@ "test/core/json/corpus/ac2686c095a5a1c92a1d4209a6c287778720c86d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60496,10 +50570,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60507,10 +50578,7 @@ "test/core/json/corpus/ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60518,10 +50586,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60529,10 +50594,7 @@ "test/core/json/corpus/ac9231da4082430afe8f4d40127814c613648d8e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60540,10 +50602,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60551,10 +50610,7 @@ "test/core/json/corpus/adc83b19e793491b1c6ea0fd8b46cd9f32e592fc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60562,10 +50618,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60573,10 +50626,7 @@ "test/core/json/corpus/aff25e569bd8c93157e08cd18ebcd896438e34c9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60584,10 +50634,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60595,10 +50642,7 @@ "test/core/json/corpus/affced8168ec801de89deac663f708f0c96cf1a4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60606,10 +50650,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60617,10 +50658,7 @@ "test/core/json/corpus/b015dfc2f62b640d7c25adab7b38c5fcb5cb64c8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60628,10 +50666,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60639,10 +50674,7 @@ "test/core/json/corpus/b021dd7cd98b63092685ea092df0dc01c8f63334" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60650,10 +50682,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60661,10 +50690,7 @@ "test/core/json/corpus/b17485b8bdec8809b3819a83753ca893871df403" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60672,10 +50698,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60683,10 +50706,7 @@ "test/core/json/corpus/b32ef51eca9c6c658e6fb75fdf96bbba066404e7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60694,10 +50714,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60705,10 +50722,7 @@ "test/core/json/corpus/b3f0c7f6bb763af1be91d9e74eabfeb199dc1f1f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60716,10 +50730,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60727,10 +50738,7 @@ "test/core/json/corpus/b45a1635ec526bcc890f9d735976704e516c5f19" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60738,10 +50746,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60749,10 +50754,7 @@ "test/core/json/corpus/b50ce51a7baa28cd298ebd05b4a3b9b70f9d4370" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60760,10 +50762,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60771,10 +50770,7 @@ "test/core/json/corpus/b5126721812b925426b30d283d2bb8b6969f230a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60782,10 +50778,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60793,10 +50786,7 @@ "test/core/json/corpus/b57af943a3ee411bffeaa3872eec9c6fb01569a4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60804,10 +50794,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60815,10 +50802,7 @@ "test/core/json/corpus/b5abf6fd22ed0f852781de35d043059d0f86f3cd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60826,10 +50810,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60837,10 +50818,7 @@ "test/core/json/corpus/b6589fc6ab0dc82cf12099d1c2d40ab994e8410c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60848,10 +50826,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60859,10 +50834,7 @@ "test/core/json/corpus/b6f19238d2b04c5b86a17369093dafda34f332e7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60870,10 +50842,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60881,10 +50850,7 @@ "test/core/json/corpus/b858cb282617fb0956d960215c8e84d1ccf909c6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60892,10 +50858,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60903,10 +50866,7 @@ "test/core/json/corpus/b9c38fad09c80db7781fefbe51039752de575ecc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60914,10 +50874,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60925,10 +50882,7 @@ "test/core/json/corpus/bb407c8992800444201dccfe744dac49c0295fde" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60936,10 +50890,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60947,10 +50898,7 @@ "test/core/json/corpus/bc335734f73502b92d2bd3587259ce915985f0ee" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60958,10 +50906,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60969,10 +50914,7 @@ "test/core/json/corpus/bd113c2c8a2328e3674c680c7cff829a6c8ab924" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -60980,10 +50922,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -60991,10 +50930,7 @@ "test/core/json/corpus/be051d58015d4af1977a5dfd14ef3fd070ecc9d2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61002,10 +50938,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61013,10 +50946,7 @@ "test/core/json/corpus/be461a0cd1fda052a69c3fd94f8cf5f6f86afa34" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61024,10 +50954,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61035,10 +50962,7 @@ "test/core/json/corpus/bef524502f8dbbc45af717ece01ec88edd7f903b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61046,10 +50970,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61057,10 +50978,7 @@ "test/core/json/corpus/bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61068,10 +50986,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61079,10 +50994,7 @@ "test/core/json/corpus/c0b6a90832b78ed5f6d129d3640c612540527c85" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61090,10 +51002,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61101,10 +51010,7 @@ "test/core/json/corpus/c18d315f0d35849b2aae4a47cab4608204b85d76" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61112,10 +51018,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61123,10 +51026,7 @@ "test/core/json/corpus/c257fd6bc9e5254a733378ab4ddd39629c4a3069" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61134,10 +51034,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61145,10 +51042,7 @@ "test/core/json/corpus/c2bf7f49d8f2e13a60af4473b3b3451b65b3aa9a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61156,10 +51050,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61167,10 +51058,7 @@ "test/core/json/corpus/c308517acf6f7088634d491a1608240f83a3ac95" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61178,10 +51066,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61189,10 +51074,7 @@ "test/core/json/corpus/c3badd71ef8a51b97ce93cbfe99f6778048f2128" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61200,10 +51082,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61211,10 +51090,7 @@ "test/core/json/corpus/c482a632702ae7f532d126e70149dda4fadc3cd7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61222,10 +51098,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61233,10 +51106,7 @@ "test/core/json/corpus/c541bb86e55b98e083b141114066f9c17d853374" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61244,10 +51114,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61255,10 +51122,7 @@ "test/core/json/corpus/c5b50b9015b6aaedd7eb1077b1204858f837b53c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61266,10 +51130,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61277,10 +51138,7 @@ "test/core/json/corpus/c62ef0dbd1350da9ea5a32e56672d385837643e7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61288,10 +51146,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61299,10 +51154,7 @@ "test/core/json/corpus/c7a34d6d49e1da1ccd490350c2df3a168ed09ae8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61310,10 +51162,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61321,10 +51170,7 @@ "test/core/json/corpus/c88c4bec8d440c56d3ea7abce39276f0927dbe0a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61332,10 +51178,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61343,10 +51186,7 @@ "test/core/json/corpus/c92f147bfc034003ac42ed9e62a16c84102ab417" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61354,10 +51194,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61365,10 +51202,7 @@ "test/core/json/corpus/c96b0fe6034668edf37ef0f5f391d5107953dc06" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61376,10 +51210,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61387,10 +51218,7 @@ "test/core/json/corpus/cac74aa5d7aab7fce0253f00c1a025980c1f9b7a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61398,10 +51226,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61409,10 +51234,7 @@ "test/core/json/corpus/caea0a0e6d8708cf682eaa446c344da56a7d5515" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61420,10 +51242,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61431,10 +51250,7 @@ "test/core/json/corpus/cc8a3dd2678d4b400ad630f402012b894e841b05" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61442,10 +51258,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61453,10 +51266,7 @@ "test/core/json/corpus/cd851bec7adad52f79777fb9347d5fd2f9486aa7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61464,10 +51274,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61475,10 +51282,7 @@ "test/core/json/corpus/ce3899b62ba3efe00eb31ddad2861ffe16a30d06" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61486,10 +51290,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61497,10 +51298,7 @@ "test/core/json/corpus/ce8b76fdcdbf1c951afc2b115be9acc8a6358b32" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61508,10 +51306,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61519,10 +51314,7 @@ "test/core/json/corpus/cec87b67871fc7a59652bc3546fbbb68e4d31e28" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61530,10 +51322,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61541,10 +51330,7 @@ "test/core/json/corpus/cf32406111908544e504c84731147f072cdf2fbd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61552,10 +51338,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61563,10 +51346,7 @@ "test/core/json/corpus/cf35dc76bf9a2052636c1ecc92942161830dcdc3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61574,10 +51354,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61585,10 +51362,7 @@ "test/core/json/corpus/cf6a5e6bfe4f15b43e411dd2782e10f1670c9767" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61596,10 +51370,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61607,10 +51378,7 @@ "test/core/json/corpus/cfc45616f5f0e7c25df91f6984ff5f6f1648beab" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61618,10 +51386,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61629,10 +51394,7 @@ "test/core/json/corpus/cff891e5858ae68d08ecc8470ca6a68c9438bfa3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61640,10 +51402,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61651,10 +51410,7 @@ "test/core/json/corpus/cfff4e9d08cba81b663dd1999710008342851e19" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61662,10 +51418,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61673,10 +51426,7 @@ "test/core/json/corpus/crash-f21867fe8b6df0b54c13e2e6e613dce871ecf0f0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61684,10 +51434,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61695,10 +51442,7 @@ "test/core/json/corpus/d1db03c626fb16c3b9cd44cc38cf40ebd355a194" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61706,10 +51450,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61717,10 +51458,7 @@ "test/core/json/corpus/d85ca051da784c0441898c5affbf11a2ae8f56bc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61728,10 +51466,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61739,10 +51474,7 @@ "test/core/json/corpus/da03f536ceaf609972aa2a699687cc6f73ac0dcd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61750,10 +51482,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61761,10 +51490,7 @@ "test/core/json/corpus/da4b9237bacccdf19c0760cab7aec4a8359010b0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61772,10 +51498,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61783,10 +51506,7 @@ "test/core/json/corpus/dcc45e405208d7a2db33d0b5b9da2a2f1b034957" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61794,10 +51514,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61805,10 +51522,7 @@ "test/core/json/corpus/dcc60d3aaa1fc4d00201a3512284fcb79b5b68ef" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61816,10 +51530,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61827,10 +51538,7 @@ "test/core/json/corpus/dd0567ae57bf3cc85891a1ca988c2945d9186678" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61838,10 +51546,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61849,10 +51554,7 @@ "test/core/json/corpus/dd890a5a32e9f0489c6c77695f2155041f00fc9a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61860,10 +51562,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61871,10 +51570,7 @@ "test/core/json/corpus/df88e2baf7b76ffb2e94b9da57fd8d137f44b1ef" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61882,10 +51578,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61893,10 +51586,7 @@ "test/core/json/corpus/e00ee378c3f6e0b3cd89bd6e7517478d093f73dd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61904,10 +51594,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61915,10 +51602,7 @@ "test/core/json/corpus/e0c124e90d068e2a70a3e148052869033453ec58" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61926,10 +51610,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61937,10 +51618,7 @@ "test/core/json/corpus/e0d87b1f3e54e5adc5c2205f9e14772822a25766" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61948,10 +51626,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61959,10 +51634,7 @@ "test/core/json/corpus/e1199df649697c570db5d6b2ea09d755eddd32b7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61970,10 +51642,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -61981,10 +51650,7 @@ "test/core/json/corpus/e235f6f2a8b6a22117f1baa932fb6c69799e1136" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -61992,10 +51658,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62003,10 +51666,7 @@ "test/core/json/corpus/e3a654055a867ae62d8e68fa2c410228ac55cb6d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62014,10 +51674,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62025,10 +51682,7 @@ "test/core/json/corpus/e3c680aac46b9c46392e3b2c43ecdcc1547f2023" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62036,10 +51690,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62047,10 +51698,7 @@ "test/core/json/corpus/e3d134b35cc25a4861d90023c95988ec6103ddd5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62058,10 +51706,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62069,10 +51714,7 @@ "test/core/json/corpus/e3ff65de4b1622315c3b34b7a5e39bffb275489d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62080,10 +51722,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62091,10 +51730,7 @@ "test/core/json/corpus/e4a4085cc31476f5de9047422851d8ccf86339df" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62102,10 +51738,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62113,10 +51746,7 @@ "test/core/json/corpus/e4e3c69da200af932c8a79fa055d7aeea28eb1d1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62124,10 +51754,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62135,10 +51762,7 @@ "test/core/json/corpus/e6c3dd630428fd54834172b8fd2735fed9416da4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62146,10 +51770,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62157,10 +51778,7 @@ "test/core/json/corpus/e71eb37fca2070521e1e07c503c2bcd6445b35ea" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62168,10 +51786,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62179,10 +51794,7 @@ "test/core/json/corpus/e760e6e22ae8cd1ea78fe28b5eb1f3d7b5fdc536" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62190,10 +51802,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62201,10 +51810,7 @@ "test/core/json/corpus/e95ff1142118a2ca5b84935612a8a64d55360e64" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62212,10 +51818,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62223,10 +51826,7 @@ "test/core/json/corpus/e9c5e2c67930513941753c2d54591c7098c82f6c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62234,10 +51834,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62245,10 +51842,7 @@ "test/core/json/corpus/eb26070d17ffa908204912e75cb4313835042038" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62256,10 +51850,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62267,10 +51858,7 @@ "test/core/json/corpus/ebc6aee49e5ae57722df86e7fa33c420f045a449" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62278,10 +51866,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62289,10 +51874,7 @@ "test/core/json/corpus/ed1dc11d713e7487de18ce8317b62916959206d0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62300,10 +51882,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62311,10 +51890,7 @@ "test/core/json/corpus/ede3f66106acd7796da8b3942d029fe213058286" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62322,10 +51898,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62333,10 +51906,7 @@ "test/core/json/corpus/eed7bd220cd511b6d42ce6553019266a22a3d56a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62344,10 +51914,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62355,10 +51922,7 @@ "test/core/json/corpus/f090932162756b798b1a050b05e3d36a3437c4fc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62366,10 +51930,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62377,10 +51938,7 @@ "test/core/json/corpus/f1905eaa84ba6a3593ec6ac0486a5b42893c01f1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62388,10 +51946,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62399,10 +51954,7 @@ "test/core/json/corpus/f4635fbbf765ead81a261ca152df02622e182d2c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62410,10 +51962,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62421,10 +51970,7 @@ "test/core/json/corpus/f46eeb1020c7c4153e742a50bc24c2c6939dab1e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62432,10 +51978,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62443,10 +51986,7 @@ "test/core/json/corpus/f473451610783521d51bc08cdd920ddd97f8a71f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62454,10 +51994,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62465,10 +52002,7 @@ "test/core/json/corpus/f63aa599600f6e7d648c4287905e16e8e6e479fd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62476,10 +52010,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62487,10 +52018,7 @@ "test/core/json/corpus/f667dcf1c06e87db2dc49d86ea1c285e796f8f8c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62498,10 +52026,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62509,10 +52034,7 @@ "test/core/json/corpus/f8d0f85975e49b959799cc52847110cc940b9db1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62520,10 +52042,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62531,10 +52050,7 @@ "test/core/json/corpus/f92c47e35da42d79a48beff54b93cd28f55f05fb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62542,10 +52058,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62553,10 +52066,7 @@ "test/core/json/corpus/f9a33bb8bd78d869fbafa402d9be58940ce2c318" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62564,10 +52074,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62575,10 +52082,7 @@ "test/core/json/corpus/fbf6f3156c1bd4bb701839bc0e26533bdccd1c9a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62586,10 +52090,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62597,10 +52098,7 @@ "test/core/json/corpus/fe2ef495a1152561572949784c16bf23abb28057" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62608,10 +52106,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62619,10 +52114,7 @@ "test/core/json/corpus/fe5dbbcea5ce7e2988b8c69bcfdfde8904aabc1f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62630,10 +52122,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62641,10 +52130,7 @@ "test/core/json/corpus/ff8fb34603c7f772768d61504954553e6bed173c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62652,10 +52138,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62663,10 +52146,7 @@ "test/core/json/corpus/test1.json" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62674,10 +52154,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62685,10 +52162,7 @@ "test/core/json/corpus/test2.json" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62696,10 +52170,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62707,10 +52178,7 @@ "test/core/json/corpus/test3.json" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62718,10 +52186,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62729,10 +52194,7 @@ "test/core/json/corpus/test4.json" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62740,10 +52202,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62751,10 +52210,7 @@ "test/core/json/corpus/test5.json" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62762,10 +52218,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62773,10 +52226,7 @@ "test/core/json/corpus/test6.json" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62784,10 +52234,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62795,10 +52242,7 @@ "test/core/json/corpus/test7.json" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62806,10 +52250,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62817,10 +52258,7 @@ "test/core/json/corpus/test8.json" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62828,10 +52266,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62839,10 +52274,7 @@ "test/core/json/corpus/test9.json" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62850,10 +52282,7 @@ "language": "c", "name": "json_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62861,10 +52290,7 @@ "test/core/nanopb/corpus_response/0052f8fb6a7884ced8a6754aa13441be1f7dcd51" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62872,10 +52298,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62883,10 +52306,7 @@ "test/core/nanopb/corpus_response/0c35544f40d428d103e9c5b969ad9cd16767b110" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62894,10 +52314,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62905,10 +52322,7 @@ "test/core/nanopb/corpus_response/0c60ee9ed55c9af6190b132ef6636c1d2abe4540" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62916,10 +52330,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62927,10 +52338,7 @@ "test/core/nanopb/corpus_response/0ecb3e69889c036a86d21eb942077dc9abd649be" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62938,10 +52346,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62949,10 +52354,7 @@ "test/core/nanopb/corpus_response/1324c95dafe597fe05f9babe92fe6fbf181c1897" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62960,10 +52362,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62971,10 +52370,7 @@ "test/core/nanopb/corpus_response/14eb42f7423081b455820daa2c02b358315dc0fa" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -62982,10 +52378,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -62993,10 +52386,7 @@ "test/core/nanopb/corpus_response/23121c5f633db5d7c1a9f2225240754246fee513" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63004,10 +52394,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63015,10 +52402,7 @@ "test/core/nanopb/corpus_response/235548307ee9f2b0855fded42a871990d9ade956" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63026,10 +52410,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63037,10 +52418,7 @@ "test/core/nanopb/corpus_response/28ed3a797da3c48c309a4ef792147f3c56cfec40" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63048,10 +52426,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63059,10 +52434,7 @@ "test/core/nanopb/corpus_response/2bf123dbfa1d37a04493b5662a4b3b9c147485fc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63070,10 +52442,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63081,10 +52450,7 @@ "test/core/nanopb/corpus_response/2d4c0908ecc0310ea234d10b6bdb4f4ca3c41dd1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63092,10 +52458,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63103,10 +52466,7 @@ "test/core/nanopb/corpus_response/304e8cdc9122b709ec2c063a5c8c38489a788033" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63114,10 +52474,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63125,10 +52482,7 @@ "test/core/nanopb/corpus_response/324d4a2aed8bc1840fee212fd38dadec80a72ea2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63136,10 +52490,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63147,10 +52498,7 @@ "test/core/nanopb/corpus_response/33353a0b011901a13d010c6b165074ccdaa717ac" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63158,10 +52506,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63169,10 +52514,7 @@ "test/core/nanopb/corpus_response/37dfead09389fcd9b9d24ef817a0fed13d8ff2b0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63180,10 +52522,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63191,10 +52530,7 @@ "test/core/nanopb/corpus_response/47879cc364be304754f6af15563ad6f9a538da41" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63202,10 +52538,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63213,10 +52546,7 @@ "test/core/nanopb/corpus_response/49a5cef4c730ecab22712b156ddba5106f165afd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63224,10 +52554,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63235,10 +52562,7 @@ "test/core/nanopb/corpus_response/4bbbbb794a098deeacff73b774c30f12c54ceacb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63246,10 +52570,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63257,10 +52578,7 @@ "test/core/nanopb/corpus_response/4c498ce69c8476f745693deb23272930e05cad60" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63268,10 +52586,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63279,10 +52594,7 @@ "test/core/nanopb/corpus_response/4fb5e3085c32e9bccac9e18343cca07017d037de" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63290,10 +52602,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63301,10 +52610,7 @@ "test/core/nanopb/corpus_response/4fe5e46c1299e7f3e8a41dde3ae1bf1b60b4a43c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63312,10 +52618,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63323,10 +52626,7 @@ "test/core/nanopb/corpus_response/670cc6bae958cb4f15e7297fe63959ac5799aa42" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63334,10 +52634,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63345,10 +52642,7 @@ "test/core/nanopb/corpus_response/675f3263af7d1bbb084872f2b23f6d363227e85d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63356,10 +52650,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63367,10 +52658,7 @@ "test/core/nanopb/corpus_response/67fe0d2acc727c8a39a707b92c6cebda9bd20986" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63378,10 +52666,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63389,10 +52674,7 @@ "test/core/nanopb/corpus_response/6995dd153f712ad257ab5a365e5a4b84dc676ed3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63400,10 +52682,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63411,10 +52690,7 @@ "test/core/nanopb/corpus_response/6d15065785eb8f4b5f17357a520cb4815a2cb355" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63422,10 +52698,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63433,10 +52706,7 @@ "test/core/nanopb/corpus_response/73285d7a70d73b517648067520d921e4477dbbfa" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63444,10 +52714,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63455,10 +52722,7 @@ "test/core/nanopb/corpus_response/747d1ed8bee4c6f0438beaf88ae76d8ef9f63da2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63466,10 +52730,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63477,10 +52738,7 @@ "test/core/nanopb/corpus_response/763878a34b3adeb99a03b54d09768a4451617016" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63488,10 +52746,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63499,10 +52754,7 @@ "test/core/nanopb/corpus_response/7b4b0c2555178333ba15203a930c88ef7e7500e7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63510,10 +52762,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63521,10 +52770,7 @@ "test/core/nanopb/corpus_response/7b8a91aa46e370eb61307b4998889dc89775462f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63532,10 +52778,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63543,10 +52786,7 @@ "test/core/nanopb/corpus_response/7cd11836c64f98742fa7beccec5c981ef4dd62ae" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63554,10 +52794,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63565,10 +52802,7 @@ "test/core/nanopb/corpus_response/7d8f4f045e70e8a2cb45dc3c001504f5c2614b16" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63576,10 +52810,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63587,10 +52818,7 @@ "test/core/nanopb/corpus_response/7e9848558fb004e14795b3ebd3e1488dcde1db8c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63598,10 +52826,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63609,10 +52834,7 @@ "test/core/nanopb/corpus_response/89734c37ee267e69a6950c6d60ee541c1be5ccff" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63620,10 +52842,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63631,10 +52850,7 @@ "test/core/nanopb/corpus_response/9034aaf45143996a2b14465c352ab0c6fa26b221" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63642,10 +52858,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63653,10 +52866,7 @@ "test/core/nanopb/corpus_response/91e3b6a3484ab4b95cdeecc5aefe1291824060e8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63664,10 +52874,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63675,10 +52882,7 @@ "test/core/nanopb/corpus_response/95cd94c858e5e97f7df4a5eb7552e5e0d5ce1ec4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63686,10 +52890,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63697,10 +52898,7 @@ "test/core/nanopb/corpus_response/971f42d5a4d9816145ebc9dd28ba33ed3f5860b0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63708,10 +52906,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63719,10 +52914,7 @@ "test/core/nanopb/corpus_response/9db3a1854de87fd643b910aeab50553afc73e667" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63730,10 +52922,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63741,10 +52930,7 @@ "test/core/nanopb/corpus_response/a147873135c6c52d4da03c260a0165bc0ab1b979" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63752,10 +52938,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63763,10 +52946,7 @@ "test/core/nanopb/corpus_response/a710eead945dabbbffa213a980c75f9463a27398" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63774,10 +52954,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63785,10 +52962,7 @@ "test/core/nanopb/corpus_response/a72406e3ca06d941fe8e168bbf67da88a81c947b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63796,10 +52970,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63807,10 +52978,7 @@ "test/core/nanopb/corpus_response/a8a62a7ebb7d68b211ae319e082575935c07d188" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63818,10 +52986,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63829,10 +52994,7 @@ "test/core/nanopb/corpus_response/a8abd012eb59b862bf9bc1ea443d2f35a1a2e222" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63840,10 +53002,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63851,10 +53010,7 @@ "test/core/nanopb/corpus_response/aab56035a3533b5d83a32a439f179eb678250113" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63862,10 +53018,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63873,10 +53026,7 @@ "test/core/nanopb/corpus_response/ac174acef2c5da26fadc7270bab9c8c4e938c463" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63884,10 +53034,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63895,10 +53042,7 @@ "test/core/nanopb/corpus_response/acbbd60eeb76e41ce254d0fef353b92abe69c831" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63906,10 +53050,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63917,10 +53058,7 @@ "test/core/nanopb/corpus_response/c1eed32e1e353737987da851ad760312ea8e557c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63928,10 +53066,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63939,10 +53074,7 @@ "test/core/nanopb/corpus_response/c4214ace2c4bab24bb356f71aedca08544baad70" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63950,10 +53082,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63961,10 +53090,7 @@ "test/core/nanopb/corpus_response/c4f87a6290aee1acfc1f26083974ce94621fca64" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63972,10 +53098,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -63983,10 +53106,7 @@ "test/core/nanopb/corpus_response/d285d78d3ba966b4b199453d38ead1aa36a7484f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -63994,10 +53114,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64005,10 +53122,7 @@ "test/core/nanopb/corpus_response/df5200f371cff3cae0e1595cd86d641725f5d1ba" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64016,10 +53130,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64027,10 +53138,7 @@ "test/core/nanopb/corpus_response/dfc66cb172919102f3ba14f6816228aa46f78154" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64038,10 +53146,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64049,10 +53154,7 @@ "test/core/nanopb/corpus_response/e53e789a4c175c6a2c468472f1047d0fe8db1177" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64060,10 +53162,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64071,10 +53170,7 @@ "test/core/nanopb/corpus_response/e67fe6794e755ea801272980f2c272edb027f6dc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64082,10 +53178,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64093,10 +53186,7 @@ "test/core/nanopb/corpus_response/ead61e86fedf118df8e44ed70ce002be651cf291" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64104,10 +53194,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64115,10 +53202,7 @@ "test/core/nanopb/corpus_response/eced8b29efbdc82eb8a1d0865c5f382f0ff78446" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64126,10 +53210,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64137,10 +53218,7 @@ "test/core/nanopb/corpus_response/f107c60f00da44a2c412c5b89c733efe5f9be4aa" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64148,10 +53226,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64159,10 +53234,7 @@ "test/core/nanopb/corpus_response/f58a9135d07ea9a5e3e710f6b3bf6d48d5942dfd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64170,10 +53242,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64181,10 +53250,7 @@ "test/core/nanopb/corpus_response/f8c2c4ddd2f474b4839f13a9be862c00ab0ece77" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64192,10 +53258,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64203,10 +53266,7 @@ "test/core/nanopb/corpus_response/faa1781e1444bba5b8c677bc5e2a38d023a1ec65" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64214,10 +53274,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64225,10 +53282,7 @@ "test/core/nanopb/corpus_response/fccda587af845f0685275960649d8f4a45272a95" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64236,10 +53290,7 @@ "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64247,10 +53298,7 @@ "test/core/nanopb/corpus_serverlist/000def12957806bb0d40005cb651d35b4cde7b4e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64258,10 +53306,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64269,10 +53314,7 @@ "test/core/nanopb/corpus_serverlist/0068af2acc3020f344ee84b2c8adfb90492354c3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64280,10 +53322,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64291,10 +53330,7 @@ "test/core/nanopb/corpus_serverlist/009132022c3a1660b701728ac92e26baf82e8eac" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64302,10 +53338,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64313,10 +53346,7 @@ "test/core/nanopb/corpus_serverlist/00bf0233aa1155b34a3081e4a2b7a1c9cdf8ea1e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64324,10 +53354,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64335,10 +53362,7 @@ "test/core/nanopb/corpus_serverlist/013197cfb12b59755b807501c6d6615859f9cd3f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64346,10 +53370,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64357,10 +53378,7 @@ "test/core/nanopb/corpus_serverlist/018a4332eb19f2398162317cb6ad2e8cf700dfd6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64368,10 +53386,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64379,10 +53394,7 @@ "test/core/nanopb/corpus_serverlist/0273d3496bf5f4594e59083ac319f8f863a15be0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64390,10 +53402,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64401,10 +53410,7 @@ "test/core/nanopb/corpus_serverlist/0355002521e74dcdb3a0c633338bd02ab1d85312" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64412,10 +53418,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64423,10 +53426,7 @@ "test/core/nanopb/corpus_serverlist/053d8d6ceeba9453c97d0ee5374db863e6f77ad4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64434,10 +53434,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64445,10 +53442,7 @@ "test/core/nanopb/corpus_serverlist/0628c29e3ae264f8fa08652435bb3e61afe60883" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64456,10 +53450,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64467,10 +53458,7 @@ "test/core/nanopb/corpus_serverlist/065e91578e5359b70a668164310af6f0dd40e922" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64478,10 +53466,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64489,10 +53474,7 @@ "test/core/nanopb/corpus_serverlist/06b4b617d5937da8a7b58aed5341dc5ef6d1bcd7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64500,10 +53482,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64511,10 +53490,7 @@ "test/core/nanopb/corpus_serverlist/07216a4f5934890b89d845f6256546c2681350ce" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64522,10 +53498,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64533,10 +53506,7 @@ "test/core/nanopb/corpus_serverlist/08584e8308b7f52f0fe380358800d7f585cba89c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64544,10 +53514,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64555,10 +53522,7 @@ "test/core/nanopb/corpus_serverlist/085a37568e99ec5855bd96affd259921515479e8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64566,10 +53530,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64577,10 +53538,7 @@ "test/core/nanopb/corpus_serverlist/0903d1e9297179c18de6a3707b16f27d0d54ed67" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64588,10 +53546,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64599,10 +53554,7 @@ "test/core/nanopb/corpus_serverlist/0aa20a75bff4e8af10330c66d288e900146f1a39" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64610,10 +53562,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64621,10 +53570,7 @@ "test/core/nanopb/corpus_serverlist/0ae76e2b24ca999bd5e09e517aa4d88f5b5f58a4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64632,10 +53578,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64643,10 +53586,7 @@ "test/core/nanopb/corpus_serverlist/0c3025fdfb008a6563ea2a2bb6cbc79b8ccbf8f3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64654,10 +53594,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64665,10 +53602,7 @@ "test/core/nanopb/corpus_serverlist/0d219165cd317142afa36b8b5476cc022c95c4e6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64676,10 +53610,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64687,10 +53618,7 @@ "test/core/nanopb/corpus_serverlist/0e053123dd6256de5aff55b0731f913de250c18e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64698,10 +53626,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64709,10 +53634,7 @@ "test/core/nanopb/corpus_serverlist/0e065f98325849ac05eed515865b33dba0264cd4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64720,10 +53642,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64731,10 +53650,7 @@ "test/core/nanopb/corpus_serverlist/0e4ff715d491c9f0b471c400b71804739b6d400a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64742,10 +53658,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64753,10 +53666,7 @@ "test/core/nanopb/corpus_serverlist/0ec94942046cd7e00bc058204c1d046075ca9531" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64764,10 +53674,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64775,10 +53682,7 @@ "test/core/nanopb/corpus_serverlist/0f0e8da530eb8c924cee6985d9c3dfd93274ef8c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64786,10 +53690,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64797,10 +53698,7 @@ "test/core/nanopb/corpus_serverlist/0ff365225c981d74b89499d1e708684ed4d0b570" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64808,10 +53706,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64819,10 +53714,7 @@ "test/core/nanopb/corpus_serverlist/113b1efff1677c1b9a24f89aec0c3ecc228ddf62" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64830,10 +53722,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64841,10 +53730,7 @@ "test/core/nanopb/corpus_serverlist/11697d621eab6743ba22715722d5b23830b79075" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64852,10 +53738,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64863,10 +53746,7 @@ "test/core/nanopb/corpus_serverlist/12463318b795c756f389bc0fb1cca9645eafef28" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64874,10 +53754,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64885,10 +53762,7 @@ "test/core/nanopb/corpus_serverlist/12784250cf16ec999529f601ae5c5798e853d34a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64896,10 +53770,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64907,10 +53778,7 @@ "test/core/nanopb/corpus_serverlist/13122d08c1cee0dae6434605917d4cc6d8ea8cc5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64918,10 +53786,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64929,10 +53794,7 @@ "test/core/nanopb/corpus_serverlist/148a1118649dd8aa9b4ed778efdf7c1611aa5d27" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64940,10 +53802,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64951,10 +53810,7 @@ "test/core/nanopb/corpus_serverlist/15dea2bb5fb36a3dd5172796da66a821a32918e7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64962,10 +53818,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64973,10 +53826,7 @@ "test/core/nanopb/corpus_serverlist/16488fe15a7e33cb41f2b7c159c99154464b3fd3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -64984,10 +53834,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -64995,10 +53842,7 @@ "test/core/nanopb/corpus_serverlist/1870a48a3c9c1dd9027cbd85beb503b43cff6e89" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65006,10 +53850,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65017,10 +53858,7 @@ "test/core/nanopb/corpus_serverlist/1900b6a9123667a79020319aa7fd54d230bc7073" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65028,10 +53866,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65039,10 +53874,7 @@ "test/core/nanopb/corpus_serverlist/1a000f1cbccd2ab6f7e623e015ed2e84284c9dbf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65050,10 +53882,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65061,10 +53890,7 @@ "test/core/nanopb/corpus_serverlist/1c1d403f6175d52ac4430d1ef2401b549761707e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65072,10 +53898,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65083,10 +53906,7 @@ "test/core/nanopb/corpus_serverlist/1c2ae0e1915e18dffc2215e9121f1afe0e4335c4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65094,10 +53914,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65105,10 +53922,7 @@ "test/core/nanopb/corpus_serverlist/1c5d2eef52426db9d0842f3d57b27a219434c512" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65116,10 +53930,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65127,10 +53938,7 @@ "test/core/nanopb/corpus_serverlist/1d0676867c1ebce84531035fa7eb86ed00762df5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65138,10 +53946,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65149,10 +53954,7 @@ "test/core/nanopb/corpus_serverlist/1d92b263fa70450b0d0aeb81bf5d2f69eefbbd99" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65160,10 +53962,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65171,10 +53970,7 @@ "test/core/nanopb/corpus_serverlist/1e843ed4864d6a808b671dd6769ae191ac8a13ad" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65182,10 +53978,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65193,10 +53986,7 @@ "test/core/nanopb/corpus_serverlist/1eb06a34ee568d584c4b33472788889bc68af3f5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65204,10 +53994,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65215,10 +54002,7 @@ "test/core/nanopb/corpus_serverlist/2169c2b4d560d74a5487df68b56f3af1d648f544" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65226,10 +54010,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65237,10 +54018,7 @@ "test/core/nanopb/corpus_serverlist/21f8f7583e58c1c81a3ac8237b5fa58071edf8a4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65248,10 +54026,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65259,10 +54034,7 @@ "test/core/nanopb/corpus_serverlist/231e348407fdcb14412c691b0b20982940160ccd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65270,10 +54042,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65281,10 +54050,7 @@ "test/core/nanopb/corpus_serverlist/27b8f060e3296eaef77dcdd4c2cd11d5650604ac" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65292,10 +54058,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65303,10 +54066,7 @@ "test/core/nanopb/corpus_serverlist/28ed3a797da3c48c309a4ef792147f3c56cfec40" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65314,10 +54074,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65325,10 +54082,7 @@ "test/core/nanopb/corpus_serverlist/291fcc6e043942638fa3c865c0a1be5e4dcc0e70" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65336,10 +54090,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65347,10 +54098,7 @@ "test/core/nanopb/corpus_serverlist/2a7f6c1f8fdc090b24ceb90ab4f3a7b331c06c86" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65358,10 +54106,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65369,10 +54114,7 @@ "test/core/nanopb/corpus_serverlist/2b85f180fe56f84925b274819ce10a8972a594e7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65380,10 +54122,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65391,10 +54130,7 @@ "test/core/nanopb/corpus_serverlist/2dea73d7d10ba0dcfd103f7542bdf7458e772b2b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65402,10 +54138,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65413,10 +54146,7 @@ "test/core/nanopb/corpus_serverlist/2e9c19f98ef88b83ec2dea8b1b7f92b8337f757b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65424,10 +54154,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65435,10 +54162,7 @@ "test/core/nanopb/corpus_serverlist/2fbd59ffb74aba392b86f4fe2ff8067b6d45cce8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65446,10 +54170,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65457,10 +54178,7 @@ "test/core/nanopb/corpus_serverlist/31059c32ea28d37b7442f51b20e966665662783c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65468,10 +54186,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65479,10 +54194,7 @@ "test/core/nanopb/corpus_serverlist/31f78e35feb36037864df5f8f47136f8e6e4768a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65490,10 +54202,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65501,10 +54210,7 @@ "test/core/nanopb/corpus_serverlist/326d322d1aa31696a14518830e544770f12146ee" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65512,10 +54218,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65523,10 +54226,7 @@ "test/core/nanopb/corpus_serverlist/337df26552e0884ff133cc1be8e72020be38f457" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65534,10 +54234,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65545,10 +54242,7 @@ "test/core/nanopb/corpus_serverlist/33a2a0aa86956097e034b5ee16aeceacee7efc34" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65556,10 +54250,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65567,10 +54258,7 @@ "test/core/nanopb/corpus_serverlist/33d175d1ecb3a85be7dd93d24efc3ddda0a85ad6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65578,10 +54266,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65589,10 +54274,7 @@ "test/core/nanopb/corpus_serverlist/3718a1b790db16bcfc4ec30691fab24ea7bb0b74" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65600,10 +54282,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65611,10 +54290,7 @@ "test/core/nanopb/corpus_serverlist/37aa3946054035b712102a62b71c94747dfd1491" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65622,10 +54298,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65633,10 +54306,7 @@ "test/core/nanopb/corpus_serverlist/37b697adc0708ad12e4ed7355f3f8fdf1b7919ca" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65644,10 +54314,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65655,10 +54322,7 @@ "test/core/nanopb/corpus_serverlist/37bf4642c5e5a806e2042cdf5ead9bf3c97b9ac1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65666,10 +54330,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65677,10 +54338,7 @@ "test/core/nanopb/corpus_serverlist/37d94ca6a20303389b35404f3dfd20aaa9ff0851" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65688,10 +54346,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65699,10 +54354,7 @@ "test/core/nanopb/corpus_serverlist/39278604f6a1102366464bbe769ae846e542bc56" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65710,10 +54362,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65721,10 +54370,7 @@ "test/core/nanopb/corpus_serverlist/396b57d9a11a1b135e36ad266e155cc0c3b77d21" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65732,10 +54378,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65743,10 +54386,7 @@ "test/core/nanopb/corpus_serverlist/39a49db120a807fe4e80c502254a5009625c7599" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65754,10 +54394,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65765,10 +54402,7 @@ "test/core/nanopb/corpus_serverlist/39f04d1c6d4beefa3e3d6eae3a5317d969787055" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65776,10 +54410,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65787,10 +54418,7 @@ "test/core/nanopb/corpus_serverlist/3b199b80209fa0b8ffedba4381019f8729cc09d6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65798,10 +54426,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65809,10 +54434,7 @@ "test/core/nanopb/corpus_serverlist/3ccf7ffb96c3e4789409db33cc12bfd8ddc24c1a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65820,10 +54442,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65831,10 +54450,7 @@ "test/core/nanopb/corpus_serverlist/3d04382d1fe11ff3b717100aece7f9eff2d04b9b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65842,10 +54458,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65853,10 +54466,7 @@ "test/core/nanopb/corpus_serverlist/3d4eb9f836bb40cf4c734073bcba8b73e4cc93ae" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65864,10 +54474,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65875,10 +54482,7 @@ "test/core/nanopb/corpus_serverlist/41dc8c55e41d32c30865f9761931ddd4c5b740f8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65886,10 +54490,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65897,10 +54498,7 @@ "test/core/nanopb/corpus_serverlist/41ef7b74d212f8f7f6681edcffd0db719030d31d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65908,10 +54506,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65919,10 +54514,7 @@ "test/core/nanopb/corpus_serverlist/431187b5926fa7d0823305a9f87635616ea3ef27" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65930,10 +54522,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65941,10 +54530,7 @@ "test/core/nanopb/corpus_serverlist/44c6da04b8378986721f7225e70a1514695c176c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65952,10 +54538,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65963,10 +54546,7 @@ "test/core/nanopb/corpus_serverlist/450161236e37a1dfc0da6398c4876df82ff640ac" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65974,10 +54554,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -65985,10 +54562,7 @@ "test/core/nanopb/corpus_serverlist/45257a176ca6a05ec65a6df430bbb6b85d0a676f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -65996,10 +54570,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66007,10 +54578,7 @@ "test/core/nanopb/corpus_serverlist/46d1c2f2edcc9cdc0d1698fa0c8853cb19a6e7d9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66018,10 +54586,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66029,10 +54594,7 @@ "test/core/nanopb/corpus_serverlist/4764bd4297bf0c405348d2bb87b8fbc02beadcb8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66040,10 +54602,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66051,10 +54610,7 @@ "test/core/nanopb/corpus_serverlist/48199bfd0e2c160f56d03e881bb5dfe276eec462" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66062,10 +54618,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66073,10 +54626,7 @@ "test/core/nanopb/corpus_serverlist/48e865c56e8db13640d6ecbfc0f2486eb77e07d1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66084,10 +54634,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66095,10 +54642,7 @@ "test/core/nanopb/corpus_serverlist/499b003b8b98edd9dbe2668c8c6af948769d7e87" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66106,10 +54650,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66117,10 +54658,7 @@ "test/core/nanopb/corpus_serverlist/4a55591c4b390c5a36cecc6f1b6f5105300b546b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66128,10 +54666,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66139,10 +54674,7 @@ "test/core/nanopb/corpus_serverlist/4d33f97ec69c64e14dcf205be36a6319ddb8a20d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66150,10 +54682,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66161,10 +54690,7 @@ "test/core/nanopb/corpus_serverlist/4dbfb08904739928e19c2f459040b35ac410f699" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66172,10 +54698,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66183,10 +54706,7 @@ "test/core/nanopb/corpus_serverlist/501bd6fe1de2719cf8d2c517a071e5d883fbe766" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66194,10 +54714,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66205,10 +54722,7 @@ "test/core/nanopb/corpus_serverlist/5208871ea8948223b64b304336cea41ac3240244" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66216,10 +54730,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66227,10 +54738,7 @@ "test/core/nanopb/corpus_serverlist/5348c71be34967458403bd4b58bb2a8a744d35ee" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66238,10 +54746,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66249,10 +54754,7 @@ "test/core/nanopb/corpus_serverlist/54362c2f6965268d0835a992c3ba656171b8f044" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66260,10 +54762,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66271,10 +54770,7 @@ "test/core/nanopb/corpus_serverlist/54411aa13f6d9118028171935322bbbc74c15329" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66282,10 +54778,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66293,10 +54786,7 @@ "test/core/nanopb/corpus_serverlist/54c50af22d147f192918499b4b3819eb389468a4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66304,10 +54794,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66315,10 +54802,7 @@ "test/core/nanopb/corpus_serverlist/55441aac903d96b36bf8a11bc804234bcf0c04da" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66326,10 +54810,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66337,10 +54818,7 @@ "test/core/nanopb/corpus_serverlist/56e1a7c279482a57fcbca43468df96a791ee22b4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66348,10 +54826,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66359,10 +54834,7 @@ "test/core/nanopb/corpus_serverlist/57cbea7c563d5c4b6b290271b0009c3f348d92da" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66370,10 +54842,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66381,10 +54850,7 @@ "test/core/nanopb/corpus_serverlist/57e11c7a62f0fc807d7b51bb1ef0f0e22f43795b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66392,10 +54858,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66403,10 +54866,7 @@ "test/core/nanopb/corpus_serverlist/585183c1a240df6926689fe1bd8cb434664db4d8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66414,10 +54874,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66425,10 +54882,7 @@ "test/core/nanopb/corpus_serverlist/5b2ee8ca40508bf108a729dcb228191670ec34d6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66436,10 +54890,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66447,10 +54898,7 @@ "test/core/nanopb/corpus_serverlist/5b47eabaf74479348fd0318f174d649dbe96e7d2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66458,10 +54906,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66469,10 +54914,7 @@ "test/core/nanopb/corpus_serverlist/5ba93c9db0cff93f52b521d7420e43f6eda2784f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66480,10 +54922,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66491,10 +54930,7 @@ "test/core/nanopb/corpus_serverlist/5cc827e33932ccf8c72c6a839074e856d93463d8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66502,10 +54938,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66513,10 +54946,7 @@ "test/core/nanopb/corpus_serverlist/5cc89bbf687f94ff87241a8f935905e1c441de33" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66524,10 +54954,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66535,10 +54962,7 @@ "test/core/nanopb/corpus_serverlist/5ec6596f12462fe9f36924c262f97408b54bbba8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66546,10 +54970,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66557,10 +54978,7 @@ "test/core/nanopb/corpus_serverlist/5f8f3af69295223fb04c37d28035bb75b4cbd705" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66568,10 +54986,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66579,10 +54994,7 @@ "test/core/nanopb/corpus_serverlist/5fd76d48b9fefecbdabd4511decc161b25db79dd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66590,10 +55002,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66601,10 +55010,7 @@ "test/core/nanopb/corpus_serverlist/614cf839ccac2d896d61a0ba0ab1f42b2fabafea" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66612,10 +55018,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66623,10 +55026,7 @@ "test/core/nanopb/corpus_serverlist/618305cc2d3d3814d78b77ffbf421b769bd862cf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66634,10 +55034,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66645,10 +55042,7 @@ "test/core/nanopb/corpus_serverlist/61dfcd913c4f0a8d005bd089c34e95d8dbbf1897" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66656,10 +55050,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66667,10 +55058,7 @@ "test/core/nanopb/corpus_serverlist/65a89e10aab00039680e1f7d014737b634c74d8d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66678,10 +55066,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66689,10 +55074,7 @@ "test/core/nanopb/corpus_serverlist/66a273dbf5e37410efd45518a42b06a65cffe1f0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66700,10 +55082,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66711,10 +55090,7 @@ "test/core/nanopb/corpus_serverlist/673ff0de0702e8098892060a5365c175d8ef18fc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66722,10 +55098,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66733,10 +55106,7 @@ "test/core/nanopb/corpus_serverlist/68465c782c37bfdd98ac493b0458444bb94336e5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66744,10 +55114,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66755,10 +55122,7 @@ "test/core/nanopb/corpus_serverlist/688451dee13d0be420598c6e205a3bc419173e18" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66766,10 +55130,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66777,10 +55138,7 @@ "test/core/nanopb/corpus_serverlist/68a1d9150e1380c219e0a1deb3993f321e000ecd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66788,10 +55146,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66799,10 +55154,7 @@ "test/core/nanopb/corpus_serverlist/69f49bf7ae8886f5b4c6296fdb1c570256919604" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66810,10 +55162,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66821,10 +55170,7 @@ "test/core/nanopb/corpus_serverlist/6a425f414cd69ffffdbaa34d03eb43841b432e11" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66832,10 +55178,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66843,10 +55186,7 @@ "test/core/nanopb/corpus_serverlist/6ca9e6e85f9b007a0920b0112decbd1403d506da" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66854,10 +55194,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66865,10 +55202,7 @@ "test/core/nanopb/corpus_serverlist/6cd62e3d67b4154639adbe753115bfdd770edddb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66876,10 +55210,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66887,10 +55218,7 @@ "test/core/nanopb/corpus_serverlist/6d4f2de4cc427417d6335ff5396ea2588509bb5b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66898,10 +55226,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66909,10 +55234,7 @@ "test/core/nanopb/corpus_serverlist/6ea84030dd0b5b03e4720c244ea8b4ec65e1f236" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66920,10 +55242,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66931,10 +55250,7 @@ "test/core/nanopb/corpus_serverlist/710c1fc8cf7dc1386312c34de5057933fcf868b3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66942,10 +55258,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66953,10 +55266,7 @@ "test/core/nanopb/corpus_serverlist/720e81dcaf83f867288a90293c5de3b088d5c556" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66964,10 +55274,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66975,10 +55282,7 @@ "test/core/nanopb/corpus_serverlist/72cdc8f78ab5237f96ed354264c726ac79ec429c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -66986,10 +55290,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -66997,10 +55298,7 @@ "test/core/nanopb/corpus_serverlist/73535a4f7af7e4c6aa23556cacd63f6929ac33fe" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67008,10 +55306,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67019,10 +55314,7 @@ "test/core/nanopb/corpus_serverlist/73d7b933a5673a4d6f5905006ef6266dda1e4fba" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67030,10 +55322,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67041,10 +55330,7 @@ "test/core/nanopb/corpus_serverlist/753aea13c82d1f8841c2bd4309b1b55d0ae2ba8d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67052,10 +55338,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67063,10 +55346,7 @@ "test/core/nanopb/corpus_serverlist/754428e00e8a1d0471e00bd9e8f060ab88ab640e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67074,10 +55354,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67085,10 +55362,7 @@ "test/core/nanopb/corpus_serverlist/761c29151b23b4d14ce6261626641df1182f7a96" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67096,10 +55370,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67107,10 +55378,7 @@ "test/core/nanopb/corpus_serverlist/7658451dd805f277a5b1c3d4065d752d2d8de5f4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67118,10 +55386,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67129,10 +55394,7 @@ "test/core/nanopb/corpus_serverlist/767e91cedcd9bc1bdac882acc34a53cc23cf4d02" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67140,10 +55402,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67151,10 +55410,7 @@ "test/core/nanopb/corpus_serverlist/77d3754bdd4ea358369c936ed36b974b4181f6ab" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67162,10 +55418,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67173,10 +55426,7 @@ "test/core/nanopb/corpus_serverlist/7a95295bebe6237f65deb15ffeccab22716d574d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67184,10 +55434,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67195,10 +55442,7 @@ "test/core/nanopb/corpus_serverlist/7ad88b82e87fbfb3d4bddaa2f6e201a151e3a007" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67206,10 +55450,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67217,10 +55458,7 @@ "test/core/nanopb/corpus_serverlist/7b1010cc012e34af1d03e8845868ff0e1db3a601" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67228,10 +55466,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67239,10 +55474,7 @@ "test/core/nanopb/corpus_serverlist/7d3ddbd11e82807321c9a53835ea897cf43aa7f2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67250,10 +55482,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67261,10 +55490,7 @@ "test/core/nanopb/corpus_serverlist/7da9c5ab5f049da297b0f4c1322edd696202d02a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67272,10 +55498,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67283,10 +55506,7 @@ "test/core/nanopb/corpus_serverlist/7e265a019c02e5d089152849ac00bb005fa644f5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67294,10 +55514,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67305,10 +55522,7 @@ "test/core/nanopb/corpus_serverlist/7f33bff4f740eb898b908374b0c1badd47566947" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67316,10 +55530,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67327,10 +55538,7 @@ "test/core/nanopb/corpus_serverlist/81f13b9b65891f2bfce77cb183a06045c461fee6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67338,10 +55546,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67349,10 +55554,7 @@ "test/core/nanopb/corpus_serverlist/846a14a480ffa1ad0f6333f3ecf2be3057ce6aed" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67360,10 +55562,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67371,10 +55570,7 @@ "test/core/nanopb/corpus_serverlist/87373a7f89feba2d50591b433f69877044155af2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67382,10 +55578,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67393,10 +55586,7 @@ "test/core/nanopb/corpus_serverlist/8833ba4c780c94fc6c3c466f849c0387acefdb20" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67404,10 +55594,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67415,10 +55602,7 @@ "test/core/nanopb/corpus_serverlist/8c23a5ecd20db4da2c061f3463254e9de104c8b9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67426,10 +55610,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67437,10 +55618,7 @@ "test/core/nanopb/corpus_serverlist/8d883f1577ca8c334b7c6d75ccb71209d71ced13" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67448,10 +55626,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67459,10 +55634,7 @@ "test/core/nanopb/corpus_serverlist/8dc80bd5f5d1fea64412203e304432edcf5f52c4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67470,10 +55642,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67481,10 +55650,7 @@ "test/core/nanopb/corpus_serverlist/8fc9a9ea6ad7d6d51e770076eaddacad9f970c6f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67492,10 +55658,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67503,10 +55666,7 @@ "test/core/nanopb/corpus_serverlist/8fd167de17534776ef57aba2f27675789a11b8db" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67514,10 +55674,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67525,10 +55682,7 @@ "test/core/nanopb/corpus_serverlist/9117d3e51560813b3ce4615dced18fa0e4d0a25a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67536,10 +55690,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67547,10 +55698,7 @@ "test/core/nanopb/corpus_serverlist/921c68eaa8776f7544e195ae52224355d08a2d4d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67558,10 +55706,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67569,10 +55714,7 @@ "test/core/nanopb/corpus_serverlist/9293945411fca2dc81fc34b36b575a384e6d489e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67580,10 +55722,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67591,10 +55730,7 @@ "test/core/nanopb/corpus_serverlist/933287d66c3ff3f0a21f2c583c763f2f65872ef8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67602,10 +55738,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67613,10 +55746,7 @@ "test/core/nanopb/corpus_serverlist/933d1d91283403f0a56571f533f482e9744eb735" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67624,10 +55754,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67635,10 +55762,7 @@ "test/core/nanopb/corpus_serverlist/93855fc41b3e3004ca6ba85f34b985042d4c9869" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67646,10 +55770,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67657,10 +55778,7 @@ "test/core/nanopb/corpus_serverlist/9544f445c39470f05785b52cfc31bb73bda22659" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67668,10 +55786,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67679,10 +55794,7 @@ "test/core/nanopb/corpus_serverlist/97757217fde05ff4fc15c864bf29e9f560fd1c62" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67690,10 +55802,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67701,10 +55810,7 @@ "test/core/nanopb/corpus_serverlist/9877c0f2d40dd43878bb0209bbc4b5fa93bec55a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67712,10 +55818,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67723,10 +55826,7 @@ "test/core/nanopb/corpus_serverlist/98bc5065f79dd9d20cdac14ba28f0cf39908cb5f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67734,10 +55834,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67745,10 +55842,7 @@ "test/core/nanopb/corpus_serverlist/992860817f7fb0e49423607355dab973aa7ab815" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67756,10 +55850,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67767,10 +55858,7 @@ "test/core/nanopb/corpus_serverlist/995ee3d74bc6042fd6a8908c9df5a4cb530378d8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67778,10 +55866,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67789,10 +55874,7 @@ "test/core/nanopb/corpus_serverlist/9a38c24a6e87e99a72a3a4f007b117ec191a1705" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67800,10 +55882,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67811,10 +55890,7 @@ "test/core/nanopb/corpus_serverlist/9aa97a0ffcdc37a8ef487355fb7271eb6891deaa" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67822,10 +55898,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67833,10 +55906,7 @@ "test/core/nanopb/corpus_serverlist/9b9fddc17ed7bc05a81c18f01e800a4e9efd0c8d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67844,10 +55914,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67855,10 +55922,7 @@ "test/core/nanopb/corpus_serverlist/a0d4cb9a5a30bb01e8e4f68d636fb173632ed29d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67866,10 +55930,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67877,10 +55938,7 @@ "test/core/nanopb/corpus_serverlist/a1e070288ec564d10a8c59779aa07fa771fa1d4f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67888,10 +55946,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67899,10 +55954,7 @@ "test/core/nanopb/corpus_serverlist/a23d10723415d20f4ef1ed9b14d9dc24494856a0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67910,10 +55962,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67921,10 +55970,7 @@ "test/core/nanopb/corpus_serverlist/a245750cfe4212dca7bfde918de85f64eb053232" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67932,10 +55978,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67943,10 +55986,7 @@ "test/core/nanopb/corpus_serverlist/a24bbe3600f4dfd61bb8415c6a291e0521e4f267" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67954,10 +55994,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67965,10 +56002,7 @@ "test/core/nanopb/corpus_serverlist/a25104d039a549c8d457ecea3b55369ed312f086" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67976,10 +56010,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -67987,10 +56018,7 @@ "test/core/nanopb/corpus_serverlist/a33c4fcabe6aebe012cd01c8cb851a9ab0a12098" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -67998,10 +56026,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68009,10 +56034,7 @@ "test/core/nanopb/corpus_serverlist/a393e1727b0decca9f193179765c3a83d7096437" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68020,10 +56042,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68031,10 +56050,7 @@ "test/core/nanopb/corpus_serverlist/a5507f06be4735a3a9e416ea986d52c1a6a20909" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68042,10 +56058,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68053,10 +56066,7 @@ "test/core/nanopb/corpus_serverlist/a5adf028c902d17dd6a7ddeadabbed2b36420313" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68064,10 +56074,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68075,10 +56082,7 @@ "test/core/nanopb/corpus_serverlist/a6aa1237a282ee3a93f2544bb6bb7704e565209e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68086,10 +56090,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68097,10 +56098,7 @@ "test/core/nanopb/corpus_serverlist/a871185cabce7b96c9e2f6ffb40d9901c774b335" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68108,10 +56106,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68119,10 +56114,7 @@ "test/core/nanopb/corpus_serverlist/a89d0e67bf53e22533a635f103d1fd400969ad56" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68130,10 +56122,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68141,10 +56130,7 @@ "test/core/nanopb/corpus_serverlist/a8d1b4e5672a501d7a6cd14b2929297f3a82e035" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68152,10 +56138,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68163,10 +56146,7 @@ "test/core/nanopb/corpus_serverlist/aa614cc8d05a3a58c30a890c10b9a0c1d609b228" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68174,10 +56154,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68185,10 +56162,7 @@ "test/core/nanopb/corpus_serverlist/aa65320376f63805cc82b247612b2e05b87bdbee" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68196,10 +56170,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68207,10 +56178,7 @@ "test/core/nanopb/corpus_serverlist/abd3f6e2cc8887942de20e1c257427b825aed0ad" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68218,10 +56186,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68229,10 +56194,7 @@ "test/core/nanopb/corpus_serverlist/ad0653a3a63675a7ce797e69b4673866b88ace33" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68240,10 +56202,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68251,10 +56210,7 @@ "test/core/nanopb/corpus_serverlist/ae2ce27806f67312e0d0e29a492db9ab9cb9bf4e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68262,10 +56218,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68273,10 +56226,7 @@ "test/core/nanopb/corpus_serverlist/ae4c0e671bd004165a1e7877d9c67249a165d2df" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68284,10 +56234,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68295,10 +56242,7 @@ "test/core/nanopb/corpus_serverlist/af75c24dff7e22948ed141c763a1309e6f540bcc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68306,10 +56250,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68317,10 +56258,7 @@ "test/core/nanopb/corpus_serverlist/b0f228c6d0cbbc9f10117f344d5aae6f001d00fa" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68328,10 +56266,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68339,10 +56274,7 @@ "test/core/nanopb/corpus_serverlist/b2c6eab05580b85cda591093d3f05c44bf453fce" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68350,10 +56282,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68361,10 +56290,7 @@ "test/core/nanopb/corpus_serverlist/b35281c0aae174d1ddc8999d97b9713f8004f285" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68372,10 +56298,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68383,10 +56306,7 @@ "test/core/nanopb/corpus_serverlist/b484ae40795cf9730ba94d5a4ca40aa47b88eacb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68394,10 +56314,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68405,10 +56322,7 @@ "test/core/nanopb/corpus_serverlist/b49c2fed1417a981ba29b32be73ee1700bea7ec9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68416,10 +56330,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68427,10 +56338,7 @@ "test/core/nanopb/corpus_serverlist/b68542373c05c0ed25231d09955b2c699d37c45b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68438,10 +56346,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68449,10 +56354,7 @@ "test/core/nanopb/corpus_serverlist/b6d42cbe913f7275b574a71f0768781bdb6f45b7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68460,10 +56362,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68471,10 +56370,7 @@ "test/core/nanopb/corpus_serverlist/b80b6c2cae83c2097c7e4c1fb181d47cb8fd0519" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68482,10 +56378,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68493,10 +56386,7 @@ "test/core/nanopb/corpus_serverlist/b90ab62d8591182fd90cd21cdb893178d97f7e0e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68504,10 +56394,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68515,10 +56402,7 @@ "test/core/nanopb/corpus_serverlist/ba45c93ee6b8b286798d8791ec049207c448f7cd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68526,10 +56410,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68537,10 +56418,7 @@ "test/core/nanopb/corpus_serverlist/ba67e81ef0f9a14bf5a1ca228bff87c681e83a44" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68548,10 +56426,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68559,10 +56434,7 @@ "test/core/nanopb/corpus_serverlist/bbd1f06ddee4fbbd0e5c9c915889862e5df34f9c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68570,10 +56442,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68581,10 +56450,7 @@ "test/core/nanopb/corpus_serverlist/bd982feb5dd4362e6bd9746ed216c25ce2749df4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68592,10 +56458,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68603,10 +56466,7 @@ "test/core/nanopb/corpus_serverlist/be77053335e6496288fcf8b6c4d0b4abf86493ff" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68614,10 +56474,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68625,10 +56482,7 @@ "test/core/nanopb/corpus_serverlist/bfb53203499969fac4f4be48e1bcd9235c2fa101" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68636,10 +56490,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68647,10 +56498,7 @@ "test/core/nanopb/corpus_serverlist/c143576bdb5b34ad89fa3319507ae382a721f587" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68658,10 +56506,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68669,10 +56514,7 @@ "test/core/nanopb/corpus_serverlist/c1ac502a15c53a90a1934f4a31d30f93db36dc8a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68680,10 +56522,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68691,10 +56530,7 @@ "test/core/nanopb/corpus_serverlist/c1b29883768551fa5aadc38ba6eaad8007b9b85b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68702,10 +56538,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68713,10 +56546,7 @@ "test/core/nanopb/corpus_serverlist/c2331fe0660ab5e411f6d38968c706aed390d8f6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68724,10 +56554,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68735,10 +56562,7 @@ "test/core/nanopb/corpus_serverlist/c32647119c244cc018bb1863853d5c7bd37090df" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68746,10 +56570,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68757,10 +56578,7 @@ "test/core/nanopb/corpus_serverlist/c4098733900c27861bbf74a71afcbbd93d62f8ee" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68768,10 +56586,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68779,10 +56594,7 @@ "test/core/nanopb/corpus_serverlist/c4f5769bf3b4f2a55c006b4cf5a3bba44b347241" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68790,10 +56602,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68801,10 +56610,7 @@ "test/core/nanopb/corpus_serverlist/c6ea7b2d47402a458d5d03235bb042b61e05b2e8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68812,10 +56618,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68823,10 +56626,7 @@ "test/core/nanopb/corpus_serverlist/c7255dc48b42d44f6c0676d6009051b7e1aa885b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68834,10 +56634,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68845,10 +56642,7 @@ "test/core/nanopb/corpus_serverlist/c7d77af55176ae0ae5e59f46e48e1e6ea108d799" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68856,10 +56650,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68867,10 +56658,7 @@ "test/core/nanopb/corpus_serverlist/c80827341dcdf1c21b303b82ec7e6df7eaf63f3d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68878,10 +56666,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68889,10 +56674,7 @@ "test/core/nanopb/corpus_serverlist/c9501031a75c067b6602e2831f03421b87be4496" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68900,10 +56682,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68911,10 +56690,7 @@ "test/core/nanopb/corpus_serverlist/c98f88d962dfbc2a83e08bfbd8a87b0cc5a8b330" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68922,10 +56698,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68933,10 +56706,7 @@ "test/core/nanopb/corpus_serverlist/ccd33fa22b2983978f9617b3cde76ea05b683c2c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68944,10 +56714,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68955,10 +56722,7 @@ "test/core/nanopb/corpus_serverlist/cd0e7701fd79879c56f680817a0d2705751b1f44" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68966,10 +56730,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68977,10 +56738,7 @@ "test/core/nanopb/corpus_serverlist/cd1c2b5c2684d831aab5265e9cd6f1ee045dab9b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -68988,10 +56746,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -68999,10 +56754,7 @@ "test/core/nanopb/corpus_serverlist/cf98e8b01e7a759f28a9c5f59c896317d74ac47c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69010,10 +56762,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69021,10 +56770,7 @@ "test/core/nanopb/corpus_serverlist/d1d171589e035be85dc347278f0735151a342d68" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69032,10 +56778,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69043,10 +56786,7 @@ "test/core/nanopb/corpus_serverlist/d243143bf9b8adf6be92a157428ec6cbfd785423" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69054,10 +56794,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69065,10 +56802,7 @@ "test/core/nanopb/corpus_serverlist/d2cd278979f2842ebd890f1d84712750273ad0fc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69076,10 +56810,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69087,10 +56818,7 @@ "test/core/nanopb/corpus_serverlist/d2e96eb2699c7dd4a183f13d3a063a1aa9c192fd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69098,10 +56826,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69109,10 +56834,7 @@ "test/core/nanopb/corpus_serverlist/d3178f8b0d26275667c27bb8533a61643213e4d8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69120,10 +56842,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69131,10 +56850,7 @@ "test/core/nanopb/corpus_serverlist/d46f536ea4b601c0ff313a5eb5b47e2b55aa9eb0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69142,10 +56858,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69153,10 +56866,7 @@ "test/core/nanopb/corpus_serverlist/d4be3038631eac422022ee23f43b47905a15b2b5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69164,10 +56874,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69175,10 +56882,7 @@ "test/core/nanopb/corpus_serverlist/d56b30a2d1b5a2a13ae00392bcb4ca72085310d9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69186,10 +56890,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69197,10 +56898,7 @@ "test/core/nanopb/corpus_serverlist/d67f85948143218d11e2fb7936a119741036045d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69208,10 +56906,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69219,10 +56914,7 @@ "test/core/nanopb/corpus_serverlist/d6930ea81dfd91856a06a0c16483e47616642b4b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69230,10 +56922,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69241,10 +56930,7 @@ "test/core/nanopb/corpus_serverlist/d737c10038a92add90e2ebea5c174ed249de8018" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69252,10 +56938,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69263,10 +56946,7 @@ "test/core/nanopb/corpus_serverlist/d758a67f018b176dfc7d29630cf8cb587f5b2a6b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69274,10 +56954,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69285,10 +56962,7 @@ "test/core/nanopb/corpus_serverlist/dc7139105787f3ba67d7971d80796e9cf5786a91" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69296,10 +56970,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69307,10 +56978,7 @@ "test/core/nanopb/corpus_serverlist/dc8ec35f43e994b9c4ac61275d6b934990d42181" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69318,10 +56986,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69329,10 +56994,7 @@ "test/core/nanopb/corpus_serverlist/dd2694fe12a018bc6af6f288b5c22a030eec8049" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69340,10 +57002,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69351,10 +57010,7 @@ "test/core/nanopb/corpus_serverlist/de7424f44508582a953f137195533b7a0191eda7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69362,10 +57018,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69373,10 +57026,7 @@ "test/core/nanopb/corpus_serverlist/de91a02040d792dfcb71a4cb5aa4c1c006201273" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69384,10 +57034,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69395,10 +57042,7 @@ "test/core/nanopb/corpus_serverlist/deb576067b11f6e2a3a39b0f2ef38ddae5c67b18" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69406,10 +57050,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69417,10 +57058,7 @@ "test/core/nanopb/corpus_serverlist/df58248c414f342c81e056b40bee12d17a08bf61" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69428,10 +57066,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69439,10 +57074,7 @@ "test/core/nanopb/corpus_serverlist/e076020b2826abd3a4b960fb33a35fd7d0606dd8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69450,10 +57082,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69461,10 +57090,7 @@ "test/core/nanopb/corpus_serverlist/e0bcf682342967c002621acd2563a2157826d156" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69472,10 +57098,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69483,10 +57106,7 @@ "test/core/nanopb/corpus_serverlist/e1edca08a7654b42a64647abb0e773eddddb580b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69494,10 +57114,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69505,10 +57122,7 @@ "test/core/nanopb/corpus_serverlist/e2fa528289b5971f5b40b3687a2a6f0d17348de6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69516,10 +57130,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69527,10 +57138,7 @@ "test/core/nanopb/corpus_serverlist/e52af0ba8750572b98f3a8968de77811ddff0893" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69538,10 +57146,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69549,10 +57154,7 @@ "test/core/nanopb/corpus_serverlist/e5a0f40647f805b5001645ce2d94505e72fa64f3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69560,10 +57162,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69571,10 +57170,7 @@ "test/core/nanopb/corpus_serverlist/e69762f0c6a2750c0b03503a6aec90ffc94bcb72" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69582,10 +57178,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69593,10 +57186,7 @@ "test/core/nanopb/corpus_serverlist/e7064f0b80f61dbc65915311032d27baa569ae2a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69604,10 +57194,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69615,10 +57202,7 @@ "test/core/nanopb/corpus_serverlist/e863a4420854c36168d2b8dd39ce474ebe11cd26" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69626,10 +57210,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69637,10 +57218,7 @@ "test/core/nanopb/corpus_serverlist/e8993f97bb9c83f87c64cfc429095eeaccf32953" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69648,10 +57226,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69659,10 +57234,7 @@ "test/core/nanopb/corpus_serverlist/e9875d9a54b3ebc57df4da886cd30a39252ac666" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69670,10 +57242,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69681,10 +57250,7 @@ "test/core/nanopb/corpus_serverlist/e98a9d92bbbac9b1e64c0641e967adebd681b2aa" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69692,10 +57258,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69703,10 +57266,7 @@ "test/core/nanopb/corpus_serverlist/eb7c31f48c77b742fa29126ac78a2c06c41208e8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69714,10 +57274,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69725,10 +57282,7 @@ "test/core/nanopb/corpus_serverlist/ec174492517f988010ed3ddbd003cb388f477bb6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69736,10 +57290,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69747,10 +57298,7 @@ "test/core/nanopb/corpus_serverlist/ec4d6a393be7ec80ccb8c531337a7fc3ef140e66" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69758,10 +57306,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69769,10 +57314,7 @@ "test/core/nanopb/corpus_serverlist/ecd40909ab5e2c61841d9fb95b8aacc87651100c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69780,10 +57322,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69791,10 +57330,7 @@ "test/core/nanopb/corpus_serverlist/ed17c8ddb6cc8a0b653dc87aca999d31e80c781a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69802,10 +57338,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69813,10 +57346,7 @@ "test/core/nanopb/corpus_serverlist/ee0b476126bb1c2249b299323718ecef1250645e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69824,10 +57354,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69835,10 +57362,7 @@ "test/core/nanopb/corpus_serverlist/ee1fb6a0b4139c07f1cf6bce850eaac9a2db29ba" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69846,10 +57370,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69857,10 +57378,7 @@ "test/core/nanopb/corpus_serverlist/eeac145c017ed35305f0ae69f820fc41e26e7997" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69868,10 +57386,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69879,10 +57394,7 @@ "test/core/nanopb/corpus_serverlist/efac7390c6e3a653d3ce93c3d6902f2f1c281ce0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69890,10 +57402,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69901,10 +57410,7 @@ "test/core/nanopb/corpus_serverlist/f0f0dace93d51cd8e045aeacca89424fc836eebc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69912,10 +57418,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69923,10 +57426,7 @@ "test/core/nanopb/corpus_serverlist/f3341b8cc55c0bb6e2d0a1f7f06d68e4f04057f5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69934,10 +57434,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69945,10 +57442,7 @@ "test/core/nanopb/corpus_serverlist/f59ff56e341b94f2bddfd718b48ae9ab1692d720" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69956,10 +57450,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69967,10 +57458,7 @@ "test/core/nanopb/corpus_serverlist/f5a1824b9fd9f124df8097017607bcfa00eccfce" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -69978,10 +57466,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -69989,10 +57474,7 @@ "test/core/nanopb/corpus_serverlist/f5b92b69853a5d123bffdc6b0ab093f767ec30ad" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70000,10 +57482,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70011,10 +57490,7 @@ "test/core/nanopb/corpus_serverlist/f6aea4c380e41ddef2489ee581ab35e17fa3e8dd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70022,10 +57498,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70033,10 +57506,7 @@ "test/core/nanopb/corpus_serverlist/f7b7254a3af7c41cb86e4b23bb93c5a6d55e2583" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70044,10 +57514,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70055,10 +57522,7 @@ "test/core/nanopb/corpus_serverlist/f7bdc1b174f53a49c6ef8f8cdb9b8e74e0a5d4ab" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70066,10 +57530,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70077,10 +57538,7 @@ "test/core/nanopb/corpus_serverlist/f98c78c028baf22f39c77faf6e70edb86ac1d927" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70088,10 +57546,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70099,10 +57554,7 @@ "test/core/nanopb/corpus_serverlist/fb440171bca6ff922727e9ff2a4ac40d8d7905ff" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70110,10 +57562,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70121,10 +57570,7 @@ "test/core/nanopb/corpus_serverlist/fc76cc4030b422e4cb5c145c3e8ed122e242acf0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70132,10 +57578,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70143,10 +57586,7 @@ "test/core/nanopb/corpus_serverlist/fcab3b80624b431e464dc12d3b6da1cf538bd15e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70154,10 +57594,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70165,10 +57602,7 @@ "test/core/nanopb/corpus_serverlist/fdb3a9b59798d7e851d9074db69422b1d2df38dd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70176,10 +57610,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70187,10 +57618,7 @@ "test/core/nanopb/corpus_serverlist/fe5de5f387e31b029d589d9b1777fd0d6b3e47b3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70198,10 +57626,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70209,10 +57634,7 @@ "test/core/nanopb/corpus_serverlist/ff52d938aaa10c08b2eb0830fc0066c3b57e040f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70220,10 +57642,7 @@ "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70231,10 +57650,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/01c008fa.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70242,10 +57658,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70253,10 +57666,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/021ec59f.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70264,10 +57674,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70275,10 +57682,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/02918e4ad9e8928845f232c0cb043057add3c9a9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70286,10 +57690,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70297,10 +57698,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/0336e1ff71939de9e2007fdb4aba891e35a37488" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70308,10 +57706,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70319,10 +57714,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/033dd2f6.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70330,10 +57722,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70341,10 +57730,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/0384345c.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70352,10 +57738,39 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/03a304b82629155af693978c2b53439e553f6450" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/03a72675e1969f836094f1ecfec2a7b34418e306" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -70363,10 +57778,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/03b9be1fa172dff5d1543be079b9c64fa2c9a278" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70374,10 +57786,39 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/0416afd6875d9ba55f1e5f86a6456a5445d5e576" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/052c8f28e5884bb48f0d504461272cd3a5893215" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -70385,10 +57826,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/05c3a0390d0f52d241728926fa901599a47e4606" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70396,10 +57834,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70407,10 +57842,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/05efe6d81ce606557691432634e81f61e68b0b81" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70418,10 +57850,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70429,10 +57858,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/06bd2f82fefb9943787d63ea359f9b77072380c2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70440,10 +57866,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70451,10 +57874,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/0766afc7c27c06ea18d896083470d587a380de3c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70462,10 +57882,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70473,10 +57890,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/07ad7e0ea2aaecba37f2429a64e946fc6e2556f1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70484,10 +57898,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70495,10 +57906,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/07c96c06eddbed5a3ce050436bc805f6821cbc9b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70506,10 +57914,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70517,10 +57922,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/081e56ce6f6b1c57adb806fbc5baa9f93f87513a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70528,10 +57930,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70539,10 +57938,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/08492d3d0994005206d1d3213b8747d1026ae1eb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70550,10 +57946,23 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/08c42ef29eff83052c5887855f2fa3e07ebe470c" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -70561,10 +57970,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/09938e3256d06a8e168eb038d8a58b8462f7f697" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70572,10 +57978,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70583,10 +57986,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/0aa599e20761777c2cb9b41cd89e5c2e18f82d9e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70594,10 +57994,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70605,10 +58002,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/0aa7b949.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70616,10 +58010,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70627,10 +58018,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/0abd533e.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70638,10 +58026,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70649,10 +58034,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/0b275a7f.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70660,10 +58042,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70671,10 +58050,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/0c413d2b361b2221585026d42f3046ff4135d2ff" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70682,10 +58058,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70693,10 +58066,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/0d10bb63.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70704,10 +58074,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70715,10 +58082,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/0e349b8762703d080b3a696600e21d64c23a2ed3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70726,10 +58090,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70737,10 +58098,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/0f700e05.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70748,10 +58106,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70759,10 +58114,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/0ff4d220.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70770,10 +58122,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70781,10 +58130,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/10724098.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70792,10 +58138,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70803,10 +58146,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/108e270a272e312fc97ec23004b80fdc7bad3906" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70814,10 +58154,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70825,10 +58162,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/11516d58.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70836,10 +58170,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70847,10 +58178,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/11cda3f70be4b507ea936bca93af9ce5aaab3be7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70858,10 +58186,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70869,10 +58194,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/13501419f349b7855d2e94060bd08b28923d1f37" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70880,10 +58202,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70891,10 +58210,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/1421a8e9f045ac65a0f6938fae93fece1060c41d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70902,10 +58218,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70913,10 +58226,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/146b7d66ad932c4b623eec8004e286d3705697d3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70924,10 +58234,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70935,10 +58242,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/14f9a0cda0d64590430218aaf6dedd9be2a3533f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70946,10 +58250,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70957,10 +58258,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/15ae78a8543a4794a27e6c79b0d34540322b97fd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70968,10 +58266,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -70979,10 +58274,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/15afdcf2cadb93f56dbe36233d8cd7ea9d2bd6fe" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -70990,10 +58282,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71001,10 +58290,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/1650b19093c56a1e86ee192bd9cd8d2266a9e353" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71012,10 +58298,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71023,10 +58306,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/16753235697083ecc45c117287f1d8ce6ad1ad1a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71034,10 +58314,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71045,10 +58322,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/17d7c718ec2597353a5dd2c78d6717a3d6aabfae" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71056,10 +58330,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71067,10 +58338,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/18d8d274aa7c163fd6d0084d5c25c8623e10c541" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71078,10 +58346,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71089,10 +58354,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/18f00b5f.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71100,10 +58362,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71111,10 +58370,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/1939a9021aba59ea2e49d3d0909e6fdf86ac3f9e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71122,10 +58378,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71133,10 +58386,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/1a69d5fc.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71144,10 +58394,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71155,10 +58402,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/1aa6897b6eebb8c68c972cc5025b39c7e60c17fe" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71166,10 +58410,23 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/1ba889ea1543297824e99e641e6ca8b91f45732e" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -71177,10 +58434,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/1cf17783de9e662f3720847f2d83d86dcdcab500" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71188,10 +58442,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71199,10 +58450,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/1cfdde7a.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71210,10 +58458,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71221,10 +58466,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/1d614f3d6b826f844178a77094bedb534748a362" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71232,10 +58474,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71243,10 +58482,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/1e92aaa5.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71254,10 +58490,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71265,10 +58498,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/1ea5651f.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71276,10 +58506,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71287,10 +58514,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/1f992057.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71298,10 +58522,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71309,10 +58530,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/20fd12d3670571283dc0c5dbb3fc139a8e943790" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71320,10 +58538,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71331,10 +58546,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/21475569.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71342,10 +58554,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71353,10 +58562,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/218c1b123428a07622570947e9b7cdb48c310ca5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71364,10 +58570,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71375,10 +58578,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/21a2dcda.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71386,10 +58586,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71397,10 +58594,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/22ad891a.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71408,10 +58602,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71419,10 +58610,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/2463aea879c5ab49f8409d0e5c062c7e086b034b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71430,10 +58618,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71441,10 +58626,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/24ed80095e58199c52997f174046272f61ce4a8d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71452,10 +58634,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71463,10 +58642,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/25ab638f.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71474,10 +58650,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71485,10 +58658,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/26048c58bd5f2a94843f6fd1e4ab0be04b232636" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71496,10 +58666,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71507,10 +58674,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/26870785fd0564f552af4e0ca418738a85b21086" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71518,10 +58682,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71529,10 +58690,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/2701d1669c2996c097a74c5255d569615357b916" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71540,10 +58698,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71551,10 +58706,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/27ac2ae2.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71562,10 +58714,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71573,10 +58722,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/2814d70c.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71584,10 +58730,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71595,10 +58738,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/282b6585.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71606,10 +58746,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71617,10 +58754,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/2a688fd507072e1cfa2e3bc58652a7cd82dface3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71628,10 +58762,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71639,10 +58770,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/2abe64b96e5e72adcf2dcc43444a69d0fb664b66" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71650,10 +58778,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71661,10 +58786,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/2ad6cedd32cd646ba8e25226c7c13a107c1d6447" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71672,10 +58794,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71683,10 +58802,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/2b14c6e618ec95754ea7e24fe6bc5a3a97df6897" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71694,10 +58810,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71705,10 +58818,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/2b40aa21723c7e67e92e74a3083df008461d591c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71716,10 +58826,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71727,10 +58834,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/2bf69fe6b40734cc3f0abdd765757809b14b0b88" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71738,10 +58842,23 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/2c4c7e2ed6d977ec119b040b328ad09808909a70" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -71749,10 +58866,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/2c6660ba.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71760,10 +58874,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71771,10 +58882,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/2cc6d1f3ee8933518e91b8410781fa6e105b3a15" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71782,10 +58890,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71793,10 +58898,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/2e4805c3.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71804,10 +58906,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71815,10 +58914,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/2f20e2decd09b6f211a5469c67efbada355e6c04" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71826,10 +58922,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71837,10 +58930,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/2f3b1cd6780fe475f76f17e9e36541963d993165" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71848,10 +58938,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71859,10 +58946,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/2fb017cd4c34f4af183d03c4a219d2bb36ee2dd6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71870,10 +58954,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71881,10 +58962,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/30bba77d0f420c4f454011476f3c94e31c50c161" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71892,10 +58970,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71903,10 +58978,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/3224e6cd.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71914,10 +58986,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71925,10 +58994,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/326ec4d5.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71936,10 +59002,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71947,10 +59010,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/3292129aa7f6eba86b70fff64408f18fff895c12" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71958,10 +59018,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71969,10 +59026,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/32b11997.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -71980,10 +59034,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -71991,10 +59042,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/32cecacca27b249bd764f852168036c5f962bd16" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72002,10 +59050,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72013,10 +59058,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/330ad4b6.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72024,10 +59066,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72035,10 +59074,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/33b4cf1ac251f0ba0c014005ef8207afe1dea623" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72046,10 +59082,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72057,10 +59090,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/33e2ecd5c9bbc1f1dcab29d00195e0ab6d04642d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72068,10 +59098,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72079,10 +59106,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/340b032d39e2b212828a2bd1a97e2b6b81dcd41b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72090,10 +59114,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72101,10 +59122,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/34bba9e4.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72112,10 +59130,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72123,10 +59138,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/374262a5acf9cde1f480e7b7254c788e1936a4de" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72134,10 +59146,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72145,10 +59154,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/37ec9df8.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72156,10 +59162,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72167,10 +59170,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/38df7e63181cbd045e5af9dbee463360c8254618" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72178,10 +59178,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72189,10 +59186,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/39ea47bb.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72200,10 +59194,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72211,10 +59202,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/3aa82376296ab5a33f2921d7705b75b78b683c2d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72222,10 +59210,23 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/3b09bf453c6f93983c24c4d5481e55d66213f93a" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -72233,10 +59234,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/3ca5da2f.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72244,10 +59242,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72255,10 +59250,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/3d7ef8c7b05f26e914c479dedb1bef5e378d2d94" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72266,10 +59258,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72277,10 +59266,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/3dc665f93db294b9ccb8fcec94bcc2a91f3a04e7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72288,10 +59274,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72299,10 +59282,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/3de41f3f.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72310,10 +59290,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72321,10 +59298,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/3e2077a4fd2def7b11e618d46245d0aa85824317" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72332,10 +59306,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72343,10 +59314,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/3e3ae35a.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72354,10 +59322,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72365,10 +59330,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/3e787760.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72376,10 +59338,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72387,10 +59346,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/3f3069cf26f761366f947e025f7049254d555e7f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72398,10 +59354,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72409,10 +59362,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/407607d2.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72420,10 +59370,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72431,10 +59378,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/40af8d589c76d7912bec06c2ae1f2466065018e7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72442,10 +59386,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72453,10 +59394,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/418f392319c44d06a018ce4c62569d527829177a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72464,10 +59402,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72475,10 +59410,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/41b31ef0.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72486,10 +59418,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72497,10 +59426,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/422708b4.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72508,10 +59434,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72519,10 +59442,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/422fa704.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72530,10 +59450,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72541,10 +59458,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/4271fbb36e03cee79b21a4a5a65f37ceef58a8cd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72552,10 +59466,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72563,10 +59474,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/42b0afca.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72574,10 +59482,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72585,10 +59490,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/43fc6abab9840be5ee614211f17395b5966f6070" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72596,10 +59498,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72607,10 +59506,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/44516839d35af9ccaf8a2c62f3ce6a723482445e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72618,10 +59514,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72629,10 +59522,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/44f342a6.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72640,10 +59530,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72651,10 +59538,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/4558ddeb.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72662,10 +59546,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72673,10 +59554,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/459c0bf6.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72684,10 +59562,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72695,10 +59570,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/468cf8bf3e31e1013c7c6d2288baac47ff90aa63" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72706,10 +59578,23 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/49cb33cbb60f041e8e99dd718993acd2c3354416" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -72717,10 +59602,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/4aa883d0.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72728,10 +59610,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72739,10 +59618,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/4b7bcb4ae6c0222a1a24d1fb1a5d96519750ca5e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72750,10 +59626,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72761,10 +59634,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/4c412cc1a775cea041fa270483d610afb72f463b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72772,10 +59642,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72783,10 +59650,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/4d55d5ae.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72794,10 +59658,23 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/4d982c41efad2242f8c06630c23c68146153b47b" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -72805,10 +59682,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/4db3d4075ed27f2a2311f85dd1d6df028cc5d083" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72816,10 +59690,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72827,10 +59698,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/4eb269c3.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72838,10 +59706,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72849,10 +59714,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/4ecfe1be695df0d2489dddb52da8bcdeb6ed779d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72860,10 +59722,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72871,10 +59730,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/4f97bd97ab5dc6b4c0f62f8459be8a9593dc83b3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72882,10 +59738,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72893,10 +59746,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/4ff50e49865768323f94116bd98d2314455273cc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72904,10 +59754,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72915,10 +59762,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/508def44e4d60f237f18a40d7058e58a752a74e1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72926,10 +59770,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72937,10 +59778,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/51a1abd1.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72948,10 +59786,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72959,10 +59794,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/52b5478161de7b2eba0f7bfbc29aea985c8d9ee7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72970,10 +59802,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -72981,10 +59810,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/52ecfedca3b2b26e6999b6afc846f3dbd5d35130" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -72992,10 +59818,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73003,10 +59826,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/53d18398c0d484de00afd8d583fe802d55d4da44" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73014,10 +59834,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73025,10 +59842,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/53de507f.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73036,10 +59850,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73047,10 +59858,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/540ada69.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73058,10 +59866,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73069,10 +59874,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/5413b531fe06923ddf2c9e3eb958769374bc2445" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73080,10 +59882,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73091,10 +59890,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/5429f0da.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73102,10 +59898,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73113,10 +59906,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/5435005f.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73124,10 +59914,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73135,10 +59922,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/546367bfdd2b9464fbfe5d74f55d8cd220accbab" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73146,10 +59930,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73157,10 +59938,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/54d0fc6c.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73168,10 +59946,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73179,10 +59954,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/55af20415ead0ddd417f37fa91a4c767b749ee34" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73190,10 +59962,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73201,10 +59970,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/55f6fb1a.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73212,10 +59978,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73223,10 +59986,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/5780565e.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73234,10 +59994,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73245,10 +60002,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/57918260.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73256,10 +60010,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73267,10 +60018,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/5841d898d2cd804f2d6373538e341dfba8a4dfab" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73278,10 +60026,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73289,10 +60034,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/58b88a24.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73300,10 +60042,23 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/59743fe120be6ae1aed1c02230ee1bb460f621ee" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -73311,10 +60066,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/597fdab5.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73322,10 +60074,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73333,10 +60082,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/59ce7091c00075943d79e857c01ad1af5f38c78e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73344,10 +60090,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73355,10 +60098,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/59d0b24d1acd01c749fb4bd6802a5f4dd003ce75" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73366,10 +60106,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73377,10 +60114,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/59dcfde4.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73388,10 +60122,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73399,10 +60130,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/5ac92c4a7fb476393f8275fe4b79a2b13e3bcad9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73410,10 +60138,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73421,10 +60146,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/5d43ac923d7607a16e3d7bf8b838f52622871251" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73432,10 +60154,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73443,10 +60162,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/5d817877.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73454,10 +60170,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73465,10 +60178,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/5e2508e15c79fbe9c2e6c1a393b490356a17efbc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73476,10 +60186,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73487,10 +60194,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/5f758756.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73498,10 +60202,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73509,10 +60210,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/5f820fa8d44229219d0b7c4724e3e40a2ace97f4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73520,10 +60218,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73531,10 +60226,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/61e798bdd49b339983fea4ccfe18efe44afbd69b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73542,10 +60234,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73553,10 +60242,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/62d05f336176a10a2c339c04d818f23b6e9a2637" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73564,10 +60250,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73575,10 +60258,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/6499e2db.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73586,10 +60266,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73597,10 +60274,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/64cdbb31d5eda779d07885fa7881812db7800c05" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73608,10 +60282,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73619,10 +60290,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/65077d2946cfb822cf92c9dfc44517a34589f277" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73630,10 +60298,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73641,10 +60306,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/65099066.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73652,10 +60314,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73663,10 +60322,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/652bfdce.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73674,10 +60330,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73685,10 +60338,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/65d5ae42e6acb429459a1e1a5fb35f09c0f95de2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73696,10 +60346,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73707,10 +60354,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/65fd6cb3058ee0baae854cc7859b7c0c1e1c1166" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73718,10 +60362,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73729,10 +60370,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/6652f7be83a876214affc3f230040757f7db4ea8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73740,10 +60378,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73751,10 +60386,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/67b04816.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73762,10 +60394,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73773,10 +60402,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/67ebf074c7f928c4fe32fef44e5c958cf441c93c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73784,10 +60410,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73795,10 +60418,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/68f564fd8064233897ff704b5955b33a2e29293a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73806,10 +60426,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73817,10 +60434,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/69891e9f.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73828,10 +60442,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73839,10 +60450,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/6c5bb78b51cf5006c92258292de19550985c00ba" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73850,10 +60458,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73861,10 +60466,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/6dc4455c.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73872,10 +60474,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73883,10 +60482,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/6e050e98.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73894,10 +60490,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73905,10 +60498,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/6f3bd9f33ca05bebe3811f7b3ae6ed112e1e45b9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73916,10 +60506,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73927,10 +60514,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/6f9d75e1af7ae7010d32872da888a582a25fddb4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73938,10 +60522,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73949,10 +60530,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/70ebe7f32c63ca8940017eb83e6db4d8b39ee03c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73960,10 +60538,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73971,10 +60546,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/712300b98afdb5f0d15c657c13cea76841164b13" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -73982,10 +60554,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -73993,10 +60562,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/71ab07577909ca4b766f8ea0c6b8ec2bc395fc66" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74004,10 +60570,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74015,10 +60578,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/72296cf9e1052ced4b60e2053aba9f1a569144e9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74026,10 +60586,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74037,10 +60594,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/7342b3febb07521e39abdf4ee976d16199d51239" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74048,10 +60602,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74059,10 +60610,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/746715fe.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74070,10 +60618,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74081,10 +60626,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/76294f12a5974e9f87d8f092d0df5429cf6c0466" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74092,10 +60634,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74103,10 +60642,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/769f5d079151d1b5cab388c47a74f3c297c18d58" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74114,10 +60650,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74125,10 +60658,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/7839f12a8410a73d66e191cb5183d36d09a375e8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74136,10 +60666,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74147,10 +60674,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/7b453adcb9c4bf31dbc448ff32c2bc90ebcbdf0f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74158,10 +60682,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74169,10 +60690,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/7ddfac7d7845b424bf670070781ca6ff8586c63b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74180,10 +60698,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74191,10 +60706,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/7f15bbce.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74202,10 +60714,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74213,10 +60722,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/7ffd05db.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74224,10 +60730,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74235,10 +60738,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/8164d3c4af043c47cfd6966873bccd2353d072bf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74246,10 +60746,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74257,10 +60754,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/81fb19dfcb3c3a18fd9e7c177356479503e75e6f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74268,10 +60762,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74279,10 +60770,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/82dda42ddde662192ebaa96788945b7673bb486b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74290,10 +60778,23 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/830e3f794c53f7b284eb5c635b2943db9ee9aaee" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -74301,10 +60802,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/8338ebee.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74312,10 +60810,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74323,10 +60818,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/84a3c6cf853ff318ae163231ce295171a59d5871" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74334,10 +60826,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74345,10 +60834,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/86a19d13cc65790696299c819cac17b14e337647" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74356,10 +60842,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74367,10 +60850,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/86e6dbf2.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74378,10 +60858,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74389,10 +60866,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/88017b0894db1e6f4e3a6640ffe2876d31a54723" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74400,10 +60874,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74411,10 +60882,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/8846918f967dd6513040c6d382fcd68ff7099873" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74422,10 +60890,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74433,10 +60898,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/885fe25a0b441ef46ab176b88771c133e530cb73" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74444,10 +60906,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74455,10 +60914,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/88e1329b.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74466,10 +60922,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74477,10 +60930,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/8b186384.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74488,10 +60938,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74499,10 +60946,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/8c04817a75fddd71f13779f2ad5b994f45c333a2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74510,10 +60954,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74521,10 +60962,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/8c72c3f35e9b9fd168ad9024c953a703f33ae3c1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74532,10 +60970,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74543,10 +60978,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/8c760938a2a72fa92b27e00e05005e2e4c429359" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74554,10 +60986,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74565,10 +60994,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/8da521d9.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74576,10 +61002,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74587,10 +61010,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/8de81717.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74598,10 +61018,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74609,10 +61026,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/8ec00f45afb097066f47d0bad256a8b856b1efe8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74620,10 +61034,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74631,10 +61042,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/90224b8e.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74642,10 +61050,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74653,10 +61058,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/90240c7c.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74664,10 +61066,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74675,10 +61074,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/9099ac4e83f6460c80b5557c87f653e4c65aa091" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74686,10 +61082,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74697,10 +61090,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/914ed07570b6441365a3636d05850f7316c7f2a8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74708,10 +61098,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74719,10 +61106,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/916b825da0ffc46fdb6120b1044e98ae158fce70" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74730,10 +61114,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74741,10 +61122,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/93beeba2.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74752,10 +61130,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74763,10 +61138,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/93c3ffcb7e3bcb5ed7e37a5b3dfb97b43ca42718" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74774,10 +61146,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74785,10 +61154,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/9540d3ad3fa75bfb95c0d57cefd737611c7069a5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74796,10 +61162,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74807,10 +61170,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/954337ef.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74818,10 +61178,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74829,10 +61186,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/95d25ba2e190fafa2b3ca1e1c467b9ef64868962" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74840,10 +61194,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74851,10 +61202,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/9764015f89a0b7a59f3b5359b0a037b38d6e39d7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74862,10 +61210,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74873,10 +61218,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/97aed4bd.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74884,10 +61226,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74895,10 +61234,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/986c9ca7db83b2cddbae2a0db2dca87f52277074" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74906,10 +61242,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74917,10 +61250,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/9953eb28aa1ed661612a4710a9d16a15de4ae353" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74928,10 +61258,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74939,10 +61266,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/9a176b6f7e0dc5f681a1788d8954f76fabd08cad" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74950,10 +61274,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74961,10 +61282,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/9a6963b0d0fcb0e91a31748c47c6f0e1e842fea9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74972,10 +61290,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -74983,10 +61298,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/9bf7553a.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -74994,10 +61306,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75005,10 +61314,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/9d2d18fce18c790035d8f67ed798703bdda0a949" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75016,10 +61322,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75027,10 +61330,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/a112d484b70e778835fcd478fd651828720791e5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75038,10 +61338,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75049,10 +61346,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/a24bf2dc.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75060,10 +61354,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75071,10 +61362,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/a32be0653ccc65463445b4aaf24a7a1164d5c642" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75082,10 +61370,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75093,10 +61378,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/a357658d.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75104,10 +61386,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75115,10 +61394,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/a3a2b1af.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75126,10 +61402,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75137,10 +61410,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/a5348197.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75148,10 +61418,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75159,10 +61426,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/a5b529754606b96a8c801615ac12a1f6ee5c3f54" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75170,10 +61434,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75181,10 +61442,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/a5cc3762cb2b2cac316c60ddee794016057fb4ff" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75192,21 +61450,15 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { "args": [ - "test/core/end2end/fuzzers/server_fuzzer_corpus/a7e64803.bin" + "test/core/end2end/fuzzers/server_fuzzer_corpus/a5ccb8f124d8ddb5350b90bc0d6b96db280cb7c9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75214,21 +61466,15 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { "args": [ - "test/core/end2end/fuzzers/server_fuzzer_corpus/a8d229374635fa6f2a75ca1669892e1bc244e719" + "test/core/end2end/fuzzers/server_fuzzer_corpus/a7e64803.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75236,21 +61482,15 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { "args": [ - "test/core/end2end/fuzzers/server_fuzzer_corpus/a8f2345b2c949e9e32a434c99accf771f405eb65" + "test/core/end2end/fuzzers/server_fuzzer_corpus/a7fac1265a384fe9e45a9ee3d708b79c4e80505e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75258,21 +61498,15 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { "args": [ - "test/core/end2end/fuzzers/server_fuzzer_corpus/a9463428cdc47d37efb6e3c5633d1e5e78911f16" + "test/core/end2end/fuzzers/server_fuzzer_corpus/a8d229374635fa6f2a75ca1669892e1bc244e719" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75280,21 +61514,15 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { "args": [ - "test/core/end2end/fuzzers/server_fuzzer_corpus/a9966f7181d08f6a9ff8158736ad77a285d743a6" + "test/core/end2end/fuzzers/server_fuzzer_corpus/a8f2345b2c949e9e32a434c99accf771f405eb65" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75302,10 +61530,39 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/a9463428cdc47d37efb6e3c5633d1e5e78911f16" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/a9966f7181d08f6a9ff8158736ad77a285d743a6" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -75313,10 +61570,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/a9e22d93.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75324,10 +61578,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75335,10 +61586,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/aa3c8974.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75346,10 +61594,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75357,10 +61602,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/aa825693.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75368,10 +61610,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75379,10 +61618,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/aa8729d7.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75390,10 +61626,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75401,10 +61634,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/aaafca90a7f59184f3d768a1d6f9093e8f737b8a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75412,10 +61642,23 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/aaf049720c707d4e14e47e7eb31d6a2dda60e66a" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -75423,10 +61666,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/ad810f7f.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75434,10 +61674,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75445,10 +61682,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/aedefcd9bd7fc10b7bf60372da54c43e953523bd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75456,10 +61690,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75467,10 +61698,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/aefcbc29f2caea5038cda4dbc927cdadd9b844c4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75478,10 +61706,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75489,10 +61714,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/b06ce623.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75500,10 +61722,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75511,10 +61730,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/b1128694.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75522,10 +61738,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75533,10 +61746,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/b220d23a13d98d4815b1f7a3e4fe7dd8672b1c83" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75544,10 +61754,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75555,10 +61762,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/b28959dd.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75566,10 +61770,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75577,10 +61778,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/b431df13.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75588,10 +61786,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75599,10 +61794,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/b5acaa52.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75610,10 +61802,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75621,10 +61810,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/b7ce4a4f6eea20c0b83d9f7fa8406a0730ee0040" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75632,10 +61818,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75643,10 +61826,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/b829143b.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75654,10 +61834,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75665,10 +61842,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/b887097732b9c30719f6c7ea7a7cbac531512a31" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75676,10 +61850,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75687,10 +61858,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/b924c842.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75698,10 +61866,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75709,10 +61874,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/bad4f467.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75720,10 +61882,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75731,10 +61890,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/bc9545cebdcb3af82406a5f0c1b286d28f9d4f5a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75742,10 +61898,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75753,10 +61906,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/bd63e44a3b004e7ed471c2367c3efae2c58a676d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75764,10 +61914,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75775,10 +61922,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/be9b6e78.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75786,10 +61930,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75797,10 +61938,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/bf5e21c32becb5839deeb81e9174cf6478a25473" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75808,10 +61946,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75819,10 +61954,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/bfb55acd5b66521eb5bd8ce6b57b3b6895883675" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75830,10 +61962,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75841,10 +61970,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/bfcbffa9.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75852,10 +61978,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75863,10 +61986,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/c004455e9d60bc2fff094e79cd0b38507023e018" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75874,10 +61994,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75885,10 +62002,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/c039ac9a5a570f8fd9064df9320890b885edf9c3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75896,10 +62010,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75907,10 +62018,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/c1188b44.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75918,10 +62026,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75929,10 +62034,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/c12835aa9f3513d3f7179ee4f9976292713f7cb9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75940,10 +62042,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75951,10 +62050,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/c13188118af1634061b6a3947b81618891aeb6a3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75962,10 +62058,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75973,10 +62066,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/c35968bf.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -75984,10 +62074,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -75995,10 +62082,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/c43d97f2.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76006,10 +62090,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76017,10 +62098,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/c4534867.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76028,10 +62106,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76039,10 +62114,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/c4a71cdd29759b51f9cc54175ad69c44b4ab6eb6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76050,10 +62122,23 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/c4e4c7572e005e18d56eac407033da058737a5ab" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -76061,10 +62146,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/c559f565.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76072,10 +62154,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76083,10 +62162,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/c56fada76f5c198232201a608072a1a63e3d3785" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76094,10 +62170,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76105,10 +62178,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/c5ff50ae447ac7a0c8fb3363b2458824d405e64c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76116,10 +62186,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76127,10 +62194,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/c66e84d1.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76138,10 +62202,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76149,10 +62210,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/c6a1d2cc8935808b6e317a69baec1c3cb87cac94" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76160,10 +62218,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76171,10 +62226,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/c7c44b98faa21c8f0645a818a65b60d956d15952" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76182,10 +62234,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76193,10 +62242,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/c8073f5f41970fab4738215e42ec97a4383855e5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76204,10 +62250,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76215,10 +62258,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/c81dec02.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76226,10 +62266,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76237,10 +62274,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/c8812dc8a1ab1592a2d7b71300e1a0a5da6a6382" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76248,10 +62282,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76259,10 +62290,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/ca843c66c4c4807ccb1615b472c79bc459e5c6cb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76270,10 +62298,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76281,10 +62306,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/cbb04be69714f81f5cd09e36e8ea4e69ea73d618" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76292,10 +62314,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76303,10 +62322,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/cc97ece92b72cc2a4d045e16c0e2f2021bc014f8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76314,10 +62330,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76325,10 +62338,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/cca29902.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76336,10 +62346,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76347,10 +62354,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/cdba6c45.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76358,10 +62362,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76369,10 +62370,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/crash-0f4b135c0242669ce425d2662168e9440f8a628d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76380,10 +62378,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76391,10 +62386,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/crash-239cc27a23827ea53b60ccbaee0ecc64dad2bff0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76402,10 +62394,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76413,10 +62402,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/crash-41ab0e868e84612275f77118f9e832bc94ff45c5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76424,10 +62410,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76435,10 +62418,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/crash-7af5da2a8da23d197d9336e32da72c9ff64c15b3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76446,10 +62426,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76457,10 +62434,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/crash-7e121dd3be057176369bea160d873040b32a03dc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76468,10 +62442,23 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/crash-dae0f07934a527989f23f06e630710ff6ca8c809" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -76479,10 +62466,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/crash-e34b0a9a428001cb4094a9ebca76329f578811a4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76490,10 +62474,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76501,10 +62482,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/d0f7eebc.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76512,10 +62490,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76523,10 +62498,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/d2031009d3783fcf083963fa30bb493f7f935541" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76534,10 +62506,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76545,10 +62514,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/d28155c6c92642c61dfb097f7b2eb1d6ced272c0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76556,10 +62522,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76567,10 +62530,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/d6979f0f.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76578,10 +62538,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76589,10 +62546,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/d8a1d141a9e3876b71c7decbe6e3affccf6de397" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76600,10 +62554,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76611,10 +62562,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/d9074e68.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76622,10 +62570,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76633,10 +62578,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/d95556cac07e720909aaf2ac09d876106420463f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76644,10 +62586,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76655,10 +62594,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/d96da249094db51ea92b1413907abfd27a4f2426" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76666,10 +62602,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76677,10 +62610,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/da7e44a9.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76688,10 +62618,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76699,10 +62626,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/dab172ff.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76710,10 +62634,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76721,10 +62642,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/dad922e2daf84cf039f50cf8636eaa9dbd01ff83" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76732,10 +62650,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76743,10 +62658,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/db33559d4afb4c32e68525c000fde16a4c3300f5" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76754,10 +62666,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76765,10 +62674,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/dcabac1ef8b197ef39b188bcf5dc470f9749e903" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76776,10 +62682,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76787,10 +62690,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/df5d3cf5f05eab65ef9d385e263780ae73c42b19" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76798,10 +62698,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76809,10 +62706,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/e0d9a9a7.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76820,10 +62714,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76831,10 +62722,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/e2652fbb.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76842,10 +62730,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76853,10 +62738,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/e2c954e1.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76864,10 +62746,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76875,10 +62754,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/e3bab014.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76886,10 +62762,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76897,10 +62770,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/e7ad0c4b7d0f289c90a3988309e9e03b78f7eea3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76908,10 +62778,23 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/e96ad9c17795e52edc810a08d4fc61fe8790002a" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -76919,10 +62802,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/e9bbe2fe47b7b9c2683e7f17f4a33625c6ffbd8c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76930,10 +62810,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76941,10 +62818,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/e9d96662.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76952,10 +62826,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76963,10 +62834,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/eb66106b.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76974,10 +62842,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -76985,10 +62850,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/eba8472a.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -76996,10 +62858,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77007,10 +62866,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/ed8da77f.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77018,10 +62874,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77029,10 +62882,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/ee64e1ba4897bfd7c6baa1fb72d4c5f83b5654e4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77040,10 +62890,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77051,10 +62898,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/f0387dfdd6b8c925d958113e669ec4a1897034b4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77062,10 +62906,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77073,10 +62914,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/f1121b952e75463cc71137683dc2528f9cbc19b7" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77084,10 +62922,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77095,10 +62930,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/f3220426.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77106,10 +62938,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77117,10 +62946,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/f3d084cf20b92a5f026fe7cc6e5af49bde28693d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77128,10 +62954,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77139,10 +62962,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/f4024b01.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77150,10 +62970,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77161,10 +62978,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/f541d27e.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77172,10 +62986,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77183,10 +62994,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/f5424a9d7bd14317b6de7b15587df28bfde8362d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77194,10 +63002,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77205,10 +63010,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/f5c877c4.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77216,10 +63018,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77227,10 +63026,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/f5f0615030439dda162e8862b6bbd09f81f14d81" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77238,10 +63034,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77249,10 +63042,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/f74b9428.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77260,10 +63050,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77271,10 +63058,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/f7bf0d7bb0dd6e1866ccef9fafc3cb295db2f07f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77282,10 +63066,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77293,10 +63074,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/f826100f.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77304,10 +63082,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77315,10 +63090,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/f88ffb7f3066f2706cfcd9be077595e07834cc15" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77326,10 +63098,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77337,10 +63106,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/f8b46e92c7ceb4c2f2cdcb3452a6d8c58768eaa2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77348,10 +63114,23 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/fa202a5f51cd49f8ea5af60c5f403f797c01c504" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -77359,10 +63138,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/fa36b4280d9e28edd81c5e4d192d1a5c2765e5e4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77370,10 +63146,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77381,10 +63154,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/fb3b0d80.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77392,10 +63162,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77403,10 +63170,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/fb84edfa9e8cbddba26a7184e7fdc219bde556c0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77414,10 +63178,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77425,10 +63186,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/fd14bea45ecaf13af0053900edb2f17b71a0bf09" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77436,10 +63194,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77447,10 +63202,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/fd26e0a6.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77458,10 +63210,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77469,10 +63218,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/fd943e69304dffebf47e1e40b0849e12abeee287" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77480,10 +63226,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77491,10 +63234,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/fdf67df81857577361d319e76559c5e85a257b07" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77502,10 +63242,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77513,10 +63250,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/fe1957b9bc7c6bf9d8b6089c422d72a0f444da6e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77524,10 +63258,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77535,10 +63266,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/fe66893c.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77546,10 +63274,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77557,10 +63282,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/fe69ddfa5827dd560bb0b5d4da7d982273f17ef9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77568,10 +63290,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77579,10 +63298,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/ff227015.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77590,10 +63306,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77601,10 +63314,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/ff898c08.bin" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77612,10 +63322,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77623,10 +63330,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-082763e16153cb6b8f3f5308cd060e822f475e5a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77634,10 +63338,23 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-0aa52e00ddd54f8e129430852c2da95650c354b0" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -77645,10 +63362,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-13501419f349b7855d2e94060bd08b28923d1f37" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77656,10 +63370,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77667,10 +63378,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-14862768a1fe076896fd37e2543ddd23192a9e3c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77678,10 +63386,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77689,10 +63394,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-1a3ebf8f8bb0b5a0109a5ef44734cc64170377f9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77700,10 +63402,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77711,10 +63410,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-1ae0ed17a042aab8a3c3199c83a809b0243d1424" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77722,10 +63418,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77733,10 +63426,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-1b6c4b5c1949adae3efd5e3264bb32a40eea524e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77744,10 +63434,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77755,10 +63442,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-3991c873ba814d0cd03a67d25fff0c8fe8713aca" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77766,10 +63450,23 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-3cec540a680b108dda1e0a8e0bfb2d44e5a4a4e8" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -77777,10 +63474,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-4c6da955e4c101b81a62b2f8e934d94a62ae534b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77788,10 +63482,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77799,10 +63490,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-58f116dfba8d428a01ca596174fca63f4ac523f0" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77810,10 +63498,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77821,10 +63506,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-59f6edc7cf4aeed49b4dc024052db4846d5d7fc8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77832,10 +63514,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77843,10 +63522,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-63ebf780ee6c2003eba622686a4bf94c503ad96e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77854,10 +63530,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77865,10 +63538,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-68ed2d33c9d32f73343c097303c3d5a6a3467c83" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77876,10 +63546,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77887,10 +63554,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-6d37c5e6d7efee56319b1316725fdc5aee5a52c3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77898,10 +63562,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77909,10 +63570,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-6e980a9d12c392175b5f66683e608626ae983276" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77920,10 +63578,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77931,10 +63586,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-7233d53f94386b0339b2c2b01ef2d348f5862f1f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77942,10 +63594,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77953,10 +63602,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-7281d9eaed0d20b0b6b5e7709c57e78fefe9c315" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77964,10 +63610,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -77975,10 +63618,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-73e0a41066bc09c8e3fbd0dd7628445bcdaabb4a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -77986,10 +63626,23 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-84f22ffca68c6e1590a44aa9f6dd0cef1f680c77" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -77997,10 +63650,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-93cd6b3f9786ee107a0e2d135b40d13f96e652ed" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78008,10 +63658,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78019,10 +63666,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-9a176b6f7e0dc5f681a1788d8954f76fabd08cad" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78030,10 +63674,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78041,10 +63682,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-9de2e92150e54982d4e502b18f374f8cd8fd453b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78052,10 +63690,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78063,10 +63698,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-a61a28cf78149518466b87e5463ec5c771dc504e" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78074,10 +63706,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78085,10 +63714,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-aa23c18f6badd88a7bec65e8b04f7801ba624ec6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78096,10 +63722,71 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-adaac86cf1aa1e98e95240c5f92c3708456c3624" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-b281f018cc919301131cf3ed28449cfbd24b6bbf" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-ba0016a62a8576a57f000b90c364847ef6b12dcc" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-ba17346b8e46e6a05aaa7342a959a7c5ab0f1471" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -78107,10 +63794,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-ba2b1fde90cc70d9abae22c4c4cb051aae8aa148" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78118,10 +63802,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78129,10 +63810,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-bda43d420a3e5d5228a5f5130207a1f11fc1c81f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78140,10 +63818,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78151,10 +63826,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-c05c239719a7beeca2c126b7e5ef7251fa615b54" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78162,10 +63834,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78173,10 +63842,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-c151762e5f37e233142059c1b269ce55434cf6a6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78184,10 +63850,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78195,10 +63858,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-cacd0e0c5f7d4169085735400100da4d36397185" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78206,10 +63866,23 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-ccafab6afdc6474610023b47bd7b3e1b9ea4647b" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -78217,10 +63890,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-d3c3cba3897fafec97665411ea1f94a89bb4de7b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78228,10 +63898,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78239,10 +63906,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-d3fcd80cd6f1bb05f5e5084ebb2ee801067863fb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78250,10 +63914,23 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-dc57e96cd02ba32fa4a99c97b6490e9879d30be5" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -78261,10 +63938,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-ddfe613d8791b2d377e14fbdffb18b84a89d49b6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78272,10 +63946,7 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78283,10 +63954,7 @@ "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-f67be653815f6c2c10eea55c8009e1167ac9c20b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78294,10 +63962,39 @@ "language": "c", "name": "server_fuzzer_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-f6c1042f96e15183dcc13b9658d971cc29426d53" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" + ] + }, + { + "args": [ + "test/core/end2end/fuzzers/server_fuzzer_corpus/slow-unit-f9a2773d6502fd4b1ffa73df3c550b0da63af833" + ], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "server_fuzzer_one_entry", + "platforms": [ + "linux" ] }, { @@ -78305,10 +64002,7 @@ "test/core/client_config/uri_corpus/02d156dc5e6f2c11c90c2e06fcee04adf036a342" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78316,10 +64010,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78327,10 +64018,7 @@ "test/core/client_config/uri_corpus/042dc4512fa3d391c5170cf3aa61e6a638f84342" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78338,10 +64026,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78349,10 +64034,7 @@ "test/core/client_config/uri_corpus/0e9bbe975f2027e8c39c89f85f667530368e7d11" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78360,10 +64042,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78371,10 +64050,7 @@ "test/core/client_config/uri_corpus/1155aa6ea7ef262a81a63692513ea395f84dad6f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78382,10 +64058,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78393,10 +64066,7 @@ "test/core/client_config/uri_corpus/13856a5569ffd085a4d5c07af5f8e9310835a118" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78404,10 +64074,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78415,10 +64082,7 @@ "test/core/client_config/uri_corpus/14b57bcbf1e17b1db1de491ef2ba3768f704b7dc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78426,10 +64090,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78437,10 +64098,7 @@ "test/core/client_config/uri_corpus/1794310671a060eead6e5ee66ac978a18ec7e84f" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78448,10 +64106,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78459,10 +64114,7 @@ "test/core/client_config/uri_corpus/1d30b2a79afbaf2828ff42b9a9647e942ba1ab80" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78470,10 +64122,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78481,10 +64130,7 @@ "test/core/client_config/uri_corpus/1fcf5d9c333b70596cf5ba04d1f7affdf445b971" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78492,10 +64138,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78503,10 +64146,7 @@ "test/core/client_config/uri_corpus/23162c8a8936e20b195404c21337ee734d02a6bc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78514,10 +64154,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78525,10 +64162,7 @@ "test/core/client_config/uri_corpus/23f3198b815ca60bdadcaae682b9f965dda387f1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78536,10 +64170,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78547,21 +64178,15 @@ "test/core/client_config/uri_corpus/2ef3893b43f1f60b77b59ce06a6bce9815d78eaf" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" + "platforms": [ + "linux" ] }, { @@ -78569,10 +64194,7 @@ "test/core/client_config/uri_corpus/356c3c129e203b5c74550b4209764d74b9caefce" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78580,10 +64202,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78591,10 +64210,7 @@ "test/core/client_config/uri_corpus/396568fc41c8ccb31ec925b4a862e4d29ead1327" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78602,10 +64218,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78613,10 +64226,7 @@ "test/core/client_config/uri_corpus/3b1e7526a99918006b87e499d2beb6c4ac9c3c0c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78624,10 +64234,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78635,10 +64242,7 @@ "test/core/client_config/uri_corpus/3b58860f3451d3e7aad99690a8d39782ca5116fc" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78646,10 +64250,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78657,10 +64258,7 @@ "test/core/client_config/uri_corpus/41963cc10752f70c3af7e3d85868efb097a0ea9c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78668,10 +64266,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78679,10 +64274,7 @@ "test/core/client_config/uri_corpus/47b5228404451fc9d4071fa69192514bb4ce33c1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78690,10 +64282,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78701,10 +64290,7 @@ "test/core/client_config/uri_corpus/56a2da4b2e6fb795243901023ed8d0aa083d1aab" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78712,10 +64298,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78723,10 +64306,7 @@ "test/core/client_config/uri_corpus/574c2f13858a9a6d724654bd913ede9ae3abf822" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78734,10 +64314,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78745,10 +64322,7 @@ "test/core/client_config/uri_corpus/582f789c19033a152094cbf8565f14154a778ddb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78756,10 +64330,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78767,10 +64338,7 @@ "test/core/client_config/uri_corpus/636c5606fc23713a1bae88c8899c0541cfad4fd8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78778,10 +64346,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78789,10 +64354,7 @@ "test/core/client_config/uri_corpus/63fe493b270b17426d77a27cbf3abac5b2c2794a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78800,10 +64362,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78811,10 +64370,7 @@ "test/core/client_config/uri_corpus/655300a902b62662296a8e46bfb04fbcb07182cb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78822,10 +64378,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78833,10 +64386,7 @@ "test/core/client_config/uri_corpus/6ae3acd9d8507b61bf235748026080a4138dba58" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78844,10 +64394,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78855,10 +64402,7 @@ "test/core/client_config/uri_corpus/6b70979a70a038ff6607d6cf85485ee95baf58e6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78866,10 +64410,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78877,10 +64418,7 @@ "test/core/client_config/uri_corpus/7314ab3545a7535a26e0e8aad67caea5534d68b1" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78888,10 +64426,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78899,10 +64434,7 @@ "test/core/client_config/uri_corpus/7ff4d8b8d1ffd0d42c48bbb91e5856a9ec31aecb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78910,10 +64442,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78921,10 +64450,7 @@ "test/core/client_config/uri_corpus/87daa131e0973b77a232a870ed749ef29cf58e6d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78932,10 +64458,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78943,10 +64466,7 @@ "test/core/client_config/uri_corpus/884dcaee2908ffe5f12b65b8eba81016099c4266" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78954,10 +64474,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78965,10 +64482,7 @@ "test/core/client_config/uri_corpus/8d7e944fd5d0ede94097fcc98b47b09a3f9c76cb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78976,10 +64490,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -78987,10 +64498,7 @@ "test/core/client_config/uri_corpus/9671149af0b444f59bbdf71340d3441dadd8a7b4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -78998,10 +64506,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79009,10 +64514,7 @@ "test/core/client_config/uri_corpus/96c8d266b7dc037288ef305c996608270f72e7fb" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79020,10 +64522,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79031,10 +64530,7 @@ "test/core/client_config/uri_corpus/975536c71ade4800415a7e9c2f1b45c35a6d5ea8" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79042,10 +64538,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79053,10 +64546,7 @@ "test/core/client_config/uri_corpus/99750aa67d30beaea8af565c829d4999aa8cb91b" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79064,10 +64554,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79075,10 +64562,7 @@ "test/core/client_config/uri_corpus/a1140f3f8b5cffc1010221b9a4084a25fb75c1f6" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79086,10 +64570,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79097,10 +64578,7 @@ "test/core/client_config/uri_corpus/a1f0f9b75bb354eb063d7cba4fcfa2d0b88d63de" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79108,10 +64586,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79119,10 +64594,7 @@ "test/core/client_config/uri_corpus/a296eb3d1d436ed7df7195b10aa3c4de3896f98d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79130,10 +64602,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79141,10 +64610,7 @@ "test/core/client_config/uri_corpus/a8b8e66050b424f1b8c07d46f868199fb7f60e38" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79152,10 +64618,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79163,10 +64626,7 @@ "test/core/client_config/uri_corpus/aba1472880406a318ce207ee79815b7acf087757" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79174,10 +64634,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79185,10 +64642,7 @@ "test/core/client_config/uri_corpus/af55baf8c8855e563befdf1eefbcbd46c5ddb8d2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79196,10 +64650,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79207,10 +64658,7 @@ "test/core/client_config/uri_corpus/b3c0bf66c2bf5d24ef1daf4cc5a9d6d5bd0e8bfd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79218,10 +64666,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79229,10 +64674,7 @@ "test/core/client_config/uri_corpus/c28a47409cf5d95bb372238d01e73d8b831408e4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79240,10 +64682,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79251,10 +64690,7 @@ "test/core/client_config/uri_corpus/c3ef1d41888063a08700c3add1e4465aabcf8807" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79262,10 +64698,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79273,10 +64706,7 @@ "test/core/client_config/uri_corpus/c550a76af21f9b9cc92a386d5c8998b26f8f2e4d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79284,10 +64714,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79295,10 +64722,7 @@ "test/core/client_config/uri_corpus/c79721406d0ab80495f186fd88e37fba98637ae9" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79306,10 +64730,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79317,10 +64738,7 @@ "test/core/client_config/uri_corpus/ceb4e2264ba7a8d5be47d276b37ec09489e00245" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79328,10 +64746,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79339,10 +64754,7 @@ "test/core/client_config/uri_corpus/cf4395958f5bfb46fd6f535a39657d016c75114c" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79350,10 +64762,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79361,10 +64770,7 @@ "test/core/client_config/uri_corpus/d46668372b7e20154a89409a7430a28e642afdca" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79372,10 +64778,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79383,10 +64786,7 @@ "test/core/client_config/uri_corpus/d6fe7412a0a1d1c733160246f3fa425f4f97682a" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79394,10 +64794,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79405,10 +64802,7 @@ "test/core/client_config/uri_corpus/dns.txt" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79416,10 +64810,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79427,10 +64818,7 @@ "test/core/client_config/uri_corpus/e241f29957b0e30ec11aaaf91b2339f7015fa5fd" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79438,10 +64826,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79449,10 +64834,7 @@ "test/core/client_config/uri_corpus/ea02d9fea9bad5b89cf353a0169238f584177e71" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79460,10 +64842,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79471,10 +64850,7 @@ "test/core/client_config/uri_corpus/ec4731dddf94ed3ea92ae4d5a71f145ab6e3f6ee" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79482,10 +64858,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79493,10 +64866,7 @@ "test/core/client_config/uri_corpus/ed2f78646f19fc47dd85ff0877c232b71913ece2" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79504,10 +64874,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79515,10 +64882,7 @@ "test/core/client_config/uri_corpus/f6889f4a6350fea1596a3adea5cdac02bd5d1ff3" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79526,10 +64890,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79537,10 +64898,7 @@ "test/core/client_config/uri_corpus/f6f3bd030f0d321efe7c51ca3f057de23509af67" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79548,10 +64906,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79559,10 +64914,7 @@ "test/core/client_config/uri_corpus/f97598cff03306af3c70400608fec47268b5075d" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79570,10 +64922,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79581,10 +64930,7 @@ "test/core/client_config/uri_corpus/f9e1ec1fc642b575bc9955618b7065747f56b101" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79592,10 +64938,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79603,10 +64946,7 @@ "test/core/client_config/uri_corpus/fe0630a3aeed2ec6f474f362e4c839478290d5c4" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79614,10 +64954,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79625,10 +64962,7 @@ "test/core/client_config/uri_corpus/ipv4.txt" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79636,10 +64970,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79647,10 +64978,7 @@ "test/core/client_config/uri_corpus/ipv6.txt" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79658,10 +64986,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] }, { @@ -79669,10 +64994,7 @@ "test/core/client_config/uri_corpus/unix.txt" ], "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ], "cpu_cost": 0.1, "exclude_configs": [], @@ -79680,10 +65002,7 @@ "language": "c", "name": "uri_fuzzer_test_one_entry", "platforms": [ - "linux", - "mac", - "windows", - "posix" + "linux" ] } ] diff --git a/tox.ini b/tox.ini index a655935219f9cd537132d4a72781b3dc5ca3c775..66b74a32db00a2b9fd2325e1fa0731e2dbc437e6 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,7 @@ # GRPC Python tox (test environment) settings [tox] skipsdist = true -envlist = py27 +envlist = py27,py34 [testenv] setenv = diff --git a/vsprojects/grpc_protoc_plugins.sln b/vsprojects/grpc_protoc_plugins.sln index ef1cbb8e572a5177c7cb5539dadc768db84ab510..ace295daeaed57d3acb4051eb0b8d2ae6cbc9fdb 100644 --- a/vsprojects/grpc_protoc_plugins.sln +++ b/vsprojects/grpc_protoc_plugins.sln @@ -24,6 +24,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_csharp_plugin", "vcxpr {B6E81D84-2ACB-41B8-8781-493A944C7817} = {B6E81D84-2ACB-41B8-8781-493A944C7817} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_node_plugin", "vcxproj\.\grpc_node_plugin\grpc_node_plugin.vcxproj", "{57ABD9A2-CE8E-CCA7-5171-35C4534F3595}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {B6E81D84-2ACB-41B8-8781-493A944C7817} = {B6E81D84-2ACB-41B8-8781-493A944C7817} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_objective_c_plugin", "vcxproj\.\grpc_objective_c_plugin\grpc_objective_c_plugin.vcxproj", "{19564640-CEE6-4921-ABA5-676ED79A36F6}" ProjectSection(myProperties) = preProject lib = "False" @@ -80,6 +88,14 @@ Global {3C813052-A49A-4662-B90A-1ADBEC7EE453}.Debug|x64.Build.0 = Debug|x64 {3C813052-A49A-4662-B90A-1ADBEC7EE453}.Release|Win32.Build.0 = Release|Win32 {3C813052-A49A-4662-B90A-1ADBEC7EE453}.Release|x64.Build.0 = Release|x64 + {57ABD9A2-CE8E-CCA7-5171-35C4534F3595}.Debug|Win32.ActiveCfg = Debug|Win32 + {57ABD9A2-CE8E-CCA7-5171-35C4534F3595}.Debug|x64.ActiveCfg = Debug|x64 + {57ABD9A2-CE8E-CCA7-5171-35C4534F3595}.Release|Win32.ActiveCfg = Release|Win32 + {57ABD9A2-CE8E-CCA7-5171-35C4534F3595}.Release|x64.ActiveCfg = Release|x64 + {57ABD9A2-CE8E-CCA7-5171-35C4534F3595}.Debug|Win32.Build.0 = Debug|Win32 + {57ABD9A2-CE8E-CCA7-5171-35C4534F3595}.Debug|x64.Build.0 = Debug|x64 + {57ABD9A2-CE8E-CCA7-5171-35C4534F3595}.Release|Win32.Build.0 = Release|Win32 + {57ABD9A2-CE8E-CCA7-5171-35C4534F3595}.Release|x64.Build.0 = Release|x64 {19564640-CEE6-4921-ABA5-676ED79A36F6}.Debug|Win32.ActiveCfg = Debug|Win32 {19564640-CEE6-4921-ABA5-676ED79A36F6}.Debug|x64.ActiveCfg = Debug|x64 {19564640-CEE6-4921-ABA5-676ED79A36F6}.Release|Win32.ActiveCfg = Release|Win32 diff --git a/vsprojects/vcxproj/gpr/gpr.vcxproj b/vsprojects/vcxproj/gpr/gpr.vcxproj index cdb128e48effa89f1b597e814a0cb580ff8aa9fc..26195bb54171553063ee237ff3ce6cc4adcd2ace 100644 --- a/vsprojects/vcxproj/gpr/gpr.vcxproj +++ b/vsprojects/vcxproj/gpr/gpr.vcxproj @@ -259,6 +259,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\support\string_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\support\string_util_win32.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\support\string_win32.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\support\subprocess_posix.c"> @@ -287,6 +289,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\support\tls_pthread.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\support\tmpfile_msys.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\support\tmpfile_posix.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\support\tmpfile_win32.c"> diff --git a/vsprojects/vcxproj/gpr/gpr.vcxproj.filters b/vsprojects/vcxproj/gpr/gpr.vcxproj.filters index 8af6fdd44cb474aee5883074c2846620a5568135..be15391b0925ac226e9bbdd5b69d0ea50fb6a5ab 100644 --- a/vsprojects/vcxproj/gpr/gpr.vcxproj.filters +++ b/vsprojects/vcxproj/gpr/gpr.vcxproj.filters @@ -82,6 +82,9 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\support\string_posix.c"> <Filter>src\core\lib\support</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\support\string_util_win32.c"> + <Filter>src\core\lib\support</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\support\string_win32.c"> <Filter>src\core\lib\support</Filter> </ClCompile> @@ -124,6 +127,9 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\support\tls_pthread.c"> <Filter>src\core\lib\support</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\support\tmpfile_msys.c"> + <Filter>src\core\lib\support</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\support\tmpfile_posix.c"> <Filter>src\core\lib\support</Filter> </ClCompile> diff --git a/vsprojects/vcxproj/grpc_node_plugin/grpc_node_plugin.vcxproj b/vsprojects/vcxproj/grpc_node_plugin/grpc_node_plugin.vcxproj new file mode 100644 index 0000000000000000000000000000000000000000..faf93fd1365f211fff75de883d6daa2cb4cde91b --- /dev/null +++ b/vsprojects/vcxproj/grpc_node_plugin/grpc_node_plugin.vcxproj @@ -0,0 +1,168 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{57ABD9A2-CE8E-CCA7-5171-35C4534F3595}</ProjectGuid> + <IgnoreWarnIntDirInTempDetected>true</IgnoreWarnIntDirInTempDetected> + <IntDir>$(SolutionDir)IntDir\$(MSBuildProjectName)\</IntDir> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(VisualStudioVersion)' == '10.0'" Label="Configuration"> + <PlatformToolset>v100</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(VisualStudioVersion)' == '11.0'" Label="Configuration"> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration"> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration"> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="$(SolutionDir)\..\vsprojects\global.props" /> + <Import Project="$(SolutionDir)\..\vsprojects\protobuf.props" /> + <Import Project="$(SolutionDir)\..\vsprojects\protoc.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)'=='Debug'"> + <TargetName>grpc_node_plugin</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)'=='Release'"> + <TargetName>grpc_node_plugin</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <SDLCheck>true</SDLCheck> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <TreatWarningAsError>true</TreatWarningAsError> + <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat> + <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation> + <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <SDLCheck>true</SDLCheck> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <TreatWarningAsError>true</TreatWarningAsError> + <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat> + <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation> + <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>true</SDLCheck> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <TreatWarningAsError>true</TreatWarningAsError> + <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat> + <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation> + <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>true</SDLCheck> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <TreatWarningAsError>true</TreatWarningAsError> + <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat> + <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation> + <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + + <ItemGroup> + <ClCompile Include="$(SolutionDir)\..\src\compiler\node_plugin.cc"> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc_plugin_support\grpc_plugin_support.vcxproj"> + <Project>{B6E81D84-2ACB-41B8-8781-493A944C7817}</Project> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> + <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> + <PropertyGroup> + <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> + </PropertyGroup> + </Target> +</Project> + diff --git a/vsprojects/vcxproj/grpc_node_plugin/grpc_node_plugin.vcxproj.filters b/vsprojects/vcxproj/grpc_node_plugin/grpc_node_plugin.vcxproj.filters new file mode 100644 index 0000000000000000000000000000000000000000..28b197f6f3918b14763aa85254f6b08aa5090d56 --- /dev/null +++ b/vsprojects/vcxproj/grpc_node_plugin/grpc_node_plugin.vcxproj.filters @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <ClCompile Include="$(SolutionDir)\..\src\compiler\node_plugin.cc"> + <Filter>src\compiler</Filter> + </ClCompile> + </ItemGroup> + + <ItemGroup> + <Filter Include="src"> + <UniqueIdentifier>{089d5d6b-d438-dc98-b30f-bd608e3bbb78}</UniqueIdentifier> + </Filter> + <Filter Include="src\compiler"> + <UniqueIdentifier>{1cc34440-c001-7578-c4d3-78f5d98fb602}</UniqueIdentifier> + </Filter> + </ItemGroup> +</Project> + diff --git a/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj b/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj index 4c80226cbaf4f58e60e114d3c82c3a946b0d8fdf..a81d31768d77429a7143684ebb6ddb63f51539d3 100644 --- a/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj +++ b/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj @@ -160,6 +160,8 @@ <ClInclude Include="$(SolutionDir)\..\src\compiler\csharp_generator.h" /> <ClInclude Include="$(SolutionDir)\..\src\compiler\csharp_generator_helpers.h" /> <ClInclude Include="$(SolutionDir)\..\src\compiler\generator_helpers.h" /> + <ClInclude Include="$(SolutionDir)\..\src\compiler\node_generator.h" /> + <ClInclude Include="$(SolutionDir)\..\src\compiler\node_generator_helpers.h" /> <ClInclude Include="$(SolutionDir)\..\src\compiler\objective_c_generator.h" /> <ClInclude Include="$(SolutionDir)\..\src\compiler\objective_c_generator_helpers.h" /> <ClInclude Include="$(SolutionDir)\..\src\compiler\python_generator.h" /> @@ -173,6 +175,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\compiler\csharp_generator.cc"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\compiler\node_generator.cc"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\compiler\objective_c_generator.cc"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\compiler\python_generator.cc"> diff --git a/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj.filters b/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj.filters index fc125d911efc4ad476ca2d26eeda64a71d92c143..b3d2dc2f3d557c001b2b298ea1f9e73338f7d990 100644 --- a/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj.filters @@ -7,6 +7,9 @@ <ClCompile Include="$(SolutionDir)\..\src\compiler\csharp_generator.cc"> <Filter>src\compiler</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\compiler\node_generator.cc"> + <Filter>src\compiler</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\compiler\objective_c_generator.cc"> <Filter>src\compiler</Filter> </ClCompile> @@ -50,6 +53,12 @@ <ClInclude Include="$(SolutionDir)\..\src\compiler\generator_helpers.h"> <Filter>src\compiler</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\compiler\node_generator.h"> + <Filter>src\compiler</Filter> + </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\compiler\node_generator_helpers.h"> + <Filter>src\compiler</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\compiler\objective_c_generator.h"> <Filter>src\compiler</Filter> </ClInclude> diff --git a/vsprojects/vcxproj/test/golden_file_test/golden_file_test.vcxproj b/vsprojects/vcxproj/test/golden_file_test/golden_file_test.vcxproj new file mode 100644 index 0000000000000000000000000000000000000000..e9802773d8db4bf205c4b2390ccfda0142595288 --- /dev/null +++ b/vsprojects/vcxproj/test/golden_file_test/golden_file_test.vcxproj @@ -0,0 +1,206 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\1.0.204.1.props')" /> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{0ECDE365-D634-4E15-099F-40A38E151C65}</ProjectGuid> + <IgnoreWarnIntDirInTempDetected>true</IgnoreWarnIntDirInTempDetected> + <IntDir>$(SolutionDir)IntDir\$(MSBuildProjectName)\</IntDir> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(VisualStudioVersion)' == '10.0'" Label="Configuration"> + <PlatformToolset>v100</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(VisualStudioVersion)' == '11.0'" Label="Configuration"> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration"> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration"> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="$(SolutionDir)\..\vsprojects\cpptest.props" /> + <Import Project="$(SolutionDir)\..\vsprojects\global.props" /> + <Import Project="$(SolutionDir)\..\vsprojects\openssl.props" /> + <Import Project="$(SolutionDir)\..\vsprojects\protobuf.props" /> + <Import Project="$(SolutionDir)\..\vsprojects\winsock.props" /> + <Import Project="$(SolutionDir)\..\vsprojects\zlib.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)'=='Debug'"> + <TargetName>golden_file_test</TargetName> + <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> + <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> + <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)'=='Release'"> + <TargetName>golden_file_test</TargetName> + <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> + <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> + <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <SDLCheck>true</SDLCheck> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <TreatWarningAsError>true</TreatWarningAsError> + <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat> + <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation> + <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <SDLCheck>true</SDLCheck> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <TreatWarningAsError>true</TreatWarningAsError> + <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat> + <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation> + <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>true</SDLCheck> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <TreatWarningAsError>true</TreatWarningAsError> + <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat> + <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation> + <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>true</SDLCheck> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <TreatWarningAsError>true</TreatWarningAsError> + <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat> + <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation> + <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + + <ItemGroup> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\compiler_test.pb.cc"> + </ClCompile> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\compiler_test.pb.h"> + </ClInclude> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\compiler_test.grpc.pb.cc"> + </ClCompile> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\compiler_test.grpc.pb.h"> + </ClInclude> + <ClCompile Include="$(SolutionDir)\..\test\cpp\codegen\golden_file_test.cc"> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++\grpc++.vcxproj"> + <Project>{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}</Project> + </ProjectReference> + <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc\grpc.vcxproj"> + <Project>{29D16885-7228-4C31-81ED-5F9187C7F2A9}</Project> + </ProjectReference> + <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\gpr\gpr.vcxproj"> + <Project>{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}</Project> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <None Include="packages.config" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies\grpc.dependencies.zlib.targets')" /> + <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies\grpc.dependencies.zlib.targets')" /> + <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies\grpc.dependencies.openssl.targets')" /> + <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies\grpc.dependencies.openssl.targets')" /> + </ImportGroup> + <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> + <PropertyGroup> + <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> + </PropertyGroup> + <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets')" /> + <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets')" /> + <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets')" /> + <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props')" /> + <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets')" /> + </Target> +</Project> + diff --git a/vsprojects/vcxproj/test/golden_file_test/golden_file_test.vcxproj.filters b/vsprojects/vcxproj/test/golden_file_test/golden_file_test.vcxproj.filters new file mode 100644 index 0000000000000000000000000000000000000000..c329e4da5c5f94306ed81c886c84a309a64f9f6d --- /dev/null +++ b/vsprojects/vcxproj/test/golden_file_test/golden_file_test.vcxproj.filters @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\compiler_test.proto"> + <Filter>src\proto\grpc\testing</Filter> + </ClCompile> + <ClCompile Include="$(SolutionDir)\..\test\cpp\codegen\golden_file_test.cc"> + <Filter>test\cpp\codegen</Filter> + </ClCompile> + </ItemGroup> + + <ItemGroup> + <Filter Include="src"> + <UniqueIdentifier>{cd916cf8-bce0-7051-b6d4-e1cd0bf3894c}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto"> + <UniqueIdentifier>{a2d414fe-b561-a38e-58a9-40d8bc68a107}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc"> + <UniqueIdentifier>{edbc155a-ceb8-62b4-2b73-37228e5fa736}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc\testing"> + <UniqueIdentifier>{761a3503-8934-4ee6-8bf1-77ba1385baa7}</UniqueIdentifier> + </Filter> + <Filter Include="test"> + <UniqueIdentifier>{4f08cfc5-a59d-7cb4-9ef5-a603b2025936}</UniqueIdentifier> + </Filter> + <Filter Include="test\cpp"> + <UniqueIdentifier>{af281cac-e23b-109b-8e63-c7cff85c81f4}</UniqueIdentifier> + </Filter> + <Filter Include="test\cpp\codegen"> + <UniqueIdentifier>{e105f656-566f-3d70-fbe5-e03fee8e612d}</UniqueIdentifier> + </Filter> + </ItemGroup> +</Project> +